Cocos2d-x is a GDK for 2d games. It is open source and widely used by many developers not only to make games as such but also for prototyping. Cocos2d-x is very easy to use and it is a perfect start for those programmers or designers who want to get their feet wet in game development and later move on to more powerful engines.

FEATURES

Cocos2d-x is cross-platform and allows you to develop games in different platforms like Android, Mac OSX, Windows and iPhones to name a few, but there are also other platforms available. If the game has been coded in JavaScript it also allows for the game to be punished in HTML5. Cocos2d-x has been around for a while, but it started to become popular by 2010 due to a good overhaul in its features. Even though it is cross-platform it doesn’t really work like other SDKs and you have to use and setup different compilers and debuggers depending on what version you are using. The process is not so straightforward as in other SDKs but still, it is usable and the functionality is there for you to use for free.

Cocos2d-x is completely free and open source, whatever you code with it will be yours and yours to use for any purpose. No fees, no monthly payments and no royalties at all. It is surprisingly very complete and it has a very nice community that is always developing third party tools for it. Not long ago IAP and networking had to be done manually via code but not anymore. It comes integrated with network capabilities so you can do HTTP requests. SDKBox is a tool for Cocos2d-x to get plugins for third party API and of course, totally free and usually open source.

The editor in Cocos2d-x has been overhauled and now it has a visual interface and the environment for the programmer has been upgraded in a way that is strange for an open source and free project. Cocos Studios is the tool used for this and you can edit your levels and even the UI drag and drop system--no code needed. Even animations and sprites can be done into the same environment. Even though it has some flaws and the code is not fully integrated with the editor, there are many third party tools to help you in that matter. We can name a few of them:

Texture packer will let you manage everything related with the textures of your game and create sprites to be later animated in Cocos Studio. Particles can be managed with Particle2dx and Tiled Map Editor will create maps and tiles very easily for you. There are many APIs for Cocos2d-x and they are all open source and free. Great for those who want to start developing on a tight budget.

The 2D engine is not as strong as many other GDKs but still, it is good enough to create casual games or prototyping. For commercial games it may need a bit more power but if your game is not graphically strong, Cocos2d-x can be a very good option. Still, don’t think it is completely underpowered. In the latter versions of Cocos2d-x they added optimization for 2D with OpenGL to support multi resolution devices, textures, transitions, coordinate systems, sprite sheet animation, skeletal animation, tile maps and particles. It also supports auto-culling, auto-batching and catching transform.

But where Cocos2d-x really excels is in its speed. It is so fast to create projects and games with it. It is often used by AAA companies to create prototypes of their games so they can see how it will look and then later develop it with a stronger engine (and much more difficult to handle). It is very flexible and allows you to use different programming languages for coding. C++, JavaScript and even Lua. Using Lua is perfect for beginners because it lets them start with an easy language, then move to a more powerful one. It is also not bad for Cocos2d-x projects because these projects are usually simple, same as Lua.

Cocos Studio comes with 4 development tools. The UI Editor, Animation Editor, Scene Editor and Data Editor. It is very professional and modularized so that if you have different developers and each of them has different programming skills, you can assign them to different editors and the code will never collide.

Another great feature of Cocos2d-x is the community around it. As it is open source, there are many people committed to the SDK and they develop third party tools constantly. If you need any help or support, there is no company behind it but you are likely to find anything you need in their official forums or in many other websites dedicated to Cocos2d-x.

PROS AND CONS

PROS

Free and open source

Great community

Very fast deployment

Cross-Platform

Allows you to use different programming languages, including Lua for beginners

Many tutorials and help around the web

Third party tools are also free and usually open source

Very low weight

CONS

The graphic engine is not so strong

Can be a bit messy sometimes

Although it supports 3D, it is not recommended at all for these tasks.

CONCLUSION

Cocos2d-x is a great option for those who want to start in the world of development and don’t want to spend a cent in software. With Cocos2d-x you can develop full games without having to pay anything and no royalties attached. The SDK itself is good enough to give you the quality you need to develop 2D games but it is not enough for good 3D games. The third party tools are also free and usually open source but they are a bit unorthodox because there is no company behind them to back them up. There is no support from an official channel but the community is great and usually helpful. It can be a bit messy to code and deploy games in Cocos2d-x but still, if you are new to this world and you want to start developing games in an easy and fast way, this one is a very good option to consider.