The struggles of Game Development
We have to be real with you for this one. Pretty much everyone who ever worked on a game has been faced with various setbacks and struggles. For many developers, these setbacks can be very demotivating, maybe even making you consider quitting creating your game altogether.
Don't fear though, everyone goes through this, including us. In order to help you, we've listed some of our most common struggles, all of which one (or all) of us has personally gone through. We'll provide you with some solid tips as well as how you can limit the negative impact these events may have on your gamedev journey.
Programming Roadblocks
So you've started working on your game, and have begun working on your (first) game mechanic. You had an entire idea of how you would implement it, but now suddenly you've hit a wall. No matter how much you try, you somehow can't get the code to do what you wanted. Maybe it's because this is the first time you are using this programming language, or maybe you just are pushing the limits of what the language is designed for.
Regardless, the fact is, you're stuck. You've been trying to get this one thing working for the past week, and you still don't have much to show for it.
Firstly, don't sweat it. Everyone who ever worked with a programming language has gone through this exact issue, not limited to game developers. The first thing you should do is take a break. Just staring blindly at your IDE will most likely not help, and only be counterproductive even. If you can't figure it out after 10 minutes, 2 hours won't help either. Then after your break, try one of the following solutions.
Rubber Duck Debugging
This is a common concept in programming. You'll find rubber ducks on the desks of software engineers all over the world, for one simple reason. We talk to the ducks.
No, not because we have lost all our sanity. Instead, we just vent/rant/explain to the duck what our problem is. By vocalizing your issues and describing what you've done so far, you usually have to think from a new angle. This is because now you are explaining it to something/someone else. Usually halfway through your rant, you'll have Eureka! moment and get a possible solution to your problem.
I know this sounds very weird, but don't knock it if you try it. If you want an even better version of this, try talking to a real person instead of a rubber duck. This way they can ask you questions you hadn't thought about, or suggest possible fixes.
Splitting up the issue
No ducks and no people in your life to talk to? Sometimes the reason you're stuck might be because you are working on too much at the same time. Instead of just having one big issue "3D world generation", split it up into as many individual pieces you can. Then start working on these issues one by one. These smaller issues will go much easier and quicker, leaving you only with gluing them all together for the final product. This step goes much easier usually as well.
Life gets busy
Sometimes, you know what to do though, and how to reach it, but you just can't seem to find the time for it. Because life is simply full of surprises, you never know what may happen that suddenly demands your attention more than your gamedev (side) project.
This can often be very frustrating, as the longer you take a break from working on your game, the harder it can get to get back into it as well.
This is where habits can come in. Ideally, you can create a habit of working on your game in advance. Figure out a time where you can work uninterruptedly on your game, every single day. This doesn't need to be for hours on end, just 30min would already be good. Creating a new habit in the middle of a busy life can be much harder, but with some decent planning and a good work ethic, you can still get it done!
Loss of motivation
A game usually isn't built in just a few weeks. It's often a months- or even a years-long endeavor. During this process, it's usually impossible to have the same high amount of motivation the entire time. There will be times when you will have doubts. Wondering if you aren't just wasting your time, countless "what-if" scenarios running through your head. What if nobody buys the game, or it never gets finished, or it's just not fun.
You may consider calling it quits during these periods, using your free time to chase something new. We may be biased here, but we would want you to stick through and finish that gamedev dream of you, no matter what struggles you encounter along the way.
Take a short break (no more than a few days) and maybe try to reach out to a friend or something. Talk about your game to him, get him to hype you up. Maybe he'll even join the development process? Regardless, ask him if you can use him as an accountability partner.
This would mean that you schedule a call/meetup once every one or two weeks, where you talk about the progress you have made so far. You don't want to disappoint him, so you'll usually always have something you have worked on for the game to present to him.