Cocos Creator v2.0.9 released!

Cocos Creator v2.0.9 released!

Cocos Creator v2.0.9 released!

Cocos Creator v2.0.9 support for the Baidu games platform and greatly optimizes the performance of DragonBones/Spine on small games and web platforms. WeChat mini games also brings improved resource loading performance and dynamic text refresh efficiency. At the same time, we have further improved the compatibility and stability of the engine and editor, so that everyone can get a better development experience. Good quality is inseparable from careful polishing. Thanks to the feedback from developers on the community, GitHub, Cocos corporate services and other channels.

The following is a description of the changes relative to v2.0.9:

What’s New

Support for publishing to Baidu small game platform

Cocos Creator officially supports releasing to Baidu games. For detailed usage, please refer to Publish to Baidu Small Game Platform.

Improving the performance of DragonBones and Spine on non-native platforms

Cocos Creator v2.0.7 greatly optimized the performance of DragonBones and Spine on native platforms, with performance optimized to more than twice as fast as 1.9 and 1.10. This release, v2.0.9, for Web platforms and non-native platforms. SHARED_CACHE and PRIVATE_CACHE acceleration modes, have improved DragonBones performance by 15 times, and Spine’s performance has improved by 3 - 6 times.

Performance test results after acceleration mode is enabled:

The score of the test is converted from the frame rate and the number of animations. The higher the value, the better the performance.

When playing more than three animations on the same screen, SHARED_CACHE acceleration mode can also greatly reduce memory overhead. The following is a memory comparison of one hundred animations on the same screen:

The lower the score of the test, the less memory is occupied. The more animations SHARED_CACHE saves more memory.

To enable Extreme Mode, simply set the Animation Cache Mode to SHARED_CACHE or PRIVATE_CACHE on the DragonBones or Spine components. For more detailed information on speed modes, refer to the Dragonbones reference documentation and Spine reference documentation

Support for publishing as Android App Bundle

In Build panel, publishing to __Android App bundles** has been added. When checked, Android native games can be published as App Bundles. After submitting the App Bundle to Google Play, Google Play will dynamically download different versions of the APK based on the differences in the player’s phone parameters to reduce the game’s package size.

Editor improvements

  • Disable setting the node width to negative in the Property inspector
  • Add a sort mode toggle button in the Explorer to choose to sort by name or type
  • Add the search empty button of the level manager, which will jump to the previously selected node
  • Add the function of finding the referenced resource by UUID in the drop-down search box of the hierarchy manager
  • Node selection status in the synchronization level manager and animation editor
  • Move the service panel that is docked next to the Property inspector to the build release window
  • Remove Blend Factor properties on render components other than Sprite and Particle
  • Improved support for particle system import and export plist
  • Display a progress bar in the system tray when building a project
  • When you import CCB and Cocos Studio projects repeatedly, the original folder will be overwritten and no more copies will be retained.
  • When building a WeChat game, the code obfuscation function of the WeChat Developer tool is turned off by default, using the confusing function that Creator comes with.


  • Improve the rendering of Label dynamic fonts, avoiding the problem of black edges on the edges of the text
  • Upgrade Spine runtime to 3.6
  • Introduced a new easing API: cc.tween, which provides a more concise syntax and greater flexibility, as described in [API - tween] ( Zh/classes/Tween.html)
  • Add the Awake On Load property on the RigidBody component to set whether the rigid body wakes by default
  • Native platform adds jsb.copyTextToClipboard API for copying text to clipboard
  • Module clipping for native platforms no longer culls XMLHttpRequest module
  • Upgrade Android build tool configuration Gradle to 4.10.3, plugin to 3.2
  • Upgrade Android’s lowest Target/Compile SDK Version from 16 to 23, and the Min SDK Version is still 16
  • The http protocol is supported by default in Android 8 [#1664] (
  • Improved VideoPlayer component support on X5 browser
  • Cancel the blocking of Dynamic Atlas in Chrome 69+ (there will be white afterimages so the dynamic gallery is blocked)

Bug Fixes

Editor Fix List

  • Fixed an issue where the animation editor could not be used on user scripts
  • Fixed an issue where auto atlas could not be packaged into sub-packages
  • Fix **Command line ** When building a project, the project will generate problems directly into the build directory
  • Fix **Command line **Do not load custom plugin when building project
  • Fix **Command line **The issue where the excludeScenes parameter does not take effect when building the project
  • Fixed a problem where the mesh background in the scene editor would penetrate above some translucent images, causing some differences in color and runtime
  • Fixed automatic syncing of Prefab when saving scenes, in some cases, you will be prompted to save the reference.
  • Fixed a problem where the nativePath of the resource is incorrect when the custom build plugin gets the subpackage resource in BuiltResults during the “build-finished” phase
  • Fixed an issue where the Physics Collider’s gizmo showed an exception after changing the node hierarchy
  • Invalid error in project build may occur when fixing custom engine
  • Adjust code auto-compilation strategy to prevent plugins from failing to import when modifying project scripts

Engine Repair List

  • Fixed a problem with rendering errors when there were a lot of scene display objects
  • Fixed an issue where the color of the node is not valid after the Button component is set to COLOR mode
  • Fixed an issue where setting **Button’s ** interactable to false would cause node scale to become 0 before onLoad
  • Fix Report when the Label component is destroyed when it is not activated #3769
  • Fix Label issues that may flash when used with faceIn action
  • Fixed an issue where applying Particle action would cause particles to be offset
  • Fix Particle component will repeatedly parse the textureData embedded in plist
  • Fixed a loss of parts in the scene when loading 1.x old projects Particle Problems with custom data
  • Fixed ScrollView parent node scale 0 ****ScrollView layout exception problem
  • Fix DragonBones If you include a sound file, the animation will report an error.
  • Fixed DragonBones problems that may not be rendered when the bone contains multiple textures
  • Fixed DragonBones cache cap not taking effect, causing the cache not to be automatically emptied
  • Fixed an issue where Spine’s premultipliedAlpha settings were lost when loading 1.x old projects
  • Fix Mask component does not update the hit test after enabling inverted
  • Fixed an issue where the adjustment of the node zIndex and the hit test area may not be refreshed #3895
  • Fixed an issue where different shaders use the same uniform name, but the data is incorrect when the types are different
  • Fixed an issue where fields in some scenes in the WeChat game subdomain were subject to MD5 interference
  • Fixed a potential crash on WebSocket GC on native platforms #1681
  • Fix native platform Spine Problems with flashback and rendering exceptions after switching parent nodes #1659
  • Fixed an issue that could crash during iOS** native platform cc.log [#1687] ( )
  • Fixed Android platform XMLHTTPRequest Crash problem caused when statusText is not obtained #1629
  • Fix Android Unable to play remote video #1661
  • Fixed an issue where native and web platforms could not load resources in a subcontract
  • Fixed an issue where Vec3 and Rect deserialization might not be correct
  • Fixed an issue where different shaders use the same uniform name, but the data is incorrect when the types are different

Known Issues

  • If this version frequently modifies the node’s zIndex in the code, the performance overhead may be large and we will optimize it in the next version.
  • On the Baidu small game platform, there are still some problems for the time being, we are working with Baidu engineers to fix it.
  • There is an audio compatibility issue on Android
  • Does not support gravity sensing
  • XMLHttpRequest does not support timeout callbacks
  • Remote loading of resources on Android will report an error


Cocos Creator 2.0.9 for Windows
Cocos Creator 2.0.9 for MacOS


Cocos Creator 2.0.x Documentation

1 Like


If I’m not using any 3D features, is it safe for me to “downgrade”(sidegrade?) from v2.1.0 to v2.0.9? I’m interested in the performance improvements for native 2D games and updated Spine runtime.



Are the changes (performance boost) for DragonBones and Spine also possible for cpp or did the engine get no update.



Good question. Let’s get an answer to this.

Answer: 1. yes, you can downgrade, but backup the project first just in case anything unexpected happens.

1 Like


It hasn’t been updated. Let me ask the engineering team if there is a plan to include these updates in cocos2d-x.

Answer: I will need to get with Minggo and ask him his plan.

1 Like



What is the reason of removing blending modes from other components? We were using it on the motion streak component and that worked perfectly and looked so good.

How is it designed to be used now? This was under editor improvements, but seems it’s something that was taken away from it.

Let me know if I’m missing something. Thanks for your help!



@Ronsku Let me ask engineering for their thoughts on this.

1 Like


Hi, the reason is that spine and dragon bones doesn’t support you to modify the blend function. We don’t want user to misunderstand. So we moved the blend function option from base class RenderComponent to its sub classes like Sprite, ParticleSystem

It’s true that we should keep it in MotionStreak, we have missed it.

Before we re-add the option, you can modify its material directly (hack, no public API yet to do it):

let gfx = cc.renderer.renderEngine.gfx;
let material = motionStreak.getMaterial();
let pass = material._mainTech.passes[0];
    srcBlendFactor, dstBlendFactor,
    srcBlendFactor, dstBlendFactor
1 Like


@slackmoehrle @pandamicro

Thank you so much for the super quick response, I really appreciate it!

Awesome that there is a way to go around it, I will create a custom component for it, for now.

Have a good one! :slight_smile:


closed #10

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.


opened #11