Jolt Physics, an independent open-source physics engine, has been incorporated into the engine to enable users with constrained screenspace to integrate the game window within the editor. This feature is compatible with Linux, Windows, and Android; however, implementing support for macOS will necessitate an alternative strategy.
The process of interactive in-game editing has been streamlined, enabling users to make modifications to their game directly from the editor, whether it is in a running or paused state. The Godot Editor is now accessible in innovative environments such as the web and mobile platforms, with OpenXR adapting the current Android editor for use within XR headsets.
Ubershaders have been implemented to minimize stutter by offering pre-compiled versions of each shader during the loading process. This method effectively prevents freezing and guarantees a more fluid visual experience, particularly on high refresh rate displays.
AgX tone mapping is an innovative feature that enhances renders with a cinematic quality and effectively manages bright scenes more efficiently than alternative options. Typed dictionaries are being introduced to Godot, affecting the core engine, GDScript, and all other scripting languages when interacting with Godot's Dictionary type.
Godot 4.4, a unified experience
Look forward to plenty of quality of life improvements hidden within this release. Faster load speeds, reduced stutter, streamlined processes — spotting all the optimizations that have been applied in the background will take some time.
On top of that, long-awaited comfort features like embedded game windows and interactive in-game editing will feel more in line with other software on the market, making transitioning between them an even smoother experience. The editor overhaul alone takes up a big chunk of this release, after all.
Highlights
Jolt PhysicsJolt into action
The Jolt extension has been used as the de facto physics engine by many Godot developers since its inception in late 2022, so it only made sense to integrate it into the engine directly. Jolt Physics itself is actually a standalone open source physics engine and its creator helped immensely with the Godot bindings.
While this PR might be one of the most rigorously tested ones, we are eagerly awaiting your feedback (and GitHub issues) to eventually be able to drop the “experimental” label on this addition. Until then, you have to enable this alternative to Godot Physics in the project settings. Before you do, make sure to check if your interests/use-cases are properly supported in the documentation.
Embedded game window
Window management magic
Godot runs the game as a separate process from the editor for two reasons:
- avoid having to share resources as much as possible
- in case of a game crash, keep the editor running (to avoid data loss)
However, this design choice previously prevented embedding the game window into the editor. Which is something that users with limited screenspace, like on single-monitor setups or laptops, are looking for.
Thanks to some window management tricks, it is now possible to embed the game seamlessly and interact with the rest of the editor, while still keeping the processes separate in the background.
Note that this only works on Linux, Windows, and Android for now. Support for macOS will require a different approach for technical reasons.
Interactive in-game editing
Step into your projects
Modifying your game from within the editor while it is running or paused has never been easier. This release lets you click on elements within the scene and move the camera, allowing you to explore your game worlds in ways not possible before.
Android editor support for XR devices
Make games in VR!
Because the Godot Editor itself is a project made with the engine like any other, it can be made available in more unconventional places like the web or on mobile.
With this release, the first steps have been taken to use OpenXR to transfer the existing Android editor into the context of XR headsets.
Currently supported on Meta Quest 3, Quest 3S, and Quest Pro.
Ubershaders to reduce stutter
Uber-exciting!
Ubershaders are at load time pre-compiled versions of each shader with all their features.
These shaders become the fallback whenever a new object is drawn, so that freezing — as we wait for the more specialized shader pipeline in the background to compile — becomes a thing of the past. This technique therefore completely avoids shader stutter!
The improvement from this change will be noticeable in most games without requiring any content changes. In some cases, the ubershaders won’t work however — refer to the workarounds for shader stutter in the official documentation to learn about simple fixes.
We are already in the process of updating our existing shaders to take advantage of this new infrastructure.
3D physics interpolation
Do you get the jitters?
With Godot 4.3, we introduced physics interpolation for your 2D projects. In this release, the long-awaited 3D counterpart has been merged as well! Make sure to enable it in your project settings.
By decoupling physics ticks and display frame rates, physics interpolation creates additional frames between the last physics position and the current one. This reduces jitter and creates a smoother appearance, especially on displays with a high refresh rate.
Mobile games in particular benefit from this change, since you can now lower the tick rate without compromising on smoothness.
AgX tone mapping
The cool new kid on the block
This tone mapping algorithm has gained a lot of popularity lately. Our friends at Blender even replaced their previous “filmic” tone mapper with AgX.
The Godot implementation resembles theirs closely, but is purposely simplified to be more suitable for real time use cases.
AgX gives a movie-esque quality to renders and is capable of handling very bright scenes better than our other available options.
Typed dictionaries
Keys required
Your requests have been heard!
Typed dictionaries are coming to Godot. This impacts the core engine, GDScript, and all other scripting languages when interfacing with Godot’s Dictionary type.
The Inspector UX has been improved accordingly, to let you assign the right keys and values directly in the editor.