Cocos Creator v3.4.1 released!

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.

image

Important updates

  1. Refactored 2D batching strategy, RenderData holds static VertexBuffer memory to optimize 2D rendering performance on all platforms

  2. Optimize the state management of 2D rendering components, and change the UV and Color to fill immediately to avoid polluting the VB state

  3. Material.copy now supports accepting override material modification parameters

  4. Enable WebGL 2.0 on WeChat to prepare for future WeChat versions that support WebGL 2.0

  5. Slightly optimize the performance of the particle system

  6. Fix the problem that the editor with too many startup scripts is slow

  7. Fix the problem that an error will be reported when compiling the simulator

  8. Limit the maximum device pixel ratio of the web platform to 2, and fix the performance degradation caused by it

  9. Fix event dispatch priority so that UI listeners always take precedence over input event listeners

  10. Fix the problem of performance degradation in shadow collection logic

  11. Fix the problem of abnormal exit when restart is called for the second time in iOS/macOS

  12. Fix the problem that the game logic stops when the Android platform enters the background

  13. Fix the problem of independent use of SkeletalAnimation sample API

  14. Fix the confusion problem of animation crossFade API

  15. Fix the color setting problem of TiledLayer

  16. Fix the problem that multiple camera outputs are overwritten when rendering to the same RenderTexture

  17. Fix some memory fragmentation issues on the native platform

  18. Fix the problem that Label spacingX property is not serialized

  19. Fix the problem that the profiler disappears after restarting in debug mode

  20. Fix the problem that burst does not behave correctly after replaying after pause

  21. Fix the problem that the UseHDR button has the opposite effect when switching scenes

  22. Fix iOS & Mac Safari does not support USE_REFLECTION_DENOISE

  23. Fix the problem of performance degradation introduced by getSystemInfoSync on Cocos Play and WeChat platform

  24. Fix the problem that Sphere Light doesn’t work correctly on Android Web

  25. Fix the crash when three cocos games are running at the same time in the debug mode of the windows platform

Known legacy issues

  1. Slider cannot be smoothly dragged in ScrollView: solution planned in v3.4.2

  2. SkeletalAnimation directly setTime is invalid without calling play Solution in v3.4.2

  3. 2D particles flicker in some cases: Solution in v3.4.2

  4. DragonBones needs to call ArmatureDisplay.markForUpdateRenderData after setting the position to update correctly: Solution in v3.4.2

  5. 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 planar-shadow normal is zero [4165] & [9975]

  • 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]

  • updateLightingMap sync to native-engine [4109] & [9828]

  • 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) to uniform(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

Dashboard for MacOS

Dashboard for Windows

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:

8 Likes

a much-needed upgrade. Thanks for your efforts cocos team <3

1 Like

Can someone explain what does it mean?

Yup. It’s on my list for the team upon their return from national holiday.

You can look at this issues should be able to solve your doubts

https://github.com/cocos-creator/3d-tasks/issues/10662