Cocos Creator v2.3.4 released, now using Cocos Dashboard!

Cocos Creator v2.3.4 released, now using Cocos Dashboard!

Cocos Creator v2.3.4 is here! This update brings more new features, optimizes performance and improves stability. Efficiency is everything!

It is recommended for all v2.3.x developers to upgrade! Please perform the necessary technical evaluation and backups before upgrading.

Note: Yes, you use Dashboard now to Download and manage Cocos Creator

Note: Starting with Cocos Creator v2.4 using Dashboard will be required! There will no longer be a separate Cocos Creator installer provided. Please download and get acclimated with Dashboard soon.

Downloads

Dashboard for MacOS

Dashboard for Windows

Download Creator from Dashboard

Cocos Dashboard

The Cocos Dashboard serves as a unified downloader and launch portal for Cocos Creator. Everyone can upgrade and manage multiple versions of Cocos Creator. In addition, unified project management and a creation panel is integrated, which is convenient for everyone to develop projects with different versions of engines at the same time.

Manage projects developed under different versions:

You can choose to use a different version of Cocos Creator when creating a new project:

What’s New

Tencent Cloud-Cloud Development

Cloud Development (Tencent Cloud Base, TCB) is Tencent Cloud’s one-stop back-end cloud service for mobile developers. Developers can access the service with one click inside Cocos Creator. After accessing the service, you can manage all cloud functions in the cloud function panel, including operations such as adding, deleting, and synchronizing.

For more details, please refer to Tencent Cloud Development documentation.

Tencent Cloud-Online game engine for mini games

Mini Game Online Battle Engine (MGOBE) provides room management, online matching, frame synchronization, status synchronization, etc… Developers can quickly build networked, multiplayer interactive games. Developers do not need to pay attention to the underlying network architecture, network communication, *server expansion and contraction, operation and maintenance, etc… They can obtain nearby access, low latency, and *real-time expansion of high-performance online MGOBE is suitable for games such as turn-based, strategy, real-time conversation (casual battle, MOBA, FPS) and so on.

Developers can access the service with one click from within Cocos Creator. For more details, please refer to Mini Game Online Battle Engine documentation.

Tencent Cloud-Game Multimedia Engine

Game Multimedia Engine (GME) provides a one-stop voice solution. In-depth optimization for different scenarios including covering games, social networking, entertainment and other pan-Internet industry application scenarios. GME includes real-time voice, voice message, text-to-text, and voice analysis services to meet diverse voice needs.

Developers can access the service with one click from within Cocos Creator. For more details, please refer to Game Multimedia Engine documentation.

Upgrade Tips

Upgrading a project from a previous version of Cocos Creator is irreversible. Please backup the old version of the project before upgrading.

Projects under development can usually be upgraded seamlessly, but because of the uniqueness of each project, developers should conduct a technical evaluation based on their project’s own needs. If developers encounter difficulties in upgrading, please feel free to give us feedback and we will try our best to assist. In addition, due to stability considerations, it is recommended that projects that are about to be launched or already launched be upgraded with caution.

Upgrade from < 2.3.3 version

  • The CCTexture2D and CCTexture2DRGB methods in the Effect have been abandoned.
  • Vec3.FRONT has been abandoned, please use Vec3.FORWARD instead.

Upgrade from < v2.3.0 version

Since v2.3.0, Android and Android Instant use the same build template, please note:

  • If the code is used solely by the Android platform, please put it in the app/src directory, and the third-party library used by itself, please put it in theapp/libs directory.

  • If the code and third-party libraries used by Android Instant are separate, please put them in the game/src, game/libs directories.

  • For code and third-party libraries shared by Android and Android Instant, please place them in the src and libs directories under the proj.android-studio root directory, respectively.

  • proj.android-studio under the root directory jni/CocosAndroid.mk, jni/CocosApplication.mk, mainly used to configure engine-related configuration, developer configuration, it is recommended that Android be placed in app/jni/Android.mk and app/jni/Application.mk, Android Instant, please put in game/jni/Android.mk and game/jni/Application.mk.

  • When Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling for Android Instant, it will execute instant: assembleRelease/Debug.

In addition, when Cocos Creator compiles for Android, it will execute assembleRelease/Debug by default, and when compiling Android Instant, it will execute in``stant:assembleRelease/Debug.

If you have customized the pause logic when switching between audio background and background, please remove it after upgrading to 2.3.0 Currently Cocos Creator games automatically pause and resume audio internally when switching between front and back on all platforms. If the developer has customized this block before, and listens for and performs audio operations like cc.audioEngine.pause() and resume(), it may conflict with the engine’s default behavior. If you encounter related audio issues, simply remove the corresponding custom code.

Upgrade from version v2.0 – v2.3.0

Starting from 2.3.0, the Canvas component is no longer responsible for setting the Canvas node size to the screen size. This behavior will be implemented in conjunction with the Widget component. To ensure compatibility, after the 2.0 project is upgraded, the node where Canvas is located will automatically add Widget components. (No problem upgrading from a 1.0 project)

Upgrade from < v2.2.0

Starting from 2.2.0, we have strengthened the memory management mechanism, and now require users to dynamically create cc.Node which is independent of the scene node tree through code must be released through destroy(), otherwise the engine cannot know when to recycle this type The memory of the node will cause a memory leak.

  • In addition, the nodes that are manually removed from the scene need to be unified when they are not needed.
// Assuming testNode is a node in the scene, if it was manually removed 
//from the scene before, such as
testNode.parent = null;
// or
testNode.removeFromParent(true);
// or
parentNode.removeChild(testNode);
// If testNode will be used again in the future, there is no need to 
// manually destroy the node otherwise it should be called manually
testNode.destroy();
  • If a node is managed via cc.NodePool, it is not affected.

Upgrade from < v2.0

If you open the 1.x project, all resources such as scenes will be upgraded automatically. If there are warnings or errors in the code, you can refer to v1.10.0 Resource Upgrade Guide and the v2.0.0 Upgrade Documentation.

Just in case

Note: If you prefer not to use Dashboard now, you may still download Cocos Creator v2.3.4 for MacOS and Windows

2 Likes

there is no release notes?

This release is focused on TCB. It’s the only item added from 2.3.3 that I am aware of.

Hi @slackmoehrle, I’m happy to see on going improvements. I want to come back to cocos but I wonder how does the performance stack up against Unity “DOTS” architecture? Supposing the Target build is PC, what kind of maximum performance can I get out of cocos creator currently?

I am not current on Unity offerings. Perhaps @jare may have performance numbers.

1 Like

Hi @skara, we will try to reconstruct the underlying rendering layer or inner node structure into pure entity-component architecture, so we can improve engine performance on JavaScript level. And there are several optimizations to compile game play logic into native code without JavaScript VM, these are the most important exploring directions for us. Besides, GPU driven pipeline can also bring significant performance boost for both CPU and GPU. We do care about performance, because we hope Cocos Creator can support top level games better. We are developing a new GFX layer which is a multi graphic backend renderer, it will be integrated into Creator v3.0. After that we will explore such optimizations.

In my opinion, DOTS is not an optimal development option for game developers. ECS is more suitable for the underlying engine rather than game logic. JavaScript are completely different to C#, and we faced different challenges.

1 Like

@sivabalan tell us more. Just saying it lags doesn’t help us to understand if there is an issue. What device? What OS version? What does the log say?

Thank you @jare for the details! I can appreciate and understand the different approaches you must take to tackle the problems. I’m mainly interested at this point in a simple performance comparison. I can write a performance test myself like the video but I’m afraid that I wont be following the “ECS” principles as my approach would be to just make a box prefab, instantiate it X times and have a simple move script that moves each box. I don’t know how to change the approach in Cocos since Unity Entities package makes it pretty simple by handling the data offloading, and you instantiate almost the same exact way. Would there need to be a different paradigm for cocos scripts?

Anyone have share sdkbox sample file…i am using cocos creator 2.3.4

start ()
{
ShareClass.info={text:“sdkbox1”,link:“http://www.cocos2d-x.org”,title:“cocos2d-x”,image:“http://cocos2d-x.org/images/logo.png”};
if(cc.sys.isMobile) {
if (‘undefined’ == typeof sdkbox)
{
this.label.string=“sdkbox is undefined”;
return;
}
else
{
this.label.string=“sdkbox is defined”;
}

        if ('undefined' == typeof sdkbox.PluginShare) {
            console.log('sdkbox.PluginAdMob is undefined');
            this.label.string="sdkbox.PluginAdMob is undefined";
            return;
        }
        else
        {
            this.label.string="sdkbox.PluginShare is defined";
        }
        sdkbox.PluginShare.init(this.sdkBoxConfigJson);
    //     sdkbox.PluginShare.setListener({
    //     onShareState: function(response) 
    //     {
    //         this.label.string = String("PluginShare onSharestate:" + response.state + " error:" + response.error);
    //     }
    // })
        
    }
    
        
}
share_fun()
{
    sdkbox.PluginShare.share(ShareClass.info);
}

But this is not work, What should I do?

Please start a new topic for this question. @sivabalan

Having the same issue with Cocos Creator v.2.3.4

update, managed to get around it, unable to delete post

Hi, what’s your purpose? Why is it necessary to write an “ECS” like paradigm in V8?

i believe i’m just confused between what and why. My interest is performance to support a lot of animations, physics, and scaling (time and size) all at once. there’s no direct link for me to ECS, I was just confused by your answer. I will keep a close eye on your future progress, as you and your team are more aware of what is needed or limiting the performance of your engine.

i did my own small performance test using the 3D toon shader example scene, I was able to get 800 random cubes moving from left to right at constant speeds and maintain 60fps.

Hello!

with this new version Cocos Creator 2.3.4 i start have this issue when using function .isPlaying() of AudioSource

C:/CocosCreator/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js:8385:TypeError: cc.Audio.State is undefined

Is it normal?

Thank you! :slight_smile:

Thank you!

hello, isPlaying is not a function, it’s a getter in AudioSource
I can’t reproduce the problem you met, can you check whether you have excluded the Audio module in Project Settings?

1 Like

Yes is not excluded :slight_smile: Actually all getter & function of AudioSource works except the isPlaying

C:/CocosCreator/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js

strange, actually in v2.3.4, we don’t provide jsb_polyfill.js, now should be cocos2d-jsb.js instead
it seems that the version you’re using is v1.x