We’re continuing on our fortnightly release schedule for alpha snapshots of Godot 4.0 - this time with 4.0 alpha 4. See past alpha releases for details (alpha 1, alpha 2, alpha 3).

Be aware that during the alpha stage the engine is still not feature-complete or stable. There will likely be breaking changes between this release and the first beta release. Only the beta will mark the so-called “feature freeze”.

As such, we do not recommend porting existing projects to this and other upcoming alpha releases unless you are prepared to do it again to fix future incompatibilities. However, if you can port some existing projects and demos to the new version, that may provide a lot of useful information about critical issues still left to fix.

Most importantly: Make backups before opening any existing project in Godot 4.0 alpha builds. There is no easy way back once a project has been (partially) converted.

Jump to the Downloads section.

What’s new

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

See the changelog on GitHub for an overview of all changes since 4.0 alpha 3 (158 commits – excluding merge commits ― from 45 contributors).

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

  • 2D: Fix invisible CanvasItem visibility issue (GH-58413).
  • 2D: Fix GPUParticles2D emission offset in global coords (GH-57538).
  • C#: Various fixes to the documentation generator (GH-58721).
  • C#: Implement Deconstruct methods for vector types (GH-58827).
  • Core: Sync BVH implementation with the improvements from 3.x (GH-57630).
  • DisplayServer: Improve popup window/menu handling (GH-58490).
  • Editor: Optimize settings changed notification (GH-53839).
  • GUI: Make TabContainer use TabBar internally (GH-58687).
  • GUI: Prevent AcceptDialog from taking over main window in editor (GH-58282).
  • GUI: Fix LineEdit and TextEdit carets disappearing at theme scales below 1.0 (GH-58699).
  • GDScript: Lots of fixes (multiple PRs).
  • Import: Rename StreamTexture* to CompressedTexture* (GH-58788).
    • Note: You might need to delete your .godot/imported folder to force reimporting all your textures with the new class name.
  • macOS: Disable window redraw during resize, when rendering in the separate thread (GH-58738).
  • Physics: Rename CharacterBody2D/3D motion_velocity to velocity (GH-58411).
  • Physics: Add linear_velocity and angular_velocity to PhysicalBone3D (GH-58717).
  • Rendering: Use Filament specular model and parametrization (GH-51716).
  • Rendering: Use properly use non-perceptual roughness when filtering radiance (GH-58418).
  • Rendering: Fix shader compilation error with anisotropy (GH-58419).
  • Rendering: Implement distance fade properties in OmniLight3D and SpotLight3D (GH-58512).
  • Rendering: Add a UniformSet cache (refactoring) (GH-58832).
  • Visual Shader: Add few more input/output built-ins (GH-58719).
  • Visual Shader: Add varying support (GH-58750).
  • Windows: Fix borderless window flag toggle and restoring minimized borderless window (GH-58420).
  • XR: Add OpenXR support to the core (GH-56394).

Downloads

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

  • Standard build (GDScript, GDExtension, VisualScript).
  • Mono builds are currently not available as our focus is on porting to .NET 6. You’ll get a chance to test it with later alpha releases!

Note: The Windows builds are signed, but the certificate expired recently. We’re working on having it renewed, this should be fixed in the next build.

Known issues

As we are still in the alpha 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. Below we list a few of them that may be important to a lot of users:

  • GDScript’s rewrite has a number of outstanding bugs which may affect your testing.
  • The Vulkan Mobile backend has a lot of known bugs. We recommend testing rendering features with Vulkan Clustered for now.
  • AMD FSR implementation may not be working as expected (GH-56173, GH-56174).
  • Particle trails work incorrectly with random lifetime (GH-55842).
  • There are of course many more known issues as we’re still in the alpha stage. We’ll add more to this post if we see testers stumbling on them.

Bug reports

As a tester, you are encouraged to open bug reports if you experience issues with 4.0 alpha 4. 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.