iPhone Game Programming

A couple weeks ago I started working on my first iPhone game. It’s been making slow progress mostly due to distractions preventing me from sitting down and coding as much as I would like to.

However I have been quite impressed with how quickly something can come together even when writing in a language like Objective-C, and using game development concepts that are a bit new to me, on a framework, Cocos2D, that I’m still learning. Sometimes it’s nice to program in high level scripting languages to get things done quickly, but other times it’s nice to get back to basics and remind yourself how memory allocation works, use pointers directly and deal with hardware restrictions. It’s amazing to see how something we usually take for granted like font rendering can bring a game grinding to a halt on the iPhone.

It takes just a couple hours to add entire new features to the game. I have got it to the point now where it’s got all the key components. Collisions, score keeping, bonuses, power-ups, enemies, parallax backgrounds have all been integrated and the control feel has been tweaked. It’s actually fun to play already! In terms of the programming side of things it’s 90% finished.

The next step is a mental shift to get the graphics done for the game and replace the placeholder graphics it has. Graphics will make or break a game. Even though Doodle Jump managed to get by with terrible graphics that kind of novelty is not going to work for the vast majority of games in the App Store. Graphics are a big part of the look and feel, but also a big part of the story in the game. To have a huge success all parts of the game need to be polished and well executed.

Getting the graphics work done is going to be tough. For this first game I have no money to hire a graphic artist to do the work on so I’m going to attempt to do them myself. That means hours of work in Photoshop drawing levels, characters, buttons, bullets, backgrounds and everything else. It’ll be a learning experience though and should help me understand and hire some one to do the graphics for the next game.

Overall feeling from getting this far in the development is that Developing for iOS is actually kind of fun. XCode is one of the best IDEs I have ever used even though it’s different enough to require some time to learn. I don’t know why people complain about having to deal with reference counting on pointers and lack of garbage collection. It’s not that hard to manage your own memory clean-up.