Editor Improvements
Cocos Creator 3.7.0 is another milestone on our path of constantly challenging and improving ourselves. In order to support a larger, and more realistic 3D world, we have made improvements in rendering effects, global illumination, LOD, animation systems, physics systems, and performance in this version. There are large numbers of updates in V3.7.0, so only important ones are listed here. You can also view the update list in our GitHub repository: GitHub update list.
For a more realistic 3D world, global illumination on dynamic objects is needed. Unlike lightmaps that only support indirect light baking on static objects, light probes are used to apply indirect lighting on characters or other dynamic objects. Light probes capture light information in the space first, and then apply the approximation on the dynamic objects. This approach has advantages of good processing performance at runtime and fast precomputation. For more details, please read our document: Light Probe.
Characters with light probes:
Spheres using light probes with instancing:
Light probes editing:
Another technique we introduced in 3.7 to improve rendering result is reflection probe. Especially for the scenes with reflective materials, reflection probe improves the immersive feeling dramatically. Reflection probes take a baked result of the nearby environment from a certain point, and store a texture of the surrounding environment. Then apply this texture on the objects that have reflective materials to achieve a realistic look. There are two modes: a cube mode that requires baking of the surroundings, and a live planar reflection mode used mainly for planar surfaces like floors and water. For more details, please read our document: Reflection Probe.
Level of Details (LOD) is a technique that reduces the number of GPU operations needed to render distant meshes. LOD is a common way to improve the performance of large scenes by adjusting the precision for models according to their proportion on the screen. It saves rendering resources by displaying low precision resources when objects are far from the camera. When a node uses LOD, the engine would display the appropriate LOD level based on the screen size . For more details, please read our document: Level of Details.
The purpose of CSM is to use different shadow resolutions for different layers. A problem this leads to is that the layer switching point could be easy to spot and it makes the shadow looks unnatural. In 3.7, we added support for a smooth blend transition between layers, so CSM layers switching looks more natural.
We introduced Bloom post effect and FXAA on the new customized render pipeline that based on RenderGraph. Unlike the old render pipeline which is hard to customize, the new one is designed for users to customize and expand features easily. Adding post effects like Bloom is never been this easy as well.
We support native engine for the scene editor in V3.7.0, scene editor can run with the C++ based Windows/Mac native Cocos engine instead of JS/WebGL based HTML5 engine now. This means scene editor's performance can improve to the next level with native advantages. It better prepares users for the larger 3D world. This feature currently is in experimental stage. You can turn it on with the option "Use native engine for scene editor" at menu Preferences - Laboratory. After it is turned on, you can preview and debug with multiple native viewport.
We updated extension manager in V3.7.0. This all-new extension manager added support for extensions hot update, Project dependencies auto install, improved UI, and update version selection. It makes project distribution and extension management easier.
For better version control, we updated some rules for extension management:
No longer reading global extensions from global folder. For projects on older versions, it would automatically copy all the global extensions into the project on update time. This migration feature is supported with Dashboard 1.2.4. Please make sure Dashboard is automatically updated to the version 1.2.4 before the project update.
Project's extension dependencies would be recorded. If a project is opened from Dashboard version 1.2.4 or above, dependencies would be installed automatically. For now, only official extensions are supported, extension from store will be supported in later versions.
For extensions that is under development, users can use the Developer Import button to create soft links for external extensions which are under development. This feature allows extension developers to use an external extension directly without copying them to the project.
If you need to share extensions from the store, it is the same as previous version. Users need to install extension manually on a different device, or upload extensions to GitHub.
Splash settings are used to display Cocos or your brand's logo during the game initiation time. At the same time, we optimized the first screen loading time to improve user experience. From version 3.7, we started to renew some previously under maintained features based on the users' feedbacks, such as Splash settings. Here are the main updates:
Temporary removed the user questionnaire interface, users can switch on/off for the splash display.
Removed splash background color setting. Currently it only support black.
Minimum display time for splash updated to 500ms
Project setting interface:
Building interface:
Support compressed textures to use Mipmaps. After the option is turned on, the editor would automatically generate mipmaps with compressed textures, and then export at the same time.
Added support for the .exr image format.
Support green channel flip config option for the image assets.
After moving or renaming the ts script in the editor's explorer, editor would automatically updates the import path now. To enable this function, please enable this switch in the Laboratory section of Preferences.
Added new mesh optimizer face reduction algorithm: simplify. New algorithm does not change prefab structures, and improved face reduction result for fbx.
In 3.7, users can inspect UV for different channels in the property inspector. Now you can just simply select the imported mesh to inspect uv channels to see weather it is within (0,1) space or if it has overlap.
Added a new animation asset type: animation variants, it enables the reuse of the same animation graph on different characters.
Introduced improved animation state machine 2D blend preview panel
Animation state machine now supports node copy feature.
Class AnimationController added a method to dynamically overwrite animation clips in the animation map.
Class AnimationController added a method to query the number of layers in the animation map.
Animation diagram editor: add a right-click menu to change the motion state to sub-statemachine state
Fixed and optimized some status query method
Updated CurveRange building logic, deferred building curve data, and optimized internal decorators to improve particles system initialization speed.
3.7 and 3.6 Particles initialization speed compare (The shorter, the faster, and more modules the particles use, the more time it saves in 3.7).
Besides the improvement on performance of the particles system, we also improved performance for other modules, such as those listed below:
Note: In the the performance testing result graphs below, we increased the load for each platform step by step during the testing. Different platforms might have a different load increase step. The performance result shows in frames per second, therefore, higher value means better performance.
3D model rendering
3D physics
Added fixed constraints to the physical system.
Updated PhysX backend implementation for Point2point constraints to use SphericalJoint.
Added lineStripCast support for Physical system.
Default physics Material can be set through file in project setting now.
Fixed the problem that bullet rigid-body cannot set to Sleep.
Optimized bullet MeshCollider setMesh func to run x100 faster.
Fixed bullet safe delete bug.
Added machenism to dynamically set the convex property of the MeshCollider after rigid body generation become ineffective.
Unify the zoom behavior for cylinder collider and cone collider on each physics backend.
Fixed the problem that PhysX native backend sometimes pollutes with large number of error events.
box2d shape-2d apply() now take consideration of node/collider status.
box2d syncRotationToPhysics uses rotation from scene node's world quat.
Fixed box2d shape aabb not accurate.
Fixed box2d joint2d anglelimit conversion from degree to radian.
Fixed physics2d-builtin shape sets group order. Now it first check collider then addShape.
Optimized Physics2d Box2d::syncSceneToPhysics().
Optimized builtin-2d-physics removeShape() speed.
Added new polygon partition algorithm: Hertel Mehlhorn.
Made world origin as physics-2d joint's connected body.
Physics-2d now supports switching back-end in EDITOR.
【Scene Rendering】Added sorting component and provided sorting layer order editing interface. Users can use this component to control the rendering order of MeshRenderer or SpriteRenderer.
【Scene Rendering】Added FXAA HQ to fix shadows under objects in some cases.
【Scene Rendering】Optimized render associated default settings, such as PBR materials default values, default skybox, and skylight direction.
【Create Project】Added a new High Quality 3D template, with shadows and fine lighting options default on to achieve better render quality. Save the time of setting different shadow and lighting options on the scene, lights, and objects.
【Build】Support building and publishing on a new platform: Facebook Instant Games. For destails, please check: 《Release game to Facebook Instant Games》.
【Build】WeChat games supports high performance mode now.
【Build】Support interrupting a build task by clicking the "x" button during the build process.
【Build】Support build task queuing.
【Scene Edit】Added scaling properties for the reference image.
【Scene Edit】Added more exposure related properties to the scene camera.
【Editor】Added more exposure related properties to the scene camera.
【Editor】Support multi selection edit for asset folders
【Editor】Moved physics configuration in project settings to physics material. Old configuration will be automatically generated as custom physics material.
【Editor】Moved joint texture layout to project settings
【Editor】Moved build extension generation case to create extension panel. After click on the create extension menu item, users need to fill the template and other settings in the panel.
【Framework Ability】Added new “Mobility” property for scene node.
- Static: The renderer views a static node as an object or light that would not move. It only participates in static light baking with direct and indirect light.
- Stationary:The renderer views a stationary node as a object or light would not move. An light source with "stationary" setting participates only indirect light baking. Direct light are still calculate during the runtime.
- Movable: The renderer views a movable node as a object or light would move over the runtime. It only affected by dynamic lighting.
【Framework Ability】Optimized the layout refreshing logic. Removed the condition that a layout must have children to be refreshed.
【Native Framework】Switch to swig to generate JS bindings code, the old bindings-generator tool is now deprecated. The time cost of generating all JS bindings code is reduced to 3~5 seconds.
【Native Framework】Optimized construction and destruction of se::Object, removed unused hash operations.
【Native Framework】Added se::Object:createObjectWithConstructor method to create JS objects via JS constructor in CPP code.
【Native Framework】Support passing command-line arguments to executable files on local desktop platforms (Windows, Linux, macOS).
【Native Framework】Added support for se::Object to create, modify and check ES6 Map/Set.
【Native Framework】Provided cc::event::EventBus and cc::event::EventTarget to simplify event scheduling within the engine.
【Native Framework】Removed the BaseNode class and use the Node class instead.
【Native Framework】Downloader supports abort function.
【Native Framework】Support for ios websocketServer.
【Native Framework】Added network module to function-corpping.
【Native Framework】Added pretype validator for setUniform.
【Native Framework】Optimized engine package size.
【Documentation】Complete some missing API documentation and optimize API documentation content.
In version 3.6.3, we have added support for the Taobao mini program platform and also fixed a series of critical bugs, so we strongly recommend all 3.6 users to upgrade.
- Supported Taobao mini program creative interactive platform,refer toDocumentation - Publish to Taobao mini program creative interactive
- Fixed a crash caused by creating a Spine/DragonBones component on a Node that is not active. #13370
- Fixed DragonBones component refreshing problem in editor #13371
- Fixed Spine/DragonBones component material updating issue on native platform #13416
- Fixed the resource release problem of Spine/DragonBones in cached mode #13419
- Fixed the problem that the skeleton animation using JointTextureLayout will flicker. #13418
- Fixed updateInstancedAttribute binding on Model class #13347
- Added sebind::callFunction with jsThis parameter #13473
- Fixed MessageQueue deadlock #13479
- Fixed the problem that the planar shadow was lost after the model used GPU INSTANCING #13480
- Fixed the problem that when music is played using AudioSource component and the audio will be not stopped when exiting #13528
- Fixed the problem that audio cannot be played by sliding on web platforms #13517
- Fixed an issue where the audio did not stop playing before it was destroyed on the mini-game platform, as well as skipping some unnecessary pause calls #13162
- Fixed the problem that some buttons on the Nintendo Switch Joy-Con are not working on Android #13877
After the release of v3.6.0, we received a lot of feedbacks from developers about user experience, performance, issues and so on.
Thank you for your continued support.
In v3.6.1, we fixed many of the important ones from these feedbacks and recommend all users who are using v3.x to upgrade.
The following is the main content of this update.
Cocos Creator 3.6 is an important milestone for Cocos Engine, and it also has the longest iteration since Cocos Creator 3.0. This version has significant improvements in rendering, editor features, performance, and enhancements in stability and compatibility of the engine. Due to the large number of updates (engine: 1110 PRs, editor: 678 PRs), only the relatively important ones are listed here.
Surface Shader uses a unified rendering process and structure that allows users to write shaders that focus onsurface material without anything related to the lighting model. The advantages over the older version (Legacy Shader) are easier to write and maintain, better version compatibility, and less prone to rendering errors. And you can get a lot of public features from the unified process, such as unified environment lighting, rendering debug view etc.Surface Shader also makes it easier to provide a variety of common and complex materials to users in Cocos Creator.
The regular shadow map has a serious drawback: when the projection area is large, a very high-resolution shadow map texture is needed to achieve a good shadow effect, which may exceed the limits of the hardware capacity. If the resolution is not increased, the shadows will be jagged, shapeless and unclear, but reducing the projection area will result in a very short shadow distance, objects a little further away will lose their shadows. Adjusting the balance between shadow distance and shadow quality is a major headache and it has been in previous versions.
CSM (Cascade Shadow Map) divides the view frustum into multiple blocks from near to far, with a smaller projection area for the near block and a larger projection area for the far block, which is equivalent to an adaptive shadow map, thus increasing the utilization of shadow map texture several times. It can have a very precise shadow for closer objects and a just fine shadow effect at a longer distance from the view point, so developers no longer have to spend their time on shadow parameter settings.
This feature provides a variety of custom display modes to help users investigate issues of material, lighting, and shadow display much faster. It also allows users to view specific scene information more clearly and provides a reference basis for optimization decisions.
Since the specular of direct lighting are using GGX BRDF model, for environment lighting the same BRDF must be used for spherical convolution in order to make the lighting effects of both light sources correspond. In addition, by storing the reflection information of different roughness in the corresponding mipmap level, the convolution calculation can fix the following problems compared to the automatically generated mip maps.
As shown below:
With the benefit of Surface Shader, we can fully extend the PBR lighting model. In V3.6 there is complete support for isotropic and anisotropic materials and lighting models of Direct Lighting and Environment Lighting. You can work with Substance PBR material library to create brushed metal, hair, silk, etc.
V3.6 has updated a new version of editor user interface, and has made an all-round reconstruction in order to achieve a "more coordinated" visual system, "more scientific" visual feedback, and "more immersive" interactive feeling. In the future, we will continue to standardize design based on Cocos' design principles, continue to update and iterate, and continue to optimize core interactions and workflows.
Development efficiency is a core value that Cocos Creator places great importance on, and in V3.6 this has been further improved. In addition to the "Preview in Browser" and the "Preview in Simulator", developers can now use the "Preview in Editor" to preview the project. In this mode, the scene manager will run the code directly, allowing developers to debug scenes in real time. While bringing a seamless preview experience, it also makes up for the shortcomings in debugging.
This feature is currently in experimental stage, welcome to give us more feedbacks about it. In the future, we will also continue to focus on development efficiency and continue to improve user experience in script compilation, project debugging and build release.
Animation Editor adds the ability to embed players, developers can embed other particles and other animations in any animation. Moreover, it can be programmed in a way like editing tracks in video editing software, with free adjustment of duration and playback position.
After editing, the content of the embedded player will play along with this AnimationClip, which is supported in both Animation component and Animation Graph. This feature is also available for animations from FBX, allowing for more flexible effects control and solving the problem of imported animations being difficult to re-edit.
Both particle and animation players are currently available in V3.6 and can be enabled in the Preferences > Laboratory.
To better produce multilingual versions of projects, V3.6 provides a built-in multilingual tool, Localization Editor (L10n), which currently supports text translation and resource replacement. It is positioned to deeply integrate with Cocos Creator and improve the efficiency of translation through highly automated tool. In a codeless way, it's very intuitive and lowers the usage threshold.
Main Features:
Localization Editor is currently in the experimental stage and will provide richer localization capabilities in the future, we look forward to your feedbacks.
1. Support for Surface Snapping and Vertex Snapping
2. Support for box selection, you can quickly select multiple objects
For higher performance, more realistic rendering, better compatibility, more scalability, and better productivity, theCocos Engine team has been iterating and refactoring the core engine framework continuously since the release of version 3.3.
It took the engine team more than a year to refactor the engine in multiple phases and modules to achieve a significant all-around improvement while still maintaining compatibility with old projects.
While bringing significant performance improvements and rendering enhancements, it also lays the groundwork for further iterations of the engine in the future.
From the microcosm of V3.6, we can see the determination of the Cocos Engine team: to insist on constant self-change to keep up with the update of hardware and the changing needs of our users.
Another important milestone for V3.6 is that it reaches the same level of 2D rendering performance as V2.x. This means that V2.x users can upgrade to V3.x with confidence. Based on the work of converting infrastructure to native C++ implementation, we have made the 2D rendering data structure, 2D batcher, and rendering process all native so that the 2D batching and rendering processes are performed natively to achieve V2.x's performance. At this stage, there is still some legacy work left to be done, such as supporting Spine batching and fixing iOS WeChat drawbacks, but this also means that there is a higher ceiling for 2D rendering performance V3.x needs us to break through.
Native extensions can link to a developer's existing C/C++ code base, bind interfaces to the JS layer and be reused across projects.
With the power of CMake, extensions can flexibly integrate source files, static libraries or dynamic libraries. C/C++ interfaces can be exported directly to the scripting layer using the traditional auto/manual binding mechanism, or using the new sebind high-level interface added in V3.6. Once developed, the native extensions can be distributed individually as zip packages or packaged as editor extensions.
Please take a deeper look into the usage manual and the example case.
As the infrastructure for the next-generation custom rendering pipeline of our engine, we have wrapped the higher-level RenderGraph on top of FrameGraph to provide a series of capabilities and APIs for building rendering pipelines more easily. Includes typescript based cross-platform pipeline description, material system pre-processing, automatic management of various render states, transient render resources lifecycle management, and other capabilities. We have already implemented our web version forward and deferred rendering pipeline with RenderGraph. In future releases this year, we will replicate the native platform pipeline in its entirety, and open up the built-in pipeline customization capabilities based on RenderGraph, such as adding post-processing effects. At the same time, the ability to produce an entirely customized rendering pipeline based on RenderGraph will be fully open to developers.
Currently, you can select forward or deferred pipeline by setting `CUSTOM_PIPELINE_NAME` to `Forward` or `Deferred` in the project's Macro Configuration, and you also need to turn on "Custom Render Pipeline (Experimental)" in the Feature Cropping. The usage details can be found in the usage documentation.
When importing materials, V3.6 supports Diffuse-Specular material models (including Phong and SpecularGlossiness PBR), which can intelligently convert material parameters to standard Metallic Roughness PBR models. This allows you to get a material representation close to that of the original DCC software without changing the lighting model.
Due to the limitation of the number of uniforms, in CPU computed skeletal animation, when the number of skeletonsexceeds a certain value, it is not possible to store all the skeleton data by uniforms at once, so in the previous version, we may split the meshes and bones. We often received feedback that one of our character models would take up multiple draw calls, mainly because it was automatically split here. What's more is that since splitting cannot be done at runtime and can only be pre-processed, our splitting criteria can only be used as a reference for lower hardware devices and drivers (iPhone 6 WebGL), which is very limited for the number of skeletons.
Therefore, Cocos Creator 3.6 has made a strategic optimization of this issue as follows:
Note: Using textures to pass skeletal animation data requires the ability to access textures in the vertex shader. This feature is minimally supported by OpenGL ES 3.0, WebGL 2.0. But relies on GL extensions, it has almost 100% coverage on devices which only support OpenGL ES 2.0 and WebGL 1.0 , so there is no need to worry about compatibility issues.
This option is currently retained only to maintain compatibility with old projects and will be considered for removal when appropriate.
V3.5.1 adds two far-reaching experimental features without affecting the stability of the original functionality of V3.5.0. The first is the Smart Material Conversion which permit to import DCC default materials from FBX, restoring the materials and appearance created by artist in various DCC tools. The second is a series of built-in Surface Shader material resources, which will be the cornerstone of material customization in the future. In addition, we have shipped with this version a series of critical fixes, experience optimizations, and numerous documentation optimizations. We strongly recommend that all 3.x users upgrade.
FBX Smart Material Conversion is a feature in the model importer that assists in converting materials. It maps some of the standard materials exported from various DCC tools directly to Cocos Creator's built-in materials, restoring as much as possible the material effects seen by the artist in the DCC tools. This feature supports some of the standard materials in mainstream DCC tools: 3ds Max, Blender, Maya, C4D.
You can compare the effect of the Standard Surface material in Maya after importing it into Cocos Creator:
Appearence in Maya tools
Appearence in Cocos Creator after turning on FBX Smart Material Conversion
For more information on how to use this feature, please refer to the usage documentation.
We will also continue to optimize the model and material import experience in 3.6, so stay tuned.
Since version 3.0, many developers have experienced the problem of materials not working properly during the upgrade process and need to migrate. The root cause of this problem is that the engine's lighting model and surface material calculations are being adjusted along the way, which affects all related material effect codes and also affects the compatibility of these materials when reused by users.
In order to improve the compatibility of the material system, we have added a series of Surface Shader resources that abstract the lighting model and surface material calculations in the engine, so that future developers can use these built-in headers and functions to greatly simplify the effect resources they write. At the same time, due to the abstraction, cross-version compatibility will also be more secure.
Please refer to the usage documentation for more details on the use of Surface Shader.
In v3.5.0, we updated the API documentation page with a new version, which was well received by developers with some important feedbacks. In v3.5.1, we continued to do a lot of documentation checks, with nearly 40 PRs to further complete some remaining API documentation and fix some documentation errors. We hope to bring developers a better and better documentation experience.
1. Fix the problem of slow preview speed on browsers
2. Fix the problem that the preview is not available on Mobile Safari.
3. Fix the problem that some materials cannot be upgraded automatically from 3.4.2 or lower version
4. Fix the possible error and performance problem of 3D particle system when switching states
5. Fix the light and shadow effects of deferred pipeline.
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.
For 2D users and 2D projects, we have improved the user experience in the editor. It's been a very popular request for 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:
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.
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.
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:
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.
In v3.5, we assembled all platform-related low-level adaptations into Platform Abstraction Layer, including system info, window adaptation, audio, input, etc. The distribution of system-level events is also unified. This is a low-level refactorization, developer-level API hasn't been affected, but it will allow Cocos to adapt to new environments more easily.
We continue to improve performance in v3.5, here are the most visible ones.
We are genuinely sorry that the previous API documentation usage experience is relatively poor, making the user's learning curve steeper. In v3.5, we are using a new generator to make it more clear and more reliable. It's just a start, and we will continue to improve the content of API documentation in the following months.
Please take a look at our new API documentation page.
To better support open source community, we have merged our engine native repository into engine repository, and it has been transferred to cocos/cocos-engine. Since now, we will be more open by maintaining public issues and public projects. If you are using customized engine, you must pay attention to this change, from v3.5, you only need to clone one engine repository. All customizations in typescript engine can be rebased to v3.5, but previous customizations in native engine must be reapplied manually through diffs. You can refer to the engine customization documentation.
From version 3.5.0,please do not set an using node as the target of sp.Skeleton’s (or dragonBones.ArmatureDisplay) sockets directly, otherwise the transform parameters (Position, Rotation and Scale) will be overritten. The correct way is creating an empty node as the target node, and setting components which to be attached to Skeleton component as children of the target node. For more details and examples please read the Spine Attachment documentation.
In v3.4.1, we improved the data submission and batching strategy of 2D rendering components. Since these are basic changes, it caused some problems with Tiledmap
and Graphics
. Also, the performance of Spine and Dragonbones on the Android browser has not been improved, these problems have been resolved in the v3.4.2 version.
In addition, under the active testing and feedback from the community, we have also fixed some editor-related experience problems, such as memory leaks caused by script recompilation, and resource copying problems when large projects are built on the iOS platform. Thanks again to the community developers.
Developers currently using v3.4 to v3.4.2 should upgrade to get a better stability and development experience.
Recently, we have conducted extensive exchanges with the majority of users on forums and offline, and received many pertinent suggestions and criticisms. In response to some product usability issues that have been reported by users recently, we have planned version 3.5 to deal with it as soon as possible, and the public beta will be launched soon. 3.5 will iterate in small steps on the basis of 3.4, improve the usability and ease of use of the product, and ensure stability and compatibility as much as possible.
In the remaining releases for this year, the engine team will also focus on the business needs and pain points of developers, do their best to take care of the needs of various types of projects, and benefit all users. In particular, some projects encountered problems such as heat generation, native performance, package body, editor stability and workflow, which will be mainly solved this year.
In v3.4.1, we focused on fixing problems reported by users after the release of v3.4.0 and improving the overall stability. At the same time, in order to help v2.x developers to upgrade to v3, we adjusted the batch strategy of 2D rendering components, which has greatly improved the overall performance of 2D rendering. Compared with v3.3, the improvement rate ranges from 20% - 70%.
For the performance test results, we also compared the v2.x version. Take a look at the comparison charts below, the performance of most of the tests has been close to or the same as that of 2.x, and a small number of tests have exceeded it.
Legend explanation: All tests are done on low-end and mid-range computers. The four intervals of each icon are Android Web, iOS Web, Android WeChat, and iOS WeChat. In addition, the overall performance improvement on the native platform will also be greatly optimized in the native version of 3.6 [GitHub PR].
In addition, in order to allow WebGL 2.0 to be enabled on WeChat mini-games in the future, we have also modified the build options of the WeChat platform and added an experimental option: support to enable WebGL 2.0 following the configuration of the project module, and to turn off the reduced package by default. If you choose to follow the configuration of the project module, and the WebGL 2.0 rendering backend is checked in the project module, then the future and other WeChat environments that support WebGL 2.0 can be successfully enabled.
Cocos Creator v3.4 is the final version we released this year for Creator. Stability is our most important goal! The development and testing cycle of this version is longer than any previous version, and it has been publicly tested in the community for a month. Thank you to all the developers who participated in the test!
In v3.4, not only important functions such as the Marionette animation system have been added, but also a lot of work has been done in terms of product experience, stability, performance optimization, and infrastructure levels. In addition, we listened to the community and fixed a number of problems that have received a lot of feedback. Our devoted engine team believe 3.4 version will become a great milestone in terms of game development user experience!
The all new animation system is the most important feature in 3.4. We named it Marionette, which means 'puppet', which both captures the essence of the animation system and also by itself, a long-standing traditional Chinese art form. It has appeared since the Tang Dynasty and has been circulating for thousands of years, and it is still an important opera form till this day in the Minnan region (where our company is located!). With Marionette, we also hope that developers can precisely control the game characters and enhance the game’s narrative ability.
In version 3.4, Marionette supports the key features of an animation system, including state machines, sub-state machines, animation node graphs, trigger variables, multidimensional blending, etc. Of course, more new features are already under development, such as animation levels and masks, humanoid bones and IK support. To help you learn the Marionette animation system, we have also prepared detailed documents, a [Demo](https://github.com/cocos-creator/MarionetteDemo) and video tutorials.
In terms of editor experience, we have done a lot of fixes and enhancement for user experience. Features and experience optimizations include:
Starting from v3.0, Creator has been elevating and polishing its rendering capabilities. In v3.4, in order to improve the rendering quality of the engine, we brought a series of important upgrades. In particular, the enhancement of the lighting model will make the rendering more refined for our engine.
manually set ambient light vs automatically generate diffuse map
HDR on vs HDR off
Denoise on vs Denoise off
In terms of rendering pipeline, FrameGraph is an infrastructure introduced in v3.1. After several iterations, in v3.4 we formally docked both the Forward and Deferred pipelines with FrameGraph. Below is a simplified deferred pipeline FrameGraph:
Currently, the engine’s deferred pipeline contains a total of 2 calculation passes and 7 rendering passes. Although it is not complicated, it can already highlight the role of FrameGraph. On the one hand, it simplifies the code organization of the pipeline layer and reduces maintenance costs; on the other hand, it also reduces the cost of developers when customizing pipelines. Based on FrameGraph, the Huawei HMS CG Kit team continued to contribute Clustered Light Culling to the deferred pipeline in v3.4 to optimize the calculation performance of dynamic light sources. It can support hundreds of dynamic light sources on the same screen on the mobile side (Kirin 990 chip in Sponza scene Running 1000 dynamic light sources can reach 40 fps).
In addition, the Subpass in the rendering pipeline is also implemented based on FrameGraph. The second major advantage of FrameGraph is the deferred mode for rendering (different from the deferred rendering pipeline). The engine can analyze the rendering process and optimize it before executing the complete rendering process. Currently, mobile GPUs share system memory with CPUs. One of the hotspots of power consumption is the reading and writing of video memory. Subpass optimization is to make full use of the GPU’s Tiled cache to reduce the power consumption of video memory read and write. When the write and read resources of two adjacent rendering Subpass are the same in-frame resource and will not be referenced by other passes, this Resources can be read and written directly through the Tiled cache without wasting any memory bandwidth, which can significantly reduce power consumption. This automatic derivation of resources and rendering processes is exactly the advantage that FrameGraph brings.
Stability is the primary goal of the v3.4 version, so we have also fixed some flaws that have been troubling for a long time, pushing the stability of the engine to a new height. Here are some of the more important fixes:
In addition to fixing important issues, the overall performance of the engine has also been improved, such as 2D rendering and batch efficiency, physical performance, iOS Web 3D scene performance, and Android partial scenes. Here are some test results of 2D rendering:
Due to the adjustment of the relevant logic of web platform screen adaptation, we have changed the web-related index.html template, which includes preview templates and building web platform templates. We have done related compatibility processing inside the engine cocos-creator/engine#9830
This process will ensure that there is a fixed div structure inside index.html:
<div id="GameDiv">
<div id="Cocos3dGameContainer">
<canvas id="GameCanvas"></canvas>
</div>
</div>
If GameDiv/Cocos3dGameContainer is missing, it will be automatically filled during runtime.
Note: this div structure is a private structure managed internally by the engine. We hope to keep this structure intact and not customized. If other web tags are added to this structure, it may cause some uncertain compatibility issues.
The newly added IBL sampling noise reduction algorithm currently has some problems with the compatibility of the iOS Web environment. Since it was found that it was not merged in the version later, the support for iOS Web will be completed in the follow-up 3.4.1
Currently, the deferred pipeline is still in the process of high-speed iteration, and there are still some problems with function and platform compatibility. It is not recommended to use it in actual projects for the time being. Some of the current known issues include some particle blending modes that cannot be rendered, builtin-toon materials are not supported temporarily, some low-end platforms and devices have compatibility issues, spotlight shadows are not supported, and 2D & 3D camera mixing issues.
The main function of this version is to allow native applications built by the engine to support iOS 10+. In order to support iOS 10+, the engine code removed the dependency on C++17.
Some functions of the engine depend on C++17, and some functions require using the Android API. For the convenience of developers, the function configuration interface of the editor prompts for these dependencies. For example, when Android uses the delayed pipeline, Android API 21+ is required. If the configuration chooses to use the delayed pipeline, the editor will prompt the required Android API version:
Of course, we also provide a complete document explaining the requirements of each functional module for the Android API and C++ versions. For more information, please refer to the native options documentation.
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:
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.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.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:
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.
AnimationClip.createWithSpriteFrames
failed to dynamically create animationinverseTransformPoint
function errorbackgroundImage
property was not synchronized when modifying SpriteFrameEventKeyboard.isPressed
propertyIn 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 .
2. Add a scene light switch (open by default).
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.
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:
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:
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:
v3.1
v3.3
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.
AudioSource.EventType.STARTED
& AudioSource.EventType.ENDED
.SystemEventType
and macro.KEY
are deprecated, use SystemEvent.EventType
and KeyCode
instead.SystemEventType
, and some system event-independent enumerations under SystemEventType
, please use SystemEvent.EventType
.Event.TOUCH
, Event.MOUSE
, Event.KEYBOARD
, Event.ACCELERATION
.view.adjustViewportMeta
and view.isAutoFullScreenEnabled
.view.enableAutoFullScreen
, please use screen.requestFullScreen
.cc.winSize
, please use view.getVisibleSize
screen.autoFullScreen
, please use screen.requestFullScreen
.screen.disableAutoFullScreen
..png
before, please replace with the original .hdr
textures.startSpeed
, startRotation
, gravityModifier
properties of 3D particles may display abnormally in Curve mode. This problem will be fixed in the next minor version.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:
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.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.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:
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.
Cocos Creator v3.2.1 is the result of merging v3.1.2 into v3.2.1, and continues to bring a more stable experience on the major version branch. Both v3.2 users and v3.1.x users can upgrade without pain.
In addition, the v3.3.0 version has entered late testing. This version has some very important updates that should be known in advance:
Cocos Creator 3.2 officially supports HarmonyOS, becoming the world’s first game engine that supports HarmonyOS. At the same time, Creator has conducted in-depth cooperation with the Bytedance platform to support the use of PhysX provided by the platform in byte games with experimental features! All developers are welcome to use and experience!
In version 3.2, Creator supports one-click packaging of games into HarmonyOS applications. After configuring the HarmonyOS SDK and NDK paths, select HarmonyOS one-click packaging in the build panel. For detailed operations, please refer to the publishing HarmonyOS applications documentation.
Cocos Creator and the ByteDance platform have conducted in-depth collaboration, with the experimental feature in v3.2 to support the use of PhysX physics capabilities provided by the ByteDance platform in ByteDance Mini Games, optimizing the performance of physics calculations, and having a nearly 100% performance improvement compared to Bullet physics
Multithreading can be enabled in the build panel:
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:
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.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.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:
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.
Cocos Creator 3.1.2 mainly fixes the stability problems of v3.1 and optimizes the editor workflow. All developers are welcome to use and experience! Please make a backup of relevant files before upgrading! The following is the detailed update content.
v3.1.2 is a version that optimizes experience and performance on v3.1.1. The update content of this version is not included in v3.2. Later, the v3.1.2 update will be merged into v3.2.1 and v3.3.0!
Since 3.1.0, the engine group has actually been advancing three version lines in parallel, v3.2.0, v3.1.x, v3.3.0, of which v3.2 has a requirement for the release of Hongmeng 2.0, so the release date is set early Now, for stability, the main reason is to increase the Hongmeng platform support on the basis of v3.1.1. After that, we continue to receive feedback from developers about 3.1. In order to more effectively solve the pain points encountered by developers and lower the upgrade threshold for developers, we have decided to continue to optimize the experience and performance on v3.1.2 Performance, delivered to developers. At present, Cocos Creator v3.x, as a new 3D engine, is still far from the expectations of developers. We hope to give developers stronger confidence through this practical action of continuous delivery. At the same time, thank you to all the v3.x pioneers for their support, it is your feedback that makes the engine more and more perfect!
In addition, the v3.3.0 version has entered late testing. This version has some very important updates that should be known in advance:
In addition, various demos are also in production, such as the Parkour Demo that has been put on the Store.
The API documentation page is also being redesigned.
In short, we attach great importance to the voice of the community and will try our best to improve the 2D & 3D development experience of Cocos Creator v3.x step by step.
Cocos Creator 3.1.1 mainly fixes the stability problems of v3.1 and optimizes the editor workflow. All developers are welcome to use and experience! Please make a backup of relevant files before upgrading! The following is the detailed update content.
CacheManager.clearLRU
call error [#8663].Sprite.updateMaterial
function after setting the RenderTexture in Sprite, otherwise it may cause image flipping problems on some platformsUseIBL
on the scene skybox option may cause the cc_environment
binding to be lost. This problem will be fixed in the next versionCocos 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:
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.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.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:
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.
The launch of Cocos Creator v3.0 marks a new journey for Creator, and Cocos Creator 3.1 is the first cornerstone of the journey. This version update brings many great new features, including deferred rendering contributed by the Huawei HiSilicon team. Pipeline, PhysX physics backend support, etc.; at the same time, compared to version 3.0, various aspects of performance have also been optimized, such as frame animation performance, loading performance, package body, and so on. We will continue to cultivate deeply on the basis of 3.x, with a sincere attitude and dedicated spirit, steadfastly improve the product experience, and benefit all developers. All developers are welcome to use and experience! Please make a backup of relevant files before upgrading! The following is the detailed update!
.tmx
resources.CCStandardShading
function in the effect resource, and encapsulate it in the CC_STANDARD_SURFACE_ENTRY
macro definition. It is recommended to only do custom logic in the surface function.import {gfx} from'cc'
.cc-fog
header files, use cc-fog-vs
and cc-fog-fs
instead.sys
, including sys.LINUX
, sys.BLACKBERRY
, sys.EMSCRIPTEN
, sys.TIZEN
, sys.WINRT
, sys.WP8
, sys.QQ_PLAY
, sys.FB_PLAYABLE_ADS
.Sprite.updateMaterial
function after setting the RenderTexture in Sprite, otherwise it may cause the problem of image flipping on some platforms.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:
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.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:
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.
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:
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.
After the v3.0 preview was released, the engine team received a lot of enthusiastic feedback from developers, this feedback really helped to increase the team’s motivation to release an amazing product. Creator v3.0 unifies the development workflow of 2D and 3D, taking into account the development experience from light and heavy games, and integrates almost all the functions of Creator v2.x and Creator 3D 1.x. v3.0 now encompasses these versions under a single umbrella.
v3.0 has been further optimized in performance, improved quality, and introduces more features, such as access to the native runtime of Spine and DragonBones, support for the use of NPM libraries, and refactored the Prefab system and UI System and many other contents.
v3.0 uses a new future-oriented engine architecture, which will bring high-performance, data-oriented and load-balanced renderers to the engine, and seamlessly support Vulkan, Metal & OpenGL ES multi-backend rendering. In the future, we also plan to support mobile VR/AR and some of the desktop & console platforms. Below is a brief introduction to core features of v3.0.
The integrated editor brings a lightweight and easy-to-use creative experience. Cocos Creator v3.0 is refactored, expanded and upgraded on the editor framework that Cocos Creator 2.x has used for many years.
Cocos Creator v3.0 provides one-click access to various high-quality services officially launched by Cocos, improving development efficiency and launching more high-quality content. Cocos will continue to launch additional and improved services.
Creator v3.0 re-implements the Prefab system with features such as:
After building, Creator v3.0 will cache most of the build content, including resources, compressed textures, automatic atlas, engine code, etc. In the subsequent build, if nothing has changed, the cached content will be used directly to speed up the build and improve efficiency.
The build and publish will be carried out in the form of build tasks, saving the configuration, status, log, etc. of each build, making it easy to switch build tasks and view historical configurations.
The generation stage of each mini game platform is extracted, allowing to modify the content of the file after build to regenerate rpk/cpk.
The build extension support adding hooks before and after compilation to customize the build process.
Creator v3.0 uses Asset Bundles as a resource modularization tool. Developers can build textures, scripts, scenes and other resources into multiple Asset Bundles, and then load them on demand during the game’s running process, thereby reducing the time required to download and load the game for the first time. Asset Bundles can be placed freely as required, for example, they can be placed in remote servers, local, or sub-packages of small game platforms, or they can be reused across projects to load Asset Bundles in sub-projects.
It supports setting up Splash Screen during construction, which is used to display a cutscene before the game starts, and optimize the startup speed of the first screen.
GameView is a game running panel embedded in the editor. Developers can run the game directly in the editor without opening the browser preview. In addition to a more seamless development experience, debugging and modifying element states in real time through the scene editor or other panels during the game running process, making game development more efficient!
Cocos Creator v3.0 has a more powerful extension system. Almost all internal modules of the editor are built with extension system. You can quickly create your own extensions in the extended menu to achieve the customizations you want. In addition, Creator v3.0 also provides an extension manager, which can easily manage the operation and uninstallation of all extensions.
Extensions can use IPC messages to communicate with other extensions or the editor core, and quickly and easily use the capabilities provided in the editor. Cocos Creator v3.0 also provides a message manager, which can clearly see the functions currently provided in the editor, reducing the threshold for extension development.
The Animation Editor is an important module that we have been continuously optimizing. In addition to standard displacement, rotation, zoom animation and sequence frame animation, this animation system also supports driving arbitrary component attributes and user-defined attributes, plus it can be edited at will The time curve and innovative movement trajectory editing functions allow content producers to produce various dynamic effects without writing a line of code, and drive the game logic at will.
In addition to regular operations, the v3.0 Animation Editor also provides the following shortcut operations to help game developers achieve the desired content:
Convenient terrain system to quickly draw terrain textures. Terrain editing mainly includes three major functions: Manage, Sculpt, and Paint. It also supports Normal Map, PBR material and custom material.
Baking is the process of generating light maps by pre-calculating the influence of light sources on objects and shadows projected with very high level of details. The light maps are then applied to the scene in runtime very efficiently, which can greatly improve the graphics quality of static scenes.
Provides a shortcut to modify the engine macro configuration. The configured macro will take effect during preview and build. At the same time, the default value of the current macro configuration will be updated with the configuration of the custom engine.
Support for adding compressed texture preset configuration, which is used to quickly configure the compression method of texture. After setting presets for image assets, you can also directly modify the presets to update the configuration for corresponding textures all at once, which greatly facilitates the overall management of the project.
In order to facilitate the upgrade of 2.x users, we provide a project migration plugin in 3.0, which can migrate projects above version 2.4.3 to version 3.0.0. This tool will support the perfect import of old project resources and the auxiliary import of code. 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. However, there is still a big difference between the 2.x API and 3.0. We use deprecation and removal mechanisms to make runtime warnings as much as possible. But developers still need to make a lot of adjustments to the code in order to upgrade to 3.0 perfectly.
Cocos Creator v2.4 is very powerful in 2D rendering, while Cocos Creator v3.0 allows developers to make more beautiful 3D games. We have integrated the advantages of the two in 3.0, and fully support various functions of 2D and 3D. Whether 2D or 3D, 3.0 will meet your needs.
As the core module of the game engine, the rendering system plays a vital role and directly determines the content that the game can output to the player. An excellent rendering system must also take into account various platforms and smooth the differences between platforms. The rendering system of Cocos Creator v3.0 aims at future-oriented, high-performance, and cross-platform from architecture to design, which greatly improves rendering capabilities and robustness.
In the 3D world, light and shadow have always been extremely important components. They can enrich the environmental performance, and good quality shadows can achieve a fake effect and make the whole world more three-dimensional.
The particle system is the basis of the special effects of game engines. It can be used to simulate natural phenomena such as fire, smoke, water, clouds, snow, and fallen leaves, and it can also be used to simulate abstract visual effects such as luminous trajectories and speed lines. Good particle effects can make the game screen more stunning.
As a resource, material determines the rendering effect of the attached object. Almost all the rendered effects in the game are inseparable from the material. As a basic module, the material system provides a solid foundation for the superstructure.
Cocos Creator v3.0 has a built-in general animation system to display animation based on key frames. In the editor, we can easily produce key frame animation clips. We can also support importing skeletal animations already contained in external FBX and glTF resources. These animations can be edited in the resource manager. Animation effects can be previewed in the animation editor, animation event triggers can be added, and animation system APIs can be used. You can also freely control the animation playback.
In addition, we also support the following features:
The project development of Cocos Creator v3.0 has fully turned to TypeScript, and JavaScript is no longer supported in the project except for plug-in scripts in JavaScript or NPM modules. TypeScript support has been improved in v3.0:
@integer
, @float
, @string
, @boolean
, @type
etc…Cocos Creator v3.0 continues the 2.x UI design, and further optimizes and upgrades, including the following:
Cocos Creator v3.0 currently has a built-in lightweight collision detection system Builtin and a physics engine cannon.js with physical simulation, as well as a powerful bullet compiled into asm.js/WASM version ammo.js, and provides users with an efficient componentized workflow and convenient usage.
In a near future, we will provide builtin PhysX backend on native platforms, which will greatly improve performance and physics capabilities.
view.setFrameSize
interface.enable auto gray effect
option.\~/.CocosEditor3D
back to \~/.CocosCreator
, and the plugin directory has been renamed from packages to extensions. Plugins after 3.0 will be stored in \~/.CocosCreator/extensions
and PROJECT/extensions
.cc.global
variables are no longer supported, please use module import.Creator 3D v1.2 | Creator v3.0 |
---|---|
PhysicMaterial | PhysicsMaterial |
Creator 3D v1.2 | Creator v3.0 |
---|---|
line | Line |
plane | Plane |
ray | Ray |
triangle | Triangle |
sphere | Sphere |
aabb | AABB |
obb | OBB |
capsule | Capsule |
frustum | Frustum |
MorphModel | models.MorphModel |
ray_aabb | rayAABB |
ray_plane | rayPlane |
ray_triangle | rayTriangle |
ray_sphere | raySphere |
ray_obb | rayOBB |
ray_capsule | rayCapsule |
ray_subMesh | raySubMesh |
ray_mesh | rayMesh |
ray_model | rayModel |
line_plane | linePlane |
line_triangle | lineTriangle |
line_aabb | lineAABB |
line_obb | lineOBB |
line_sphere | lineSphere |
aabb_aabb | aabbWithAABB |
aabb_obb | aabbWithOBB |
aabb_plane | aabbPlane |
aabb_frustum | aabbFrustum |
aabbFrustum_accurate | aabbFrustumAccurate |
obb_point | obbPoint |
obb_plane | obbPlane |
obb_frustum | obbFrustum |
obbFrustum_accurate | obbFrustumAccurate |
obb_obb | obbWithOBB |
obb_capsule | obbCapsule |
sphere_plane | spherePlane |
sphere_frustum | sphereFrustum |
sphereFrustum_accurate | sphereFrustumAccurate |
sphere_sphere | sphereWithSphere |
sphere_aabb | sphereAABB |
sphere_obb | sphereOBB |
sphere_capsule | sphereCapsule |
capsule_capsule | capsuleWithCapsule |
Creator 3D v1.2 | Creator v3.0 |
---|---|
BAIDU_GAME | BAIDU_MINI_GAME |
VIVO_GAME | VIVO_MINI_GAME |
OPPO_GAME | OPPO_MINI_GAME |
HUAWEI_GAME | HUAWEI_QUICK_GAME |
XIAOMI_GAME | XIAOMI_QUICK_GAME |
JKW_GAME | COCOSPLAY |
ALIPAY_GAME | ALIPAY_MINI_GAME |
BYTEDANCE_GAME | BYTEDANCE_MINI_GAME |
Creator 3D v1.2 | Creator v3.0 |
---|---|
UIRenderable | Renderable2D |
UIDrawBatch | DrawBatch2D |
In order to ensure the smooth transition of the existing Cocos Creator 2.4 project, we will use 2.4 as the LTS (long-term support) version and provide continuous updates for the next two years! In 2021, 2.4 will continue to be updated, providing bug fixes and new mini-game platform support, as well as Apple Silicon (M1) chip support. In 2022, we will continue to provide developers with 2.4 key issue fixes to ensure the smooth operation of online games! therefore:
The original Cocos Creator 3D, as a branch version of Creator, has been iterated in China for a year, and has successfully launched major projects such as Starry Sky Battle and The Strongest Magic Fighter! After 3.0 is released, Creator 3D will also be included in 3.0, and existing 1.2 projects can be directly upgraded. Therefore, Cocos Creator 3D will not release a separate version in the future, and we hope developers using Creator 3D versions to be noticed.
Although we do not recommend projects under development, especially those that are about to go online, to upgrade to 3.0, we will still launch 2.x resource import tool in the 3.0 official version. If the existing project needs to be upgraded for special reasons, and you encounter technical or workload difficulties, you can also contact zhengxiong.zhao@cocos.com for our manual assistance!