I’m no different to the majority of software developers when it comes to estimating development time (i.e., terrible), but my optimism on Mini Metro really takes the cake. When development first began in May, I hoped that we’d have the game feature-complete and ready for audio integration by mid-August. Now it’s looking more early 2014.
The primary reason is (in addition to relentless optimism) a lack of time; Robert has a day job, and I’m the primary caregiver to my 18-month-old son (it’s like a job, but you pay money instead). It’s more difficult for me to dedicate time to development than it used to be, especially long continuous stretches, so I’ve had to adapt how I work. Here are some of the changes I’ve made that have helped:
Use a laptop
When we started work on Mind the Gap, my primary development machine was a Mac Mini workstation in the lounge. I would use the Mac when I could, and my older Windows laptop when I was out of the house. Switching machines quickly became untenable, and now I use the laptop exclusively.
The laptop’s portability is essential. I often find myself out of the house with a decent amount of free time on my hands – when Thomas is napping in the car, or asleep at his grandparents’, for example – so I take it with me almost everywhere. I get a handful of hours of extra work a week that way.
I have plenty of time during the day when I’m not actively engaged with Thomas, but I’m unable to fire up the laptop and get to work. I could be taking him in the pram to Playcentre, or in the car with him, or watching him at play. I try to use this time to plan what I will be working on the next time I do have development time. If I’m working on a particularly sticky programming problem, I’ll think through possible approaches and attempt to run through them in my head, picking out flaws and deciding on the best solution. Then when I finally do sit down at the computer, I can jump right in and start coding.
(As an aside, I think this style of programming – short bursts in front of the computer, long stretches away – is beneficial for me. If I’m left to my own devices, I tend to code by the seat of my pants. Forcing me to think a little before I get stuck in is definitely not a bad thing!)
If I already have my next few hours’ coding mapped out, then I’ll try to think through game design issues instead; what impact tunnels should have, different locomotive and carriage types and how they should be integrated, etc. Of course this is no match for iterating in front of the computer, but it’s better than nothing and you can gain some insights.
This one’s a no-brainer, but still causes me problems. When I’ve only got a handful of hours a day to work, I try to make the most of them. It is much easier to motivate myself knowing that the next time I’ll get the chance to work is at least 18 hours away, but … well, sometimes people tweet links to some really interesting articles. 😐
Get a good nanny
Seriously, they’re awesome. We’re very lucky that we’re in a position where we can afford a nanny for a couple of hours a day, four days a week. It buys me more development time, gives me a rare opportunity to get the house briefly back in order, and lets me recharge before the evening.
The effect that the extra time on Mini Metro has had is huge. Before the nanny, Thomas was sleeping poorly and I was averaging far fewer than ten hours of work a week. I was stressing out that Mini Metro wasn’t going to be anywhere near finished by the end of 2013 – my original worst-case estimate. I’m still don’t know whether we’ll be finished and published by then, but if not it won’t be much later, and more importantly I’m much happier!
As much as I love being a dad and spending time with Thomas, I can’t help but miss all those hours I used to have to myself. What did I do with them all? Hindsight being 20/20, I wish I’d taken on shorter projects far earlier. But I’m here now; if I want a career in indie game development, it has to fit around far more important responsibilities.