A common query among many aspiring game/app developers is, whether to use Cocos2D or Unity3D for their first few applications. We have here done an in-depth, point-by-point comparison of the two development frameworks.
Thanks to the rapidly growing popularity of the Cocos2D and Unity3D development systems, hardly anyone uses the XNA framework to develop games and apps at present. Particularly among iPhone app developers, Cocos2D has become the first-choice framework to work with. On the other hand, interest in, and usage of, Unity (both 2D and 3D) has witnessed a spurt over the last few months. Let us here do a brief Cocos2D vs Unity3D comparative study, to help you decide which one would be the best for you:
- Prior programming knowledge – If you have decent experience of coding in C and C++, you can start learning Cocos2D. However, for an absolute newbie, Unity3D is always the better choice. All that you will need to know is a working knowledge of some of the supported languages (Unityscript, C#). With detailed tutorials being available online, that is hardly a difficult task.
- Learning curve – Longer and significantly steeper for Cocos2D. Those who are new to the field of gaming software and mobile app development tend to get confused while learning about ‘pointers’, ‘particle systems’ and ‘bitmap fonts’ (the last two are third-party tools), in particular. Although highly beneficial, the Cocostudio requires some time to get used to as well. Unity3D is way easier to learn. If you sincerely keep at it, you can start making your own app within 2-3 days.
- Low-end development support – As a new developer, you should start off with a small, simple game. Cocos2D offers greater opportunities on this front. With this development framework, games with sizes as low as 1.5 MB can be created. On the other hand, the minimum size of games/apps developed via Unity3D have to be 8 MB. The size of the app you wish to develop is, hence, an important influencing factor.
- Amount of manual coding involved – Cocos2D is open source, and users need to write the bulk of the code lines themselves. As we have already pointed out, if you are not comfortable with coding (or do not have the time for it), opting for Unity3D is advisable. There is a slight ‘beta’ feel about Cocos2Dx as well, which most app development experts do not enjoy.
- Time-management – It’s a tie between Cocos2D and Unity3D, as far as the time-factor is concerned. The Unity Editor in the latter helps developers do away with unnecessary wastage of time – since apps/games can be directly tested on it (deployment with devices is generally not required). If you are prepared to invest some extra time, you will find the Cocostudio to be equally time-efficient as well. There is a host of free third-party tools and add-ons that make the job of iOS app developers easier.
- Availability of online support – Cocos2D is catching up, but till now, Unity easily has greater community support on the web. The are close to 16000 search results on stackoverflow, and finding tutorials, user guidelines, and even cheat sheets is fairly simple. Now compare that with the community support for Cocos2D, for which the stackoverflow search count hovers around the 3500 mark. Most of the early books on Cocos2D (v.3.0) were in Chinese, and that added to the problem. However, new Cocos tutorials are being released, and its online support base (forums and communities) is expanding.
- Customization for different games – Essential for Unity3D users, not so much for those working with Cocos2D. On the former, each of the game objects has to be coded separately – and there is a large number of Unity scripts associated with every game or mobile application. To a certain extent, this does reduce the time-advantage offered by the Unity Editor.
- Suitability for custom mobile app development – When it comes to compatibility with different platforms, Unity3D wins hands down. While Cocos2D is almost exclusively used by iOS app developers, Unity comes in handy for making Chrome applications, iPhone games/apps and even Android applications. Also, as it is pretty evident from their names, Unity3D is the better choice for making three-dimensional games and applications. Cocos also has a 3D version, but it is not as good.
- Expenses involved – Both Cocos2D and Unity3D are available for free download (on Windows and MacOS X systems). With SpriteBuilder 1.1, the new version of Cocos2D (open source, version 3.1) has also become available. The only snag regarding Unity3D is, if you want fancy graphics or splash screens for your app – you will probably have to go for the paid version of the framework. The monthly subscription charge for a Unity3D Pro License is $75. Not a very small amount!
- Examples of successful usage – Renowned game and mobile app companies have been working with the two systems for close to a year now. As such, both of them have been used to create several hugely successful gaming applications. Angry Birds Epic and Temple Run 2 are two of the biggest hits developed with Unity, while Cocos2D had been used for creating winners like BadLand and 2048. At most companies, Unity3D as well as Cocos2D projects are regularly accepted.
- Third-party Cocos tools vs Unity plugins – Unity3D might be the easier framework to learn for a new developer, but its external plugins can be just a tad confusing. In particular, for creating menus on games/apps, the NGUI plugin (available at the asset store) is required – and you will need to spend some time to get a hang of how it works. Tilemaps and bitmap fonts are two of the most frequently used external tools of Cocos2D. It’s a fact though, that the more useful of these Cocos tools are available only on Mac systems.
- The power of C++ – There is a general opinion that C++ support makes the task of app and game development just a tad easier. Only if you are working with Cocos2D, will you get this. However, the C# and native UnityScript support for Unity3D is robust enough as well. On the reliability front, there is very little to choose between the two frameworks.
All things considered, Unity3D would slightly edge ahead of Cocos2D – particularly due to the Unity Editor, and the fact that new developers find Cocostudio rather complicated. Game objects can be reused more easily with Unity too. However, for two-dimensional games, Cocos2D does an excellent job as well, since it is very user-friendly and does not have excess overheads (due to the single platform focus). If you wish to start making both 2D and 3D games, you should take time out to learn both the development engine frameworks. Depending on your projects, budget, workflow and other factors, you can then make the correct choice every time.
Latest posts by Hussain Fakhruddin (see all)
- Hiring React Native Developers: 6 Skills To Look For - April 30, 2019
- Is Your ‘Great’ App Failing? These Might Be The Reasons! - April 25, 2019
- The Rise & Rise Of The Popularity Of React Native - April 18, 2019