Are you new to making games? If so, you might be feeling a little overwhelmed with the vast amount of choices available when it comes to platforms. This blog post is an attempt to clear the waters regarding the Cocos2d family of game engines, their operating systems and languages.
An individual emailed us recently with the following:
I have attempted several times to simply google “What is Cocos2D?”, but it is rather difficult to understand. Not what the framework does (I understand that) but… what O/S Cocos2D is FOR, and if it can port easily…
I understand there is..
Cocos2D for the Iphone
Cocos2D- Using python? For MAC? Or is this for PC?
Cocos2D android 1—Adapted for Android?
Cocos2D javascript—For HTML5?
Cocos2Dx—For Linux?
And even a website for Cocos2D for windows?I am so confused! I thought Cocos2D was an official framework/engine to build iphone-only mobile games on, but it seems closer to something like the thousands of different versions/distributions of linux OS’s, in that it has tons of different distributions… Is Cocos2D able to make 2D PC games?
Great questions, eh? Let’s begin to clarify.
Cocos2d iPhone

Language: Objective C
Develop On: Mac
Publish For: iOS, Mac
Is Being Actively Developed?: Yes
Usually, when people say “Cocos2d,” they mean “Cocos2d for iPhone.”
Cocos2D for iPhone is downright awesome. It’s the leading, open-source, free, iOS & Mac game engine. It’s quick, easy to use, community-supported, reliable, mature, and thousands of games have been published using it. Also you get to code in a Mac environment, which some people find to be soothing.
For extensive details, check out our blog post: what is Cocos2D?
Cocos2d-iPhone is such a sweet game engine to use, but what’s the catch? Well, you are limited to publishing for the iOS and Mac platforms. This limitation, however, is being lifted by Apportable. They have written a cross-platform implementation of Apple’s frameworks. You send your Objective C code to them, and they automatically compile it for multiple platforms, including Android and Chrome. It’s not yet an SDK that you can download and compile yourself. It’s a rad idea though, you code your game using Apple’s NSStrings, NSArrays, and Cocos2D’s CCSprites, CCLayers, etc., and they implement the Android/Chrome equivalent.
Kobold2d

Language: Objective C, Lua
Develop On: Mac
Publish For: iOS, Mac
Is Being Actively Developed?: Yes
Kobold2d is Cocos2d for iPhone greatly extended and improved. It features several example projects, including a side-scroller, physics game, pinball, and even an isometric tile game. It has extensive, thorough documentation and great support. It also has several classes which extend Cocos2d iPhone and make it more convenient, like KKInput, KKConfig, KKDeviceMotion, etc. Finally, it comes packaged with an installer and several of the most handy libraries known in the Cocos2d community like Chipmunk-SpaceManager, Cocos3d, iSimulate, SneakyInput, and wax, which allows you to code with the lua language.
Cocos2d-X

Language: C++
Develop On: Mac, Windows, Linux
Publish For: iOS, Mac, Android, Windows, WoPhone, Blackberry
Is Being Actively Developed?: Yes
Cocos2d-X is the cross-platform equivalent of Cocos2d for iPhone. The main difference is that you write code in the C++ language instead of Objective C.
You can write your code on just about any platform, in just about any IDE, and publish for lots of different devices and desktops. The project is becoming quite mature and is close to a 1.0.0 release.
For those of you looking for a direct multi-platform implementation of the Cocos2d paradigm in C++, Cocos2d-X is your answer.
Cocos2d (Python)

Language: Python
Develop On: Mac, Windows, Linux
Publish For: Mac, Windows, Linux
Is Being Actively Developed?: Yes
Cocos2d (Python) is the original Cocos2d which inspired the development of Cocos2d-iPhone. It’s easy to see why. The flow control via scenes, a plethora of transitions, fast & easy sprites, actions that allow you to animate everything easily, tiled maps, menus and OpenGL support, are just a few reasons why Cocos2d is so appealing.
As a developer of games for over 15 years, I’m quite thankful for how Cocos2d Python has laid down the basic concepts of scenes, layers, sprites, and everything else that makes up the core essence of Cocos2d. It makes my job easier.
Other Branches of the Family
If you are interested in making games, there has never been a better time to start learning with the Cocos2d family. There are several other branches of Cocos2d, including Cocos2d-Android & Cocos2d-Android-1 (Java implementations for Android), ShinyCocos (a Ruby implementation), Cocos2d Javascript (an HTML5 web browser implementation), Cocos2d Windows (a C++ implementation for Windows) and Cocos2d-XNA (a C# implementation for .NET via MonoTouch). Some of these you may find interesting, and all of them are examples of the widespread popularity of the Cocos2d way.
That’s all for this post. I hope it has given you a deeper understanding of the different platforms, languages, operating systems, and engines available in the mobile game development world.
Look for the iPhone Game Kit 4.0, coming out soon!
Enjoy coding.