Game Development Productivity Tips

A few weeks ago a fellow game developer asked me how on earth I can be so productive, having a kid, wife, house, cars, daytime job, etc. I actually did not reflect much on it and I don't feel like I'm some productivity guru. On the other hand I do have picked up some good(?) habits along the way, and I guess making 25 releases of a game in a 50 weeks is somewhat productive. So these are my tips on productivity, they are of course biased towards on making indie computer games in general and programming in particular.

Stay Motivated

Making a PC game is not a 100m dash. At least not if your goal is to release it as shareware and have some people buy it. Making a PC game is more like a marathon, or maybe an ultra marathon. Be prepared for about a year in development time, and the hard part is actually to stay motivated and not jump to another seemingly more exiting project.

For me, key to staying motivated is iterative game development. For years I also kept on developing games, but not making any public releases. Needless to say none of the projects where remotely finished.

You need to find a way to cultivate your burning desire so that you don't spend it all the first month.

Get a Good Laptop

Good tools are a must to stay motivated and there are great productivity enhancing tools out there. I experienced a productivity boost when I got myself a good laptop. It's a high end one, with a full keyboard (including the numpad), good gpu and such. Using it I can stay productive during tv-commercials, 10-minute breaks, when traveling etc.

Leverage Your Compiler

My main tool is my compiler, and I tend to use it as much as possible. Over the years I have developed a style of coding that is intended to produce compiler or linker errors, instead of hard to find runtime errors. I tend to compile and compile for every line I write and having a bunch of compiler errors to fix is an automatic to do list. When I make a code change I want the compiler or linker to tell me where the code is broken, and not have some strange bug show up in some super-generic object oriented piece of over engineered game code.

I also tend to reject script languages for the fact that I don't want another source of bugs. If I need some code, I can simply make it in C++, use the compiler to my advantage and that's it.

Micro Task

To keep productive you need to have a backlog of tasks, and they need to be small. You simply cannot have huge tasks when you get 10 or 20 minutes of coding every now and then. Having a pool of small, micro tasks, that you can just pick up and finish one off is a great productivity enhancer. Also all big tasks can definitely be broken down into many smaller ones.

You should of course use a tool to track and manage your task.

Don't Finish Tasks

You should of course finish tasks, but I have found that the timing when finishing them can increase your productivity.

I have noticed myself is that I have a hard time to start fresh on a new task. It seems as taking those first steps is the hardest part. You can probably get passed this by just using discipline. But I have found that if I don't finish a task completely, (leaving the code broken with some compiler/linker errors) I tend to have a much easier time of picking up the pace. Then I make sure that I start a new task, which now is much easier since I'm already into development mode, before stopping and leaving the code broken for the next time I find a few minutes for development.

Use Source Control

You need to have all files, and I mean all, under some version control. Even if you are the only developer. This also goes for artists creating content and don't forget the original versions of the game assets. Having an optimized, resized texture in source control is actually less important than having the original, huge, layered psd original file under control.

Have a Normal Life

Finally you really need to have an ordinary life, with family, friends, exercise, healthy good food and non development related stuff. You really really need this to not burn out on your first project. I have seen great developers burning out on game projects, leaving their passion for games behind, starting a whole new career.

Making games is at times painful, dreary work, at the same time it can be wonderful, creative, passionate and exiting.

Would be cool to know if you have any similar experiences, or do you have some other productivity tip to share?

users avatar

Post new comment

Please solve the math problem above and type in the result. e.g. for 1+1, type 2.
The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <h1> <h2> <h3> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • Textual smileys will be replaced with graphical ones.
  • Images can be added to this post.

More information about formatting options