A few people have asked about how we built our new iPad game “Bake Sale Blow-Up” (http://bakesaleblowup.com).The whole story is bigger than I know how to summarize, but the programming was engaging in its own right.
Our development was made easier by a couple of good libraries, but the biggest contribution was from cocos2d-iPhone (http://www.cocos2d-iphone.org/).Cocos2d has many virtues: an active user community; a small, but dedicated developer community; good Google juice; and survivable bugs. If you’re looking to build a 2d iPhone game, I’m happy to recommend it.
If you do use cocos2d-iPhone, be prepared for some awkwardness — starting with the name. Cocos2d-iPhone is a port of a Python framework called cocos2d. The iPhone port has better rankings in Google than the Python source, but not total dominance. I recommend starting all searches with “iphone” along with your topic. Otherwise you can get into an article only to realize you’re reading about the wrong project.
This awkwardness can continue into the framework itself. The port is so faithful that the user guide and tutorials have been cloned right down to the diagrams. Hooray for reuse! The downside is that there are cases where UIKit features like transitions are re-implemented in the cocos2d way. Luckily there are many good examples to draw from, and recent development is taking UIKit integration seriously.
I’m happy to say that the productivity enabled by cocos2d-iPhone is worth the bumps. I can’t remember being stuck for more than a couple of hours at a time which is more than I can say for most frameworks I’ve used. I’d use it again it without hesitation.