Pool: Supports setting shrink threshold, ensuring the pool size after shrinking will not be smaller than the threshold.
Added support for mouse-enter
and mouse-leave
events to detect when the mouse enters or leaves the window.
Added Vec2.toVec3()
method.
Added Vec3.toVec2()
method.
Added ResolutionPolicy.getContentStrategy()
method.
Added ContentStrategy.strategy
property.
Tween: When using sequence/parallel/then
to chain Tweens, each child tween can have a different target. [issue]
Added various Tween methods: reverse
, id
, union(fromId)
, timeScale
, duration
, pause
, resume
, pauseAllByTarget
, resumeAllByTarget
, update
, and start(time)
.
If the Tween's target is a Node
, the system will automatically pause, resume, or stop based on the Node’s activation and destruction state. [PR1, PR2]
Tween now supports easing strings and custom progress/easing functions for any property type. [PR]
Taobao Mini Games: WebSocket now supports multiple instances. [PR]
WebGPU support has been added (experimental).
Added Tween.running
getter to check if a Tween is running. [PR]
Added Tween.getRunningCount(target)
static method to get the number of active tweens associated with a target. [PR]
Added built-in support for Bezier and Catmull-Rom curve progressions in Tween, allowing custom properties to be passed to tween.to/by()
. [PR]
Added Tween.updateUntil()
method, which can add actions with uncertain durations to the tween system. The action will end when a callback function returns true
. This can be used to create dynamic object tracking. [PR]
Added utf-16
encoding support for TextDecoder
on native platforms. [PR]
Customizable Pipeline enters Beta:
Introduced a built-in customizable pipeline.
Cocos Built-in Pipeline is the new default, replacing the previous forward pipeline (builtin-forward) and customizable post-process pipeline.
Deprecating PostProcess, allowing package size reduction.
Default DepthStencil discard to improve mobile performance.
New projects will use the Builtin pipeline by default.
In upgraded projects:
If the project was using a customizable pipeline before, it will continue using the same customizable pipeline.
If the project was not using a customizable pipeline, the original pipeline will be retained.
Added a pipeline selection page where users can choose between customizable or original pipelines.
Customizable pipelines will package the following scripts: builtin-pipeline.ts
, builtin-pipeline-settings.ts
, builtin-pipeline-types.ts
.
Debug view runtime control is currently unsupported and will be excluded from the package when using Builtin pipelines.
The Builtin pipeline currently has a larger package size, but optimizations are ongoing to reduce it to a reasonable size.
The BuiltinPipelineSettings can be used to configure post-processing effects, which have been migrated from PostProcess.
SafeArea: Added support for setting symmetry for top/bottom and left/right areas, with visual examples.
Improved UI layout for the build panel.
Added a menu entry for creating resource templates.
SourceMap: Added support for the inline
parameter. Previously, enabling SourceMap would default to creating separate files, which hindered debugging in Chrome on native platforms. Now, developers can select inline
mode for easier debugging on native platforms.
Improved spacing in the Windows menu bar.
The Project Settings interstitial preview now adjusts according to the adaptation mode.
Auto Atlas preview now shows the combined image size.
The editor now supports zoom level for window scaling.
Hotkey Support
Added a preference option to relocate the built-in resource library globally, improving the startup speed for different projects. Plugins that directly reference the resource library path may be affected. This feature can be enabled in Preferences -> Labs (default: disabled). (Known issue: simulator preview and native engine scene lab functions are not supported when this feature is enabled).
Fixed an issue where setting event.preventSwallow
to true
caused overlapping areas to not respond to touch events.
Fixed an issue where some Node
setter functions would send change events even when the values did not change.
Fixed an issue where the absence of innerAudioContext.onCanPlay
on Taobao and Alipay Mini Game platforms prevented sound playback.
Fixed a nesting issue in NodeEventProcessor.dispatchEvent()
.
Fixed flickering when tweening colors.
Fixed an issue where _rot.x/y/z/w
data in .scene
and .prefab
files might contain null values.
Fixed a type enforcement error in the onStart/onUpdate/onComplete
callback functions in Tween.to
/by
when using the opt?: ITweenOption
parameter.
Fixed an issue where Tweening would modify the target object’s properties.
Fixed missing type definitions for custom progress
and easing
properties in Tween.to
/by
.
Fixed an issue where the Tween system would automatically assign a uuid
property to non-Node
target objects.
Fixed a memory leak caused by WebSocket receiving binary data on Android platforms.
Fixed a memory leak issue on Android x86 emulators caused by padding bytes automatically inserted into gfx
structure by the compiler.
Fixed a memory leak when modifying label text in CacheMode.NONE
mode on native platforms.
Fixed an issue where Button UI elements became unresponsive to touch/mouse
events after exceptions were thrown in callback functions and caught by window.onerror/jsb.onError
.
Fixed incorrect window size display after screen rotation on iPads.
Fixed an issue where sound would continue playing even when the mute switch was enabled on iOS devices.
Fixed an issue where sound would not resume after receiving a phone call and returning the game to the foreground on iOS devices.
Fixed an issue where cache-manager.clearLRU
would not reset cleaning
under specific conditions.
Fixed inconsistent behavior when enable_multi_touch
was set to true or false.
Fixed shader compilation errors caused by non-integer uniform values in Web skeleton animations.
Fixed out-of-range issues with multiple light sources on native platforms.
Fixed syntax errors in scripts generated in the native release package, introduced in version 3.8.3.
Fixed a compilation error when using private member functions (e.g., #foo()
) in TypeScript, introduced in version 3.8.3.
Fixed an issue where unnecessary .wasm
and .mem.bin
files for Spine were generated on native platforms.
Fixed incorrect return values in Node.angle()
.
Fixed timing errors in Component.scheduleOnce()
callbacks.
Fixed out-of-range issues in the gles2
backend.
Fixed an issue where throwing an exception in a node's touch callback would prevent other nodes from responding to touch events.
Fixed a black screen issue on some Android emulators (e.g., MEmu).
Fixed memory leaks in bullet bodies.
Fixed cache cleanup issues on Taobao Mini Game platform.
Fixed a crash issue on native platforms when calling game.restart()
with unhandled promise rejections.
Fixed an issue where newly added dirtyRenderers
were deleted during the updateAllDirtyRenderers
process.
Fixed a warning for outline
when using richtext
.
Modified the video player on ByteDance platforms to display content using a texture-based method.
Unified the interstitial display method for better adaptation to multi-resolution schemes.
Fixed inconsistent behavior when ENABLE_MULTI_TOUCH
was set to true or false.
Fixed the issue of bmfont
's colorDirty
property not working on the web platform.
Fixed rendering issues in SpriteRender
Atlas.
Fixed the creation of unnecessary atlases.
Fixed incorrect system detection in sys.os/sys.isMobile
on mini-game platforms and added Mac OS detection.
Fixed an issue where switching the button type in the editor (from color to sprite, then back to color) would turn the button black.
Optimized development experience: Avoid using debugger
in ccAssert
and use console.error
instead.
Optimized the 2D particle update buffer process by reducing unnecessary multiplication operations.
Optimized file reading logic on native platforms by switching from synchronous to multi-threaded asynchronous reads, reducing resource loading stutters. JSON deserialization performance improved by approximately 30% on low-end Android devices.
Fixed a crash issue on some mini-game platforms (e.g., Alipay, ByteDance, Taobao) when frequently creating canvases on low-end devices due to resource limitations.
Fixed an issue where Spine node opacity was not working.
Fixed incomplete release of some objects after releasing Skeleton-Asset
.
Optimized the frequency of parsing JSON for Skeleton-Asset
.
Fixed errors in the PhysicsContract.emit
function when Collider
did not have a rigid body.
Fixed rendering errors for non-UI
images in TextureRender
on native platforms.
Fixed an issue introduced in this version where updates to the child array did not trigger modification event dispatches in native platforms.
Fixed an issue where Bullet was not exported.
Fixed an issue where mouse enter and leave window messages were being swallowed.
Fixed an issue introduced in this version where only one touch listener would respond to TOUCH_END
or TOUCH_CANCEL
.
Fixed an issue on native platforms where the callback function order in performFunctionInCocosThread
was incorrect.
Fixed an issue where modifying a node’s position in performFunctionInCocosThread
callbacks would prevent the node’s worldPosition from updating in the next frame.
Fixed an issue where modifying a node’s position in Director.EVENT_AFTER_DRAW
would prevent the node’s worldPosition from updating in the next frame.
Fixed a crash when enabling or disabling Spine in setXXListener()
on native platforms.
Fixed an issue where the geometry renderer did not display in the customizable pipeline on native platforms.
Compressed the effect.bin
file in the customizable pipeline and added version control.
Fixed an issue where reflection probe spherical previews were not displayed in the customizable pipeline editor.
Fixed an issue where the clear color was incorrect with multiple cameras in the customizable pipeline.
Fixed viewport rounding issues in the customizable pipeline.
Fixed unrelated material pass rendering issues when rendering UI in the customizable pipeline.
Fixed an issue where the skybox was incorrectly displayed in reflection probe scenes in the customizable pipeline editor.
Reduced the package size of the customizable pipeline.
Fixed the this
pointer issue in Taobao Mini Game platform WebSocket callback functions.
Fixed Xcode 16.0 compilation issues.
Fixed warnings in the customizable pipeline editor.
Fixed errors when baking reflection probes in the customizable pipeline.
Merged the render queue fill in the customizable pipeline.
Fixed potential crashes during the UI phase of the customizable pipeline on native platforms.
Fixed wild pointer issues in the render window of the customizable pipeline on native platforms.
Upgraded Xiaomi packaging tool to support Node 18 and above for Xiaomi compilation
Added a lab feature option to toggle automatic MD5 processing of build template files, allowing users to disable it
Fixed an issue where MD5 path replacement could inadvertently replace other tag attributes in HTML
Fixed build errors on HarmonyOS platform when creating Bundles
Fixed the display name issue for sub-resources in the assets panel
Fixed the issue where the bottom of the Bundle resource preview list was not fully displayed when the list was too long
Fixed the issue where custom script template URL parameters were invalid and improved the validation process for script file naming
Optimized and fixed issues with the selection of scenes in the build panel and interactions when in a "missing" state
Fixed the issue where creating a new build task for Huawei AGC platform did not update the configuration
Fixed the issue where gizmo icons for nodes in the animation panel were not displayed in animation editing mode
Fixed the missing scrollbar when adding multiple skeletons in the project settings for skeleton texture layout
Fixed the issue where reselecting terrain nodes required switching texture layers to paint the selected texture layer
Fixed the issue where terrain sculpting data was lost when entering and exiting Prefab editing mode
Fixed the issue where the large circular cursor was truncated when moving the mouse over the terrain
Fixed texture compression failures when building certain image formats
Fixed the potential ineffectiveness of the CLEANUP_IMAGE_CACHE configuration in the build interface
Removed the invalid "Select All" option for Include Bundles in the parameters of the empty project build panel
Fixed the issue where small atlases nested inside auto atlas folders were not excluded
Fixed errors and preview anomalies when starting the editor in an offline/intranet environment
Fixed the lack of clear error messages when the initial build scene was missing
Fixed the issue where filling out the development data field in the WeChat build template was ineffective
Fixed inconsistency between the parameters of the build plugin hook functions onBeforeMake
and onAfterMake
and the build options
Fixed the issue where child nodes were incorrectly assigned during drag selection in the animation editor
Fixed the issue where the editor would jump to the first clip after editing and saving multiple clips in the animation editor
Fixed repeated texture compression for the same texture configuration on different platforms
Fixed the issue where small images used as textures within auto atlases would lose image data after being built
Fixed potential missing resource dependencies when building Bundles independently
Fixed layout errors when opening the editor for the first time on a device
Fixed settings request failure errors when opening the preview page with the editor
Fixed the issue where the main process error display might lack a complete call stack when launching the editor via command line
Fixed an error when clearing the import-map path in the project settings that caused the editor to fail on startup
Fixed incomplete display of console logs in command-line builds on Mac
Fixed the issue where memory usage would increase when frequently switching the properties panel, especially when switching between multiple MeshRenderer components with added Materials
If you encounter the Effect compilation error shown in the figure below, or if warnings appear after enabling WebGPU, please re-import all Effects and restart Creator. The re-import button can be found at: Menu -> Developer -> Refresh All Effects.
XR functionality is not yet supported in the new rendering pipeline.
The separated engine functionality for Taobao Mini Games is currently experiencing issues; it runs on iOS but not on Android. This needs to be addressed by Taobao's official team. If you need to use the separated engine functionality in the future, please consult Taobao's official support.
● Added WASM support for Douyin mini-games platform Wasm support for ByteDance minigame platform · Issue #16562 · cocos/cocos-engine · GitHub
● Unified the construction process of WASM modules
● Added support for WASM Brotli compression format (.br) for Douyin and WeChat mini-games platforms. This feature is off by default and can be enabled in the build panel [383] wasm brotli compression support · Issue #16683 · cocos/cocos-engine · GitHub
● Added “Preload Script” function for Douyin mini-games platform to speed up game startup. This feature is off by default and can be enabled in the build panel
● Added functionality to match build templates by build task names (e.g., templates placed inside build-templates/wechatgame-001 will be used as build templates when constructing tasks named wechatgame-001. Projects can customize different build templates for the same platform according to actual needs, such as different modes for debug and release)
● Supports direct configuration of physical backend, WebGL 2.0 backend, native code packaging mode different from project settings on the build panel (If the related module is not enabled in the project settings, the corresponding options will not be displayed. Douyin and WeChat mini-games platforms also support Brotli compression options, which can reduce about 2/3 of the volume when checked, but will slightly affect startup time due to runtime decompression. Can be enabled as needed depending on the project’s circumstances)
● After importing Substance textures, you can right-click to select multiple textures and automatically generate materials. Cocos Engine’s export options are now supported within Substance, with designated naming rules. Depending on the project needs, you can customize the automatic material creation keywords in the project settings under Auto Material Settings. Currently, keywords for file categories like Houdini VAT, Zeno, and SP material nodes are supported.
● Project settings now allow for plugin script order configuration. Scripts that require a specific order can be intuitively organized by dragging. This update deprecates the old version of plugin script dependency configurations, which will automatically migrate to the project settings.
● Texture compression support for mini-game platforms can now be configured individually without exclusion.
● The progress display of build tasks has been optimized to show detailed sub-log information
● Engine module grouping display has been optimized, supporting full selection of entire groups.
● The rules for locking the build and run buttons have been optimized and adjusted. Platforms that do not interfere with each other, like web platforms, can run simultaneously.
● The plugin script’s options and UI interactions within the property inspector have been optimized.
● Device manager’s device data has been updated.
● The default behavior of old plugin scripts and some interface option operations have been optimized, with new execution environment controls for mini-game platforms added.
● Bundle folders have been updated with a new icon identifier.
● Fixed a problem where unscheduling scheduleOnce in the callback function of schedule could cause scheduleOnce not to be called issue
● Fixed a logical error in vec3.slerp() issue
● Fixed an issue where both WASM and ASMJS files were downloaded on the web platform issue
● Fixed incorrect particle rotation effect on native platforms [3.8.2] Incorrect 3D Particle Rotation Effect · Issue #16762 · cocos/cocos-engine · GitHub
● Fixed an error reported when using external resource textures with the new pipeline for on-screen Label 纹理释放问题 · Issue #16721 · cocos/cocos-engine · GitHub
● Fixed the issue of black screen initialization in scenarios after enabling Box2D wasm/asmjs experimental feature on platforms that do not support wasm
● Fixed the issue where hiding nodes of editbox, delaying the display of editbox, etc., leads to incorrect input coordinates;
● Fixed the issue where the texture of a label is not immediately released when the node is not activated upon destruction
● Fixed the issue where the cache mode of a label does not support character expressions;
● Fixed the issue where setting the default_panel too large leads to editor anomalies;
● Fixed the issue where the opacity of bmfont does not take effect;
● Fixed the issue where spine set with different timeScale playback rates
● Fixed the issue where spine.EventType was not exported
● Fixed the issue where texture compression images within the auto atlas folder were not promptly updated after the small image was updated and the atlas was rebuilt.
● Fixed the memory leak problem with the editor’s IPC communication.
● Fixed the error that occurred when confirming after successful bundle construction.
● Fixed the missing and replacement issues with the MD5 addition to the construction template files in the build process.
● Fixed the issue where Vivo platform would not properly throw an exception after installation failure.
● Fixed the error that occurred when running on the Douyin mini-game platform in lite mode.
● Fixed several bugs in the animation editor.
● Fixed multiple node operation bugs in the light probe.
● Fixed the bug that prevented sculpting and painting operations on terrains.
● Fixed the lag issue when adjusting the bounding box in edit mode for PolygonCollider2D.
1. Added Subpass and MSAA support in the custom render pipeline.
2. Animation Graph has restored support for AnimationClip (non-skeletal animations).
3. The script system now supports parsing symbolic links for use with package managers that support symbolic links, such as pnpm.
4. Added a delay trigger for edge gestures on iOS to prevent accidental touches.
5. Added 'patch' method support for HTTP requests on native platforms.
6. Added a default color interface for RichText.
7. Added materials for piano lacquer, car paint, and glass.
Demo: https://github.com/cocos/cocos-example-materials, Scene: assets\advanced-cases\coat\coat.scene
8. In HDR mode, the Scene panel has been expanded to include PostSettings options. The Tone Mapping Type now offers DEFAULT and LINEAR options.
9. Added wasm support for Box2D (Experimetnal)
10. Added Trigger Event for CharacterController, now the CharacterController component and collider support 'onControllerTriggerEnter', 'onControllerTriggerStay' and 'onControllerTriggerExit' events.
11. Added support for dymamically changing the mesh property of MeshCollider.
12. Transitioned to a more stable mesh simplify tool.
13. Supported mesh cluster
14. Supported mesh quantize
15. Supproted mesh encode/decode and inflate/deflate
a. options
b. Improved loading speed and rendering performance for larget scenes.
1. Added Java Home path settings to preferences to address the issue of multiple JDK installations on deveices during Android builds.
2. Added "Resizeable Activity" and "Max Aspect Ratio" options to the Android build panel.
3. Added support for configuring the launch mode and quick start of the Douyin Developer Tools.
4. Enabled "CLEANUP_IMAGE_CACHE" by default on the WeChat Mini Game platform, for other platforms, it follows the project settings.
5. Added grids, skybox and gizmo to the preview windows of materials, models, meshes, and skeletal animations. It also supports controlling the preview perspective.
6. Added a 3D tool visibility toggle. When turned off, it hides 3D gizmos other than the transform tools.
7. The Inspector now supports dragging to adjust the width of property names.
8. The Inspector now supports displaying icons for certain components.
9. Improved the display of visibility for Light and Camera components in the Inspector.
10. Reduced the number of boost library files to decrease the size of Cocos Creator application.
11. Various optimizations for overall user experience.
1. Fixed rendering errors under specific conditions in the custom pipeline.
2. Fixed the animation graph variants were not working on embedded state machines.
3. Fixed the issue of that after calling the forceLOD mothod, changing node's active not work correctly.
4. Optimized the interaction of the EditText on Android.
5. Fixed potential display errors with EditBox after rotation on web-mobile.
6. Fixed display errors of EditBox when switching between windowed and fullscreen mode.
7. Fixed a crash issue related to multi-touch on Android.
8. Fixed sound playback would not resume after unlocking the screen during playback.
9. Fixed web audio artifacts issue in iOS Safari after playing for more than 5 minutes.
10. Fixed an issue where the player stored in the audioManager could be destroyed.
11. Optimized potential lag issues when performing mutliple audio operations on the same audio object within the same frame.
12. Fixed calling audio play multiple times would cause the progress bar to remain stuck at 0 on Taobao Mini Game.
13. Fixed dragging the progress bar during audio playback would cause it to jump back to 0 on Xiaomi Game.
14. Fixed a memory leak issue on certain mini-game platforms where playing more than 10 audios and continuing to call other audio APIs could lead to memory leaks.
15. Fixed incorrect status retrieval through the isPlaying interface after pausing or ending a videoplayer.
16. Fixed abnormal behavior that may occur when switching video sources.
17. Fixed an issue with swig binding where namespace information was lost when overloading constructor functions.
18. Fixed an exception issue caused by swig binding to multi-level (>= 2) internal classes.
19. Fixed compilation failure of glue code when renaming internal classes in `.i`.
20. Fixed issues with the incorrect implementation of scene._instantiate on native platforms.
21. Fixed crashes or freezes on non-Android platforms caused by repeated calls to `game.restart()`.
22. Fixed display errors in the scene editor when the scale is not 1 for widgets.
23. Fixed a bug in the Button component where, on startup, it would use the Sprite component's spriteFrame to override its own normalSprite. Serialized data from the button component is now used to populate the spriteFrame state.
24. Fixed an issue in ScrollView where the scrolling property remained true after using the mouse scroll.
25. Fixed a bug in scenes with a camera where clicking the mouse would result in an offset.
26. Fixed incorrect resolution after receiving a resize event in OpenHarmony.
27. Fixed a connection issue in OpenHarmony after unchecking WebSocket.
28. Fixed rendering errors in the custom pipeline when mixing Fog, AO, and semi-transparent effects (requires enabling CC_USE_FLOAT_OUTPUT macro).
29. Fixed issues with reflection probe baking and updates during movement, optimizing native engine performance.
30. Fixed switching fog effect types did not affect the skybox.
31. Fixed the default center of a created SphereCollider not set to 0.
32. Now when the move method of CharacterController is called, the physical world position will be synchronized to the node immediately.
33. Fixed a program launch crash issue when compiling iOS projects with Xcode 15.
1. Fixed a runtime error caused by configuring texture compression for both single textures and the corresponding atlases simultaneously.
2. Fixed the issue where AutoAtlases still included original images after texture compression.
3. Fixed atlases referenced by multiple bundles with consistent priority experienced abnormal texture compression image copying.
4. Fixed duplicate data in Bundle config redirection configurations.
5. Fixed empty Bundles did not output config.json.
6. Fixed text resources in Bundles containing "uuid" caused build errors.
7. Fixed output path in the Bundle build panel could not be selected.
8. Fixed the Build panel could not create new build tasks after building with "Bundle Only" option.
9. Fixed changing the name of a build task could result in a wrong task name when switching build modes.
10. Fixed after implementing a script component in an extension, errors occurred during preview and build due to class dulication.
11. Fixed when enabling first scene sub-packages, scripts and resources output locations might be incorrect.
12. Fixed abnormal data after undoing certain operations on prefabs.
13. Fixed saving failure after referencing a prefab's child node in click events.
14. Fixed losing embedded prefab modifications when dragging a prefab node to Assets window to overwrite its original prefab file.
15. Fixed severval issues during prefab editing.
16. Fixed localStorage could not be debugged in the "Preview in Editor" mode.
17. Fixed FPS setting was not working in the "Preview in Editor" mode.
18. Fixed terrain data become abnormal after opening a prefab then closing while editing terrain.
19. Fixed unexpected behavior after undoing and redoing certain operations while editing terrain.
20. Fixed the "+" icon was not displayed when adding nodes to a node instanced from embedded prefab.
21. Fixed potential errors when configuring the default browser as Safari through the program manager on Mac.
22. Fixed FontAtlas might lose data due to import order.
23. Fixed various issues in the animation editor related to event frames, keyframes, and curve editing.
24. Fixed several interactive issues in the particle curve panel during editing.
25. Fixed issues with dragging and incorrect positioning of event frame icons when editing FBX resources.
26. Fixed inaccuracies in undo operations for the Widget.
1. Marked the UIMeshRenderer component as deprecated. Users are encouraged to use RenderTexture for similar functionality. Refer to UIMeshRenderer Component Reference for more details.
2. Users may need to add plane shadow-related passes to their custom Effects, following the structure of effects/legacy/standard.effect in internal resources. Otherwise, dynamic batching for plane shadows may not work as expected. See issue #14958 for more details.
1. When an EditBox is displayed at the top of the screen in iOS web, it might be pushed out of the screen by the input method when first gaining focus. If you encouter this issue, refer to the PR for a fix.
Creator 3.x relies on post-processing as the most demanding requirement for 3D games. Before, developers were recommended to use RenderTexture for production but did not provide built-in capabilities. The main reason is that the custom rendering pipeline supporting post-processing still needs to be completed. After the 3.7 Cyberpunk Demo verified the custom rendering pipeline, With Cocos Creator 3.8, we can finally deliver developers anti-aliasing, super-resolution, ambient light occlusion, glare, and other post-processing effects. These post-processing processes are currently integrated into CustomPipeline, on the one hand as an example of RenderGraph. On the other hand, it can also be used as a testing ground for our standard “Forward” pipeline.
1. Anti-aliasing: Provides FXAA with very low power consumption and time based TAA with better quality.
2. Super-resolution FSR: This helps to either achieve higher image quality with lower cost, or reduce the performance pressure while keeping the same resolution.
3. Bloom: Greatly improve the visual quality of your game by enhancing the lighting range of the highlight areas.
4. HBAO: High quality real time ambient occlusion, it can visually improve the sense of space and the rendering quality.
5. Custom Color Grading: This is a very simple but effective post-processing method, which can be used to enhance contrast, saturation, adjust color, white balance, and other image properties. Support any Nx1 bar graph and 8x8 block size. The system automatically adapts to different input format.
Starting from 3.8, we recommend all projects that need post-processing to switch to the Custom Rendering Pipelines, and you can refer to the Full-Screen Post Process documentation to activate it for your project. You can also refer to the example project using post-processing pipeline to learn how to use it.
1. Skin effects: add simple skin effect and advanced skin effect, example can be found in Character scene of Cocos Example Materials repository.
2. Eyeball effect: add advanced eye effect, example can be found in the same scene as skin effects.
3. Leaf effect: add advanced leaf effect.
4. Supports pre-baked simulation animations exported by Houdini and Zeno: This feature allows developers to integrate high-quality physical simulation animations calculated offline into their projects, including explosion, fluids, cloth, etc. This could be very helpful in making the game narrative scenes or some fixed scenes with great expressiveness, especially for in-app 3D simulations such as car HMI.
a. Zeno
b. Houdini
5. Blending support in Reflection Probes: In previous versions, the movement of dynamic objects between different probe areas will cause jumps. In 3.8, not only the effect mixing between Probes is supported, but also the mixing between Probes and skyboxes is supported. You can get a very natural transition effect in different baking areas and indoor to outdoor scenes.
We have introduced a new feature to the Marionette animation system: pose graphs. This new feature will provide support for procedural animation as well as dual bone IK animation. Using the pose graph, developers can conveniently define various procedural animations, and action poses through the node system to build more complex and delicate scene interactions. This will also significantly reduce the number of animations users need to create character animations. For example, you can define the IK of a character's feet on different planes, let the character climb terrain at different heights, or look in a particular direction while walking. In addition, the pose graph can also be used as a supplement to the animation state machine, which can be nested in the state machine. For details, see: "Cocos Creator 3.8 Manual - Procedural Animation."
When making complex procedurally generated animations, you may need to add variable curves to the animation for logical judgment or as variables. We've added auxiliary curves to the animation editor to meet these needs. You can now add additional curves to any skeletal animation, and once added, these curves can be read and blended in the pose graph and state machine. This new feature will allow greater freedom and help you better control and customize animations.
In addition, the Marionette animation system has the following upgrades:
1. New CharacterController component: for role-playing and action games, it can significantly reduce the cost of character development and has built-in character control capabilities which can naturally interact with the environment.
2. Constraints: Added ConfigurableConstraint component, which can be used to customize the connection methods of various physical components to achieve complex uni-objects, such as car axles and various joints.
3. Constraints: Hinge constraints add new shaft drive and rotation range restrictions.
4. New sweep collision detection
LightFX supports alpha threshold in builtin standard material.
The customization capability of render pipeline is officially opened to developers in 3.8. It also supports our bultin post-processing capabilities. For the specific usage of the custom render pipeline, please refer to the Custom Render Pipeline, or refer to the custom pipeline examples repository. Some detailed upgrades of RenderGraph in 3.8 are as follows:
Asset Bundle now supports building specified Bundles separately, which allows users to update resources independently, and the function entry is located in the selected Bundle folder settings.
Support for adding filtering options in the Bundle folder settings, allowing users to more flexibly filter the resources in the Bundle that will participate in the actual build.
Optimize the platform setting method of Bundle configuration, support preset format, and facilitate users to manage export options for different platforms accurately.
Note: After upgrading the project to 3.8, Cocos Creator will automatically migrate the Bundle configuration to the project settings. Please submit changes to the project's settings folder and the metafile corresponding to the bundle folder to the project source code library (such as Git) after the upgrade to avoid configuration conflicts.
Build options support only building Bundles.
The Bundle that participates in the construction is supported to be filtered during construction, and all are exported by default.
In addition to the support for importing LOD models in the previous version, we added support for displaying LOD information in the model and the new LOD automatic generation function so that users can use LOD more efficiently.
Users can directly import any model that does not contain LOD in 3.8 and set different LOD levels in the model import options. Cocos Creator will automatically generate lower LOD levels by reducing the surfaces and automatically add the LOD Group component when creating a model instance in the scene.
Starting from 3.8.0, some engine modules have been implemented using wasm, including spine, rendering webGPU backend, physics engine bullet, and PhysX backend. Pay attention to the following when using it:
Notice:
At this year's Google IO conference, Google Play Games on PC and large-screen experience are the Android platform updates that have received great attention. Cocos has also been officially recommended by Google as an engine for Google Play Games on the PC platform and a recommended game engine for a large-screen experience.
Several well known Cocos games has already published on the platform. Starting from v3.8, you only need to check the x86 architecture and the InputSDK option when building Android to meet the platform requirements of Google Play Games on PC. This platform is an important opportunity for Google Play to expand to the desktop platform. Like the continuous emergence of folding screens and tablets, it marks that large-screen adaptation is becoming more and more critical for mobile games, and it can also help developers acquire more users.
The Cocos engine and the OpenHarmony team have been working closely together for more than two years and have jointly pushed forward the continuous improvement of the OpenHarmony system's support in the gaming industry. Now we are thrilled to announce the official support of the latest OpenHarmony 4.0 version.
CLEANUP_IMAGE_CACHE
macro for a single platform.The program manager of the preference setting supports configuring the default image editor.
The default design resolution of newly created projects has been adjusted from the 960x640 to 1280x720
Hierarchy manager supports using the shortcut keys [ or ] to move nodes up and down. If you press Ctrl / Command at the same time, it will be the top/bottom node.
When you open the preferences, project settings, animation graph, and other panels, they will be displayed at the location of the scene editor by default
The @menu
decorator of the component supports the use of menu paths, for example:
The corresponding component menu is displayed as follows:
EDITOR_NOT_IN_PREVIEW
` macro, which is used to simplify the judgment of various plug-ins and debugging codes on the editor's operating environment. If it is true
, it means that the code is executed in the editor and the scene is not in the preview state. Example:
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:
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:
Project setting interface:
Building interface:
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.
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.
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.
Improved performance of Spine and DragonBones on native platforms #12788. Especially for Spine, performance gains of up to 40% or more on lower-end iOS devices. There are also significant performance gains on Android platform.
[Experimental Feature] On the Web-Desktop platform, we have added a future-oriented rendering backend based on wasm technology - WebGPU (Chromium 105). Based on WebGPU backend, we will gradually add advanced rendering features such as ComputeShader, which is important to improve the rendering capability of the Web platform. WebGPU details can be found at https://www.w3.org/TR/webgpu/
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:
AutoGen Mipmaps
GGX Convolution
GGX vs. Dir vs. Mip
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
Surface Snapping (Press and hold ctrl/cmd + shift)
Vertex Snapping (Press and hold v)
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.
Blender | Material Conversion Off | Material Conversion On
Convert Phong materials from FBX
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.
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.
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:
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
property
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 .
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.
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:
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:
Existing 2.x projects can continue to develop without compulsory upgrade to 3.0.
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.
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:
Further increase the proportion of nativization, implement rendering scenes in the native layer, optimize performance, and lay a solid foundation for the future upper-layer nativization and scene management
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.
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:
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!
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:
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!