[Astro Noughts was released on 14th December 2010 for the iPad, and designed to be a mix of equal parts arcade and educational game. Here's a postmortem of the title.]
What Went Right
To date, my most prevalent game development enemy has been that of scope. Feature creep has played a large part in the failure of a number of my previous games. With Astro Noughts I wanted to make sure that I didn’t fall into the same trap again.
Whilst I had plenty of ideas during development, I was conscious to only implement those that positively impacted the core gameplay. This meant that I allowed myself to experiment with various control schemes and gameplay modifications. Rather than adding additional features, I recorded them in my project management tool for possible implementation in future updates. I feel that this approach was very successful and enabled me to work through a list of finite tasks in order to complete the game and get it shipped.
Iteration is such a huge part of game development but, in my opinion, adding more and more new ideas is something to avoid. Its tough having the discipline to stay focussed on a single idea but I feel that I did a good job of this with Astro Noughts.
2. Graphics & Sound Iteration
Another lesson that I’ve learnt from previous games is to get graphics and sound into the game early and iterate them often. I did this to great effect with Astro Noughts. Early graphics were crude copies of the vectors from the iPhone game upon which it is based. This allowed me to invest time in the core gameplay mechanics whilst I continued to develop the look, feel, and sound of the game. I found that once I had some graphics I was happy with, it helped considerably to spend time away from the game. Often when coming back fresh, the graphics that I thought were great were actually not so great and had obvious deficiencies. I continued to develop the graphics to a point where I was happy with them no matter how many times I stepped away and came back to the game.
Something else I found useful was to immerse myself in the subject matter. I looked out for anything relating to space and this helped to drive a look for the game, both in terms of style and colour palette.
Sound iteration was just as important. I got some rudimentary 8-bit sounds into the game early. The development of both the game mechanics and the graphics helped to drive the sound design. In the end I took an abstract approach to the sound effects, using piano notes to represent explosions. On paper, this doesn’t appear to be a good match but I really think it adds to the feel of the game, creating a sense of scale.
For the music, I spent considerable time searching for something with the right feel. I even tried to create my own music with very limited success. In the end it was my fellow game developers on twitter that pointed me to some of the best resources.
Polish is extremely import to games and with IOS development it can make the difference between a top selling game and a poor selling one. This is something we all know and yet, when finishing your game and the end is in sight its easy to forget. With previous games, I’ve found myself saying “this will do, I can improve it in an update”. With Astro Noughts I made a concerted effort to avoid this. When I submitted the game to Apple, I felt that development of the game had run its full course.
I focussed on the smaller things with Astro Noughts. Nice Menus, Interesting transitions, appropriate sound effects, correct typography, solid touch controls, etc. This has all come together to create an overall package that I feel represents my vision of the game and is polished (at least more than any of my previous games).
4. Flexible wave system
Astro Noughts has a wave system that handles the logic of generating a wave of planets. I spent considerable time creating various systems, iterating, and scrapping them until I had something that I was happy with.
Initially I had a very basic random mechanism for selecting planets for each wave. This was far too simple and didn’t give a sense of progression to the player. I also created a fully dictated system that allowed me to specify precisely which planets appeared in each wave. This gave me full flexibility since I could create unique patterns that would challenge the player. The issue with this system was one of time. It would have required lots of resource to create enough waves (and balance them) to keep the player occupied. The overhead was just too large for this type of game.
In the end I opted for a random system that allowed me to specify a large number of variables to control what is shown. Things like a minimum and maximum wave for each planet type allows me to control when planets appear and when they expire (whilst still being handled by a random generator).
The end product is a balance between a dictated level like system and a more random, organic approach. This was a conscious decision and one that, I feel, has paid off.
5. Hint system
When it came to solving the issue of a tutorial system for Astro Noughts, I took a slightly more interactive approach and developed a hint system. This was partly to save time and partly because I felt that the game mechanics in Astro Nought were such that they were easy to grasp. I’m happy with the end result but I think that it needs expanding further. I also think that some sort of initial tutorial screen is required to give the player an initial focus.
What Went Wrong
1. Development Time
Whilst I managed to keep the scope of the project in check, I didn’t manage to keep the time under control. This happened for a number of reasons. Firstly I spent too much time writing code that was later scrapped.
With the wave system for example, I spent a long time writing, testing, and ditching wave systems and must have gone through 5 different implementations. I Should have designed this system on paper first and then implemented it in code and tweaked it. It cost me a lot of time.
Secondly, I totally underestimated the time required to produce the planets and their corresponding attributes. I had the activity planned but the work required, even for such a small set of assets, was huge. The quality of some of the planets has suffered as a result (with more repetition than I would have liked). In future I think I just need to be realistic about the time required for these activities and set aside some decent time to focus on content production.
I totally underestimated how difficult people would find the game. This was partially due to a lack of sufficient beta testing (I did a few face-to-face sessions to watch people play the game but nothing more). In future I need to a fully planned beta testing phase.
Some of this failure also lies with the marketing. Astro Noughts is a combination of arcade game (with a unique mathematical twist for gamers) and educational game (with benefits to improving your mental arithmetic). As such, the players are looking to hand this game to younger members of their family. I hadn’t planned for this so the difficulty simply doesn’t scale well.
This is something that I plan to remedy in the first free update. I’ll be creating a full difficulty system with presets for age ranges and a customisation system for full control over which operands and operators appear in the game.
I created the Planetarium with the aim of adding a overriding, meta-layer to the game. Something to give a sense of progression and keep you going back to the game to unlock more planets. I still think that this is a good idea but unfortunately the planetarium is not as fully realised as it could be. There’s no real reason to spend time in the planetarium. Its something that I’ll look to address in future updates. Perhaps giving the player a more interactive toy in addition to giving more in depth information about the planets to create a more immersive experience.
4. Achievements and planet unlock system
Astro Noughts has OpenFeint achievements. It also has the concept of unlocking planets. Combining these two things seemed liked a good idea during the project. I essentially utilised the OpenFeint achievements to generate an unlock message for each new planet type you collected (and give you some achievement points). In practice this doesn’t work quite as well as I had hoped. You have no choice over unlocking planets since its something that just happens throughout the course of the game. As a result the planet unlock achievements feel very hollow.
With the focus on the unlock system, I also didn’t implement any meaty achievements. I feel that this makes my OpenFeint achievements somewhat redundant. If I decide to switch to Game Center for the second free update then I’ll be remedying this by creating an internal planet unlock system and adding some proper achievements through Game Center.
I’ve left this until the end but it is in fact the thing that went most wrong. I’m terrible at marketing my games and rather than get better at it, I think I’ve actually gotten worse. I totally failed to create any kind of anticipation for the game, I didn’t court the media, and I only sent out a handful of promotional codes. The other failing I’ve had is in recognising the target demographic.
Coverage to date has been limited. I created my own forum post on Touch Arcade which had limited response. I’ve had some coverage that I didn’t initiate on this education website. I acted on that quickly and managed to get some follow up coverage here. Astro Noughts was also included in a very nice “Top 10 latest iPad Gaming Apps” on The App Whisper (again, this wasn’t initiated by me).
So, nothing I have directly done has resulted in any response. I need to find the correct demographic for this game and a way to reach them. This is something that I’ll be working on throughout 2011. I strongly believe that Astro Noughts is a good product and as such I’ll be investing time in updating it with new content in the coming months.