Happy holidays! We have been enjoing Godot 4.0 betas for over three months now, and we are glad to see it get more stable and usable every week. Every beta release so far has included a lot of fixes in one or more key areas, and the next major version of the engine starts to finally look complete.
Beta 10 will be the last dev snapshot of the year 2022, as a lot of our contributors will no doubt be slowing down for the end of year celebrations and some quality family time. We will continue our work on the engine and will release a new snapshot every week in the upcoming year, just as before, to get fast feedback on bugfixes, and potential regressions they may introduce. Thank you for being an integral part of the dev process with your rigorous testing and timely reports!
This beta includes a few big changes which may interest a lot of users:
- A lot of bug fixes and improvements in these areas particularly, check out the PRs listed below: Animation, Navigation, GDScript, Rendering.
- A new configuration dialog has been added to help set up the editor to work with FBX files. In this dialog you will also find a link to an instruction on our website. (GH-59810).
- We previously removed
*_degrees
properties from 2D and 3D objects in favor of making editing degrees easier in the Inspector. However, many of you still used these properties in code, preferring degrees to radians. So with this beta release *_degrees
properties are restored for use in code and animations (GH-70263).
Jump to the Downloads section.
You can also try the Web editor (early testing, it’s still slow and unstable).
The illustration picture for this article is from an unnamed RPG by developer bitbrain (working title “cave”). The game started development with Godot 3.x, and was recently ported to 4.0 beta, with the process covered in this devlog. Follow bitbrain on Twitter, Mastodon, and YouTube where they also have Godot 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 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 9 (90 commits – excluding merge commits ― from 40 contributors).
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:
- 2D: Simplify isometric tile shape polygon in
TileSet
to 4 vertices (GH-70238). - Animation: Fix for short animation blend taking too long when played during a long animation blend (GH-37001).
- Animation: Make auto-advance flag a requirement for conditional/expression evaluation (GH-65312).
- Animation: Add inspector plugin for key time edit & change
track_find_key()
argument to find key with approximate (GH-69797). - Animation: Add
animation_started
/finished
signals to AnimationTree and fix time accuracy in StateMachine (GH-70278). - AssetLib: Add support for svg images in the asset lib (GH-70317).
- Audio: Add optional stream argument to
AudioStreamRandomizer.add_stream
(GH-67922). - Core: Allow to specify a default value in
ProjectSettings.get_setting()
(GH-62029). - Core: Restore
rotation_degrees
properties (GH-70263). - Editor: Fix Profiler and Visual Profiler start/stop state inconsistency (GH-70151).
- GDExtension: Expose in builtins’ members internal type & size (on top of offset) in
extension_api.json
(GH-65990). - GDScript: Add MethodInfo to signal datatype (GH-70138).
- GDScript: Fix external enums not assignable as constants (GH-70220).
- GDScript: Fix resource picker regression with custom resources using the
@tool
hint (GH-70277). - GDScript: Unify GDScriptAnalyzer in-editor and runtime autoload checks (GH-70331).
- GDScript: Fix GDScript analyzer null literal (GH-70440).
- GUI: Add configuration warning when ButtonGroup is used with non-toggleable buttons (GH-70334).
- GUI: Fix RichTextLabel
push_bold
/italics
not using bold_italics_font
when required (GH-70407). - GUI: Rename
remove_line()
in RichTextLabel to remove_paragraph()
for naming consistency (GH-70413). - Import: Add a dialog for customizing FBX import (GH-59810).
- Input: Include the follow-viewport-transform into
CanvasLayer
transform calculations (GH-59682). - Navigation: Add signal to NavigationAgent when entering a link (GH-67111).
- Navigation: Change
GridMap
navigation_layers
to per mesh_library
item (GH-69351). - Navigation: Use
TileSet
navigation layer layers when TileMap
generates navigation polygons
(GH-69349). - Navigation: Stop
NavigationAgents
without a target from moving to world origin (GH-69688). - Navigation: Fix typo and ensure backwards compatibility for changed property names (GH-70244).
- Navigation: Restore weight scale for
AStarGrid2D
(partially) (GH-70339). - Physics: Add
GridMap
collision_priority
(GH-70309). - Rendering: Implement basic ASTC support (GH-65376).
- Rendering: Added options for sorting transparent objects (GH-69998).
- Rendering: Ensure that particles are processed at least once before being used (GH-70418).
- Rendering: Disable particle trails particles when parent parent is not active (GH-70422).
- Shaders: Fix shader crash when using boolean type for vertex->fragment varyings (GH-70460).
- VCS plugins: Add a stern confirmation dialog before discarding all changes (GH-70374).
This release is built from commit d0398f62f.
Downloads
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.
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.