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.
Powerful editor features
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.
- Brand new interface design, more concise and clear.
- Resource system upgrade, enhanced support for super large projects, more efficient and reliable.
- Code isolation between modules, pure message-driven, more stable.
- The extension system is completely modularized to welcome a more powerful plug-in mechanism.
One-click access to Cocos’s quality services
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.
Brand new Prefab system
Creator v3.0 re-implements the Prefab system with features such as:
- Support Prefab automatic synchronization.
- Prefab instance can overwrite attributes in Prefab resource.
- Support Prefab nesting.
Build content caching
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.
Task-based build list
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.
Compile and generate separately after build
The generation stage of each mini game platform is extracted, allowing to modify the content of the file after build to regenerate rpk/cpk.
Build process hooks
The build extension support adding hooks before and after compilation to customize the build process.
Support Asset Bundle
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!
Powerful extension system
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:
- Batch key frame interval adjustment.
- Copy and paste across node tracks.
- Indirect attributes (such as material attributes) keyframe editing.
- Directly select resources and directly edit key frame data in the animation editor.
- Multi-select key frame zoom, move and delete.
- Support multi-select nodes to add attribute tracks in batches.
- Support copy and paste all animation data on the node.
- Support shielding no key frame nodes and search nodes.
- Support editing component tracks.
- Support to adjust the layout of the animation editor.
A more complete tool chain
- Support model preview.
- After selecting the model in the editor, you can preview the model resources in all directions, and you can also view various textures used in the default materials.
- New version of FBX importer.
- Support the import of glTF resources, support khr-draco-mesh-compression, sparse accessor.
- Support animation cutting.
- Provide Mesh Optimizer tool.
- Model import support quantized joints/weights.
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.
Built-in baking system
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.
Visual macro configuration
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.
Batch configuration of compressed textures via presets
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.
Support 2.x project migration
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.
Powerful engine features
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.
- Supports multiple rendering backends of Metal, Vulkan, WebGL 1.0, WebGL 2.0, GLES2, GLES3, and provides a unified GFX graphics API layer to the rendering pipeline layer.
- The GFX API design close to the modern graphics API helps the rendering pipeline layer to release the performance and possibilities provided by the modern graphics API as much as possible.
- Built-in forward rendering pipeline, support user-defined rendering pipeline.
- Physically based light sources, cameras and materials help developers use industrialized processes to create the most realistic visual effects.
- Supports GPU Instancing batch optimization, which is suitable for drawing a large number of dynamic models with the same mesh, and supports instancing batches of models containing skeletal animation calculations.
- Support global fog effect.
- Powerful native renderer, using memory sharing mechanism to reduce JSB calls and speed up data access.
- Support ASTC, ETC, ETC2, PVR and other compressed textures.
Light and Shadow
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.
- Physically based light source.
Cocos Creator v3.0 uses optical measurement units to describe light source parameters. Based on optical measurement units, we can convert all the relevant parameters of the light source into physical values in the real world. In this way, the designer can adjust the light intensity, color, range and other information according to the actual lighting industrial parameters and the actual physical parameters of the real environment, so that the overall lighting effect and light attenuation are more in line with the real natural environment.
- Multi-light support based on multi-pass.
- Support high-performance flat shadow Planar Shadow.
- Directional light and spotlight dynamic shadow based on Shadow Map, support PCF soft shadow and GPU Instancing.
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.
- Support up to dozens of module settings, and support various types of curves, constant changes.
- Support GPU particles, greatly improving rendering performance.
- Support Cocos traditional 2D particles.
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.
- Built-in physical-based standard materials.
- Support Cocos Effect.
The Cocos Effect based on YAML and GLSL designed by Cocos is a single-source embedded domain specific language(single-source embedded DSL). The YAML part declares the flow control list, and the GLSL part declares the actual Shader fragment. The above complement each other and together constitute a complete rendering process description.
- Support more than 32 Effect macro definitions.
- Cocos Effect compiler automatically removes invalid codes.
- Support importing Effect header files.
- Effect’s resource panel now supports previewing the compiled Shader code, and supports visual editing of each Define of the Shader.
- Support material preview.
- Support TiledMap.
- Support Spine, DragonBones.
- Support Spine, DragonBones and TiledMap rendering in 3D scene (need to customize material to control depth detection).
Skeleton Animation System
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:
- CPU or GPU driven skeletal animation, can be switched freely.
- Supports the fusion transition of animation (CPU driven).
- Use binary format to store skeletal animation to reduce file size.
- Support two components: general animation and skeletal animation.
- Support material sub-attribute animation such as Uniform.
- Support CPU driven Morph Target (Blend Shape).
- Embrace ES6 and TypeScript, complete code hints and automatic import.
- Attributes support independent type decorator:
- Support Async Await syntax.
- Optional Chaining support.
- Nullish Coalescing support.
- Certain circular reference behaviors will be detected and warned during operation.
- Added core-js polyfills to help some low-end platforms complete ES6 support.
- Support loose compilation mode, which can reduce package body and optimize performance.
- Support using NPM modules.
- Subdivide engine modules, allowing more detailed module removal.
Cocos Creator v3.0 continues the 2.x UI design, and further optimizes and upgrades, including the following:
- Flexible and concise 2D rendering and UI interaction, layout components, support 20 kinds of components including Sprite, Label, Button, Widget, etc. You can use these basic components to combine various types of UI effects.
- Support static batching.
The engine provides the UIStaticBatch component. UIs that do not require frequent changes can use this component to cache rendering data, thereby reducing rendering consumption and improving performance.
- Support dynamic image combining at runtime, reduce the number of drawcalls, and optimize performance.
- Merged the UI rendering process and the forward rendering process, allowing 2D and 3D rendering components to be mixed, and rendering visibility is completely determined by the node Layer and camera Visibility.
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.
- Support multiple physical backend options, including ammo.js, cannon.js and more lightweight builtin physical.
- Support WeChat mini games using WASM physical backend, which can achieve higher performance on iOS.
- Physics system supports fixed step refresh.
- Support physical materials.
- Supports a variety of practical collision bodies including simple shapes, cones, planes, terrain, capsules, cylinders, static mesh collision bodies, etc…
- Support point-to-point and hinge constraint components.
- Mesh collider adds convex hull approximation function.
- Support traditional Creator 2D physics and collision system.
In a near future, we will provide builtin PhysX backend on native platforms, which will greatly improve performance and physics capabilities.
Detailed changes (compared to Creator 3D)
- [3.0 NEW FEATURE] New FBX importer.
- [3.0 NEW FEATURE] supports loose compilation mode when compiling.
- [3.0 NEW FEATURE] Terrain supports normal map and pbr material.
- [3.0 NEW FEATURE] supports EditBox in GameView mode.
- [3.0 NEW FEATURE] supports code removal according to pre-compiled macros when compiling project scripts.
- [3.0 NEW FEATURE] supports removing deprecated compatible codes during the build process and reducing the package body.
- [3.0 NEW FEATURE] Brand new Prefab system, supports Prefab nesting.
- [3.0 NEW FEATURE] The terrain system supports the use of custom brushes and normal map settings.
- [3.0 NEW FEATURE] Support resource package import and export function.
- [3.0 NEW FEATURE] native platform supports script encryption.
- [3.0 NEW FEATURE] Added Huawei AGConnect build platform.
- [3.0 NEW FEATURE] Added Huawei quick game debugging tool.
- [3.0 NEW FEATURE] supports access to Cocos Service.
- [Sync 2.x] supports simulator preview.
- [Sync 2.x] supports publishing LianShang mini game platform.
- [Sync 2.x] supports publishing interesting headlines game platform.
- [Sync 2.x] supports building Android Instant.
- [Sync 2.x] supports the new version of serialization mechanism.
- [Sync 2.x] Asset Bundle support.
- [Sync 2.x] supports engine module removal during preview.
- [Sync 2.x] editor supports importing JSON resources.
- [Sync 2.x] editor supports importing text resources.
- [Sync 2.x] editor supports importing LabelAtlas resources.
- [IMPROVE] Upgrade electron, computer that supports M1 chip.
- [3.0 NEW FEATURE] supports using NPM library.
- [Sync 2.x] supports Tiledmap.
- [Sync 2.x] supports Spine.
- [Sync 2.x] supports DragonBone.
- [Sync 2.x] supports MotionStreak.
- [Sync 2.x] supports WebView.
- [Sync 2.x] supports VideoPlayer.
- [Sync 2.x] supports 2d physics and collision system, including box2d and builtin.
- [Sync 2.x] supports Asset Manager resource management.
- [Sync 2.x] supports LabelShadow.
- [Sync 2.x] supports SafeArea.
- [Sync 2.x] Mask supports image stencil.
- [Sync 2.x] audio supports multicast.
- [Sync 2.x] supports dynamic picture combination.
- [IMPROVE] UIMeshRenderer supports receiving parallel light.
- [IMPROVE] remove cc.Class() style declaration.
- [IMPROVE] Reconstruct 3d physical collision matrix. The collision matrix is only used to initialize the grouping and mask of rigid bodies. It is no longer maintained and updated, and the Use Collision Matrix configuration item is abolished.
- [IMPROVE] Refactored 3d rigid body, removed RigidBody.isKinematic, added RigidBody.type to set the rigid body type, removed fixedRotation, and replaced it with angularFactor.
- [IMPROVE] UI supports custom materials.
- [IMPROVE] Optimize UI system performance and reduce the number of drawcalls.
- [FIX] Fix Safari 14 performance issues.
- [FIX] Fix the problem of Button component Scale setting abnormal.
- [FIX] Fix the problem that the lightPassIdx of submodels are consistent and cause rendering errors.
- [FIX] Fix the problem that the terrain collider does not match the rendering effect after the node is zoomed.
- [FIX] Fix the problem of reporting errors when calling the
- [FIX] Fix the problem that setting the label alignment of EditBox component is invalid when InputMode is not ANY.
- [3.0 NEW FEATURE] supports a new subdomain scheme.
- [3.0 NEW FEATURE] supports WeChat mini games to use wasm physical backend.
- [3.0 NEW FEATURE] Support Metal rendering backend.
- [3.0 NEW FEATURE] supports Vulkan rendering backend.
- [IMPROVE] further reduces jsb calls and optimizes performance.
- The Vulkan backend on Android currently has performance issues, to be fixed in a future version.
- On a machine with M1 chip, an error will appear when compiling the ios simulator, you need to manually change arch to arm64, which will be fixed in subsequent versions.
- Android does not currently support the release of x86_64 architecture.
- The native platform does not currently support freetype for text rendering.
- Button component does not currently support
enable auto gray effectoption.
- It is currently not possible to create components, delete components, delete sub-nodes, and adjust the order of sub-nodes for Prefab instances in the scene. It is recommended to perform these operations in the Prefab resource.
- Nodes outside the prefab hierarchy currently cannot reference nodes or components in Prefab.
- When the terrain’s size is not by n*n, the baking process will fail.
- Upgraded old project from v2.x might have property referencing issue in prefab data, please refer to this topic 1 for detailed information and fix.
- The built-in effects of the engine source code are uniformly changed to a different naming rule from the editor resources. If an effect is not used at all in the project scene, it will not be obtained by using the effect name in the script (such as builtin-unlit, etc.). It is recommended that when developers need to create materials programmatically, they should uniformly expose the effect asset as the property of the script, mount it in the scene, and then directly pass in material.initialize.
- The editor HOME directory has been switched from
\~/.CocosCreator, and the plugin directory has been renamed from packages to extensions. Plugins after 3.0 will be stored in
- The original subdomain plan is no longer applicable, please switch to the latest subdomain plan.
cc.globalvariables are no longer supported, please use module import.
- The 2D node will now strictly judge whether it can be rendered according to the visibility of the layer and the camera. If multiple cameras exist, there may be repeated rendering, and the layer of the node needs to be re-adjusted.
- Refactored physics events. Events between static rigid bodies are no longer supported. It is recommended to add a Kinematic or Dynamic rigid body component to the corresponding node of the collision body that monitors the event.
- Unable to upgrade to the Prefab of the new Prefab system, it will break the relationship and restore to a normal node.
API update (relative to Cocos Creator 3D)
- The name of the physical material type has been changed.
|Creator 3D v1.2||Creator v3.0|
- Some type names and method names under the geometry space have been changed.
|Creator 3D v1.2||Creator v3.0|
- Some platform variables under sys have been changed.
|Creator 3D v1.2||Creator v3.0|
- The Canvas component no longer has properties such as clearFlag, color, priority, targetTexture, visibility, etc., please get it directly through the Camera component referenced by the Canvas component.
- Some components related to 2d have been renamed.
|Creator 3D v1.2||Creator v3.0|
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:
- 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.
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 email@example.com for our manual assistance!