This is part of our series on Penumbear. Check out our introduction to the series.
Since we are sharing the development process of Penumbear as we build, I thought it would be good start with the tools and technology that we are building with.
Penumbear will be coming to iOS, so we chose a framework that we already have a lot of experience with on that platform: cocos2d. Cocos2d is an excellent framework for 2d games and a great community has built up around it. Many common problems that you will encounter while creating a game have already been solved by the community. There are also a number of great tools that have cocos2d support built in that will save lots of time. If you are just getting started with cocos2d, then you can check out Part 1, Part 2, and Part 3 of our letter to a cocos2d noob. Also be sure to read the tutorials on Ray Wenderlich's site.
We've decided to use cocos2d 2.0 for this project. This buys us OpenGL ES 2.0 support (and therefore shaders), particle batch nodes, and number of other improvements. We lose support for the iPhone 3G, 2nd gen iPods, and iOS 3.x.
In addition to cocos2d, we are also using UIKit as part of an in-game level editor. We aren't worried about tight integration with cocos2d or skinning the controls because the editor is for development purposes and not part of the final game.
Quick rundown of the tools we are using:
TexturePacker - Packs assets into a sprite sheet.
PhysicsEditor - Used to trace shapes to define the polygons for sprites. Also allows you to edit other properties related to your physics engine of choice. We are using it in conjunction with chipmunk. There are a number of approaches to use when building a platformer. In a later post we will talk about how Physics Editor fits into the approach we are using.
ParticleDesigner - Allows you to see the results of modifying particle system configs without having to restart the simulator over and over.
GlyphDesigner - Convert TTF and other fonts into bitmaps. We convert all our fonts to bitmaps because updating BMFont labels is much faster than updating TTF in cocos2d. Updating TTF labels has the same cost as constructing a new label every update.
Spriter - An animation tool we helped fund through Kickstarter. Steve is currently leaning towards hand animating most of the koala's frames, but Spriter is still extremely useful for menu animations and other parts of the game.
If you have any questions, let us know and we will do our best to answer them. We hope to be as open about the development process of Penumbear as possible.
We would also love your feedback on the project. If you aren't already, follow us on Twitter for regular updates.