Season’s greetings, everyone! As our team winds down for the holiday season, we present you with one last gift before
the new year: our final development build of the year!
After having a few notable regressions in dev 6, we intended to do a quick turnaround for dev 7 with high priority bug
fixes. But we got greedy and ended up making dev 7 another feature-packed new release so you will have plenty of things
to check out while we are on holidays.
Keep in mind that while we try to make sure each dev snapshot is stable enough for general testing, this is by
definition a pre-release piece of software. Be sure to make frequent backups, or use a version control system such as
Git, to preserve your projects in case of corruption or data loss.
Jump to the Downloads section, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the Web editor, XR editor, or the Android editor for this release (join the Android editor testing group to get access to pre-release builds).
The cover illustration is from Pest Apocalypse, a hyper-realistic post apocalyptic physics based pizza delivery action rogue-lite! It is developed by Kikimora Games. You can purchase the game on Steam, and follow the developers on BlueSky and Discord.
Highlights
In case you missed them, see the 4.4 dev 1, 4.4 dev 2,
4.4 dev 3, 4.4 dev 4, 4.4 dev 5, and 4.4 dev 6 release notes for an overview of
some key features which were already in those snapshots, and are therefore still available for testing in dev 7.
Here are highlights of a few new features in dev 7 that you might find particularly exciting!
Jolt Physics module
Ever since its inception in late 2022, godot-jolt has become the de-facto 3D
physics engine for many of our developers. Much of the history behind why this was the case is documented in this
proposal by Adam Scott, but
the main takeaway was a strong push for this tool to be recognized as an official addon. In doing so, users would be
able to find this amazing resource in a way that was promoted by the engine itself; an exciting prospect!
The Godot Jolt maintainers, Mikael Hermansson and Jorrit Rouwe,
took this idea one step further: integrating the tool as part of the engine directly. There was already a symbiosis
between their team and the Godot engine, with many features being added to Godot and Jolt to accommodate both, but the
integration of an official module was no small feat; their pull request
(GH-99895) ended up adding over 500 files and 115 thousand lines
of code! So while this was one of the most rigorously tested PRs relative to the amount of time it’s been up, it’d be
impossible for any team to account for everything this behemoth introduced, so we eagerly await your feedback (and bug
reports) on one of the most highly-requested features of 4.x.
Note: At time of writing, this does not replace Godot Physics as the default 3D physics engine.
The Jolt Physics integration in Godot is considered experimental, and may change in future releases. It also lacks some features of Godot Physics so isn’t a full drop-in replacement. If your interests/use-case are supported, the
tool can be enabled by changing the physics/3d/physics_engine
project setting to Jolt Physics
.
.NET 8.0
Paul Joannon and Raul Santos have put the final pieces in
place for moving both the GodotSharp library and user projects to .NET 8 (GH-92131 and
GH-100195). All new projects will use .NET 8 by default and
existing projects will automatically update to .NET 8 once opened with this release or any newer 4.4 build.
The amount of performance boosts that have been crammed in between dev 6 and dev 7 has been staggering. Of note are the
recent improvements to the engine’s core including many optimizations throughout the String class, spearheaded by
Ivorforce. But perhaps the most obvious improvement comes from HP van
Braam and their modifications to the SceneTree system
(GH-99700). While this will prove beneficial across all projects,
these changes result in especially complex scenes having a tenfold performance in the editor when moving or renaming
nodes in the SceneTree.
Thanks to Danil Alexeev the GDScript code editor will now display a tooltip containing
information about functions, variables, classes, etc. when you hover over them, including the documentation you have
written using our documentation system (GH-91060). This makes using
the integrated documentation system even more powerful as you no longer have to bounce between the code editor and the
related docs to quickly get information.
Baked shadowmasks for lightmaps
Until now, you have always had to choose between fully baked or fully dynamic shadows when using LightmapGI. However,
sometimes you want to have dynamic shadows up close where detail matters, but use static shadows in the distance where a
low resolution is acceptable. Finally it is possible thanks to the hard work of
BlueCube3310 in GH-85653. You can
now enable shadow masks while baking your LightmapGI to combine dynamic and static shadows for the best quality.
Additionally, this allows you to drastically shorten the range of your dynamic shadows which is a very important
optimization, especially for mobile devices.
This feature is still experimental and it will change in response to feedback, so please test it out and let us know
what you think!
We updated some of the toolchains we use for official builds in build-containers#150,
notably macOS and iOS SDKs from Xcode 16.2, and MinGW 12.0.0 with GCC 14.2.1 for Windows builds.
Toolchains for Linux, Android, and Web are still the same versions as for Godot 4.3.
And more!
There are too many exciting changes to list them all here, but here’s a curated selection:
- 3D: Add 3D translation sensitivity to Editor Settings (GH-81714).
- 3D: Add ruler mode to 3D (GH-100162).
- Animation: Add animation node extension (GH-99181).
- Audio: Add Web MIDI support (GH-95928).
- Buildsystem: Add loongarch64 support for Linux/*BSD (GH-97822).
- Buildsystem: Make Godot compile on
FreeBSD
(GH-100047). - Core: Fix
JSON.{from,to}_native()
issues (GH-99765). - Core: Optimize StringBuilder by using
LocalVector
instead of Vector
(GH-99775). - Core: Optimize String construction from statically known strings by evaluating
strlen
at compile-time (GH-100132). - Core: Add move assignment and move constructor to Variant (GH-100426).
- Documentation: Document
_process()
and _physics_process()
delta behavior at low FPS (GH-94636). - Editor: Add ability to create a new inherited scene from code (GH-90057).
- Editor: Add profiler autostart indicator to EditorRunBar (GH-97492).
- Editor: Allow dragging to specific folders in filesystem dock (GH-99453).
- Editor: Make the Script Editor’s parser execute sooner on edit after error was found (GH-87542).
- Editor: Show String properties’ text in a tooltip in the inspector (GH-76231).
- Export: Use temp dirs instead of cache dirs for export (GH-100150).
- GDExtension: Fix
Variant
modulo operation (GH-99559). - GDScript: Add
@warning_ignore_start
and @warning_ignore_restore
annotations (GH-76020). - GUI: Change default Arabic font to Vazirmatn (GH-100053).
- GUI: Fix Tree drag-and-drop scrolling having low FPS at low Physics Ticks per Second (GH-98766).
- GUI: Improve emoji SVG parsing by caching (GH-100300).
- GUI: Save color palette as resources to reuse later (GH-91604).
- Import: Consider all texture types for resource thumbnail generation (GH-100247).
- Input: Add
Tablet/Trackpad
3D navigation preset (GH-97985). - Navigation: Despaghettify NavigationServer path queries (GH-100129).
- Plugin: Export
EditorInspector::instantiate_property_editor
for use by plugins (GH-87375). - Rendering: Add Blend Distance property to ReflectionProbe (GH-99958).
- Rendering: Allow changing the anisotropic filter level at run-time per Viewport (GH-88313).
- Rendering: Further performance improvements from The Forge (GH-99257).
- Rendering: Automatically compress new lightmap textures (GH-100327).
- Rendering: Optimize PointLight2D shadow rendering by reducing draw calls and RD state changes (GH-100302).
- Rendering: Implement
RD::buffer_get_data_async()
and RD::texture_get_data_async()
(GH-100110). - Shaders: Avoid error spam when shaders fail to compile by freeing shader_data version when compilation fails (GH-100128).
- XR: Allow locking the camera to the
XROrigin3D
for benchmarking or automated testing (GH-99145). - XR: OpenXR: Add support for binding modifiers (GH-97140).
Changelog
113 contributors submitted 263 improvements for this new snapshot. See our interactive changelog for the complete list of changes since the previous 4.4-dev6 snapshot.
This release is built from commit 46c8f8c5c
.
Downloads
Standard build includes support for GDScript and GDExtension.
.NET build (marked as mono
) includes support for C#, as well as GDScript and GDExtension.
- .NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition a pre-release piece of software. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
Known issues
With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of known bugs.
There are currently no known issues introduced by this release.
Bug reports
As a tester, we encourage you to open bug reports if you experience issues with this release. Please check the existing issues on GitHub first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.
In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).
Support
Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part or full-time developers hired thanks to generous donations from the Godot community. A big thank you to everyone who has contributed their time or their financial support to the project!
If you’d like to support the project financially and help us secure our future hires, you can do so using the Godot Development Fund platform managed by Godot Foundation. There are also several alternative ways to donate which you may find more suitable.