If I were to start coding a new game, and didn’t know much of Cocos2d-x anyways, should I stick with 2.1.4 (the stable release) or just start with 3.0 (still in flux but hopefully stabilizing)?
My game is going to release at holiday 2013 season at the earliest, so that’s a few more months.
Right now I’ve been using 2.1.4 this week, but I’m just wondering whether I shouldn’t upgrade now, if I’m going to do so at all before release (given the API changes).
They are different animals. Try to started v3.0.
If you started v2.1.4 this moment, you would feel pain to migrate your code to latest version in future.
So 3.0 (pre) is as stable as 2.1.4? For my project, I have to support iOS, Android, and BlackBerry. All three need to run well.
>
Should be release-worthy in 3-4 months?
>
Documentation is updated enough for use?
I think it depends on they type of game that you are going to develop, its requirements, and how good you feel with an “pre-alpha0” technology.
About v3.0:
It has new API: it is easier to use, less redundant, less objective-c patterns, more c*+ best practices, C**11 support
* The old API should still work by using deprecated methods .
* It has new features: faster and more efficient labels
* A new renderer is planned
* A new memory model is planned
* It has many bug fixes
* Platforms support:
Faster Android
Better Desktop support: to migrate desktop to GLFW
Better Linux
Support for Qt5
But NO Blackberry and Marmalade for the moment since C*+11 (gcc 4.7 or Xcode 4.6 or VS 2012) is required
Documentation: Less documentation and samples
Stability (From a memory and “crash” point of view): it is as stable as v2.1… I would say that perhaps it is a bit more stable since we already fixed some bugs
Stability (from API point of view): It is unstable. The API is not frozen yet. Expect more changes in the next releases.
About v2.1.4:
It is in maintenance mode: a new v2.1.5 will be released with some critical bug fixes, but without new features. only critical bug fixes.
So what should you use ?
If BlackBerry is a must, stay with v2.1.x. ( Does anyone know if/when BlackBerry is going to support C++11 ? )
If BlackBerry is optional and you need any of the new features of v3.0, and you don’t mind using a unstable API, then v3.0 is for you.
Ricardo, is the speed improvement with Android NativeActivity significant?
Some simple tasks like handling orientation change, sending/receiving intents, and integrating admob/analytics SDKs now seem difficult/impossible due to NativeActivity (http://www.cocos2d-x.org/forums/6/topics/35619).
The NativeActivity issue is the only thing stopping us from migrating our apps to 3.0. It will be great if someone more familiar with NativeActivity can at least verify that all this can be done.
* Stability (From a memory and “crash” point of view): it is as stable as v2.1… I would say that perhaps it is a bit more stable since we already fixed some bugs
Is there a way we can identify these fixes in GITHub? I would be (and I suspect a lot of your other users) willing to do the work to port those fixes back to 2.1.5 (and probably cherry pick stuff like NativeActivity where possible.)
We are about to release cocos2d-x v3.0-alpha0 (the previous version was cocos2d-x v3.0-pre-alpha0). As the name implies, it is “alpha” technology. In a few months it will be stable, but in the meantime you should know that “alpha” means… well “alpha”, use it with caution, know the risks before using it.
Regarding cherry picking v3.0 changes to v2.1, unfortunately I do not have a pointer to the commits, but I guess you should be able to find them in github. The Native Activy patch was added about 1 months and half ago.
I have been following the 3.0 threads with great interest — I’m very exciting to see the realization of a roadmap for the platform.
My point is simply that it is too early to put Cocos2d-x 2.1.5 on life support. A few months means this year’s holiday season, if everything goes great.
I agree that the Cocos2d-x developer community needs 3.0, however, to me it appears that we also needs a stable 2.1.x release until at least January of next year.
Thanks Cory,
v2.1.x is not unsupported. In fact we are planning a v2.1.6 or v2.2, but with only minor features. All the new major features will be part of v3.0.
@Ricardo, Thanks. I have already posted all that I found on NativeActivity in that thread, and will continue posting any updates there to keep all NativeActivity related discussions in one place.
Overall, it looks like everything that I checked for is possible with JNI (I haven’t implemented/tested those suggestions yet) but I couldn’t find any good solution for integrating AdMob (or other Ads SDKs).
I do notice that the download page http://www.cocos2d-x.org/download lists 2.1.5 as an “older version”, you have to click through the link to find it. If 2.1.5 is the latest stable release and 3.0 is only alpha, maybe 2.1.5 should be the main download link on the main page (with 3.0 alpha right below it, sure).
I do notice that the download page http://www.cocos2d-x.org/download lists 2.1.5 as an “older version”, you have to click through the link to find it. If 2.1.5 is the latest stable release and 3.0 is only alpha, maybe 2.1.5 should be the main download link on the main page (with 3.0 alpha right below it, sure).
Agreed. The download page should actually just be this page: http://www.cocos2d-x.org/download/version
With the addition of clearer labels as to the Current and Alpha/Beta/Whatever… versions. With the Current Stable version listed first on the list, Alpha’s below that, and older versions down lower. The current download page is a little confusing.
So is it smart to refactor and release a game with 3.0? I have been working on a game using 2.1.4 and am not planning to release for a few months. Ricardo said 3.0 is more stable than 2.1.4…When I try and upgrade to 3.0. I have a lot of trouble with selectors. For example in 2.1.4 I could do:
So is it smart to refactor and release a game with 3.0? I have been working on a game using 2.1.4 and am not planning to release for a few months. Ricardo said 3.0 is more stable than 2.1.4…When I try and upgrade to 3.0. I have a lot of trouble with selectors. For example in 2.1.4 I could do:
>
[…]
>
but in 3.0 I haven’t found an alternative that I can get to work for ‘(cocos2d::SEL_MenuHandler) &HUDForPlanting::plantBroccoli’
You want my advice? Release on the latest stable release, report all bugs and post any stability issues you find (for all our sakes!)
Ricardo also said “your code will compile with thousands of warnings” and “In a few months it will be stable, but in the meantime you should know that”alpha" means… well “alpha”, use it with caution, know the risks before using it."
The risks, if you are not aware, are unforeseen bugs, extended fix cycles, on going optimization and potential breaking API changes. That will let Ricardo and the 3.0 team move quickly.
Progress on 2.1.x will be slower because we are all fighting to keep our stable games stable — that means only changes that improve performance and fix bugs (as Ricardo indicates above.)
My advice is:
Use what you are currently using if you are anywhere close to release.
Trying to upgrade mid-project is often a bad plan.
2.1.x has been used for many successful games, just look at all those links!