As much as I enjoy indie game development, it doesn’t pay the bills. Not by a long-shot! Being that I’m married, have a 2-year old son and live in one of the world’s most expensive cities, I need to have a day job. I’m fortunate enough to have a job making games for a living, but that still doesn’t stop me from having that indie gamedev itch.
So, with a family and a full-time job, where do I find the time to make games on the side? The answer is: wherever I can. Here are a few of the ways I try to make the best of my limited gamedev time.
First of all, I make sure that I have a list of tasks planned out for my game project. While I’ve played with various task tracking solutions at work, for my private projects I settle for a good old text file TODO list. By writing out what I need to do, I give myself an explicit list of work that I can reference any time I have a spare moment to do some gamedev. Of course, the simple joy of crossing items off a TODO list is a powerful motivational factor.
One of my key tricks here is the granularity of my task lists. While I generally start off with coarse tasks, I quickly sub-divide tasks into smaller units as I better understand the work involved. The result is a list of small tasks, many of which are only 10-20 minutes long.
This is where having such a fine-grained task list comes in handy. As a full-time employee and family-man, it’s very rare for me to have long-periods of contiguous free-time to devote to gamedev. If anything, my day is constantly split up by the toils of daily-life.
Without a consistent period of concentrated gamedev time to use, I’ve grown accustomed to using the small periods of free-time that appear over the course of a day. On a typical day, most of my indie gamedev takes place during the 20 minute bus ride to work, the 10 minutes I can actually sit on the train back (I take my son to day-care in the mornings so my routes to and from work are different), and 30 minutes or so of free-time during lunch. Other than that, my daily gamedev time depends on how much sleep I’m willing to sacrifice.
Getting anything, especially programming, done in 10 minutes seems difficult at first, but I’ve gotten better at it with practice. Before, I generally assumed I needed at least 20 minutes to rev up my mind before I could hope to program effectively. Nowadays, I’ve become rather practiced at keeping my head pre-revved so that I’m ready to go the moment my fingers hit the keyboard. Last time I was at a conference, that 10 minute break between panels proved to be the perfect time to whip out my laptop and bang out some code. Still, it took a fair bit of practice to develop this skill and there still times when I just need to sit down and concentrate for several hours straight to get something done.
With only 10-20 minutes to spare to accomplish a task, all those little bits of time lost to programs loading or closing count. Over the last year, I’ve grown very conscious of how long it takes for my most-used programs to fully load and become useful. To compensate for this, I often use the last minute or so of any development period to prep my environment for the next task. If I know what I’m going to implement, I launch Visual Studio and open up the relevant source files before I close my laptop. That way, the next time I’m able to start coding, my dev environment will be ready for me the moment I can start working.
None of these tips are particularly revolutionary or non-obvious. Still, it’s often the little things that count as they can often add up into something quite significant. For example, I made most of Robot Legions over course of five months of such bus-ride and lunch-time development. Making games is hard and time-consuming, but it doesn’t have to be impossible if don’t have gobs of free-time at your disposal.