On the blog of one of the creators of Aquaria and Spelunky there is a curious post with tips for those who have problems with finishing their game projects. This list of tips turned out to be a kind of “mirror” for me, which reflects many of the problems I encountered myself, and I was surprised at how well the author managed to grasp the essence of these problems and propose solutions, often uncompromising.
Approaching the final stage of the development of my game, I thought a lot about how to complete the execution of projects as a whole. I noticed that there are a lot of really talented developers around who have problems with finishing the game projects. In truth, I myself left behind a number of unfinished games ... I think many have the same situation. Not every project succeeds, for various reasons. However, if you began to notice that you are constantly throwing projects that have good potential, you should probably look back and explore the reasons for that.
When a new game, book, movie, etc. came out, the thought “Hey! I would do it much better! This is clearly overvalued. ” It is important to stop and understand that the creators have invested their time in the project and completed it, but I did not. This is at least one reason why they are better than me, why they received a confession, but I did not. If you consider bringing the case to the end as a skill rather than as a step in a process, then you confirm that this is something that can be improved, and you probably know what habits and thought processes accompany the developer during the completion of the project.
I do not believe that there is the only sure way to make a game. This is a creative enterprise, so there are no hard and fast rules that could not be broken at some point. However, as a game developer who discussed this issue with other game developers, I think that there are mental traps that we often fall into at one time or another, especially if we are just starting to develop games. Knowing these pitfalls is in itself a very important step towards completing your project.
So, next are 15 tips for those who want to successfully complete their game project:
')
1. Choose an idea that has potential.

There are three types of games that interest me: games that I want to do, games that I would like to have been made, and games that I do well.
The games I want to do are games in which the creation process is interesting. This may be a game mechanic with whom you want to experiment, or, for example, a character who is interesting to animate.
Games that I would like to be made are games in which I am interested in the result, and not the process of its achievement. It can be a game with an incredible concept (“OMG, GTA + Final Fantasy + Starcraft + ...”), or just a cool idea, which can be far from fun to bring to life.
Games that I can do - games that, according to my personal feelings, are suitable for me, and I have experience in creating them. Perhaps this is a kind of genre to which you feel the rhythm and tendencies in such games.
In my opinion, the games with the greatest potential (sufficient at least to finish the job) belong simultaneously to all three categories and satisfy the requirement “I have the time and resources to really do it.”
2. Begin to finally make this damn game.
Making and writing out the idea of ​​a game does not mean starting to make a game. Describing the design of a game in a document does not mean starting to make a game. To assemble a team does not mean to start making a game. Even making music and a visual component does not mean making a game. It is very easy to confuse "getting ready to start making the game" and "start making the game." Just remember: the game can be played, and if you have not done anything in which you can play, then this is not a game yet!
Finally, even creating a game engine does not necessarily mean starting to make a game. And that brings us to the next tip ...
3. Do not turn off your engine unnecessarily.
There are pros and cons of creating your own engine. Ask yourself, do you really need it? Is it possible to realize what you want with the help of available tools, or will you reinvent the wheel? Of course, if you write your engine, you can make it perfect in the sense that you imagine. But to be honest, how often did you overcome the stage of creating the engine and go directly to the development of the game itself? Or can you say that you often make game engines than games?
I made the original version of my Spelunky game in
Game Maker , and this truly completed game allowed me to continue working on the version already under XBOX360. Therefore, do not take the software for creating games and other tools that simplify the work as something illegal. The main thing is the game.
4. Make prototypes
The advice after # 2: make prototypes of everything you have. Sometimes bad ideas show up right there. Sometimes ideas evolve and become even better. One way or another, I usually can hardly understand where to put my efforts until I finally start to do something. So do something!
5. Make sure the game mechanic is interesting.
Find a basic mechanic that would be fun to play with. Most in-game interactions should be interesting, because this is what your players will do most of the time. Ultimately, this “core” should guide the entire subsequent development process. In the future, if you have to cut out some parts of the game, the core should always remain the foundation to which you can return without loss.
In the process of prototyping, it may happen that a new mechanic opens, more interesting than originally conceived - consider using this new mechanic instead of the old one!
6. Choose good partners (or work alone as long as you can)

Finding a good partner for game development is a lot like courtship. You might think that skill is all that is needed: “Oh, great, I'm a programmer, and this guy is an artist ... let's do it!”. But no, there are other things that need to be taken into account, such as personal qualities, experience, free time and degree of interest. As in a romantic relationship, you hardly want to find yourself in a situation where a partner is much less interested in you. Take a closer look and test each other on several small projects, because it can be really destructive that a situation when a key person leaves the development after several months or even years from the moment of its beginning.
Another advantage of having completed projects is that partners will know what you are capable of, and it will be more convenient for them to work with you. It is very difficult to convince someone experienced to work with you, having one single idea available, considering how few such ideas survive (and how hard it is to see the significance of an idea until it is implemented). Good partners will want to see your completed projects. So finish them!
On the other hand, you can find free music and graphics on the Internet, at least for a while (at The Independent Gaming Source we participated in a
competition in which a lot of free music and graphic content were created for games). Use ASCII if needed. As an artist, I know that I will contribute more to the project, which is almost complete and needs only a graphic component. And if you need a programmer ... try to learn how to program yourself (if I could, you can do it!), Or find the appropriate software (see # 3).
7. Hard work is normal, include in your plan
Creating games is in many ways tedious and completely unhappy. This is not a game, it is a job (so stop everyone joking that you are “playing games all day”). At some point, you realize that there is all this garbage that you didn’t think about when planning a project and making prototypes — game menus, transition screens, loading and saving, and so on. "Wow! I imagined a terrific world that I would create, and this cool gameplay that I would experiment with ... I didn’t think that I would spend weeks making functional menus that wouldn’t look like crap! ” Or, for example, there are things, such as character animation, which are interesting in certain doses and become a nightmare when you realize that there are 100 of these characters.
As soon as you go through all of this several times, you will understand how important it is to scale the project so as not to spend too much time in this inevitable quagmire (“too much” means the amount of time until you abandon development). You are also aware that all these details actually make the game look complete! Even a cute start screen can work wonders.
8. Use contests and other events as real deadlines.
When Alec and I were working on
Aquaria , the deadline for submitting applications to the Independent Games Festival forced us to make hard and radical decisions about our direction and revise our schedule. If it were not for this deadline, I don’t think that we would finish at all! Participation in competitions is very useful, because there are real deadlines and real awards (recognition, perhaps money). It is also a way to meet like-minded people.
9. Move forward.
Feeling stuck? Go on. Start work on a new level, a new enemy, a new anything. This is useful not only to increase motivation, but also helps to feel how the game will look like in general. It's like writing - no one writes sentence by sentence, giving everyone a perfect look before moving on. First make a plan.
10. Monitor your mental and physical condition.

It can be surprisingly difficult to monitor your condition when you are so focused on finishing the game. In truth, to give up sleep, exercise and proper nutrition is to do yourself a disservice. At best, you reduce your ability to work at full capacity and increase your chances to score on the project. Doubt and worry about your project is natural, but because of this, you get depressed or hurt because of this - no. It's amazing how you can not want to work on the game of your dreams when you feel like a rag.
11. Stop justifying the initiative "from scratch"
“My code is sheer chaos. And I also learned a lot. If I start again, I will do everything much better and faster, and further development will also go faster!Stop. Not. At some stage this happens in all game projects. There will always be confusion in your code. You will learn a lot. It will never be perfect. And if you start all over again, you will come to the same state from which you left. Thinking like that is a terrible trap.
There is even a joke: the guy has been working all his life on the game engine, so perfect that all that guy needs to be done is to press one button and the perfect game will be made by itself. In fact, this is not a joke, because the guy will never make such an engine anyway! There are no such engines and games.
If a bad architecture slows down the design process, go back a little and perform surgery to make it easier. If it worked, but it looks like a hack, then take heart and hurry on!
12. Leave it for the next game.
So, in the midst of development, you had an idea that will excite the minds of all, but for the realization of which you have to redo the whole game? Leave it for the next game! Right? Probably not the last game you are doing. Leave a new idea for the next game ... and complete the current one!
13. Cut. It. Fully.

Damn, time is tight. In my head all these ideas that will have time to colonize Mars, before you can realize at least half of them. That's the trouble ... But wait!
Well, actually this is great! Now you have to decide what is really important for the game and what can be cut. The fact is that if we all had unlimited resources and infinite time, we would have made the same stupid porridge game out of everything that is possible, in which there would be no point in playing. It is our limited resources and time that make us make compact games that have some kind of goal.
If you build your game on top of a few basic concepts that seem cool, just keep shooting all the excess, leaving only a small part of the add-ons on top of these concepts. Everything else is probably - unnecessary trash, without which you can do. Or even worse - trash that prevents players from seeing the most interesting basic ideas and concepts.
14. In case of failure, reduce the scale.
Well, sometimes there are failures. Maybe there is no way to ever complete the project at all, or there is too much chaos of work at your disposal to sift out something. Maybe the rest of the team has already scored. I am making this list in the hope of helping people avoid such opportunities, but hey, maybe you already come from a collapsed project. And sometimes ... shit just happens.
If there is no way to save something, at least scale down the next project. It’s very easy to want more and more, even if projects are becoming less and less complete. “My skills are increasing! I learn from my mistakes “is a typical excuse. That is why I believe that the ability to bring the project to the end must also be interpreted as a skill.
Therefore, go back, lower and lower level, maybe even to a level slightly lower than your current one. For example, instead of rushing from the development of space strategy to the development of the same strategy in 3D, try to make a high-quality game, focusing only around a small part of space simulators. And if you can not complete it, try something like Asteroids. It is very possible that this will turn out to be much more laborious than initially thought (and / or even more fun than expected).
15. Last 10 percent
They say that the last 10 percent is actually 90, and there is some truth in this. These are details that take a lot of time ... Indeed, maybe you coded a powerful combat system in a week ... but to make it really high-quality and debugged ... it can take months. It also happens that this final round will be repeated time after time before the real final round comes.
This may sound dismal, but should not. Although the last 10 percent is painful, I found that this time in development brings the most satisfaction. Because more and more often different fragments fit together well in the long run, if time was spent wisely. And to turn the confusion of ideas and content into a sweet game mana is a magical feeling.
That's all for the details.
And finally ... release!

Incredibly, you released the game! Congratulations, you have improved your level, this is a success. Among the prizes: increased self-confidence, reputation for the skill of bringing projects to the end, as well as an understanding of the entire game development process! Although the best point is that now you have a little cool game that I can play and enjoy. And I love to play games, almost as much as I love to do them.
No more standing on the sidelines, friend: now you are a game developer.