It was over 6 months ago when I announced that Shotgun Duel was in development, and it was about 6 days ago when I announced that Shotgun Duel was complete. That’s a long time to be working on one project. I at points struggled to rationalize why it was taking so long, and that process has made me realize a few things:
1) When I judge how long something should take to create, my instinct is to judge how long it should take to re-create. This totally ignores the design process. The design process for Shotgun Duel was significant, starting with multiple white-boarding sessions in which we decided on the essential new features, designed the internal workings of the application (object structure), determined all of the screens and how they linked to each other, and made an attempt to design all of the screens. And despite all of this planning we were constantly redesigning parts of the application.
2) Simple is difficult. Our goal was that when you use Shotgun Duel it should “just work”. Making things “just work” is incredibly difficult. Take the dueling as an example. Connecting two people in a duel turned out to be way harder than we imagined. Apple provides a framework called “GameKit” that was supposed to do this for us, but not only does it not work very well but it ended up with a major bug (causing the devices to crash) in iOS 4.0. We thus re-wrote the entire thing from scratch, with code reaching way down into the heart of iOS, touching the Unix kernel. That was quite a task. Its still not perfect, but it is much closer to “just working”. Different problems with similarly hard solutions cropped up all over.
3) Running a small business takes time. I sometimes wished I could log 8+ hrs a day of work on Shotgun Duel, but often I’m lucky to get 4 hrs, and sometimes I get none at all. For Shotgun Duel we worked with a few outside contractors to assist us with various tasks. Though all of our contractors are awesome, managing the process proved to be really difficult. When you’re not sitting in the same room as someone, being on the same page about goals is difficult, and iterating anything takes way longer. Besides that, we also have other business obligations like emails, coffee meetings, evening events, accounting, and so forth. Even though I enjoy (most) of that stuff, it all adds up.
Upon reflection I’m not upset by how long Shotgun Duel took to create. We worked until we thought the product was completed, unwilling to release a sub-standard product because of an artificial and externally imposed deadline or product cycle. I’m incredibly proud of what we have created, and I really hope you like it.