cocos2dx over unity

Hi,

Could somebody enumerate me a few advantages of cocos over unity, specially now that unity 2d was realeased.

We are using cocos by inertia, but I have doubts sometimes.

Thanks

I guess cocos2dx is completely free and unity 2d is not.

I was wondering about technical stuff. Companies can pay a license, and also has a free version I guess.

Also, Im not sure if being open source is an advantage by itself, if the engine is stable I can live without that.

Technically unity2d provides a lot more features than cocos2dx. If money is not a problem then unity2d is a much better option.

cocos is faster and more flexible, and since its open source it can be optimized for your games specific needs.

logic in unity is handled with scripts, which has benefits and drawbacks. unity also has a lot more features out of the box, especially when it comes to audio (which will be changing with 3.0 or 3.1)

I think it really depends on the kind of game you want to make. If you want to rapidly make a cookie-cutter game, I think it would be faster in unity. I have considered moving to unity more than once, but have ultimately decided to stick with cocos for 3 main reasons:

  1. im building a shmup, so performance is crucial. I like being able to have full control over whats going on, instead of relying on unity’s engine.

  2. im using c++ libraries, which are possible to use in unity, but require you to build plugins and buy unityPro (expensive)

  3. Levels in my shmup will be procedurally generated, which makes the scene editor in unity useless for me. Some games might make great use of the visual scene editor, but not mine.

I suggest finding a finished game in unity with similar requirements to your own, and asking the developers what their experience with unity was. And then do the same for a game in cocos :smiley:

I have been working with both Unity (3D mostly) and Cocos2d-x for sometime now. Major advantage with Unity is the integrated editor ( and other integrated tools, like the particle system, animation tool…). It’s really handy for designers as they can participate from very early on. I’d say Unity is a really good tool for prototyping. C# is also nice language for scripting. It’s usually much harder to find qualified c*+ programmers than c# programmers, in case your project needs more workforce. Overall production values with Unity are really good.
On the other hand, Monodevelop is not a good tool , Unity itself takes a lot of time to used to. You will be spending a lot of time searching through the folder structures for you prefabs and scripts, materials and whatnot.
You also lose the performance benefits of the native code. I know of a game company that could not use Unity to finish their game, for performance reasons. Optimizing c# is a bit cumbersome at times. You are basicly trying to stop the garbage collector for scanning through your objects.
With Unity you will be totally restricted by the Engine. This is not a major issue if you know exactly what you need for your game, and you know the engine restrictions. One example I can give to you, I wanted to simulate physics ahead for an aiming aid, and have another instance of physics engine for that, because I did not want to affect the game state. This you cannot do with Unity, but you can do that with cocos2d-x.
Unity itself is already a big bulk to the package size itself . You cannot really choose your modules of choice, while with c*+ you can just pick what you need. This can became an issue with mobile games, when you want your game to be downloadable over 3G network( there are store-specific restrictions, the current limit is ~50mb for android and ios)

Overall, the tech should be chosen by the needs of the project.