Software 43175 Published by

The third development release of Godot 4.5 has been released and represents a notable advancement in the game's development process, incorporating new features and addressing various bug fixes. The release features support for screen readers, script backtracing capabilities, inspector section toggles, and additional enhancements. The team has prioritized accessibility by integrating AccessKit into the Godot platform comprehensively. The integration has been finalized following extensive feedback and thorough testing.

Script backtracing has emerged as a significant feature, with GH-91006 facilitating its integration with over 32,000 lines of code. The feature will facilitate users in identifying the sources of warnings and errors that previously necessitated manual debugging efforts. Stack traces are now accessible in projects exported in release mode, facilitating a more efficient process for users to report issues.



Inspector section toggles have been implemented, featuring sections that include dedicated checkboxes to indicate their enabled status. Other important updates include fixing the placement of nodes with Align Transform in orthographic view, solving the stereo panning problem in AudioStreamPlayer3D, updating the Android NDK to the latest LTS version, stopping unnecessary StringName allocations for unimplemented virtual _Get and _Set method calls, adding create_id_for_path() to ResourceUID, allowing negative indexing in Array.remove_at and Array.insert, and improving thread safety for Object signals.

The update encompasses enhancements to the project manager, editor, and plugin. The update introduces additional actions and improvements to the TouchActionsPanel, minimizes the scope of mutex locks, and enables selection across all tool modes. The changelog indicates that 253 fixes have been submitted by 115 contributors since the last 4.5-dev2 snapshot.

Dev snapshot: Godot 4.5 dev 3

If the past snapshot was any indication, you might think that development updates aren’t slowing down anytime soon. And… You’d be right! Indeed, progress has been booming, and the amount of new features added even compared to the previous release is staggering; curating this selection was especially difficult. As always, new features mean new bugs in need of fixing, so we encourage everyone interested to get feedback and bug reports in as early as possible.

Jump to the Downloads section, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also  try the Web editor or the Android editor for this release. If you are interested in the latter, please request to join  our testing group to get access to pre-release builds.

In case you missed them, see the  4.5 dev 1 and  4.5 dev 2 release notes for an overview of some key features which were already in that snapshot, and are therefore still available for testing in dev 3.

Screen reader support

Accessibility should be every developer’s top priority, full-stop. Someone being excluded from an experience for factors outside of their control is an area that video games and applications have the potential to circumvent entirely. It does, however, take a solid framework to allow such accommodations to be developed. To streamline this process for everyone—players and developers alike—our resident tech guru  bruvzg took to the absolutely Herculean task of integrating  AccessKit to Godot as a whole.

GH-76829 was a project started two years ago, which progressed in bursts alongside the AccessKit framework. For the 4.5 release, we made it a priority to finalize, and thus we now merged this major feature with over 32,000 lines of code, after hundreds of comments with feedback/testing. Users are encouraged to look at the pull request for more information, as there’s no feasible way we could properly summarize these changes. Unsurprisingly, this was by far the change with the most ramifications of the entire snapshot, so much so that it’s already seen  multiple  fixes to address regressions (even  one right when validating this snapshot), but it’s well worth it. After all, accessibility is our top priority!

This is only the first but massive step towards making Godot more accessible. In particular for the editor, a lot more work will be needed to make it really usable, as well as integrate with accessibility frameworks for mobile or web platforms.

Script backtracing

In any other snapshot, this would’ve been the main highlight, as adding backtracing to GDScript was among the most highly requested features from our users for years. Two brave souls,  Mikael Hermansson (godot-jolt) and  Juan Linietsky (up-and-coming developer), helmed this task and made this process possible with  GH-91006. This will make it much easier for users to find the cause of warnings/errors that previously required manually hunting down bugs. Stack traces are now available in projects exported in release mode as well if the Debug > Settings > GDScript > Always Track Call Stacks project setting is enabled. This can make it easier for users to report issues in a way that developers can track down.

Inspector section toggles

Another long-awaited feature, inspector section toggles, is now a part of the engine as of  GH-105272 lodetrick has expanded editor functionality to what you see below: sections with their own dedicated checkbox to denote if they’re enabled.

wayland_sub_window.jpg?ver=1744131990784

And more!

There are too many exciting changes to list them all here, but here’s a curated selection:

  • 3D: Set correct position of node with Align Transform with View in orthographic view ( GH-99099).
  • Audio: Fix AudioStreamPlayer3D stereo panning issue ( GH-104853).
  • Buildsystem: Fix .sln project generation logic for Rider to support all OS and all C++ toolchains ( GH-103405).
  • Buildsystem: Update the Android NDK to the latest LTS version (r27c) ( GH-105611).
  • C#: Avoid unnecessary StringName allocations on not implemented virtual _Get and _Set method call ( GH-104689).
  • Core: Add create_id_for_path() to ResourceUID ( GH-99543).
  • Core: Add negative index to Array.remove_at and Array.insert ( GH-83027).
  • Core: Add thread safety to Object signals ( GH-105453).
  • Editor: Autocompletion: Don’t add parenthesis if Callable is expected ( GH-96375).
  • Editor: Fix exported Node/Resource variables resetting when extending script in the SceneTreeDock ( GH-105148).
  • Editor: Project manager: Add option to backup project when it will be changed ( GH-104624).
  • Editor: Support custom features in project settings dialog ( GH-105307).
  • Export: Use project settings overrides with the target preset features instead of current platform features ( GH-71542).
  • GDExtension: Optimize gdvirtual function layout ( GH-104264).
  • GUI: Add FoldableContainer ( GH-102346).
  • GUI: Add boolean toggle for middle-click to fire tab_close_pressed signal ( GH-103024).
  • GUI: Add separate minimize_disabled and maximize_disabled window flags ( GH-105107).
  • GUI: Add support for OEM Alt codes input ( GH-93466).
  • GUI: Implement SVGTexture auto-scalable with font oversampling ( GH-105375).
  • GUI: Make embed floating window respect Always On Top configuration ( GH-103731).
  • GUI: Replace global oversampling with overrideable per-viewport oversampling ( GH-104872).
  • Input: Add configuration option to disable Scroll Deadzone on Android ( GH-96139).
  • Input: Allow all tool modes to select ( GH-87756).
  • Plugin: Add maven publishing configuration for Godot tools ( GH-104819).
  • Porting: Android: Add new actions and enhancements to TouchActionsPanel ( GH-105140).
  • Porting: Android: Embed TouchActionsPanel directly into the editor UI ( GH-105518).
  • Rendering: Detect more pipeline settings at load time to avoid pipeline stutters ( GH-105175).
  • Rendering: Renderer: Reduce scope of mutex locks to prevent common deadlocks ( GH-105138).
  • XR: OpenXR: Request the XR_KHR_loader_init extension ( GH-105445).

Changelog

115 contributors submitted 253 fixes for this release. See our  interactive changelog for the complete list of changes since the previous 4.5-dev2 snapshot.

Dev snapshot: Godot 4.5 dev 3