I think that's very common to fall down during a game development process, finishing a game is a tough work, so, I'm going to discuss some topics earned by my own experiences, things that were killing my previous game projects during a long period.
This article was called "5 reasons why I never finished a game, until now" because actually I'm finishing my first "serious" game project at my current workplace. I want to share with you my personal thoughts through this "falling down, getting up" process, and emphasize that this article isn't the absolute true. So, your feedback will be very welcome.
1. Perfectionism pitfall
Words like: "this code is messy, I will code this again and better" are like pointing yourself with a shotgun. This typical pitfall doesn't let you to progress on your project because you will try to reconstruct all again, falling into an eternal loop, with higher chance to get stuck at early stages of your game.
We are constantly learning new things, and that's the main reason why it's impossible to get "the perfection", because in every achieve we had learned new ways to improve the previous work, so we would never be conformed.
2. Planning is fundamental
Like it or not, a bit of formality helps a lot. A plan it fundamental to keep your motivation. Anyway, at first the plan will be diffuse, but we need to give it definition because this will give you a chance to set a start and end for the project as well. Without planning is like to know where to start, but not where to finish, you will lose your path. This will give us an estimation of the total time to achieve the project, and a minor risk to make critical changes during the process. Believe me, time is invaluable, don't waste it.
Set milestones and try to respect deadlines. Avoid to pressure yourself because you will finish with a
crappy premature coding (and like an infinite-loop, you will come back to the previous topic) just cursed by your own curiosity to see parts of your project running. This also helps you to maintain your motivation to carry on the next goals, you will be warmed, ready to complete the next milestone/challenge. Just be serious, make a plan, even a simple plan will work fine.
3. Don't prejudge your project with nonexistent facts.
It's common to have a preconception of things, fine, but if you don't believe in your own project, is like to carry a cow over your body for no reason. If you want to play your own finished game, change the way that your mind works. Don't think like: "This game is fine, but I don't know if this will be a successful game" or "I'm scared of what people will say about my work", just do the game, and then think about it.
We're in a world where high percent of people say shit without no reason, so don't be surprised if you have a bad feedback, there is always something good to learn, just filter and feed your knowledge.
A good example of this was the case of a local game called Evilot. I was stalking the project from his conception, hearing a lot of general shit about the game and the team herself. Short history, the game was a big success, and the most ironic thing was that negative people changing his posture by act of magic, now having good opinions about the project, what the heck.
So, in conclusion, start your
damn game now!, don't fear to fail and obviously don't hate Phil Fish because other people do, stay away of the troll mass, be constructive. Consider the fact that most of the things you care about, almost never happen.
4. Be aware of complexity, especially when you don't need to.
In the past, I was committing the mistake of reinventing the wheel when it's not necessary at all, losing the real focus on the value of the game (idea, gameplay, mechanics, etc). I think that the problem start when your "ego" appears and want you to create something from scratch, without thing about whether it's worth.
Why I mention this, because not every time you need to create something from scratch!, this will be contextual. For example if you need to create a platform game will be easy to grab some engine, but if you have to be very specific about the mechanics and you have time/skills at your side, take the
risk challenge. This depends a lot of your vision, do you want to be more creative? or everything is about mechanics? (or a mix of both)
I need to admit that I love to make my own engines to have full control, but this could put you out-of-the-way, because it's really easy to fall in things like: "I want to make my own engine, because it's a good challenge and I will be me more asian" but you need to question yourself about things like: "Where's the value, or what you want to achieve with your game?, It's about game dynamics or you want to transmit an interesting idea/history". Don't feel bad about considering tools like GameMaker to focus on what you need to.
Recently I was started to follow an Indiegogo game project called Fran Bow, and I was surprised because was created on the "simple" GameMaker, my "coding-ego" was kicked hard on their nuts. So, tools are just tools, and when you have a good game, believe me that anybody cares about what's going on in a technical fashion. Just stay attached to what you want to achieve with your game, and try to identify that "ego-coding moment" that could blur your vision about the main goal of the project.
5. Expectations and motivation
I believe that we need to start small and screw-up things a couple of times to get a solid game. I was committing the typical mistake of having fear about fail, but failing it's the best way to improve your skills. So, don't be too ambitious trying to create an AAA quality game, because the possibility to fall into demotivation will be high. Consider that finishing a game is an important skill, this will bring you more confidence to accomplish future projects.
You are the only responsable of keeping yourself motivated through the process, and I think that a good way it's to create prototypes to have a general vision of what would be your game, as well will bring you the chance to improve different aspects of your game. Don't self demotivate playing your ugly game/prototype, because everything needs a foundation to build something cool over it. The first prototype of Braid was ugly, but was only a prototype and I'm sure that was an important motivation to accomplish the game.
It's your own mission to stay motivated and achieve the vision of your game. Make research, play a lot of games to have a broader view when you need to create new things. Don't sub-estimate game development, because something "simple" like a pac-man game development was a though work. Just try to set real goals, and stay focused and motivated. Get positive insights from your failures and keep going!
Well, hope you find this article useful, this is my first blog post ever and your feedback will be my pay. If you want to follow me I'm @everblind on twitter. Finally thanks for reading this post! Cheers! :)