So I’ve been an iPhone games developer for a little over a year now, and in this time I’ve released three games. But one thing has irked me about the game development scene in general and that is how long it takes to create a game! Especially when compared to run of the mill software. It is not unusual for a developer to spend months and months, and sometimes years creating their games.
I myself am guilty of this. I spent 3 months part time developing my first game Ninja Splat, and then 5 months part time (roughly 4 months full time) creating RAMPage Soccer. Both of these games involved a learning curve to learn the tools (Eclipse and Unity 3d respectively), plus a serious amount of polish went into RAMPage Soccer. But at the end of the day, both games took an incredible amount of time to develop which has really made me wonder why we as developers take so long?
I mean some of the greatest tools are at our disposal to develop with and we even have events like game jams where teams get together and compete to create a game within a 48 hour time limit. These events can produce some great content, and are a heck of an awesome challenge. But then over in the real world, we take hundreds of times longer to create games? Why?
Does this 48 hour pressure force us to focus on the most important core aspects in order to create the best iPhone game we can? I think there is something to that, but there are a few factors to consider here:
- Planning and scope creep
- Trying to do everything in the first version
- Lack of pressure
- A general expectation that it’s a long process, and that it is normal
Can I Do It Faster?
So I’ve been following an awesome online marketer Trey Smith, who is now killing it in the app store with his upcoming iPhone games. One of his goals is to be able to make an iPhone game every 10 days. Initially I thought he was a little crazy, especially considering he is not even an iPhone games developer (he outsources all of his dev work).
Even so, this got me thinking, if games can be pumped out in game jams in 48 hours and an online marketer can make them in 10 days. Why can’t I with more than a decade of development experience do that too? I’ve gone through the learning curves and have the experience to back it up. I should have all I need right?
Well, I guess I do. But this is a very different process to what I am used to, so I needed to set some ground rules to define what exactly would need to be done in order to cover the factors that make game development so lengthy.
So firstly I needed a game idea, and a simple one at that. It was early september and footy fever was at it’s peak with the grand final only three weeks away, and I wanted to capitalise on that. So something sporty was in order.
I’ve always liked Paper Toss and it’s simplicity. So even though there have already been sports twists on this, I thought I could improve upon them and make something unique in the process. So I decided on a football inspired Paper Toss like game. Something simple, effective and fun. But with only four weeks to go until the AFL (Australian football league) grand final I had my work cut out for me to get things done in time as I would be doing all of this in my spare time around the full time job I had. A real high pressure challenge indeed!
The first test I set for myself was to see if I could get a prototype up and running in an evening, quick and dirty was the plan (and the screenshot can attest to this!). This was essentially to set the tempo for the rest of the project and let me know if it was at all possible to get things done in time. If it took ages to create a working prototype then things would take longer than expected
So only after a few hours I had a basic football, target and flick mechanism working. Not perfect or pretty, but certainly a good working prototype to base a real game on.
With the idea and prototype in hand it was time to sit down and nut out a real project plan. In true agile fashion I broke the project down into several deliverables with each being able to be played by a small group of friends posing as beta testers.
I spent almost a full days worth of time working out exactly what was needed for the project, which I think is paramount to being effective with time management. If you know exaclty what needs to be done next then there is no time for procrastination. It’s just get it done, and get it done fast!
In my last two games I had very little help from others in terms of graphics and sound. And because of this there was not a single area of each game I did not have a hand in crafting. I really did enjoy doing this, but I am not a graphic artist by any means. I also discovered that while it’s relatively easy to find sounds online, it’s a very labouros process and a big drain on my time.
Because of this I thought it best that I look for some talented people to assit me in these areas. So online I went to find a 2d artist, 3d artist and sound engineer to fill in the voids in my skill set and also free up valuable time for myself to focus on other areas of the project.
Doing this was a huge timesaver for me and is probably the second most important thing to remember (second to proper planning). Use the right tool for the right job!
One point I would like to make here, outsourcing is not the wholly grain and will still cost you time in managing your contractors. Some will be autonomous and others will not, so make sure that you thoroughly interview candidates (with the hard questions) and do it early. Don’t wait until half way through your project to find people to fill the gaps, if they don’t work out then you’re left with little to no time to make your deadline!
Superflick just like RAMPage Soccer is developed entirely in Unity 3d, and I had a fair amount of code I was able to re-use. Being in the industry for as long as I have has tought me to always develop with the future in mind (within reason of course). So I took a lot of things from my previous game such as the menu system, settings system, game center integration and a heap of other miscellaneous scripts.
I also picked a few good Unity/iOS plugins off the shelf for things such as OpenFeint which handles GameCenter too, in app purchases and push notifications (thanks to Urban Airship and Prime31). None of these things are terribly complicated and I could have rolled my own code to do a lot of this. But why would I? I wanted to make a game, not a bunch of plugins I could buy for pocket change. No point reinventing the wheel right?
The real work
So all of these things really helped me focus on the one important thing, creating a game!
Everyone has their own style but some of the factors that I really focused on during the development of this iPhone game was being on the clock. Every second counts and quick wins are very important, even if the code was ugly or could do with some refactoring this could be done later. At the end of the day, if it works for your customer and doesn’t break then it’s good enough for the first version and you should keep moving!
I was also very strict with what features were implemented, and which ones were not. The main point here was to get a simple game working and out on the market. I decided to keep the fancy features and extra flair for later versions. So don’t be afraid to drop features/scope if they don’t cut the mustard!
I learnt quite a bit during this time, and I think the biggest thing was having a very clear plan and sticking to it. Don’t let scope creep in and keep you eye on the clock. Also, I think I found it easier to cut the fat on the project always knowing there would be a second version. Which by the way I am 60 hours into already and hope to release in early January once the silly season is over, I think it will be a better game over all and comes with a heap of cool new features which I am sure users will like (probably worth a post really).
Overall I am very happy with what I’ve been able to accomplish in such a short period of time. The whole project took 103 hours, so it might be better to call it the 100 hour game, though the 10 day game has a certain ring to it
Moving forward I will be re-using and refining this process as I go, and would love to hear feedback from people on their thoughts and other ways to make yourselves more efficient at developing the some of the best iPhone games around!
Oh, and don’t forget to also check out Superflick on the App Store!