Dev snapshot: Godot 4.0 beta 10
By: Rémi Verschelde 23 December 2022
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
*_degreesproperties 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
*_degreesproperties are restored for use in code and animations (GH-70263).
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.
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:
- 2D: Simplify isometric tile shape polygon in
TileSetto 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
finishedsignals 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
- Core: Allow to specify a default value in
- Core: Restore
- 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
- 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
- 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
bold_italics_fontwhen 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
CanvasLayertransform calculations (GH-59682).
- Navigation: Add signal to NavigationAgent when entering a link (GH-67111).
- Navigation: Change
- Navigation: Use
TileSetnavigation layer layers when
TileMapgenerates navigation polygons (GH-69349).
- Navigation: Stop
NavigationAgentswithout 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
- Physics: Add
- 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.
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!