A range of ideas and perspectives: iPhone Games Projects

iphone_games_projectsEven though I’m still playing with MIDP for the moment, it’s fun (and instructive!) to look over the shoulder of some of the people developing games for other device platforms.  I’ve done a little bit of work on the Android platform, and naturally I’d like to know what’s up with the iPhone as well.

So I picked up a copy of iPhone Games Projects by PJ Cabrera (and others).  This book is unusual for a computer book in that they gathered up ten highly successful iPhone game developers to give their best secrets and advice, so it gives higher-level project strategy ideas instead of spelling out all of the technical nitty-gritty.

Overall, the book answers the following questions:

  • What makes an iPhone game great?
  • How do you plan and execute a successful professional iPhone project?
  • How do you optimize for the iPhone?

The authors all present different perspectives on the subject, which naturally invites the reader to contrast them and think about their ideas!

My favorite was Mike Lee’s chapter on code optimization.  In addition to giving specific information about iPhone optimization, he gave something of a meta-strategy of optimization based on the fact that optimization is relative — you can optimize for a number of different things (speed, code size, readability, cross-platform portability, etc.) and savings in one place often means a cost somewhere else.  That advice doesn’t just apply to iPhones — it’s a critical point to keep in mind for mobile development in general since resources are limited.  For example, in a business application in which speed of menu navigation is critical, I might load all of the images into memory during the opening splashscreen, but that same trick wouldn’t be an optimization in a game that’s tight on memory.  Here’s a taste of what Lee recommends:

An application is only as fast as its slowest part, and even trivial applications contain a mindboggling web of parts. Shaving off picoseconds at random is like spitting in the ocean.  You’re much more likely to get in trouble than you are to hit a fish.

Rather than worry about the efficiency of every line of code, worry about your own efficiency.  Adding code complexity to an application without making it faster is a waste of time.  It’s much more efficient to write 100 percent of your code to be readable, logical, and terse, then go back and speed up the 3 percent that’s actually slow.

Then he goes on to talk about ways to identify and fix the slow spots.  Many of the other authors explained how to optimize different aspects as well, which is useful information to have in mind (even if you’re optimizing for readability) because if you know which aspects can be tweaked in one direction or another, you can write those parts of the code to be as flexible as possible.

chess_engineThe advice about making a game fun was also enlightening.  I particularly liked Joachim Bondo’s advice on making an elegantly simple user interface (especially since this is something I’m trying to improve in my own work).  Several points left me going “That’s cool, I should do something like that…” such as the charming detail of putting a beautiful “chess engine” on the back of the chess board just to make the user smile.

Overall, I found the book entertaining as well as useful.  I just sat down and read it straight through, which I wouldn’t normally do with a computer book.

2 comments so far

  1. hyips on

    Excellent goods from you, man. A range of ideas and perspectives: iPhone Games Projects a little bitty Java I have understand your stuff previous to and you’re just too great. I really like what you’ve acquired here, really like what you are stating and the way in which you say it. You make it enjoyable and you still take care of to keep it wise. I can not wait to read far more from you. This is really a tremendous A range of ideas and perspectives: iPhone Games Projects a little bitty Java informations.

  2. […] ’09Get A Great Deal With Video Game RentalThis Sidekick needs his own Video Game FranchiseA range of ideas and perspectives: iPhone Games Projects .a575_box {font-size: 14px !important;font-style: normal !important;font-weight: normal […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: