Cocos Creator v3.4.1 released!
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.
Important updates
-
Refactored 2D batching strategy, RenderData holds static VertexBuffer memory to optimize 2D rendering performance on all platforms
-
Optimize the state management of 2D rendering components, and change the UV and Color to fill immediately to avoid polluting the VB state
-
Material.copy now supports accepting override material modification parameters
-
Enable WebGL 2.0 on WeChat to prepare for future WeChat versions that support WebGL 2.0
-
Slightly optimize the performance of the particle system
-
Fix the problem that the editor with too many startup scripts is slow
-
Fix the problem that an error will be reported when compiling the simulator
-
Limit the maximum device pixel ratio of the web platform to 2, and fix the performance degradation caused by it
-
Fix event dispatch priority so that UI listeners always take precedence over input event listeners
-
Fix the problem of performance degradation in shadow collection logic
-
Fix the problem of abnormal exit when restart is called for the second time in iOS/macOS
-
Fix the problem that the game logic stops when the Android platform enters the background
-
Fix the problem of independent use of SkeletalAnimation sample API
-
Fix the confusion problem of animation crossFade API
-
Fix the color setting problem of TiledLayer
-
Fix the problem that multiple camera outputs are overwritten when rendering to the same RenderTexture
-
Fix some memory fragmentation issues on the native platform
-
Fix the problem that Label spacingX property is not serialized
-
Fix the problem that the profiler disappears after restarting in debug mode
-
Fix the problem that burst does not behave correctly after replaying after pause
-
Fix the problem that the UseHDR button has the opposite effect when switching scenes
-
Fix iOS & Mac Safari does not support USE_REFLECTION_DENOISE
-
Fix the problem of performance degradation introduced by getSystemInfoSync on Cocos Play and WeChat platform
-
Fix the problem that Sphere Light doesnât work correctly on Android Web
-
Fix the crash when three cocos games are running at the same time in the debug mode of the windows platform
Known legacy issues
-
Slider cannot be smoothly dragged in ScrollView: solution planned in v3.4.2
-
SkeletalAnimation directly setTime is invalid without calling play Solution in v3.4.2
-
2D particles flicker in some cases: Solution in v3.4.2
-
DragonBones needs to call
ArmatureDisplay.markForUpdateRenderData
after setting the position to update correctly: Solution in v3.4.2 -
Potential crash in Android 12 with Vulkan backend: Solution in v3.4.2
Detailed update list
-
Android: Java flush game thread tasks [4193]
-
Fix iOS keyboard hide issue [4185]
-
Fix mem status [4179]
-
M1 deferred rendering issue: fbf & write to same tex not fully support [4174]
-
Fix the problem of deferred pipeline multi-execution transparent queue [4168]
-
Improve mesh buffer to avoid iOS14 performance drop [10015]
-
Add sprite frame event off & fix renderData hash bug [10012]
-
Fix sprite rect bug [10011]
-
Remove deprecated in error map [10007]
-
Protect meshBuffer max vertex count [10005]
-
Change macro for meshBuffer [10001]
-
Fix touch event on IMAGE STENCIL mask component [10000]
-
Fix TiledLayerâs color setting [9997]
-
Enable model after playing instead of onEnable [9991]
-
Support EventDispatcherPriority, ensure UI have higher priority than input [9976]
-
Clear attachment for editor camera render area [4164]
-
Remove local reference array [4161]
-
Fix Lighting stage feedback loop [4157]
-
Remove unnecessary include [4153]
-
Fill vb with 0 when allocate [9989]
-
Fix spriteFrame apply time [9987]
-
Add MeshRenderData.resize for changing both buffer size and IA size [9986]
-
Fix tiled map [9980]
-
Particle performance improve [9979]
-
Separate IA range and buffer range in MeshRenderData [9978]
-
Fix: keep children with same layer in editbox [9971]
-
Avoid one MeshRenderData upload repeat [9969]
-
Request IA by pool [9967]
-
Fix skeleton animation cross fade/play wonât stop last animation [9965]
-
Set opacity all time [9959]
-
Fix Opacity cascade [9958]
-
Fix no planar shadow on mac [9953]
-
Fix particle switch cpu / gpu bug caused by alignment space [9952]
-
Adjust PhysX initialization [9641]
-
Remove redundant autoreleasepool [4102]
-
Close uv_handle_t [4106]
-
Remove origin code for twice call to java method [4114]
-
Allow tick() in background [4081]
-
Fix Android+WebGL PS struct variables has unexpected mediump precision [4120] & [9863]
-
Fix shadow queue performance [4119]
-
Fix memory leak [4115]
-
Optimize fixedArea mode culling process [4124]
-
Fix windows text alias [4128]
-
Add JsbBridgeWrapper[4125]
-
Combing planar-shadow calculations [4127]
-
Multiple Cameras support rendering to the same RenderTexture [4132] & [9924]
-
Change
define(CC_DIR_SHADOW)
touniform(cc_lightDir.w)
[4129] & [9921] -
Position Delete & Normal Compress in deferred pipeline [4135] & [9939]
-
Open ddx ddy extension on safari WebGL1 [9820]
-
Add profiler reset [9806]
-
Fix terrain _updateHeight texcoord error [9809]
-
Add burst restart [9832]
-
Repair UseHDR button & Skybox HDR status [9843]
-
Add decorator âserializableâ [9848]
-
Restrict DPR on Web platform [9850]
-
Improve GPU particle performance [9847]
-
Disable multi_draw extension on mobile [9835]
-
Cache systemInfo on Cocos Play platform [9856]
-
Fix skeleton model receive shadow macro error and toon shadow display errors [9836]
-
Fix shadow queue performance [9862]
-
Fix mask not working with spine [9864]
-
Fix define syntax error [9870]
-
Detach from scene before destroying Model/Light [9869]
-
Fix set frame rate on runtime [9874]
-
Material.copy accepts overrides [9881]
-
Label string setter optimization [9880]
-
Fix Color.fromHex Bug [9867]
-
Change ts template [9883]
-
Optimize fixedArea mode culling process [9878]
-
Modify builtin texture generation + particle unit test [9841]
-
Update Scheduler API [9815]
-
Fix readPixels [9900]
-
Fix skybox RGBE macro get invalid in startup and mipmap count is overridden [9904]
-
Fix bug: remove all actions by tag [9876]
-
Fix audio bugs [9889]
-
Fix particle index count 0 [9885]
-
Jsb-event-handler for event dispatch [9879]
-
Fix bug of builtin default texture [9916]
-
Refactor communication between skinned mesh renderer and skeletal animation [9787]
-
Add extra steps to the destroy functions to update the cached resources in GFX [9875]
-
Combing planar-shadow calculations [9903]
-
Fallback of shadow supports on Baidu [9897]
-
Prefab: Support the persistent flag [9884]
-
Fix particle capacity issue[9910]
-
Support screen.devicePixelRatio [9926]
-
Fix skeleton animation component play or cross fade [9930]
-
Animation controller api document [9866]
-
Fix event processor list updating [9932]
-
Fix multi touch bug [9917]
-
Fix MOUSE_WHEEL event canât be swallowed by node [9931]
-
Fix audio buffer memory leak on ByteDance and Web platform [9933]
-
Improve compatibility for string of SystemEventTypeUnion [9934]
-
Particle culling loop fix [9922]
-
Fix keyboard event listening on mobile [9935]
-
Fix pointer event sorting after activating node [9906]
-
Fix culling deprecated module [9937]
-
Fix cc_base.d.ts [9944]
-
Add cpu & gpu particle culling unit test [9945]
-
Fix planar-shadow plane offset sign issue [9946]
-
Fix spine typing [9942]
-
Static vertex buffer accessor refactor for Batcher2D [9802]
-
Revert deprecate system event [9941]
-
Reset swallow state after event handling [9950]
-
Fix some spine bug [9948]
Downloads
Download Creator from Dashboard
If you are not using Cocos Dashboard please upgrade! It is worth it.
Cocos Dashboard
The Cocos Dashboard serves as a unified downloader and launch portal for Cocos Creator and Cocos Creator 3D engines. Everyone can upgrade and manage multiple versions of Cocos Creator. In addition, unified project management and a creation panel is integrated, which is convenient for everyone to develop projects with different versions of engines at the same time.
Manage projects developed under different versions:
Developers can choose to use a different version of Cocos Creator when creating a new project: