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.

About the Author

Phil Balchin is a full-time software developer at Zendesk, previously at Heroku/Salesforce, and Kyan, as well as a part-time photographer living in Guildford, Surrey, UK.

facebook.com/phil.balchin | instagram.com/maniacalrobot | last.fm/users/maniacalrobot | picfair.com/maniacalrobot | maniacalrobot.tumblr.com | twitter.com/maniacalrobot