I am currently working on a small game for iPad. The game is built using the cocos2d framework for iOS. This is not a post about cocos2d, but contains a list of tools that were very important in my development process.
In Game development everything starts with assets and cocos2d has very good support for texture files. A texture file bundles a lot of graphics for the game in order to optimize memory usage. But creating these file can be very boring if you have to do this manually. And that’s where Texture Packer shines. It’s very difficult to count how many times assets are updated, resized, changes,… during the development process. So in Texture Packer you can automate these tedious jobs into a bash file.
I usually keep one folder that contains all exported graphics called ‘Art’. Every folder inside my Art folder will be converted by my scrip to a texture file. This makes it easy to swap images around. Texture Packer takes care of the rest. The assets are rotated and optimized so that the texture file contains as much assets as possible.
Here you can find a snippet of my script that I use to create the iPad and iPad Retina texture files.
Creating scenes through code can be very boring and repetitive work. CocosBuilder is a very basic tool to design these scene already without writing code. It does not add interactivity, but it allows you to position the CCSprites, CCNodes, … using a drag an drop interface. The application reads the assets from the Texture File.
I used it to create the levels for my game. I could easily position all sprites to the scene. Every Level was saved as a ‘.ccb’ file which can be loaded dynamically into your game.
If you need particles like I did and don’t want to manually do this, use Particle Designer. You can tweak the particles while a live preview is shown. Your result can be save to a .plist and loaded into your application.
Particles solved a lot of problems form me. We didn’t have to create frame based animations for things like engine fire, explosions, rewards, stars, … There are a lot of examples which you can sue to start from.
A Version Control System is also one of the most important tools you’ll need from the beginning. There are a lot of free and paying options in the cloud, but currently I am using Bitbucket. Bitbucket is free private Git hosting for a maximum of 5 users, so it’s ideal for small teams.
I mostly use the command line interface for Git to manage my source files. But there are very good dektop apps available like GitX (L) and Github for Mac which can also be used for Git repositories that are not Github.
During development you will need to have your application tested by other users. TestFlight is the best tool out there. I have worked on projects where we had to send ‘.ipa’ files and the user had to install the app through iTunes. With TestFlight this is all a lot easier. Just let your users register their devices through TestFlight, add these devices to your Ad Hoc Provisioning Profile (yes, you’ll still need these) and your are ready to go. Your users can now install the app trough the TestFlight website and are also notified if there is a new version available.
The team recently launched a little desktop app that makes it even easier to upload your build to TestFlight.
I could have created the app without all these tools, but the end result would be a lot less. Now I could focus on developing the app and I didn’t have to worry about creating texture files, figuring out which parameters to tweak for particles and explain my testers how to install the beta version of my app. If you don’t already know these tools, please check them out.