I’ve always believed in the strength of game development as a learning tool. Through no other exercise do you come to intimately know the ins and outs of a language than through developing a very interactive application, especially one that interacts back with you. Ok, maybe there are better ways of learning software development, but there is certainly a reason that virtually every computer science class involves making a game in one way or another.
What do I enjoy particularly about game development as a learning tool? Well, in game development, the ratio between work in to results out is extremely high. There is something incredibly satisfying about sitting down and turning commands and pixels into an interactive and entertaining piece of art. Only limited by your imagination, and I suppose your resolution, the screen becomes a blank canvas upon which you are free to create.
Designing the game mechanics, initial requirements, each new piece of scenery, functionality and character animation stands to bring a great amount of visual feedback to the game, leaving us increasingly rewarded as we see the screen fill up with our thoughts and ideas. Unfortunately however, at some point the Law of Diminishing Returns decides to rear its nasty head and tell you that you’re working waaaaayyyyy too fast. Eventually, after you have implemented most of the big stuff, the reward you get out of your developing time starts to decrease when compared to the work put in. Suddenly, you’re faced with the booooring task of fine tuning the buttons and UI in your game, or you realize that the entire mechanic of your game needs to be reworked because it just doesn’t feel very fun. I’ve certainly been there – even multiple times per project!
For example, I spent the last few hours making small tweaks to a simple dance animation to get it juuuust right. The satisfaction I felt after finishing all this tweaking was not at the same level as it was when I first brought these characters to life. Now it’s all turned into … well, work. The magic that first accompanied the initial development quickly faded into an ocean of interconnected classes, objects and assets.
Suddenly, you’re slaving away for the entire day to complete a simple task. So how do we get over this and finish our projects? The best advice I have to give… is just to push through it. These feelings are completely natural! It’s all a part of the natural cycle of creating something. The initial high of seeing your ideas become a reality, the first setback… the second setback… sitting back and realizing that you bit off way more than you can chew. But the most important thing to remember is this: it will most definitely pass. Below are a few things I like to do to help me push past the feelings of “I totally don’t want to do this anymore”
- Set deadlines! And set the bar low. For example, “I will design one button for my UI by the end of the night”
- Post your progress to blogs! Getting feedback has helped reassure me that I’m on the right path, or that I need to change things up a bit. reddit’s /r/gamedev has weekly threads like Feedback Friday and Screenshot Saturday that can be a great place to show off your works in progress.
- Take a break! It’s natural to feel overwhelmed by the project you’ve taken on. It’s important (for both your physical and mental health) to remove yourself from the grind from time to time and clear your mind.
- BEFORE YOU RESTART: make sure you’ve given absolutely everything to the current project. It’s never too late to scale down your original idea. You may think that you’ve learned a great deal and that your new project will be cooler and cleaner. But realistically speaking, it’ll probably be more of the same. Get some feedback (see 2) and redesign. At the end of the day, finishing an entire project will not only feel great, but you’ll have something real to show for all your hard work. Because in the end…