Cocos Creator v3.3.0 released!

Cocos Creator 3.3.0 released!

What’s new!

Highlights

Performance optimizations

In version 3.3, the focus continues to be optimizing the loading performance and running performance of the WeChat mini-game platform. After all internal projects are upgraded, the WeChat cloud testing starts with a performance score that can reach more than 80 points.

We continue to leverage the native binding layer to a new level, we have implemented a native version of render scene, lighting, model and other render objects, the render objects collection process is also completely running with native implementation, which further improved the performance of the native platform.

There is also a side benefit. Due to the upward migration of the binding level, some underlying data sharing mechanisms have been lifted, such as Pass, SubModel, etc. This makes the implementation of the upper layer of the JS engine, especially the data related to the UI and 2D rendering batches more simplified, and the data structure of some high-frequency operations is restored from TypedArray to direct properties, which makes the performance of the Web and small game platforms also visible improvements .

Optimized Scene editing experience

  1. Optimize the roaming mode of the scene camera, and add an acceleration switch.

  2. Add a scene light switch (open by default).

    Screen Shot 2021-08-22 at 18.00.25

  3. Increase the display of the maximum and minimum coordinates of the model.

  4. Increase the snap function of Transform Gizmo (when you move, rotate, zoom Gizmo, hold down the Ctrl key, you can increase the value according to the set step length.

  5. Optimize the experience of using large projects: reduce the memory usage of the editor, avoid crashes, and optimize lag.

New Animation Editor and Animation Data upgrade

Currently, the Animation Editor has built-in curve editing, which matches the time axis, and supports the editing of the time curve between any key frames.

Animation Data has also bee upgraded to introduce a new basic curve class, refactoring AnimationClip, and unifying the curve data used by animation and particle systems. These works are prepared for the subsequent improvement of the animation system. In the subsequent version, we will support advanced functions such as animation state machine editing and Blend Tree animation fusion.

In addition, the Animation Editor also:

  • Supports the animation display editing after the animation root node is hidden.
  • Optimizes the occlusion relationship between the key frame of the Animation Editor and the small red line, the size of the key frame, the selected color, etc…
  • The Animation Editor supports holding down shift + mouse wheel scrolling to move the timeline.

Platform support and Build system optimizations

Windows x64 build option have been added, and the win32 platform will be gradually deprecated in the future.

In the Build panel, there are many new optimizations:

  • The iOS build configuration option supports developer id configuration related to the target iOS version and signature.
  • After constructing md5Cache, you can add md5 suffix to the script to ensure that the version is updated; (feedback from the forum.
  • As some versions of WeChat already support astc, the compressed texture configuration of the small game platform astc is currently open.
  • Preferences-Build a new option to open the build log.
  • Build an interstitial configuration panel, which supports direct drag and drop of pictures in the file system to place.
  • Command-line construction supports the input logDest to specify the log output path.
  • Due to the limitation of the number of exit codes on the Mac, the command line to build the exit code has been modified.
  • After the native platform is built, the game name cannot be modified a second time.

Shadow effects and settings optimization

In previous versions, the configuration of shadows has always been a feature that confuses developers. We have a complete plan and are gradually improving shadow support. v3.3 will first simplify the configuration of shadows, optimize soft shadow algorithms, and repair shadows. Part of the effect problem. Configuration adjustments include:

  • Shadow color is migrated to the grayscale adjustment option of Shadow saturation, which will automatically migrate the alpha channel of the old version.
  • The soft shadow options are changed from the previous X9, X25, etc. to Soft and Soft2X.
  • The size of the simplified shadow map is set to High, Medium, Low.
  • Remove the SelfShadow option, now self-shadow calculation will be turned on by default.

v3.1

v3.3

Perfect Physics system

As v3.1 supports the PhysX physics backend, the selection and use of multiple sets of physics engines has also become our focus of use experience. In v3.3, we not only strengthened the physical functions, but also unified the different physical backends as much as possible.

  • Support CCD continuous collision detection function

  • Increase the minimum volume control of the collision body to avoid a series of problems caused by node zero scaling.

  • Supports more flexible configuration options for the PhysX physical packed byte platform.

  • Support the global control in Bullet physics to allow automatic sleep.

  • Support Bullet physics in ray detection filter trigger collision body.

  • Fix local inertia with no additional status of rigid body in Bullet physics.

Other

  1. After the audio system removed the playback control interface on all AudioClip resources in v3.1, the developers were quite dissatisfied. In v3.3, we added the playback control interface back to the AudioClip resource by marking it as obsolete. We still hope that all developers can switch to using the AudioSource component to play audio, which is essential for future audio system enhancements.
  2. Input events were dispatched before they were received. If the event response logic is complex, it may affect the frame callback and cause the frame rate to be unstable. v3.3 has been adjusted to the inter-frame recording event queue, and the events are processed in the main loop. Queue.
  3. The View and Screen interfaces have been simplified, some platform-related interfaces have been discarded, and some of the View’s window control functions have been unified on the Screen.

Key update list

Editor

  • New version of animation time curve editing and animation editor experience optimization.
  • The curve editor of each module is unified: particles, animation, etc…
  • Optimize the editing operation of the particle curve, add a button to reset the coordinate movement range, and support directly right-click to edit the position of the key frame point.
  • Scene editor experience optimization:
    • Add a scene light switch (open by default).
    • Optimize the roaming mode of the scene camera, and add an acceleration switch.
    • Increase the display of the maximum and minimum coordinates of the model.
    • Increase the snap function of the Transform Gizmo
  • Support HDR file import, the engine internal processing RGBE codec.
  • Editor performance and experience optimization.
  • When the Image resource is changed to SpriteFrame type, the Clamp configuration of texture is automatically modified to CLAMP_TO_EDGE to avoid the problem of edge blending and black edges.
  • Support for editing animation events directly on the property panel with animation model.
  • Fix the resource leakage problem in the editor and reduce the memory usage.
  • Turn on ASTC compression texture configuration for WeChat mini game platform.
  • Optimize the performance of the hierarchy panel, add prefab nodes to directly enter the editing function of prefab resources.
  • Optimize the performance of the console panel and fix the problem that a large amount of log data slows down the startup speed.
  • Color picker supports color gamma correction preview.
  • Inspector supports grouped display of component attributes, using @group decorator
  • The inspector edit node adds the world coordinate of the copy node.
  • Supports a single grayscale image or a combination of channels of the rgb channel that displays the baking results.
  • Support custom script templates, and some preset variables can be used when generating scripts.
  • Support the installation directory with Chinese on Windows platform.
  • iOS build and fill configuration options: target iOS version, signature-related developer id.
  • Added generation platform option for Windows platform, support win32 and x64 options
  • Support script import map.
  • Added the function of clearing code cache, the entry is in the menu: [Developer → Cache → Clean Code Cache]
  • At the bottom right corner of the editor, add a hint that the engine version is inconsistent with the editor version.
  • Electron upgraded to 13.1.4.
  • Fix the occasional progress bar stop problem when building projects with m1 cpu devices.

Engine

  • Optimize the AO calculation in the standard lighting model.
  • Shadow parameters and rendering optimization.
    • Repair the shadow effect, optimize the shadow edge blur algorithm.
    • Migrate Shadow Color to Shadow Saturation single channel option, it will automatically migrate the alpha channel of the old version.
    • The soft shadow options are changed from the previous X9, X25, etc. to Soft and Soft2X.
    • The size of the simplified shadow map is set to High, Medium, Low.
    • Remove the SelfShadow option, now self-shadow calculation will be turned on by default.
  • Introduce general curve class (Curve).
  • Refactoring AnimationClip, refactoring and upgrading of animation data: prepare for the fusion of animation state machine and complex animation.
  • Optimize the first screen rendering speed of WeChat mini games.
  • Fixed the rendering problem caused by UI transparency cascade.
  • Fixed the problem of Label repeatedly adding dynamic pictures.
  • The particle curve uses unified Curve data.
  • Physics Engine.
    • Unify the behavior of each physical back-end.
    • Support CCD continuous collision detection.
    • Increase the minimum volume control of the collision body to avoid a series of problems caused by the zero scaling of the node.
    • Supports more flexible configuration options for the PhysX physical packed byte platform.
    • Support whether to allow automatic sleep in the global control of Bullet physics.
    • Support Bullet physics ray detection filter trigger collision body
  • Baking library supports Apple m1 cpu device.
  • Byte game audio is implemented using the WebAudio interface.
  • Event system.
    • All input events are collected and processed in the main loop of the game.
    • AudioSource supports monitoring audio start and end events AudioSource.EventType.STARTED & AudioSource.EventType.ENDED.
    • SystemEventType and macro.KEY are deprecated, use SystemEvent.EventType and KeyCode instead.
    • Deprecated SystemEventType, and some system event-independent enumerations under SystemEventType, please use SystemEvent.EventType.
    • Obsolete static properties Event.TOUCH, Event.MOUSE, Event.KEYBOARD, Event.ACCELERATION.
  • Simplify the discarded part of the view and screen interfaces, and implement them in the platform adaptation layer (PAL).
    • Obsolete view.adjustViewportMeta and view.isAutoFullScreenEnabled.
    • Obsolete view.enableAutoFullScreen, please use screen.requestFullScreen.
    • Obsolete cc.winSize, please use view.getVisibleSize
    • Discard screen.autoFullScreen, please use screen.requestFullScreen.
    • Discard screen.disableAutoFullScreen.
  • Fix the memory leak that may be caused by removing the Spine animation (thanks to Github PR from @hailua54).

Infrastructure

  • Native rendering scene module: optimize the performance of the native platform.
  • Use controllable off-screen FrameBuffer for content rendering.
  • Support MSAA anti-aliasing based on the off-screen FrameBuffer (enable the project macro Enable Antialias): Note that if the project macro is enabled before, the performance loss of the native platform will increase after the upgrade to 3.3, which is normal.
  • Built-in Frame Graph rendering customization layer, subsequent versions will be connected to the rendering pipeline, and the customization interface will be opened to users.
  • Support Subpass in Vulkan & Metal backend.
  • Add the ability to debug with iOS Simulator on Apple devices with M1 CPU, you need to refer to Document Usage.
  • The binding generator is fully compatible with python 2.7/3.x (64 bit).

Breaking changes

  • Building compressed textures no longer has a default png image. If you use a project with this feature, please add a default image for the existing compressed texture configuration in the project configuration (from Forum Feedback.

  • Currently supports direct import of HDR textures. If you used an RGBE formatted .png before, please replace with the original .hdr textures.

  • We fixed an FBX resource import problem: If the FBX model contains multiple animations, the second and subsequent animations incorrectly include all the animation data of the previous segment.

    Note: If animation segmentation has been configured, it may need to be adjusted. However, we have not received feedback from external developers on this issue.

Known Issues

  • The native platform Bullet back-end ray detection performance has decreased. We will fix this problem in the next minor version. You can temporarily switch to the PhysX back-end for use or reduce the number of rays per frame.
  • The startSpeed, startRotation, gravityModifier properties of 3D particles may display abnormally in Curve mode. This problem will be fixed in the next minor version.

Upgrading

Cocos Creator 3.x version has been officially released, version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to update the version, providing bug fixes and new mini-game platform support to ensure that your project is successfully launched; in 2022, we will continue to provide developers with the key to 2.4 Bug fixes to ensure the smooth operation of online games! Therefore:

  1. Existing 2.x projects can continue to develop without a compulsory upgrade to 3.0.

  2. For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.

Upgrade from version <3.1.0

  • Starting from v3.1, the priority attribute of the UITransform component has been deprecated. If you need to adjust the order of the node tree, please use the setSiblingIndex method. Prior to v3.1, nodes that were created by code and depended on the priority attribute may have inconsistencies in the performance of the node tree. Please adjust them manually.

  • RenderTexture will be inconsistent between positive and negative on different platforms. In order to solve this problem, Creator has added the SAMPLE_FROM_RT macro to the effect. When using RenderTexture, you need to set the SAMPLE_FROM_RT macro to true, and each backend will be uniformly adapted to The correct effect.

Upgrade from version <2.4.5

Cocos Creator 3.x version has been officially released, and version 2.4 will be used as the LTS (long-term support) version, providing continuous updates for the next two years! In 2021, 2.4 will continue to be updated to provide bug fixes and new mini-game platform support to ensure the successful launch of your project; in 2022, we will continue to provide developers with 2.4 key issue fixes to ensure that games that have already been launched Smooth operation! therefore:

  • Existing 2.x projects can continue to develop with peace of mind, without a compulsory upgrade to 3.0.

  • If you want to upgrade an existing 2.x project to 3.x due to project requirements, you can use the 2.x resource import tool provided by Creator. This tool will support the perfect import of old project resources and the auxiliary import of codes. Code-assisted import will convert js into ts, add component type declarations, attribute declarations, and function declarations. The references of components in the scene will be preserved, and the code inside the function will be imported in the form of comments, which can reduce the developer’s upgrade Difficulty. For detailed upgrade instructions, please refer to the Upgrade Guide.

  • For new projects, it is recommended to use version 3.0 for development. We will continue to optimize the development experience and operating efficiency of 3.0 to support the smooth launch of heavy games of different categories such as 2D and 3D.

The upgrade operation of Cocos Creator to the project is irreversible. Please submit or backup the old version of the project before upgrading. Most projects can usually be upgraded automatically, but because the project is inevitably unique, developers should try and evaluate the new version of the engine in advance according to the needs of the project. In addition, for stability considerations, it is recommended that projects that are about to go online or already online should be carefully upgraded. For detailed upgrade instructions, please refer to the Upgrade Guide. Those who encounter difficulties in upgrading, welcome to give us feedback and we will try our best to assist.

Downloads

Dashboard for MacOS

Dashboard for Windows

Download Creator from Dashboard

If you are not using Cocos Dashboard please upgrade! It is worth it. If you cannot yet upgrade please use these direct download links for v3.3.0 MacOS or v3.3.0 Windows.

Cocos Dashboard

The Cocos Dashboard serves as a unified downloader and launch portal for Cocos Creator and Cocos Creator 3D engines. 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:

Developer’s can choose to use a different version of Cocos Creator when creating a new project:

4 Likes

Amazing version!

Thanks a lot Cocos Team. Cant wait to start develop on it.

Btw, what is the Animator System and the Animation State Machine?
Where I can find those? All I see is the new Curve in the animation timeline…

Animation state machine isn’t in 3.3. It is coming in 3.4.

Sorry we delayed animation state machine

Hello again,

I found issue with CurveRange class.
The best way for you to see the issue is to create a new particle system effect and under “Bursts” create a new item and observe the “Count” property. On 3.2.1 It works fine.
I got this issue when I was tried to create my own serialized class item with custom properties. Everything worked but not the CurveRange.