In the previous part of this post we’ve examined important things to be considered before starting a game development itself. Let’s list them just as a reminder:
- right sizing a game, so it is possible to finish it
- creating a rough game project schedule (including GUI development and bugfixing time)
- accepting the plan and following it
Actually following the plan may seem simple, but it isn’t – there are still a lot of problems that you may encounter. I’m going to give you some tips however, that might make it easier for you to stick to the plan, thus successfully driving your project to a completed game.
Keep your roadmap up to date
Even though you have created your plan, it is more than likely that you will need to modify it during your development. Not completely, but there will surely be some elements that you will need to change. Be it for example adding some new features, that you think will introduce something fun to a game. You might also find out that some tasks will last much longer than expected, probably needing them to be splitted to several new todo items. There’s nothing wrong with this, but your project plan should always be up to date with what you are doing and what you know that needs to be done.
Keeping the plan up to date should require as little effort on your side as possible. It’s essential that you are not sacrificing your development time to support tasks like this. You could use just a notepad with a list of todo items if you wish, but personally I recommend using some application designed for agile planning purpose. It gives a lot of additional possibilities, like prioritizing your task, estimating how long a development process can last based on your progress history, organizing todo items in groups and many more. At first I was sceptical about using such specialized tools, but since I was forced to use one at my job I just can’t imagine organizing my development without them.
What tools can I recommend? First of all, stay away from the MS Project. It is undoubtedly a great tool, but it’s not what you need. You should look for tools that will support Agile development. I have been using several applications, but the one that I like the most is ScrumWorks Basic. It is free (registration is required), easy to install and has all I need in terms of project and sprint planning. At the moment however I’m switching to Jira’s GreenHopper in my game development. The main rason for a change is that it is integrated with the Jira bug tracking tool. It’s not free, but for small teams a price of both Jira and Greenhopper is so low, that anyone can afford it.
Use a version control system (VCS)
No matter if you are developing your game alone or with other people’s help, you should use some version control system. If you are working alone, the main benefit of using it is an access to previous versions of your project and tracing changes made in a particular period of time, but it gives you a lot more possibilities. When you work in a team it’s even more important, as it helps coordinating the work of multiple people involved in the project.
What VCS could you use? The most popular at the moment, and the one I’m using by the way, is the Subversion (SVN). An alternative to it could be the GIT, that is constantly gaining its popularity. It has additional features really helpfull for distributed teams. Both of them are free to use and supported by the Tortoise – a great GUI for a VCS management.
Continuous work = Constant progress
One of the most important things to remember is that you should be continuously working on your project. Make no excuses – you have to push it further each day if you want it to be done. If you have very little time during the working days because of your job, organize your day in such a manner that you can spend at least a half an hour daily (preferably longer) upon it. If you don’t have enough time to work longer these days, spend more time on your game during the weekend, but remember it’s essential to work on it on working days.
Why is it so important to work every day? Such approach will finally result in a habit and it can be a great help when it comes to developing parts of your game that you find boring. If I didn’t have such a habit nor other motivation, I would find it very difficult to force myself into creating a GUI for example. I know it’s very important part of the game, but I find it rather boring to implement.
There are some priorities of course. Sometimes you just have no time at all for your project. It happens, but it should be an exception rather than a typical situation. If you think you don’t have time at all on working days, you are probably wasting your time somehow. Try spending less time in front of the TV, or surfing the Internet. It’s impossible that you can’t find at least half an hour for your game development.
Handle bugs accordingly
There are no bug-free programs, some of them are just not properly tested. That’s why it’s so important to perform all necessary test stages during your development before a final release: internal development tests when implementing new features, alpha tests when game is available for some closed group of people different from developers, and finally the beta test stage performed by a wide range of potential customers. After all each single bug (at least of major ones) has to be fixed before even trying to sell your game. Your reputation is really important, so you can’t afford selling crap software.
What can help you with this task are bug tracking tools. Even though you might think you need no one, you will change your mind at some point, when a number of problems will go beyound your memory capacity. Sometimes you will need several attampts to fix some nasty bug before finally succeeding and a place to store your investigation results might be a great help. Sometimes you will be so deeply involved in the development, you won’t be able to give it up only to fix a bug that you’ve just found.
There are really a lot of free bug tracking tools, like Bugzilla, Trac, Mantis and many more. I encourage you to try some of them and decide which one you like the most. If you want to know what I can recommend, I’ve been using Mantis recently because it is easy to set up and has all I needed to handle bugs, but I’m switching to Jira at the moment. It is easier to use, has some additional features and it is integrated with a project management tool – Jira’s GreenHopper. It isn’t free but still really cheap.
Take a feedback from your friends
Another important thing is showing your game to various people during the whole development process. You should take a feedback from those that are not strictly involved in the development, especially from those that could represent your potential customers. They will take a look at your game from other perspective – the one you should care the most.
Ask them about their opinions on almost each aspect of the game, be it an interface, gameplay, or any other thing. Let them say what they find interesting, what they like or dislike. Ask what is missing and listen carefully what they would remove. You have to filter it out of course, so every change you make makes sense, but considering those opinins will let you know what could be improved. For example, while developing the 3D Puzzle Venture, I have simplified controlling the camera (as it was unintuitive and difficult) and added a few new features thanks to a feedback from my friends only.
Rethink your features
There’s nothing wrong about adding new features to your game to make it better. Actually I can’t imagine writing a good game that has no features added after the design phase. New ways of improving your game will be probably showing up during the whole development. Adding some of them will truly help your project, but there is a danger of implementing features that will either destroy your game’s consistency or will result in neverending development.
What you should do to avoid such situations is carefully analyzing new ideas that come to your mind before implementing them. You should consider pros and cons of adding them to your game. Will they improve the gameplay or other aspects of the game enough to justify the additional development cost?
It’s not easy to answer this question, as almost each new idea will seem brilliant to you, thus instead of implementing it at once, you should write it down ang give yourself some time to calm down. Ask your friends what they think about it and come back to it later, after some days or weeks, analyzing it once again. If it still seems a great idea to you, do it. If you have changed your mind however, you should consider yourself lucky – you haven’t lost your time implementing another unnecessary feature.
Don’t give up – motivation is the key
If the development lasts longer – a year or more – you will probably encounter a situation when you’ve lost your engagement in it. It has happened to me too. I had a feeling that the game I was developing was just flat and uninteresting (even though through the entire year I knew it was absorbing when played), so it would be silly trying to sell it. I had so many great new ideas out there for new games that would be better, more fun, or have a better gameplay.
If it had happened in the beginning of the development, that would probably be a sign, the game seemed fun only because it was a fresh idea. In such a case dropping it would be the best option. But it wasn’t the case, as it has happened after quite a long time. Now, after a while from that moment, I think I was just tired of the project. But I wasn’t analyzing that when it has happened. I’ve just had this terrible feeling and thus no motivation to continue the development at all.
What can you do in such a case? Well, first of all you can show your game to your friends again. You’ve been doing it regularly, haven’t you?. If you have, they probably haven’t changed their mind so quickly and still think it is or will be great. Their ongoing positive feedback might help you stop thinking that your game is a crap.
But what if you know it will be great when done, but you are still sick of it or boring elements that needs to be done and would like to switch to something new and refreshing? Well… all you need is the motivation. Just look at all you’ve done till now. You know there are just a few months of the development ahead and over a year behind. Do you really want to throw away all that hard work? Consider that after these few months you will be able to switch to the new shiny thing, but you will have a complete game as well. Something that you can sell while creating the new one.
Creating the game is not enough
OK, you’ve finished your game. What to do next?
You should consider this a bit earlier. Not necessarily at the beginning of the development, but at some point you should start thinking about how you will be selling the game. When you finish it, you should know as much as possible about different distribution options (direct, casual portals, core portals), know how other independent developers are selling their games, know about portals requirements (if you wish to distribute it in such a way) and many more.
You should have your website prepared and ready to use, probably already running and slowly gaining people interested in your game. You should be also prepared for a lot of hard work marketing your game, so everyone have a chance to find out about it. That would require sending it for reviews, putting the demo version in proper places and so on.
I’ll try covering some of these topics on this blog, but apart from that you still have to search the Internet on your own to find as much data as you can.