3 min read
Improved features in the Godot 3.1
OpenGL ES 2.0 renderer
Rendering is done entirely on sRGB color space (the GLES3 renderer uses linear color space). This is much more efficient and compatible, but it means that HDR will not be supported. Some advanced PBR features such as subsurface scattering are not supported. Unsupported features will not be visible when editing materials.
Some shader features will not work and throw an error when used. Also, some post-processing effects are not present either. Unsupported features will not be visible when editing environments. GPU-based Particles will not work as there is no transform feedback support. Users can use the new CPUParticles node instead.
Optional typing in GDScript
This has been one of the most requested Godot features from day one. GDScript allows to write code in a quick way within a controlled environment. The code editor will now show which lines are safe with a slight highlight of the line number. This will be vital in the future to optimize small pieces of code which may require more performance.
The Godot inspector has been rewritten from scratch. It includes features such as proper vector field editing, sub-inspectors for resource editing, better custom visual editors for many types of objects, very comfortable to use spin-slider controls, better array and dictionary editing and many more features.
Kinematicbody2d (and 3d) improvements
Kinematic bodies are among Godot’s most useful nodes. They allow creating very game-like character motion with little effort. For Godot 3.1 they have been considerably improved with:
- Support for snapping the body to the floor.
- Support for RayCast shapes in kinematic bodies.
- Support for synchronizing kinematic movement to physics, avoiding a one-frame delay.
New Axis Handling system
Godot 3.1 uses the novel concept of “action strength”. This approach allows using actions for all use cases and it makes it very easy to create in-game customizable mappings and customization screens.
Visual Shader Editor
This was a pending feature to re-implement in Godot 3.0, but it couldn’t be done in time back then. The new version has new features such as PBR outputs, port previews, and easier to use mapping to inputs.
Godot now supports 2D meshes, which can be used from code or converted from sprites to avoid drawing large transparent areas.
It is now possible to create 2D skeletons with the new Skeleton2D and Bone2D nodes. Additionally, Polygon2D vertices can be assigned bones and weight painted. Adding internal vertices for better deformation is also supported.
Constructive Solid Geometry (CSG)
CSG tools have been added for fast level prototyping, allowing generic primitives and custom meshes to be combined via boolean operations to generate more complex shapes. They can also become colliders to test together with physics.
CPU-based particle system
Godot 3.0 integrated a GPU-based particle system, which allows emitting millions of particles at little performance cost. The developers added alternative CPUParticles and CPUParticles2D nodes that perform particle processing using the CPU (and draw using the MultiMesh API). These nodes open the window for adding features such as physics interaction, sub-emitters or manual emission, which are not possible using the GPU.
The new 3.1 version includes some very requested enhancements such as:
- Folded properties are no longer saved in scenes. This avoids unnecessary history pollution.
- Non-modified properties are no longer saved. This reduces text files considerably and makes history even more readable.