Unity vs Cocos2d-X: What to choose for 2D Game Development [Outdated]

[This Article is Outdated]: A newer version is available at this link:http://indivour.blogspot.com/2016/12/new-cocos2dx-vs-unity-what-to-choose.html


A lot of people starting out with 2D game development are often confronted with this Cocos vs Unity question. There are already quite a lot of discussions out there to confuse you.


I've been working with both these development platforms for more than 4 years now, so I'll put in my 2 cents as well (to confuse you a bit more ;).

Technically speaking, there are lot of differences between both these platforms. In the end though, results matter more than the effort you've put and the path you've chosen. The end result (your game) from both the paths (platforms) can be beautiful (based on your effort). They both are pretty capable platforms with active development and community support. And with the introduction of Cocos Studio, they both provide ease of visual development.
Cocos2D-X

Unity3D (Free Version)

Below is a table listing out some of the features of both.

Feature Unity Cocos
CostFree with Unity Splash and
limitations on some features

Or 

1500 USD for Unity Pro +
500 USD for Android Pro +
500 USD for iOS Pro and So on.
Free (All platforms including
Android, iOS, Windows, Linux,
Mac OSX)
Documentation Well Documented Documented, but  with lot 
of fragmentation (versions,
deprecation, language etc.)
Community SupportActive Active
Ease of Starting Easy Medium
Language Support C#, JS, Boo C++, JS, Lua
Stability Stable Stable
Visual Editor Inbuilt Cocos Studio
Physics Engine Inbuilt Box 2d and Chipmunk engines
pre-integrated


In my personal opinion, both can achieve pretty good results if the required effort is put in. From the end users perspective however, there is one edge that Cocos2D-X holds over Unity and that is build size.



An Android build (APK) with just an empty scene built with Unity will have a size of around 18 MB! Compare that to a mere 2 MB for the same build, built with Cocos2dX. Also, the way Unity stores its images, it makes it easier for developers to handle images during development phase, but can result in loss of quality and increased build size in the final build. This causes the size disparity to further increase.



Build sizes may not matter in western countries (because of easy access to high speed WiFi), but in developing countries (like India) it can have a huge impact on your download count. If your build size reaches above 100 MB, both Play store and iTunes store won't allow you to download the game on mobile networks.



Plugin integration is also a point where Cocos2dX has an edge over Unity. Most of the monetization, ad-network, analytics and other plugins are readily available for native integration on Cocos2dX. Cocos2dX now also supports SDK-BOX which further eases plugin integration. On the other hand, Unity needs middle-ware (mostly paid) to interact with most of the non-game features.



Another positive factor for Cocos2DX is that its free of cost, without forcing you to show its Logo anywhere in the game, which can improve user experience by getting the players to the game faster.



Unity on the other hand is an excellent, capable and powerful tool which can be used to develop games fast and beautiful.



Unity also has a better (Shuriken) particle system compared to Cocos2dX.



You can also have granular controls over the look and feel (quality) of your project and resources on Unity.



Both the tools provide you with an option to deliver a game single handedly as an indie and as a group of team members. So as a further "confusionary" measure, I've added below table for your reference. :)



Unity2D
Cocos2D
Company
(Cash No Problemo)
  1. Excellent if you are ready to spend some
    cash to purchase the Pro features
    (especially the removal of the annoying
    Unity Splash Screen)
  2. Need to purchase licenses for individual
    platforms (Android, iOS etc.)
  3. You will also need to purchase plugins
    for 3rd Party SDKs (Analytics, Ads etc.)
  4. Fastest to start working with
  5. Awesome debugging features
  6. Larger build size
  7. Unity scenes cannot be merged using
    normal SVN, so may require additional
    team license (more monies) to get Asset
    Server.
  1. Medium difficulty to get started with. (Only for
    the first time)
  2. All features unlocked (No cost for pro-features)
  3. Smaller Build Sizes
  4. Almost all 3rd party Plugins (Ad networks, Analytics,
    Social etc.) are compatible and available for free
  5. Slightly difficult to Debug the code.
  6. Lesser issues with merging sources through
    normal SVN.





Indies
(Cash strapped)
  1. Gotta live with the annoying Unity Splash)
  2. Limited availability of free plugins for
    3rd Party SDKs (Analytics, Ads, Socials etc.)
  3. Fastest to start working with
  4. Awesome debugging features
  5. Larger build size
  6. SVN cannot merge Unity Scene files (as
    mentioned above), but I guess that's not
    a big problem for indie developers ;)
  1. Medium difficulty to get started with. (Only for
    the first time)
  2. All features unlocked (No cost for pro-features)
  3. Smaller Build Sizes
  4. Almost all 3rd party Plugins (Ad networks,
    Analytics, Social etc.) are compatible and
    available for free
  5. Slightly difficult to Debug the code.
  6. Lesser issues with merging sources through
    normal SVN.


In the end, if you ask me which platform I personally would develop games on, I have a very simple formula to choose, for 3D I'll go with Unity3D and for 2D I'll go with Cocos2dX.

Comments

Popular posts from this blog

Cocos2d-X v3.x : Calling Functions after Delay

Supporting Unicode and Emoji characters in Unity3D (or other Engine) Game - The Lazy Way

[New] Cocos2DX vs. Unity. What to Choose for 2D Development?