After four years, and plenty of hype, the Godot Game Engine developers have announced the release of version 4.0. You can read the release announcement, and download 4.0 Stable on the Godot blog, here.
Since I've been messing around with the prerelease builds for a while, now, I figured I'd weigh in on some of the changes.
All New Vulkan-based Rendering Engine
This is the headline feature for Godot 4, and for good reason. The new renderer runs a lot faster, and looks a lot better than what came before it.
In Godot 4, the engine offers two Vulkan based rendering backends. The Forward+ option is intended for use on desktop devices with powerful GPUs, while the Mobile renderer is designed for devices with less graphical power. As such, the Forward+ renderer has a more complete feature set, and delivers the best graphics. That being said, the Mobile renderer still looks better than using OpenGL on Godot 3.x, and generally runs faster on simple 3D scenes.
For devices that lack proper support for Vulkan, the engine also offers a Compatibility renderer that uses OpenGL ES 3. Since there was some controversy about whether Godot 4.0 would even ship this feature, the OpenGL renderer still lacks some planned features, mostly on the 3D side. It will continue to receive iterative improvements with upcoming releases.
Signed Distance Field Global Illumination
The new SDFGI feature provides a one click solution for scene-wide Global Illumination. While this does impact 3D performance, the developers have stated that they're aiming to support this feature on graphics cards like the GTX 1060, so this feature is reasonably accessible.
Automatic Level of Detail Meshes
Godot 4 also attempts to automatically create lower Level of Detail meshes when importing 3D models. This allows the engine to swap out detailed meshes in favor of lower quality models when an object is far enough from the active camera that the detail isn't needed. This is similar in concept to what Unreal Engine 5 does with its Nanite feature, though the implementation is different.
New Naming Convention for Nodes
The developers have taken advantage of the major version update to make some breaking changes. This includes new names for a number of nodes, particularly on the 3D side of the engine. Now, 3D nodes have '3D' as a suffix, similar to the way 2D nodes have been handled in the past. See this GitHub proposal for more information about the changes.
Overhauled Physics
While Godot 3.x integrated the Bullet Physics library, 4.0 is moving away from it. A contributor named Camille (@PouleyKetchoup on Twitter) made a number of improvements to the internal Godot physics engine, so it "works great and has a tiny footprint." GDExtension will also make it possible to create plugins for other physics engines for developers who have a specific need.
Improvements to GDScript, and Enhanced C# Support
The team has introduced some changes to scripting in Godot 4, to take advantage of the other breaking changes introduced in this version.
On the GDScript side, the new version introduces GDScript 2.0, with a number of new features, detailed here. Many of the new features seem intended to support Functional Programming techniques.
For more information about the changes to C# support, see this post on the Godot blog from Raul Santos.
Movie Writer Mode
Of particular note for us, the 4.0 release includes a Movie Writer mode that can render scenes to a video file. This enables creators to leverage the engine's real time rendering capabilities for video production, in addition to game development. At release, this feature supports both Motion JPEG video in an AVI container, and PNG sequences.
More to Come
The team has been clear for a while that Godot 4.0 is just the beginning of the 4.x development cycle. Upcoming releases will continue to fix bugs, improve performance and stability, and add new features to the engine. But this release provides a much more modern base to begin working on these planned improvements, so we won't have to (ugh) wait as long for Godot 4.1.