Never promise anything. Seriously. Ok, well at least never promise anything if you’re a game developer, no matter how tempting it is, and no matter how much you think you’re going to be able to deliver it.
So here’s what happened: Back in December I was wrapping up my old job, and I was super excited about finally starting to work for myself as an independent game developer. I was thinking “oh, I’ll get so much work done now that I’m working full-time”.
So I did something silly; I put out a Trainyard update with a video message that was seen by around 80,000 players, and in that video I promised that a massive new Trainyard update with a puzzle editor would be coming in the first couple months of 2011. Whoops.
Dread and fear
January came and for a few weeks I got caught up in a bunch of company-forming stuff, but I eventually started thinking about the Trainyard update. When I began to figure out the logistics of it, it quickly dawned on me just how much work it was going to be. And then I did what most people do when they’re faced with a daunting task: I procrastinated. A lot.
I worked on all kinds of other projects, including a Playbook app, a multiplayer HTML5 Tetris game, and a music generation toy, as well as a ton of game prototypes. The one thing I didn’t do was actually work on the update.
In late March I wrote a post about what I’d been up to for the past four months, where I said I was hard at work on the Trainyard update, although in reality, I hadn’t even started. Time and distractions kept dragging on. In fact, it would take a few more months, until June, when I would finally, actually, for real, start working on the update.
What was holding me back? Aside from being overwhelmed, there were a few tough choices that every other new feature hinged on. One of the biggest decisions was whether I was going to rewrite the backend code from scratch on “the cloud”, or just retrofit my current backend code. Among other problems, I also had to decide how to integrate Game Center achievements with my current dual-user system, and how to squeeze Engineer mode into the rest of the game.
Along with the technical decisions, I had to make numerous choices about the design and user experience of the new content. There were over a dozen new screen types to add to the game, each with its own special caveats and issues.
It’s worth taking a second to talk about the scope of this update: I bit off way more than I should have been chewing. Note my wording: just because you can do it, doesn’t mean you should. If you learn nothing else from this post, you should at least learn to keep your updates small and quick.
I decided that with this update, I’d add all of the little things I felt were missing from the game, including a news feed, mailing list signup form, “tips and tricks” video list, tutorial list, and more. I created a section called “goodies” to hold all of them.
There were a few times when I seriously considered releasing a web-based puzzle editor. It would have been way simpler, and it would have still accomplished my goal of allowing people to make their own puzzles. It also would have literally saved me two months of work. I just couldn’t do it though. I knew it’d be a second-rate solution, and I didn’t want to cut corners.
Ok, so how did I eventually get focused? At the end of May I went on a vacation, and when I returned, I was determined to get down to business. I created a carefully structured schedule that I forced myself to follow every single day. I gave myself rules and stuck to them. I won’t go over my new focusing methods here because I’m planning to write a post about them soon, but they worked like a charm, and I spent the next three months working on Trainyard for over 8 hours every day.
I was originally planning to write all about what’s actually in the update, but this post is already way too long so I’ll save that for part two (coming in the next couple days).
For now, let me just leave you with this: I’m really, really happy with how the update turned out, and I’m proud to have created it… However, there are zero good business reasons for making an update this large. If I’m lucky, it’ll give Trainyard a temporary boost in sales, but even then it’ll quickly drop back down to where it was before. If I knew just how long this update would take to make, there’s no way I would have done it. Let me be even more clear: I hated working on this update; it was a bad idea.
What’s the moral of the story? Never promise anything.