There are a lot of people trying to make creating games their primary and only source of income, but only a few succeeds. Why is this happening? There are really numerous factors, for example quality of their games, good marketing, brilliant ideas, pure luck and many more. But the most important thing to be considered at first is the ability to actually create a game.
Finishing a game on a professional level is much harder than a starting game developer can even imagine. There are lots of difficulties that can stop you from finishing what you’ve planned. Let’s see what can be done to overcome some of them and thus increase a chance of succeeding as a game developer.
Right size your game
A typical mistake made by those creating their first game is aiming at AAA market. It’s impossible to create a game like top selling hits alone or with just a few friends, especially if you are not professional programmers and artists. Such games are made by really large teams of highly skilled people, working full time, often for several years. Do you really think that 2-3 people can achieve the same working after hours in a finite time? You can’t compete there.
Don’t plan to create highly complicated, huge world, unless you are prepared to spend rest of your life trying to finish such a game. In such a case you will probably abondon your project after around a year of developing when you realize you are still in exactly the same place as a year before. You should make it as simple as it can be. Such simple games can be realy addictive and that’s what finally matters. Don’t concentrate on latest graphical effects. Try competing in other fields, like interesting gameplay or features, eventually really appealing graphics instead.
Don’t make useless clones neither if you wish to earn money from the game. People are not looking for games that are like others, but smaller and not as good looking. You can make a clone, sure, but you must give it something that can differentiate it from the mass of other similar games. Be it especially appealing graphics, interesting story, some new features – doesn’t matter. The better your game is compared to others, the higher a chance that people will choose it.
You should also know your limits and use this knowledge when deciding what type of game you are trying to make. If you’re poor in creating graphics and none of your friends invovled in the project has such talent, don’t plan to compete in that field. Concentrate on other areas instead. If, on the other hand, you are a great artist, but have a little knowledge about programming, try to compete using what you can do instead of vasting your life trying to implement complicated features outside of your possibilities. Another example of such mistake might be trying to create MMO game if you have no or very little experience in implementing even simple network applications.
You need a roadmap
One of the most important thing is to have a list of tasks that needs to be done to complete the game. It will let you know how much there is left to finish it, but you will also always have a clear information on what needs to be done next.It is even more important if you plan to work together with other people. In such a case it is really helpfull in distributing tasks between team members.
It doesn’t need to be 100% accurate. Actually I recommend you to make rather an overview than a detailed schedule. You might not have enough experience to list exactly all tasks at once, it would last much to long and you will probably change something in your project later. So why bother being exact?
What I do, for example, is creating a list of big items to be done at the beginning of the project, like implementing load / save feature, credits screen, main menu, network gameplay, creating installer etc. I estimate it roughly, so I have a general overview of how long each item should last, and how much time would be required to complete the whole game. Later I always have to modify it a bit – add items that I haven’t though of at the beginning, remove some of them, but I have what I need – a general overview of the project.
Next, in the beginning of each month, I select one or few items from this list that I want to finish during the following month and divide them to more detailed tasks, estimating them too. For example implementing load / save feature might be divided to designing a save game file format, adding the save option to menu, saving the game to a file, etc. During the month I implement them one by one, trying to finish all tasks from the list. As I have already estimated them in a more detailed way, I can easily see when things go wrong and possibly try to catch up.
Don’t underestimate the GUI
There is a chance you think that GUI is something that can be added to your game in a no time. I know you do – I thought the same. After all – compared to other elements of the game, the GUI itself is a way simpler. I was so surprised when it turned out to be so far from the truth. Actually implementing a GUI took almost half of my development time.
Just think about it. The GUI should look professional. It can’t be composed of simple quads and rectangles textured with any image you’ve found. You need main and in-game menu with possibility to go deeper inside and selecting value of different params (for example volume, resolution, some things turned on / off). Apart from it you need some buttons, prabably some progress bars, pop-ups, boxes to type text into, help screen, load / save screens, credits and many more. You might wish to implement gaining and loosing focus, mouse hover, etc. Apart from that, if you wish to have smooth transitions between them, there is even more work to be done.
You will need some time to perform tests and fix any bugs found on your machine, but also to do the same on any machine you have an access to. I know it can’t be predicted, but it took quite a long time for me to fix all bugs that I’ve found running my game on my friends’ computers.
Even if the game was running, there were sometimes problems with a performance on older or just other GFX cards. Those had to be fixed too, but they’ve given additional performance boost for my initially targetted hardware, so I suppose it was worth the effort.
As already said, it is impossible to predict how long such step might last, but it’s good to remember that you will need it. A general rule when creating a schedule is to give additional 50% of estimated time for bugfixing and any other unpredictable tasks.
Just follow the plan
So you’ve got a plan, you are awared of how long it can take you to finish your first game, neverthless you are determined to do it. That’s just great! You are properly prepared for your great venture. All you have to do since now is just following your roadmap.
There are still a lot of obstacles that you can encounter on your path, but with help of proper tools and attitude you will overcome them. You’ll find a bit more advice on the development process itself in the next part of this post.