Backward-compatible !!!

I believe backward-compatible is a most important issue other than the other facts in software development. Especially, you guys are developing a common game engine.

Have you ever thought about backward-compatible before remove/modify any function in the new version?

Supposed we develop a game based on old version, then we upgrade to 2.x version, it is found that many many code should be updated and adapted before the game could be executed successfully.

Some code in our game we even designed for further usage in the other games on plan, but now, we have to re-write them based on 2.x.

This is very very bad user experience

  1. As Cocos2d-x is port of Cocos2d-iphone to C++, it is just following Cocos2d-iphone development.
  2. Major version changes (2.x vs 1.x) reflect big API changes. You can still use 1.x branch if you do not want to migrate.

I assume that everyone in this community has known that cocos2d-iphone v2.0 will break the compatibility of v1.x versions.
The old API set of cocos2d is almost 4 years old (from 2008 to 2012), they need to be improved. Otherwise, cocos2d will go to the similar way of Microsoft MFC framework.

In the new version v2.0.2, we still change a some APIs according to this document https://docs.google.com/a/cocos2d-x.org/document/d/1eqvYjVah0R9nkjzJ_ga1-_cyjHnizVQ5dyESYNpYM0s/ They’re smart and clean, very easy to know.