Software 43057 Published by

The first development snapshot of Godot 4.5 is now available for testing. The update encompasses various bug fixes, the majority of which will be backported to version 4.4 in a stable release, 4.4.1, scheduled for next week. The release features enhancements including a "Mute Game" toggle, which enables developers to mute audio during editor testing, the removal of preloaded resources as UID, support for multiple remote nodes at runtime, and a restructured TileMapLayer system.

The update encompasses enhancements in 2D usability, a fix for 3D issues, support for animations, the scene_changed signal, functionality for loading and saving DDS images, improvements to the debugger, documentation, and the editor. Additionally, it introduces drag-and-drop capabilities into array property editors and replaces UID and surface upgrade tools with universal alternatives. The update encompasses enhancements in export options, GDExtension, GDScript, GUI, particle jitter, porting, rendering, and scripting.



Dev snapshot: Godot 4.5 dev 1

Our first development snapshot for 4.5 has arrived! As is often the case following a feature-freeze, several quality PRs were finally released from the collective backlog, as merging them at the time would’ve been too much of a risk. In truth, the quantity has been so great that we could’ve gotten away with releasing a snapshot a week ago! However, we found it worth our time to hold out and get as many contributions integrated as possible, as a way of thanking those who’ve been so patient in waiting for their contributions to see the light of day.

A significant chunk of the changes in this release are bugfixes, the majority of which you will be see backported to 4.4 in a 4.4.1-stable release next week! As such, we encourage testing this build in order to ensure a smooth release for both versions. Granted, as this is a pre-release, the bugfixes aren’t the only additions; the usual safety precautions that come with such an environment should be taken. Even though we prepare these snapshots such that they’re suitable for general testing, backups and/or version control are recommended to prevent the loss of data.

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.

Gnome_shell_screenshot_gryh61

Highlights

“Mute Game” toggle

Previously, if a developer wished to mute the audio while testing in the editor, they had to either use the operating system’s builtin tools for sound or outright pause/close their work.  Malcolm Anderson sought a more streamlined solution, and integrated a new toggle on the Game view ( GH-99555). Now if developers wish to halt/restore audio output entirely, it’s just one click away!

Drop preload Resources as UID

With UID support being a part of the engine as of 4.4—read more about them  here—we’ve enabled further optimizations via their integration with core components. However, as this is a new change, there’s still a few areas that have been lagging behind on support. In particular: preloaded resources lacked the ability to be loaded as UID if dragged.  Tomasz Chabora has rectified this limitation in  GH-99094, and you’ll find plenty more like this in our curated selection below.

Allow selecting multiple remote nodes at runtime

A long-awaited QOL addition to the editor experience has finally arrived! Thanks to  Michael Alexsander, developers now have the ability to select multiple nodes in a runtime context! Check out their pull request  GH-99680 for more information on how this was integrated.

Chunk tilemap physics

The current implementation of TileMapLayer uses individual collision bodies for every single cell, which is extremely wasteful and a likely cause of runtime performance issues for 2D scenes relying on physics.  Gilles Roudière took to entirely reworking this system in  GH-102662, ensuring that cells take every possible opportunity.

And more!

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

  • 2D: Improve usability of Camera2D ( GH-101427).
  • 3D: Fix Camera3D gizmo representation to accurately reflect FOV ( GH-101884).
  • 3D: Use physical keys for the Q/W/E/R editor shortcuts ( GH-103533).
  • Animation: Support hiding functions calls in Method Tracks ( GH-96421).
  • Core: Add scene_changed signal to SceneTree ( GH-102986).
  • Core: Add DDS image load and save functionality ( GH-101994).
  • Core: Don’t duplicate internal nodes ( GH-89442).
  • Core: Implement get_size and get_access_time methods to FileAccess ( GH-83538).
  • Debugger: Allow locating VRAM resource by double-clicking ( GH-103949).
  • Documentation: Overhaul Node3D documentation ( GH-87440).
  • Editor: Add option to copy a file’s name in the FileSystem dock ( GH-96536).
  • Editor: Allow ignoring debugger error breaks ( GH-77015).
  • Editor: Don’t save unnecessarily with save_before_running ( GH-90034).
  • Editor: Improve drag and drop into array property editors ( GH-102534).
  • Editor: Replace UID and Surface upgrade tools with universal one ( GH-103044).
  • Export: Android: Convert compress_native_libraries to a basic export option ( GH-104301).
  • GDExtension: Include precision in extension_api.json ( GH-103137).
  • GDScript: Highlight warning lines in Script editor ( GH-102469).
  • GUI: Implement properties that can recursively disable child controls’ FocusMode and MouseFilter ( GH-97495).
  • GUI: Improve ColorPicker picker shape keyboard and joypad accessibility ( GH-99374).
  • Import: Use UID in addition to path for extracted meshes, materials and animations ( GH-100786).
  • Particles: Add emission shape gizmos to Particles2D ( GH-102249).
  • Particles: Fix particle jitter when scene tree is paused ( GH-95912).
  • Porting: Android: Add linux-bionic RID export option ( GH-97908).
  • Porting: Android: Add a TouchActionsPanel to editor ( GH-100339).
  • Porting: Android: Enable support for volume button events ( GH-102984).
  • Porting: Linux: Implement native color picker ( GH-101546).
  • Porting: macOS/iOS: Ensure only one axis change event is produced during single process_joypads() call ( GH-104314).
  • Porting: Windows: Remove visible WINDOW_MODE_FULLSCREEN border by setting window region ( GH-88852).
  • Rendering: Clean up more dynamic allocations in the RD renderers with a focus on 2D ( GH-103889).
  • Rendering: Optimize _fill_instance_data function in Forward+ renderer ( GH-103547).
  • Rendering: Significantly reduce per-frame memory allocations from the heap in the Mobile renderer ( GH-103794).
  • Rendering: Update ViewportTexture path relative to its local scene instead of the Viewport owner ( GH-97861).
  • Rendering: Use lower shadow normal bias for distant directional shadow splits ( GH-60178).
  • Rendering: Use separate WorkThreadPool for shader compiler ( GH-103506).
  • Scripting: Fix script docs not being searchable without manually recompiling scripts ( GH-95821).

Changelog

121 contributors submitted 403 fixes for this release. See our  interactive changelog for the complete list of changes since the 4.4-stable.

This release is built from commit  97241ffea.

 
Dev snapshot: Godot 4.5 dev 1