iPhone Game Development (Paul Zirkle and Joe Hogue — O’Reilly) is the second iPhone development book that I have read. The first, The iPhone Developer’s Cookbook was a general introduction to development on the iPhone while this book is focused on building games.
To start with the book does a good job of laying out the iPhone game development process. I especially liked the section on the registration process (developers have to sign up and pay fees to be allowed to develop iPhone applications). I feel the authors did a good job of walking a new registrant through a process that some might feel intimidated by. The primer on Objective-C was appreciated — I have never used it but am familiar with similar languages.
I admit to being a little confused by the initial ‘up and running’ section wherein you create your first Hello World application and deploy it. Part of my confusion is that I am simply reading this book, not walking through the examples on a computer as I go. But I never quite understood why I was shown four different ways to create the Hello World app. I suspect this was to demonstrate and provide examples for the different approaches but I would have appreciated some pros and cons between the approaches — i.e., is one method of developing better than the others or is it merely a matter of preference?
The book continues through to a discussion on game engines that is fantastic and is relevant even beyond iPhone games. Really, this chapter could serve as a strong primer for any kind of game programming, discussing game state management, application frameworks and graphics engines — and how to robustly assemble these various parts together. I found this to be the most useful part of the book for me and it served as a great foundation for the rest of the book. It has sections on graphics, animation, culling, particle systems and more.
After discussing the engine and framework a 2D Game Engine example is provided. The authors walk the reader through clear, concise examples of a possible game for the iPhone, each example building upon the other and all built within the engine described in previous chapters. I really liked these and they got me excited enough that I almost contemplated going and buying myself a Mac to play around their sample code. In the 3D section you learn how to build a starship-arcade game, complete with particle system.
I would have loved if the book had gone into a bit of detail on how to manage iPhone development in a team setting — i.e., what is unique about the art pipeline for an iPhone game versus traditional game development, what tips and tricks would make that process go smoother? The 2D game examples provided are all hand coded, each level requiring custom code. Readers might have benefited from a discussion on how some simple tools (i.e., a map editor) could have been easily made to facilitate quicker content generation. What would a more generic data-driven application framework look like on the iPhone? What sorts of tools would be useful to artists and designers? What special concerns arise when creating developer tools for the iPhone? These are minor nitpicks, especially considering the goals of the book and since I seldom see those kinds of details in PC or console development books I can’t really fault this primer for not including such either.
All in all I thought the book was a good read. The sample code and engine architecture could get a developer up and running quickly.
Between iPhone Game Development and The iPhone Developer’s Cookbook, if a person could only buy one, which should it be? If you are developing standard applications, the Cookbook is what you need — the Game Development book doesn’t go into enough detail in my opinion on the core classes provided for building standard applications. With the Cookbook in hand (and previous game development expertise) you could probably try your hand at creating simple games with just that book.
That said, if you want to do serious game development (either you want to get up and running quickly or you are relatively new to game programming) you need the iPhone Game Development and it alone is sufficient for game development.
Copyright 2009 – Brent Knowles.