Cocos2dx 4.0 vs 3.17.2

Few questions:

  1. What is the recommended Cocos2dx version for new Android only game
  2. What is the recommended Cocos2dx version for new Android, iOS
  3. Are there any releases planned? Last releases were 2019.
  4. Do you have any benchmarks comparing 4.0 vs 3.17.2
  5. Is there any value with upgrading Android only game from 3.17.2 to 4.0?


I believe that 4.0 contains the new rendering system called METAL or something thats for OSX IOS. you only really need to use version 4 if you want to use that pipeline. but knowing apple I’m sure there’s loaded of documents on how to uses is.
But cocos has already done the hard bit for us thanks cocos team.
and to now that Mac is running on ARM with the new laptop’s so guessing this is to get inline ready for you to produce for future apple products. I still use version 3.17 as far as I know there no bug fixes necessary terms noting broken from 3 to 4.and knowing apple in future will turn apps if not rendering on there new pipeline as it will lag there systems. so cocos has done all that extra overhead for us. hope this helps.

If you are developing a new game, it is better to adopt v4.x.
Beginners should not use v3.17.2.

I maintain a project with v3.17.2 (technically the latest v3.x), but that’s because third party libraries do not support v4.x.

By the way, v3.17.2 uses the old WebView API and is rejected by iOS reviewers.
Getting the latest v3 tag from the github repository and setting it up solves this problem, but it requires some knowledge.

I think we should be able to download the latest version of v3 on this site, but unfortunately the cocos team doesn’t seem to have any intention to do so.

What do you mean? You can download v3 still. What intentions don’t we have?

v3.17.2 is old.
but latest v3 is in github repository.
Here’s how to get the latest v3.

$ git clone
$ cd cocos2d-x/
cocos2d-x (v4) $ git checkout v3
cocos2d-x (v3) $ python
cocos2d-x (v3) $ git submodule update --init
cocos2d-x (v3) $ cd tools/cocos2d-console/
cocos2d-x/tools/cocos2d-console/ ((af07b34...)) $ python

For example, the iOS internal implementation of ui::WebView in v3.17.2 is UIWebView.
This has a well-known problem of being rejected for review.
It needs to be replaced with WKWebView.
The v3 tag on github fixes this.

According to the git log, 3.17.2 is a commit as of 2019-06-26.
However, the latest commit is 2020-04-30.
It’s a shame that we can’t easily get the latest version of v3, which is continuously maintained.
It would be nice if they would release it as v3.17.3.

Ok I see. I’m not sure if there is a plan to release 3.17.3. I’ll talk to the team about this step.

Thanks! I appreciate it.

What libraries are not supported?

Probably a library that doesn’t affect the members here.
That’s because I’m Japanese.
I use an animation tool called Sprite Studio.
The library for cocos2d-x to play this animation is not compatible with v4.
Sprite Studio is a popular tool in Japan, like Spine.

Does cocos2dx 3.17.2 and 4.0 fully support development on ARM new laptops? Does debugging on mac and build for ios is fully supported on ARM laptops?

@CrazyHappyGame I’ll be testing the iOS and OS X builds on an Apple ARM M1 in a few weeks, so I’ll post back when I get a chance to test it all out.

There was at least one other post on this forum regarding the ARM M1 processor builds (here).

Also, I’ve been using Cocos2d-x v4 to develop everything, with some custom changes to the engine (including fixes from pull requests etc), and it seems to run fine on Android and iOS devices. The main project I’m working on also builds with the engine-x fork being maintained by @halx99, just as a fallback if work on the primary Cocos2d-x repo doesn’t continue. I do have to admit that the lack of attention Cocos2d-x is getting by the developers is a little concerning.

If this is the correct source code for the Sprite Studio runtime, then with a bit of effort you should be able to update it to work with v4.

We are not planning on releasing 3.17.3 but perhaps I can come up with an idea to help users out. Let me think on it today.

Update 1: technically this is the latest .zip of v3 from April 2020.

1 Like

That’s great.
Even if we can’t release it officially, it will support users who need to continue using v3 for some reason.

A new download isn’t the primary concern, but rather the issues that haven’t been addressed, and pull-requests that actually fix a lot of bugs which haven’t been merged in yet. Some PRs have been approved for merging, just no-one has carried out the merging process yet.

Alrighty let me look at this.

@slackmoehrle btw I hit following issue on latest mac version as well Redefinition of enumerator kAudioSessionProperty OtherAudioIsPlaying
I think we really need some new release or update version.

I’ve recently switched to v4 on a first app without issue.
But with a second app, I’ve a very annoying issue with DrawNode that doesn’t seems to work on Android sdk 17 (4.2.2). (see DrawNode cpp-tests).
I’ve also some issues with the new render engine to create big textures/images with libs like NanoVG (it is working well on v3).
I’ve a third issue with Win10 that is no longer support in both 3.17 and 4, for now I need some code from 3.16 if I remember well (I’ve never find a way to produce a package to windows store with a Win32 executable).
So I’m going to go back to 3.1702 I think. And wait for a v4 fix.
Cocos team, feel free to ask me for more details about my 2 issues.

Sure. Contact me and I’ll pass along to engineering.

Also I don’t use 4 except on Mac. I still use v3 on everything else. I just run a script at the start of my build that symlinks libraries and goes.

Thank you for your quick reply.

Contact me and I’ll pass along to engineering.

Is there a specific channel? Do you need more details? Sample codes?