After I finished my first Unity game The Gap earlier this year, I made a blog post about my plans for 2017. To sum it up for those that don't remember, or don't feel like reading it, my plan for this year is to develop very small games that focus primarily on one programming aspect. The basic idea behind it all is that by forcing myself to making these small, simple games I will be able to more rapidly learn various aspects of C#, as well as get more used to the Unity engine. I talked to other indie devs, those that had been at it for a few years and those that were successful, they said this was a great idea as I would learn more this way than if I were to just focus on a large, single project. So far this has proven true, but actually executing my plan hasn't gone as smooth as I would have liked.
I just wrapped up my second Unity game Deadwood Forest this past weekend and I found myself more frustrated than delighted by the whole experience. I did as planned and kept the scope extremely small: move your player across a tile-based system and reach the end of the level without touching an enemy. In terms of my goals to learn code-wise, my plan was to learn how to use lists and loops, as well as learning how to implement a control movement in a tile-based world. Between my day job and school, I figured I could still manage to pump this out in a month...
Problem #1 - Art
When I did The Gap I used royalty-free art assets and only did some color variations with them in Photoshop. This was great as it being my first true project allowed me to focus entirely on programming and learning the engine (more core goals). With Deadwood Forest I decided to attempt to make my own art. This had came with it's own challenges: 1) I am in no way an artist 2) I attempted to created pixel art for the very first time 3) I didn't realize how long it would take me to make the assets needed for my game. I've always wanted to learn how to do pixel art so at the start of making assets I was quite excited to dive into it. I watched many tutorials on how to create pixel art and read articles on the do's and don'ts of the craft. I also discovered that I didn't know Photoshop that well and it took awhile to learn all of the tools/panes/shortcuts to establish an efficient workflow. This is all great, but this all takes time.
Problem #2 - Unexpected Code
I knew I would need to learn how to implement a tile-based movement system and learn how to use lists and loops; however, I didn't foresee many other things I would need to learn. I didn't realize the way I had implemented my game and sound managers in my first game were inefficient and wouldn't work with my current game. I didn't realize I would have to learn about everything about coroutines. I didn't realize I would have to increase my understanding of singleton classes and static variables. Heck, I didn't even know what enums were until I made this game (they are awesome), but they greatly helped my game. Yes, I realize these concepts are all technical jargon to non-programmers; hang in there guys :) I am fully aware that not foreseeing everything is all part of the development process (I do love the challenge this brings throughout development), and that my lack of experience most definitely increases the number of things I won't foresee, but...again...these things all take time to learn/implement.
Problem #3 - Motivation
To my surprise, I plowed through my programming goals in a lot less time than I anticipated. Core gameplay was done. Everything I had set out to learn with this tiny game was attained, but it wasn't done. Why? Because of the damn art. There is not even that many assets in the damn game, but my programmer-mind just dragged ass through the whole art process. I started to feel like I was wasting my time learning to make art assets when the entire goal this year is to become a better programmer. Day by day this started to make me work on the art less and less until eventually I just stopped. Instead I would work on tightening up the gameplay, writing more efficient code, and implementing sound design. If I had just finished the art I could have pumped this game out and been on the next project, but I didn't - I lost the motivation to grind it out. I very well could have completed this game in four weeks (okay, probably six because of those unforeseen events I talked about), but it ended up taking closer to 10 weeks.
To add to this frustration, during my lack of motivation I made a list of all the games I wanted to make this year to get through all of the programming concepts I wanted to learn and....the total came to nine. Nine more games I wanted to create this year after I finished this game and it was already May. This realization may have very well been this motivation to get back to grinding out the game.
I realized halfway through development that my game was not fun to play. Tiny simplistic games can definitely be enjoyable, but mine as tedious and boring. Already frustrated with the amount of time spent on this game I didn't want to take even more time to work out this problem; especially, since I already learned the programming concepts I wanted to for this game. I was very tempted to just quit the game or publish a half finished product. I didn't because of a conversation I recalled a few years ago that I had with programmer when I first got into making Flash games. He said that you "learn the most during the last 10% of development." There are many ways to interpret that statement, but I believe a huge part of it has to do with so many people starting projects, but not that many have the willpower (or motivation) to finish them (prototypes galore!). You know what? He was right. I learned many new programming concepts and more efficient practices towards the end of the of development that I never would have discovered if I didn't finish the game.
I've been planning this postmortem of sorts before I even finished Deadwood Forest. This is mainly due to the fact that I know how many more games I want to make this year (9) and that I only have 6 months left in the year. At the rate I'm going it is impossible to achieve everything I want to accomplish this year. To improve the development process for my 2017 plan there are a few things I could do:
There are three ways I could go with art assets in future projects. Option #1: I could team up with an artist to do the assets for me. I've been on the mindset that no one wants to offer their time to help create these tiny games for me. After this last project, I've decided screw it and started reaching out to fellow indie dev artists (we shall see what comes of it). Option #2: I could purchase, or find, royalty-free assets so that I could have well made assets in my game and wouldn't have to worry about creating them myself or relying on a partner. Option #3: I can continue to create the assets myself. Learning pixel art is something I've always wanted to do; however, I need to remember that the focus this year is to learning C#. Technically, there is a fourth option which would be just using basic geometric shapes (hello placeholder art) for my assets, but I would like to deliver a more "complete" game than that.
I already made a great effort to keep my scope extremely small and limited thus far; however, as I've learned their are various elements that I didn't foresee that can creep into development - things that will take more time than I anticipate. There is also the "feature creep" that all us game devs must battle with, but thus far I've done a pretty good job not letting it get out of hand. With future games I will have to do better planning out the project. Strip features down until the core gameplay focuses on whatever programming concept I intend to learn and provide some wiggle room to handle unforeseen events.
I am bummed about the year being halfway over already, but I know I shouldn't be so hard on myself. Despite the size and simplicity of my games so far, I still managed to finish two games this year so far and that is pretty awesome! I'm very excited for future projects and all of the challenges that they will bring.
If somehow anyone managed to read this far I want to thank you from the bottom of my heart. You are amazing! Also, if you've made it this far and are not already following my path as an indie game dev, than I invite you to come over to my Twitter @heropowerent and say hi!
Well it's time to get back to the grind! I have a few ideas kicking around in my head for my next game - I just need to decide which one I want to do. Looking forward to the rest of the year and sharing everything will all of you :)