Castle Game Engine: TCastleTransformReference improvements – intuitive transformation, menu items to “Duplicate Linked”, “Edit (Make Independent Copy)”, cooperates with LOD, fixed TCastleStickToSurface

We implemented multiple improvements around , making it easier to use, have more options, be more optimal and correct in certain cases. Overall, we think that after these improvements, you will use much more often 🙂 The is a component that allows to use the same multiple times in the viewport. This can imply using …

Release candidate: Godot 4.4.1 RC 2

We released Godot 4.4 in early March and we are delighted to see the reception, with so many users upgrading to it on day 1 and sharing their favorite new changes on social media! If you haven’t seen the 4.4 release page, it’s well worth a read!

Since then, we’ve started the development phase for Godot 4.5 at full speed (with a first dev snapshot released yesterday!), but we also put our main focus on fixing remaining and newly reported regressions that affect users who upgraded to 4.4. A few of these issues can be showstoppers for affected users, so we decided to release a 4.4.1 maintenance release as soon as possible.

After a first 4.4.1-rc1 snapshot last week, we decided to make a second release candidate as a few more critical bugs had fixes available to backport. Please test it if you can and report any new issue that was not present in 4.4-stable, as we want to ensure we don’t introduce new regressions in this hotfix release.

Maintenance releases are expected to be safe for an upgrade, but we recommend to always make backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.

Please, consider supporting the project financially, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.

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.


The illustration picture for this article comes from Haulin’ Oats, a board game about truck driving, the US highways, and oatmeal (?!), which was recently released in version 1.0 on Steam. It is developed by Gramps Garcia, the tireless maintainer of the popular GodotSteam integration for the Steamworks SDK.

What’s new

21 contributors submitted around 39 improvements for this release. See our interactive changelog for the complete list of changes since the 4.4.1-rc1 snapshot. You can also review all changes included in 4.4.1 compared to the 4.4 release.

Below are the most notable changes in this second release candidate (with critical fixes highlighted in bold):

  • 3D: Fix RemoteTransform3D to always use global rotation if use_global_coordinates is true (GH-97498).
  • Animation: Fix console errors and crash in cleanup code for PhysicalBoneSimulator3D (GH-103921).
  • Animation: Fix rest translation space in LookAtModifier3D (GH-104217).
  • Core: Use single RNG instance for FileAccessEncrypted IV generation (GH-103415).
  • Editor: Make EditorProperty and its child EditorProperty behave like sibling nodes when handling mouse events (GH-103316).
  • Editor: Create .uid files for detected new files (GH-104248).
  • Editor: Change root node transform warning to only show up for position (GH-104331).
  • Editor: Fix use after free in the editor inspector section cleanup (GH-104362).
  • Export: Android: Convert compress_native_libraries to a basic export option (GH-104301).
  • GDScript: Fix head class range to include class_name (GH-104114).
  • GDScript: Add clearing of static_gdscript_cache to GDScriptCache (GH-104281).
  • GUI: Fix error when embedded popup is closed while resizing (GH-102504).
  • GUI: Label: Fix min. size calculation counting extra spacing twice (GH-103728).
  • Import: Force multiple of 4 sizes for Betsy compressor (GH-104275).
  • Import: Fix crash when reimporting nested gltf scenes (GH-104384).
  • Input: macOS/iOS: Ensure only one axis change event is produced during single process_joypads() call (GH-104314).
  • Physics: Fix interpolation in XR (GH-103233).
  • Physics: Fix ConcavePolygonShape3D always enabling backface_collision when using Jolt Physics (GH-104310).
  • Plugin: JavaClassWrapper: Fix mistake in last fix for org.godotengine.godot.Dictionary conversion (GH-104156).
  • Porting: macOS: Fix editor loading crash on native menu click (GH-103892).
  • Porting: macOS: Update mouse-entered state when subwindow closes (GH-104328).
  • Rendering: Vulkan: Disable layers in editor deemed buggy by RenderDoc (GH-104154).
  • Rendering: Fix Metal handling of cube textures; assert equal dimensions (GH-104341).
  • XR: Correct occlusion culling viewport location calculation when projection uses asymmetric FOV (GH-104249).

This release is built from commit abef5e0d2.

Downloads

Godot is downloading…

Godot exists thanks to donations from people like you. Help us continue our work:


Make a Donation

Close this popup

Standard build includes support for GDScript and GDExtension.

.NET build (marked as mono) includes support for C#, as well as GDScript and GDExtension.

While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition a pre-release piece of software. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.

Known issues

There are currently no known issues introduced by this release.

With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of known bugs.

Bug reports

As a tester, we encourage you to open bug reports if you experience issues with this release. Please check the existing issues on GitHub first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.

In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).

Support

Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to generous donations from the Godot community. A big thank you to everyone who has contributed their time or their 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 using the Godot Development Fund.

Donate now

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.


The cover illustration is from That’s not my Neighbor, where you take the role of a doorman ensuring the safety of your apartment complex from a mysterious surge of doppelgangers. Developed by Nachosama Games, the game was recently released on Steam.

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.

Downloads

Godot is downloading…

Godot exists thanks to donations from people like you. Help us continue our work:


Make a Donation

Close this popup

Standard build includes support for GDScript and GDExtension.

.NET build (marked as mono) includes support for C#, as well as GDScript and GDExtension.

  • .NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.

While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition a pre-release piece of software. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.

Known issues

There are currently no known issues introduced by this release.

With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of known bugs.

Bug reports

As a tester, we encourage you to open bug reports if you experience issues with this release. Please check the existing issues on GitHub first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.

In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).

Support

Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to generous donations from the Godot community. A big thank you to everyone who has contributed their time or their 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 using the Godot Development Fund.

Donate now

Release candidate: Godot 4.4.1 RC 1

We released Godot 4.4 last week and we are delighted to see the reception, with so many users upgrading to it on day 1 and sharing their favorite new changes on social media! If you haven’t seen the 4.4 release page, it’s well worth a read!

Since then, we’ve started the development phase for Godot 4.5 at full speed, but we also put our main focus on fixing remaining and newly reported regressions that affect users who upgraded to 4.4. A few of these issues can be showstoppers for affected users, so we decided to release a 4.4.1 maintenance release as soon as possible.

So here’s a release candidate to validate this series of fixes and help ensure that Godot 4.4 is fully suitable for everyone. Please test it if you can and report any new issue that was not present in 4.4-stable, as we want to ensure we don’t introduce new regressions in this hotfix release.

Maintenance releases are expected to be safe for an upgrade, but we recommend to always make backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.

Please, consider supporting the project financially, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.

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.


The illustration picture for this article comes from Book Bound, a cozy bookshop simulator game by Bit66 Games, which was recently released on Steam. You can follow the developer on Bluesky, and wishlist their other upcoming game Bots & Mods.

What’s new

48 contributors submitted around 76 improvements for this release. See our interactive changelog for the complete list of changes since the 4.4-stable release. Below are the most notable changes (with critical fixes highlighted in bold):

  • 2D: Fix wrong canvas camera override panning in the runtime debugger (GH-103489).
  • 3D: Unify CSGPolygon3D gizmos with the other geometries (GH-103301).
  • Animation: Fix missing process_state error in blend spaces (GH-104018).
  • Audio: Set interactive music streams as meta streams (GH-104054).
  • Audio: Fix AudioEffectPitchShift issues when pitch_scale is set to 1 (GH-104090).
  • Buildsystem: Android: Fix build with disable_3d (GH-103523).
  • C#: Use ObjectID when converting Variant to GodotObject (GH-98034).
  • C#: Skip re-saving .csproj when TFM is unchanged (GH-103714).
  • Core: Fix crash when calling get_argument_count() on Callable with freed object (GH-103465).
  • Core: Fix Invalid Task ID errors in ResourceLoader (GH-104060).
  • Core: Fix missing binding for NOTIFICATION_WM_POSITION_CHANGED (GH-104083).
  • Editor: Fix copying a Node with a signal potentially resulting in an editor crash (GH-96372).
  • Editor: Fix TextEdit scrolls wrong on text selection (GH-103410).
  • Editor: Update script modified times when saved in EditorNode (GH-103695).
  • Editor: Fix ownership when pasting non root with child nodes in new scene (GH-103769).
  • Export: iOS: Restore one-click deploy device enumeration using Xcode (GH-103590).
  • GDExtension: Correctly register editor-only OpenXR* classes’ api_type (GH-103869).
  • GUI: Fix changed signal emission in Curve::set_point_offset (GH-96296).
  • GUI: Fix spinbox decimal issues when update_on_text_changed = true (GH-100684).
  • GUI: Fix Tree keyboard navigation in RTL direction (GH-102865).
  • GUI: VideoStreamPlayer: Stop video on exit tree (GH-103396).
  • GUI: Use Viewport’s default texture filter/repeat in GUI tooltips (GH-103636).
  • Import: Fix headless import always emits errors (GH-103403).
  • Import: BasisUniversal: Ensure ASTC’s HDR variant is supported when transcoding (GH-103766).
  • Import: ResourceLoader: Do not wait for the main thread during initial reimport (GH-104013).
  • Input: Fix Android mouse capture issues (GH-103413).
  • Navigation: Make NavigationLink3D properly update on visibility change (GH-103588).
  • Particles: Fix particle jitter when scene tree is paused (GH-95912).
  • Particles: Fix GPU particles not emitting at some configured rates when scale curve is zero (GH-103121).
  • Physics: Fix broken negative scaling when using Jolt Physics (GH-103440).
  • Plugin: JavaClassWrapper: Improve handling of typed array arguments (GH-102817).
  • Plugin: JavaClassWrapper: Fix converting returned arrays to Godot types (GH-103375).
  • Plugin: JavaClassWrapper: Fix conversion to/from org.godotengine.godot.Dictionary that regressed (GH-103733).
  • Porting: Android: Fix editor crash after changing device language (GH-103419).
  • Porting: X11: Fix check for is_maximized to require both horizontal and vertical (GH-103526).
  • Porting: Linux: Offload RenderingDevice creation test to subprocess (GH-103560).
  • Porting: Windows: Fix get_modified_time on locked files (GH-103622).
  • Porting: macOS: Swap Nintendo face buttons (GH-103661).
  • Porting: Windows: Use more efficient sleep approach when low-processor mode is enabled (GH-103773).
  • Rendering: Add ASTC HDR format variants (GH-102777).
  • Rendering: Fix voxelizer normals (GH-102893).
  • Rendering: Fix 2D quad primitive missing lighting data in GLES3 renderer (GH-102908).
  • Rendering: Fix uninitialized value in Tonemap (GH-103092).
  • Rendering: Use separate WorkThreadPool for shader compiler (GH-103506).
  • Rendering: Fix incorrect parameters passed to VMA (GH-103730).
  • Rendering: MetalFX: Change fallback behavior (GH-103792).
  • Rendering: Fix GLES3 gaussian_blur mipmap setup (GH-103878).
  • Rendering: CPUParticles2D: Fix physics interpolation after entering tree with emitting = false (GH-103966).
  • Shaders: Fix 2D instance params crashing using outside of main() (GH-103348).
  • Shaders: Fix “unused varying” incorrect warning in shaders (GH-103434).
  • Shaders: 2D: Fix light shader accessing TEXTURE_PIXEL_SIZE (GH-103617).
  • Thirdparty: Theora: Fix YUV422/444 to RGB conversion (GH-102859).
  • Thirdparty: Update to latest version of Swappy (GH-103409).

This release is built from commit daa4b058e.

Downloads

Godot is downloading…

Godot exists thanks to donations from people like you. Help us continue our work:


Make a Donation

Close this popup

Standard build includes support for GDScript and GDExtension.

.NET build (marked as mono) includes support for C#, as well as GDScript and GDExtension.

While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition a pre-release piece of software. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.

Known issues

There are currently no known issues introduced by this release.

With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of known bugs.

Bug reports

As a tester, we encourage you to open bug reports if you experience issues with this release. Please check the existing issues on GitHub first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.

In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).

Support

Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to generous donations from the Godot community. A big thank you to everyone who has contributed their time or their 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 using the Godot Development Fund.

Donate now

libGDX Jam March 2025

With our 32nd collaboration, the libGDX Jam continues the time-honoured tradition of making awesome games using the best framework out there. We encourage camaraderie, teamwork, and good sportsmanship with a side of well-intentioned buffoonery. The general jam rules can as always be found here. To participate take a look at the official itch.io page of the jam. The humorous jam trailer can be found on YouTube.

Castle Game Engine: New class for ZIP handling (TCastleZip), progress on new pretty wireframe approach, WOFF fonts support, LOD usage demo

Announcing a number of engine improvements from the last weeks: We have a new class for ZIP handling: . Features: Reading ZIP files from any TStream or URL (see networking about our URL support). Just open ZIP by and read by . Create and write ZIP files. Again, with API consistent with our engine, supporting …