We Bring Mega Optimization To Cocos Creator 3.5
2022.05.06 by COCOS
Cocos Creator Version Updates

Download Cocos Creator 3.5 from the Cocos Dashboard

We promised we be bringing something big in 3.5 and we accomplished a lot! This version is a mega update and with the last one being for artists, this one is mostly for the optimization of developers using our game engine.

With 100+ bug fixes and optimizations, we are proud to share with you a better experience with Cocos Creator.

This also includes improvements in some of our documentation. We have been listening and we are working on improving it every day. We are starting off with the API section. It's been modified and improved, so please check it out.

To learn more, go to our forums for a complete developer's log.

Marionette animation system

We added the Marionette animation system in v3.4 for complex character animation. It supports state machine editing and weighted blending. In v3.5, we added several crucial new features to the Marionette animation system. Layer and skeleton masks are the most important updates because they allow the developer to separate animation blending for different character parts.

Improvement for 2D-only projects

For 2D users and 2D projects, we have improved the user experience in the editor. It's been a very popular request for Cocos Creator 2.x users when they consider upgrading. We have progressively improved things and will continue to do so. In v3.5, you can see the following changes:

  1. All scenes created in 2D projects will only contain a default canvas and a 2D camera (ortho projection).
  2. The scene view is in 2D mode by default.
  3. Some inspector is adjusted for 2D editing.
  4. All 3D modules are not selected by default, and there won’t be 3D features in the additional component panel and node creation panel.
  5. If you want 3D features back, you can just select 3D modules back in the project settings.

Frame Pacing Library (Swappy)

For quite a while, we have been working with Google to bring a better Android development experience to our developers. We are proud to announce Frame Pacing Library has been integrated into v3.5. It's part of the Android Game Development Kit (AGDK). It helps OpenGL and Vulkan games achieve smooth rendering and correct frame pacing on Android. You can activate Frame Pacing in the Android build panel.

Geometry Renderer

A new simple geometry render API is introduced in v3.5. It's designed for simple debug rendering using prebuilt primitive geometry types. It supports lines, boxes, spheres, polygons, etc. You can draw them in wireframe or solid mesh. All drawing geometries are in world space with a configurable transform. Furthermore, some geometries can be affected by real-time lighting.

Detailed functionalities are shown in the following chart.

Material editing improvement

We have put a lot of effort into visual effect upgrades in the past versions. Meanwhile, we have also started to invest in improving the DCC workflow. We are starting to ship some improvements in v3.5.0, and you will see much more coming in future releases. Here are what you can expect in this version:

  1. You will no longer need to dump material and modify it into a new one, you can directly modify the imported material of the FBX/GLTF.
  2. While you edit the material, you can now use undo / redo to reverse or rewind actions.
  3. When switching effects during editing, the same properties (e.g. 'mainTexture') will be cached and retained.

Flatten tool in the terrain editor

Terrain editor now has new brush modes Flatten and SetHeight with a height parameter. It's for more effortless sculpting fixed height planes in the terrain editor.

Various performance optimization

We continue to improve performance in v3.5, here are the most visible ones.

  1. The performance of spine and dragonbones on native platforms has been improved by reusing the same buffers between native and JS instead of copying them in the previous version.
  2. Optimized memory occupation of RealCurve, CurveRange.
  3. Optimized decorator performance for particle system instantiation.
  4. Improved WebSocket power consumption on Android by using okhttp for implementation.
  5. Improved Label and Graphics render performance on native with less invocation from native to js.

To learn more, go to our forums for a complete developer's log.