Building Astro Runner part 1

Like most software engineers, I've always got a few part-time side projects that work on, most start from what at the time seed like great ideas, most are started with great enthusiasm, most never see the light of day.

This is the story of side project that shipped.

It all started much the same as usual, have and idea, spend an evening playing around with it. Only this time I got a lot further than usual. I've been using X-Code, Objective-C and the iPhone frameworks with the iPhone simulator for other projects, so the tools are famililiar to me. My fulltime job at Kyan is mainly spent programming in Ruby, so the jump to Objective-C is quite straight forward.

My plan was to build a faux-3D endless runner game. I'd recently stumbled across a reference to how to use the UIKit framework to transform simple UIViews into 3D space. From there, I'd figure I could use some very simple animation and some collision detection, and I'd have the basis for the game. It couldn't really be that easy could it?

3 hours later

The Apple iOS frameworks are excellent. There really is no other way to say it. Within a very short space in time, I had the basic 3D environment built, animating 'obstacles', a space ship with movement controls and collision detection. This is half the game built, and although I some major refactoring as I've learnt more, these core parts of the game have remained largly untouched.

The game engine that astro runner uses is 100% Apple UIKit, there are no 3rd party frameworks or toolkits. There are also very little images and graphical assets. Apart from the application icon and the retro typeface, all the graphcial components are drawn in realtime with Core Graphics, this has kept the total download size to kjust under 300Kb, that's tiny compared to many other games, which easily run above 100Mb.