Note: I wrote this yesterday but didn’t post, I have some of the same views as stevetranby it seems on things like making cocos2d-x easier to get use, easier upgrades and backwards compatibility.
Sorry for the long post… Rant on:
Documentation / Support / Sample Code / Tutorials
Seems everyone is saying this needs improving… it’s very obvious. When I started with Cocos2d-x the documentation was really the test sample code, being a 20 year developer I had the ability to go through that massive project and figure out what I needed, but not everyone has a 20 year programming background! I imagine out of 20 people who download cocos2d-x, 19 of them give up and move on after a few hours of hitting their head against the wall. I’ve know a number of young devs who I tried to convince to use Cocos2d-x who simply gave up, I can’t blame them.
Cocos2D-x needs to catch up with other systems like Unity3D and LibGDX, their documentation+samples+tutorial videos are very professional. In the case of Unity they employ countless staff to write professional documentations, support the forums, make sample projects, videos, etc. I know Cocos2d-x is not a “company” like Unity is or has the same funding, but you can see why Unity is so popular.
Install App - Getting Started
Related to scaring people away statement above, another big problem is the setup process. Look at Unity, (sorry, I’m going to refer to Unity a lot as it is No1 game dev system by far), you download the install app, install, run… there in front of you is a working game example (along with documentation, tutorial and video tutorial to match). Cocos2d-x needs an install app that people can just download, install, compile and run… along with the documentation, etc.
I know we’ve had a push for people to make tutorials and thing recently, the documentation is better than it used to be (there is some), but pales in comparison to professionally produced documentation+videos+tutorials you see on the Unity website, or even LibGDX’s.
No More Breaking Backward Compatibility
I’m not talking about v3 or the depreciated v2 lists (though it has been a pain to upgrade to). Here I am referring to my past experience with Cocos2d-x (I’ve been using since v1). It seemed nearly every point release would break my code, it could be a number of functions renamed or more likely a new class would replace another and require a total rewrite of pages of code. This has to stop.
We have to update to get the latest bug and crash fixes, update for new hardware support, etc. To update an old project to the latest version should be a simple case of loading in my project and hitting compile.
In my 14 year career as a MS Studio Visual C++ developer I can’t recall this happening once. Even today I can load up my old programs into MS Visual Studio and compile them with little consequence.
If you want to add a new class that duplicates some functionality or improves on speed of an old class, just keep the old one too; don’t break backward compatibility. Same with renaming functions, try not to, but if you do keep the old one too. The old classes can be marked in the docs as depreciated and have a comment to say “has been replaced by class XXXX instead”.
Cocos2d-x - What are Chukong’s Plans For the Future?
My big concern with Cocos2d-x is that it is disappearing from the game dev industry here in Canada & the US. Over the past two years Unity has become the defacto dev system. I no longer personally know any other indie devs using Cocos2d, there are only a few dev studios using it in Vancouver. Looking for jobs in the area, they are now nearly all looking for Unity developers. The same in San Francisco, I’m sure Chuckong realise this too.
Unity is very impressive, they support their product massively, their V5 looks amazing with more support for 2D. They tour the USA and Canada, they were here in Vancouver last month for SIGGRAPH and Indie Game Summit … they spend a lot of money on staff and at events like this. They spend a lot of money on developing the product, documentation, support, videos, etc, etc… it is no wonder they are now the No1 dev system. Even Unreal Engine are having to play catch-up.
Now I know Unity3D isn’t exactly free like Cocos2d-x and that they obviously fund the development+support+promotion teams with this cash. I’ve no idea how much Chuckong spend on Cocos2d-x, or how much revenue gets back (direct or indirect) to fund Cococs2d-x. I also realise a lot of work has gone into v3 and new tools, bit it all pales in comparison to Unity.
So, my question is, what are Chuckong’s plans for Cocos2D-x, will we see a push to make Cocos2d-x a serious 2D contender for Unity, or will it remain at its current level?
TLDR: I think Cocos2D-x could be as big as Unity
P.S.
Personally, I think Chuckong have a great product with Cocos2d-x that has potential to regain position as the number 1 2D game development system but it would take a lot of effort and a change from the current direction. I also think done right the cost of all of this would pay for itself, like Unity manage to, perhaps with some finding from a “Pro” subscription/license. To bring Cocos2d-x up to the standard of Unity it would need a team of full time employees here in USA/Canada as well as the current team in China (as Unity have). Develop Cococs2d-x further, develop the best documentation, tools, source code, plugins to cover all areas (like adverts, stores, etc), support staff (constantly online, making tutorials, online tutorial classes, promoting at events). I would even go as far as to dream a Pro license could fund things like the purchase of the brash monkey company and you could include tools like Spriter in the Cocos2D-x package.
… end of rant!