You are hereBlogs / friken's blog / Unity or Cocos2D for 2D iPhone Games

Unity or Cocos2D for 2D iPhone Games


By friken - Posted on 25 August 2009

While working on an iPhone game for FizzPow (http://www.fizzpow.com) we decided to use Unity for the project. There were a number of reasons but the main one was Unity's cross platform support. We wanted to be able to release the project for multiple platforms. I was able to get a pretty good idea of Unity features and ability. Before that I had used xCode+Cocos2d for a mini project and was also impressed with it. Note, these views are from working on 2D game projects. If I were to be looking at 3D projects, Cocos2D is not an option. Here are some thoughts on the pros/cons to each:

Unity Pros:

- Cross platform output
- Ability to use c# or javascript.
- Well rounded 3d engine
- Excellent developer community
- Solid company behind it
- Well priced for what it is

Unity Cons:
- 2D games are possible but a bit of a pita
- Need for 3rd party addons such as SpriteManager for 2D games

Cocos2D Pros:

- Excellent 2D sprite engine.
- Extremely easy to use
- Very good developer community
- Free is good. And a con, see below
- Directly working in xCode/Objective-C, nothing hidden from you.
- Great action system for animating sprites.

Cocod3D Cons:

- Slower to get started if you don't already know objective-c well
- Objective-C I find to be an archaic language compared to C# or javascript.
- It is Free so there is not a company supporting it you can call with developer questions. No support contracts, training, etc.

For our first project, Fatty: Get the Princess, we have decided to use Cocos2D as it has an impressive 2D sprite-engine. That said we will still keep Unity in mind for future projects, especially any 3D ones. Thoughts?