We released Godot 4.0 beta 1 in September, and that was a big milestone on our journey to finalize our next major release – be sure to check out that blog post if you haven’t yet, for an overview of some of the main highlight of Godot 4.0.

But the “1” in beta 1 means that it’s only the first step of the journey, and like for the alpha phase, we’re going to release new beta snapshots roughly every other week.

We’re now at beta 4, slightly delayed as I was on holiday, but all the more interesting to try out. It adds less new features than previous beta snapshots did, but instead has more focus on bugfixing and stabilization, which should make it a much nicer experience than previous betas.

Jump to the Downloads section.

The illustration picture for this article is a screenshot of Godot 4 Beginners, an Early Access interactive course for Godot 4, made with Godot 4, developed by Bramwell. You can check out a demo on itch.io, and follow Bram on YouTube and Twitter for updates and free video tutorials.

What’s new

If you’re interested in an overview of what’s new in Godot 4.0 beta in general, have a look at the detailed release notes for 4.0 beta 1. In this beta 4 blog post, we will only cover the main changes since the previous beta release.

See the changelog on GitHub, or the list of merged PRs, for an overview of all changes since 4.0 beta 3 (209 commits – excluding merge commits ― from 78 contributors).

Some of the most notables feature changes in this update are:

  • Android: Use proper types for converting Java float/double arrays (GH-67581).
  • 2D: Make TileMap terrain painting not change neighbors centers bits (GH-67390).
  • C#: Reflection-less delegate callables and nested generic Godot collections (GH-67987).
  • Core: Make some Image methods static (GH-63332).
  • Core: Expose minizip API to allow creating zips using scripts (GH-65281).
  • Core: Add ability to pick random value from array (GH-67444).
  • Editor: Reorganize script editor menu (GH-64277).
  • Editor: Add “Scene” and “Visibility” buttons in Remote Scene Tree (GH-65118).
  • Editor: Added custom Node export (GH-67055).
  • Editor: Make Camera3D gizmo clickable (GH-68003).
  • Editor: Make texture preview filter setting content aware (GH-67426).
  • Editor: Add script editor shortcut to add selection and caret for next occurrence of current selection (GH-67644).
  • Export: Fix exporting with 2GB+ export templates (GH-67577).
  • GDExtension: Add support for registering virtual and abstract classes (GH-66979).
  • GDExtension: Implement a way to dump the gdnative_interface.h file from the executable (GH-67309).
  • GDScript: Allow non-constant string message for assert (GH-62695).
  • GDScript: Implement RETURN_VALUE_DISCARDED warning (GH-67361).
  • GUI: Support AtlasTexture in radial modes of TextureProgressBar (GH-66352).
  • GUI: Add support for OEM encoded bitmap fonts (GH-67486).
  • macOS: Ensure Vulkan subgroups are disabled for MoltenVK (GH-67915).
  • Multiplayer: Move packet relay and peer signaling code to SceneMultiplayer (GH-67094).
  • Multiplayer: Add MultiplayerPeer disconnect_peer, close (GH-67982).
  • Physics: Optimized support function for large meshes (GH-64382).
  • Rendering: Add OpenGL timer queries to OpenGL3 backend (GH-67032).
  • Rendering: Improve behaviour of clip_children by clipping to parent alpha value but still retaining parent color (GH-67043).
  • Rendering: Fix drawing of 2D primitives in OpenGL3 renderer (GH-67416).
  • Rendering: Check for a Vulkan extension before checking its features (GH-67729).
  • Visual Shader: Add math operators to node names for easier and simpler searching (GH-67905).
  • Web: Fix error resulting in 2D objects not drawing in the WebGL2 backend (GH-67402).
  • Windows: Detect Wine and disable unsupported IAudioClient3 interface (GH-67381).
  • XR: Add multiview to the OpenGL3 driver (GH-65334).
  • XR: Adding support for the OpenXR Display Refresh Rate extension (GH-67179).

This release is built from commit e6751549c.

Downloads

The downloads for this dev snapshot can be found directly on our repository:

Known issues

As we are still in the early beta phase of development, there are still many issues to fix, some of which have already been reported and are being worked on. See the GitHub issue tracker for a list of known bugs in the 4.0 milestone.

Bug reports

As a tester, you are encouraged to open bug reports if you experience issues with this release. Please check first the existing issues on GitHub, using the search function with relevant keywords, to ensure that the bug you experience is not known already.

As in any major release there are going to be compatibility breaking changes. However, we still try to provide a migration path for your projects. If you experience a regression without a known migration path or workaround, do not hesitate to report it.

Support

Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, and a handful of part or full-time developers, hired thanks to donations from the Godot community. A big thankyou to everyone who has contributed their time or 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 on Patreon or PayPal.