This is the first dev snapshot for 4.4! During the beta and release candidate stages of 4.3, we accumulated a lot of PRs that were of great quality, but deemed too risky to include in 4.3. We have begun merging those PRs now and have quickly gathered a lot of changes that warrant a dev release!

Many of the changes in this release are bug fixes that will be backported to Godot 4.3 and released in 4.3.1! So please test this release well so we can be confident with the changes and release 4.3.1 with them as soon as possible.

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 or the Android editor for this release. If you are interested in the latter, please request to join our testing group to get access to pre-release builds.


The original cover illustration is from Gourdlets, an easygoing sandbox game about building towns for cute vegetable folks. Developed in Godot 4 by AuntyGames, it was recently released on Steam to critical acclaim. You can follow the developer on Twitter, TikTok, and Instagram.

Highlights

After just 10 days of development, we are bringing you a bunch of fixes and improvements, some of which are fairly massive new features!

Metal rendering backend

We hinted that a Metal backend was in the works and it is finally here (GH-88199), thanks to the exceptional work of Stuart Carnie!

Metal is a low-level graphics API similar to Vulkan or D3D12. Godot currently supports using Vulkan or D3D12, but neither of those are available on macOS and iOS, so we use a library called MoltenVK to run Vulkan over Metal. MoltenVK is great and has worked well for us. However, having our own Metal implementation is more efficient and allows us to have a greater control over what features we support and what performance tradeoffs we make.

Early results show that the Metal backend on macOS is at least as fast as the Vulkan backend and in many cases, much faster.

Right now, we only support Metal on Apple Silicon (ARM) devices. That includes all iOS devices and the M1/M2/M3 Macs. Intel-based Apple devices will continue to work with the MoltenVK backend. Currently, this limitation is due to the fact that few contributors working in this area have access to non-Apple Silicon devices.

3D physics interpolation

Godot 4.3 came with physics interpolation for 2D nodes, and now the 3D counterpart has been merged (GH-92391), with Ricardo Buring continuing the forward-porting of lawnjelly’s Godot 3.x implementation. Not only that but support for MultiMeshes has also been merged (GH-91818)!

Physics interpolation is a technique that allows you to run your physics update at a very low FPS while maintaining smooth movement. This allows you to both save CPU overhead and make your game look much smoother.

Lightmap bicubic sampling

Bicubic sampling is a method for reading from a lightmap that smooths our sharp edges. It is especially useful when you bake lightmaps with shadows at a low texture resolution. We supported this in Godot 3, and have now brought it back in GH-89919, courtesy of BlueCube3310.

Bicubic sampling comes with a small run-time performance cost on the GPU, so it can be disabled in a project setting if needed.

Combined with new antialiasing for direct light samples (GH-95828), low resolution static shadows now look much better in lightmaps.

Betsy texture compressor

The Betsy texture compressor is a tool to compress images into various GPU texture formats. Currently, compressing images for the GPU (in Godot using the “VRAM Compressed” import setting) can be quite slow. Betsy is a texture compressor that runs on the GPU and is able to compress images significantly faster than our current compressors. This reduces import time dramatically.

While Betsy was written a few years ago by Matias N. Goldberg, we are just beginning to integrate it into the engine now (GH-91535), thanks to the effort of BlueCube3310. Currently it is only implemented for HDR images set to “high quality”. However, soon we will extend it to many more compression types and begin to use it internally for things like lightmaps.

The improvement is most obvious when importing HDRIs, here are a few examples from the PR:

Image

CVTT

Betsy

Symmetrical garden 8k .hdr with mipmaps

92.4s

475ms

Cobblestone Street Night .hdr 4k with mipmaps

26.5s

217ms

Laufenurg Church 8k .hdr with mipmaps

99.3s

440ms

Little Paris 8k .hdr with mipmaps

92.7s

467ms

Dev1 also brings optimizations to other stages of loading HDRIs that should make them much faster across the board:

Optimizations

Contributors have been hard at work on various optimizations across the engine. Now that Godot 4 is being used more and the core feature set is feeling stable, we can turn our minds to optimizing the existing features. Many optimizations were finished and tested before the 4.3 release but were too late to merge. So now we get them all in one big batch.

Here are a few:

And more!

There are too many exciting changes to list them all here, but here are a few more.

Changelog

99 contributors submitted 228 improvements for this new snapshot. See our interactive changelog for the complete list of changes since 4.3-stable.

This release is built from commit 28a72fa43.

Downloads

Download Godot 4.4 dev1

Standard build includes support for GDScript and GDExtension.

.NET build (marked as mono) includes support for C#, as well as GDScript and GDExtension.

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

There are currently no known issues introduced by this release.

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.

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.


Clay John

Also published here

Photo by Fikri Rasyid on Unsplash