By: Rémi Verschelde 9 December 2022
Godot 4.0 has been in beta for over two months, and the overall feature completeness, stability and usability have improved a lot during that time.
We initially had beta snapshots every other week, and now we’ve decided to accelerate the cadence to release a new snapshot every week, to get even faster feedback on our bugfixes, and the potential regressions they may introduce.
You can also try the Web editor (early testing, it’s still slow and unstable).
The illustration picture for this article is a screenshot of Sandfire, an upcoming 3D person action-adventure game by Kmitt. The game was recently ported to Godot 4, see Kmitt’s YouTube channel and Twitter for devlogs and updates.
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 blog post, we will only cover the main changes since the previous beta release.
While we do our best to minimize compatibility breaking changes for existing beta users, there are still occasional changes in the API which may impact your Godot 4 projects. See the list of PRs with the
breaks compat label for details.
Some of the most notables feature changes in this update are:
- Animation: Add track validator to AnimationPlayerEditor to detect tracks which have error (GH-68770).
- Animation: Refactor process of animation to retrive keys more exactly (GH-69336).
- Animation: Remove
ValueTrack::UpdateMode& match behaviors between AnimationTree and AnimationPlayer (GH-69357).
- C#: Fix signature of generated signal callbacks (GH-67023).
- C#: Fix C# solution directory project setting (GH-69391).
- Core: Add readahead to VariantParser (GH-69119).
- Core: Fix
- Editor: Draw fish bones for Path3D and Path2D in the editor (GH-68860).
- Editor: Add touch-friendly navigation control to the 3D editor viewport (GH-69364).
- GDExtension: Remove unnecessary checks when exporting gdextension binaries and allow using a prefix to auto-detect files (GH-67906).
- GDScript: Fix LSP crash by keeping GDScriptAnalyzer alive for whole
- GUI: Use system fonts as fallback (GH-68995).
- Import: Fix group reimport bug affecting AtlasTexture (GH-68324).
- Import: Fix swapped color channels in ETC1/ETC2 textures, etcpak expects BGRA data (GH-69448).
- Import: Fix crash on old glTF scene reimport (GH-69627).
- Input: Fix routing of InputEventScreenDrag events to Control nodes (GH-68632).
- Linux: Load X11 dynamically (GH-69449).
- Linux: Split fullscreen mode into
WINDOW_MODE_FULLSCREENto improve multi-window handling (GH-69707).
- macOS: Add support for Xcode notarytool (GH-69638).
- Physics: Fix collision detection for degenerate capsules (GH-69657).
- Porting: Enable raycast/embree module build for Web and Windows x86_32 (GH-69169).
- Rendering: Use circular fade instead of linear fade for distance fade (GH-50294).
- Rendering: Tweak shadow bias defaults for DirectionalLight3D and OmniLight3D (GH-55757).
- Rendering: Fix AABB errors on meshes with bones on multiple surfaces (GH-65035).
- Rendering: Implement
CAMERA_VISIBLE_LAYERSas built-in shader variable (GH-67387).
- Rendering: Properly remap roughness when reading from radiance map (GH-69514).
- Rendering: Allow black metallic materials to reflect IBL (GH-69522).
- Rendering: Fix mobile and gl_compatibility renderers
- Rendering: Vulkan: Fix incorrect handling of various Vulkan version numbers (GH-69322).
- Rendering: OpenGL: Implement Skeletons and Blend Shapes (GH-69325).
- Rendering: OpenGL: Expose emulated
*Unorm4x8GLSL functions in non-Android builds (GH-69521).
- Rendering: OpenGL: Use internal texture name when setting texture uniform location (GH-69633).
- Visual Shader: Make custom visual shader nodes automatically updates from script (GH-69738).
- XR: WebXR is now fully working in Godot 4! (GH-68870).
- XR: Make submitting depth buffer in OpenXR optional (GH-69654).
This release is built from commit c6e40e1c0.
The downloads for this dev snapshot can be found directly on our repository:
- Standard build (GDScript, GDExtension).
- .NET 6 build (C#, GDScript, GDExtension).
- Requires .NET SDK 6.0 installed in a standard location. .NET 7.0 is not supported yet, so make sure to install .NET 6.0 specifically.
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.
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.
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!
Source: Godot Engine Official