Hi all, I’m currently doing a job: move my game project which based on cocos2d-x-1.x to 2.x, and met tons of issues with API changes.
I’m not sure which clever head had made this decision to change lots of API. But it caused me lots of trouble. My project has about 200,000 - 300,000 lines of code. I’ve suddenly realized there’s a blackhole to make this job done.
It’s not only simply like “find & replace”, it also has lots of issue caused by different usage of API.
For example, 2.x even changed usage of CCDictionary, CCMutableDictionary was deprecated. That means I have to change ALL code using CCMutableDictionary to CCDictionary. Thanks to the new CCDICT_FOREACH macro, I have to rewrite EVERY code visiting a dictionary not used this macro. It’s not a great deal… let me see… only 300 - 400 places has to change. Thank you clever heads!
When I read changes in cocos3.x yesterday, I’ve found a fact that these clever heads don’t even care about their users. They are just interested with these new technologies. Compatibility with previous versions? Go to hell! And they don’t want old users to move to their newest releases easily. So users have to learn their genius inventions. That makes me remind Microsoft’s API. Well, you know what I mean.
In all, you clever heads should provide a solution to these old users that they can move to your new engine easily. You guys release a “big” version annually, old games not die that quick. “Don’t break user spaces” should be #1 concern in my opinion. Nobody want to re-write tons of code after engine upgrade.