Dev Planet

Avatar photo

RSS feed aggregator for FOSS game development.

Dev snapshot: Godot 4.6 dev 4

With GodotFest now behind us, it’s only natural that some users would be left with a sense of longing. Well we have just the thing: our most recent Godot 4.6 development snapshot! It’s not even been two weeks since the last one, but we couldn’t just leave y’all hanging for more Godot content. As always, these snapshots feature big changes, meaning they’re likely accompanied by big regressions and bugs; get those tests and reports in as early as possible to ensure an expedient release cycle!

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, the XR 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 House of Necrosis, a turn-based, horror PRG where you must survive the horrors of a mansion that changes every time it’s entered. You can get the game or try the demo on Steam, and follow the developer on YouTube, Bluesky, or itch.io.

Highlights

Animation: Add SkeletonModifier3D IKs as IKModifier3D

For those that aren’t already aware, SkeletonModificationStack3D was removed in the transition from 3.x to 4.0, as it was deemed wildly unstable and unsalvageable. Since then, Tokage has been on a journey to reincorporate the functionality such that it lives up to the standards the rest of the engine aims for. This started early last year with the incorporation of SkeletonModifier3D (GH-87888), which restored the majority of baseline functionality. However, there was one area which didn’t make the transiton: IKs.

The process of supporting IKs proved to be far more involved, as it too needed to be incorporated in a way that matched the engine’s standards and expectations. Consequently, that meant a solution that naturally expands off our Node paradigm; a tall order for how many use-cases and scenarios one must consider and account for when dealing with IKs. This resulted in SkeletonModifier3D receiving 8 new subclasses, which are as follows:

Attempting to go over all of these is well beyond the scope of this blog post, so readers wanting more information should check out the pull request for more details. Instead, we’ll show off one of the bugfixes to this new system in (GH-112573), as it provides an easily digestable visualization of that this system is capable of.

Before

gmod-ragdoll.mp3

After

Project manager: Various improvements

The editor recieved a lot of love this development snapshot, with many features well worth a look in the curated highlights. However, for this blog post, we’ll be focusing on an oft-overlooked element of our editor: the project manager. While technically separate from the editor in the traditional sense, it’s editor-exclusive functionality which exists to launch project editors, so they’re invariably intertwined. With the project manager getting an uncharacteristic amount of attention this cycle, here’s a quick lightning-round of changes:

Rindbee is starting things off with an improved UI navigation (GH-101129). The previous implementation clashed with our recent AccessKit integration, as it didn’t lend itself to keyboard navigation. Now a newly procided focus style makes navigation easier than ever:

Next is Malcolm Anderson, who implemented functionality for opening the project in the file explorer as a “Show in File Manager” button (GH-111624). Unfortunately, while a highly-requested feature, it proved to be too cluttered and was slated for a revert. Not being one to throw out the baby with the bathwater, Tomasz Chabora saved the functionality by reimplementing it in the form of a newly-added right-click menu:

Speaking of Tomasz, he’s here to round things off with yet another highly-requested feature: the ability to modify editor settings within the project manager (GH-82212). Now opening a project just to make general adjustments is no longer necessary, as it can all be handled in the much more lightweight context of the project manager:

Buildsystem: Support dedicated profilers

This is unapologetically super-nerd territory, and strictly targeting those who already know what this is talking about. Everyone else, feel free to jump to the curated highlights instead.

It’s rare for our blog posts to mention the buildsystem in any capacity — let alone as a featured highlight — but this is a very special exception: Godot can now natively support dedicated profilers GH-104851! Note that this is separate from Godot’s built-in profiler, as that’s suited for projects running in the engine, rather than the engine itself. Godot’s built-in profiler is still very useful, but these dedicated profilers are a great option for people who are very serious about optimizing Godot or their games.

Thanks to the efforts of Lukas Tenbrink, engine developers will no longer need to manually integrate (and constantly re-integrate) profiling logic to the engine. Instead, they merely need to pass the appropriate path to profiler_path, and our buildsystem will automatically detect and integrate the given profiler. Currently, the buildsystem supports Tracy and Perfetto, but the groundwork exists for additional tools to be integrated down the road.

And more!

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

  • 2D: Fix smart snapping lines to disappear after using the pivot tool (GH-105203).
  • 3D: Add Bresenham Line Algorithm to GridMap Drawing (GH-105292).
  • Core: Add ability to get list of Project Settings changed, similar to Editor Settings functionality (GH-110748).
  • Editor: Add indicator to linked resources (GH-109458).
  • Editor: Allow concurrent unbinding and binding of signal arguments in editor (GH-108741).
  • Editor: Autoloads with UIDs (GH-112193).
  • Editor: Automatically open newly created script (GH-108342).
  • Editor: Fix edit resource on inspector when inside array or dictionary (GH-106099).
  • Editor: Open source code errors in external editor (GH-111805).
  • Editor: Persist fullscreen setting on Android Editor (GH-112246).
  • GUI: PopupMenu: Add theme option for merging icon and checkbox gutters (GH-112545).
  • I18n: Add CSV translation template generation (GH-112149).
  • I18n: Make editor language setting default to Auto (GH-112317).
  • Input: Add support for setting a joypad’s LED light color (GH-111681).
  • Rendering: Apply viewport oversampling to Polygon2D (GH-112352).
  • XR: OpenXR: Add support for frame synthesis (GH-109803).

Changelog

83 contributors submitted 168 fixes for this release. See our interactive changelog for the complete list of changes since 4.6-dev3. You can also review all changes included in 4.6 compared to the previous 4.5 feature release.

This release is built from commit bd2ca13c6.

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

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.

Additionally, SCons fails to detect/utilize Visual Studio 2026 when attempting a build. While not technically an engine issue, a number of contributors have expressed confusion over the lack of support, so it’s worth an explicit mention. This issue has since been resolved upstream, and will be incorporated in the next official release; anyone requiring the fix immediately should build SCons from the source repository.

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 platform managed by Godot Foundation. There are also several alternative ways to donate which you may find more suitable.

Donate now

Dev snapshot: Godot 3.7 dev 1

Although the vast majority of contributors are busily working on Godot 4, a small problematic group refuse to stop improving Godot 3. Since Godot 3.6’s release in September 2024, we have been working hard on the new feature branch, 3.7.

Although a number of features are still in preparation, there have already been a number of improvements since 3.6, so consider this a sneak peek at some of the advances that will be available.

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 for this release.


The cover illustration is from Soul Dier – Part 1, a turn-based JRPG where you embark on a story-driven journey in a mysterious, hand-crafted world. You can buy the game or try out the demo on Steam and follow the developers on their website, YouTube, or Discord.

Highlights

Core

Thanks to work particularly by lawnjelly and Lukas Tenbrink, much of core has been heavily optimized, including faster access to ProjectSettings, faster object casting, move semantics, and use of faster data structures benefiting 2D and 3D.

3D physics interpolation

In tandem with work on Godot 4.5, the 3D physics interpolation has been rewritten from the ground up (GH-103685).

This has enabled us to fix a number of longstanding bugs and usability issues (particularly with non-interpolated tree branches), as well as more accurately representing pivot relationships which should give a smoother result.

Luckily we have already worked through a lot of the bugs in 4.5 betas, but let us know if you spot any!

Blob shadows

As an alternative to traditional shadow mapping, Godot 3.7 introduces support for analytical sphere and capsule soft shadows. While this requires some setup of blob shadow caster nodes, the results can look great, and can perform better than shadow mapping in many situations, and are an attractive option especially on mobile.

BlobShadow illustration

Blob shadows are typically only used on moving objects (as only a limited number of blobs can be used at one time), and are ideally used in conjunction with lightmaps for static geometry.

See (GH-84804) for full details.

Mutable audio drivers

While most of you will be making games with constant audio, those making applications (as well as users of the Editor itself) can now benefit from experimental “mutable audio” via hotswapping the audio driver (GH-63458). This can dramatically reduce CPU usage. Audio is surprisingly one of the biggest CPU hogs in the Editor, despite it rarely playing any sounds!

This is good news especially for those of you using low-power PCs, or developing on battery-powered devices.

Note that we are expecting regressions on some platforms / systems if hotswapping is not supported, this release is experimental and we are using it to identify problem platforms. You can help us by testing this in the editor, by checking that sound effects play correctly. If you encounter problems playing sounds, please report it on GitHub so we can investigate, and temporarily clear the muting flags in the editor in editor_settings/interface/audio/ until we have it fixed.

Bug fixes and backports

As always, in addition to feature work, there have been a number of bugs fixed, and backports from Godot 4.x. These are detailed in the notes below. Of course the flow is two-way. Godot 4.x has also benefited from a number of new features forward ported from 3.x.

And more!

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

  • 2D: Make selected tile in TileSet more visible through red outline (GH-105439).
  • 3D: FTI – global_transform_interpolated() on demand for invisible nodes (GH-107307).
  • 3D: Pre-calculate is_visible_in_tree() (GH-107324).
  • Audio: Add ability to mute AudioServer (GH-63458).
  • Codestyle: Simplify ObjectDB::get_instance() casting (GH-100603).
  • Core: Allow constructing Quat from two Vector3s (GH-90464).
  • Core: Object::call() prevent debug lock accessing dangling pointer (GH-96862).
  • Core: Add move semantics to core containers (GH-100995).
  • Core: Add GLOBAL_GET cached macros (GH-103763).
  • Editor: Cancel tooltips when the mouse leaves the window (GH-95978).
  • Editor: Improve Class display in Create dialog (GH-105459).
  • Editor: Add an editor option to copy system info to clipboard (GH-105674).
  • GDScript: Backport “Cleanup function state connections when destroying instance” for Godot 3 (GH-97464).
  • GUI: Expose some helper methods on Viewport (GH-92573).
  • Input: Fix Xbox Controller on Android (GH-106021).
  • Physics: Fix physics platform behaviour regression (GH-97316).
  • Plugin: Backport “[Editor] Add EditorPlugin::scene_saved signal” (GH-99857).
  • Rendering: Implement glow map effect (GH-93133).
  • Rendering: Physics Interpolation – Move 3D FTI to SceneTree (GH-103685).
  • Rendering: FTI – Add custom interpolation for wheels (GH-105816).
  • Rendering: Blob shadows (GH-84804).
  • VisualScript: Bind Array and Pool*Array get and set functions (GH-96135).

Changelog

44 contributors submitted 130 fixes for this release. See our interactive changelog for the complete list of changes since 3.6-stable.

This release is built from commit a117d512b.

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, GDNative, and VisualScript.

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

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 3.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 platform managed by Godot Foundation. There are also several alternative ways to donate which you may find more suitable.

Donate now

Dev snapshot: Godot 4.6 dev 3

Our third development snapshot of the 4.6 release cycle is upon us, and now the floodgates are well and truly open. The enhancements are bigger than ever, with several of them overhauling the look of the editor itself entirely! Big features necessitate big changes, which means the potential for big bugs and regressions; early reports and tests remain crucial to catch these issues as soon as possible.

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, the XR 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 My Card Is Better Than Your Card!, a roguelike deckbuilder where you stick stickers to become the coolest kid on the playground. You can get the game or try the demo on Steam, and follow the developers on YouTube or Bluesky.

Highlights

New editor theme

Longtime users of the Godot Editor are likely familiar with one of its most popular custom themes: the Godot Minimal Theme. Created by passivestar, and showcased in the first dev snapshot, this skin has become a favorite for many users thanks to a focus on its namesake: minimalism. One of the most frequent suggestions from the community has been an official integration of this theme in some capacity, to make the barrier of entry that much shorter. We’ll do you one better: it’s now the default theme for the editor!

New editor theme

Michael Alexsander was tasked with helming the official implementation of this theme (GH-111118), receiving help from passivestar directly to ensure a smooth and streamlined transition. Through his efforts, as well as several accompanying theme-related PRs from many other contributors such as Douglas Leão, we’re excited to (re)-introduce the newly dubbed “Modern Theme”!

We still love our original theme, henceforth known as the “Classic Theme,” and will continue to support it in tandem. It can be accessed through the interface/theme/style and interface/theme/preset settings.

It may surprise some that we chose to set the default color to a dark grey instead of the classic blue that makes our editor stand out at first glance. It is primarily due to the fact that it caused some issues with the perceived white balance. Removing hue from the equation resolves most of these problems.

While originally implemented as a 1-to-1 port of the Minimal Theme, we’ve already been making adjustments to better suit the design philosophies of the Godot Foundation itself. Namely: prioritizing accessibility options and retaining readability. As such, this implementation should not be taken as a final representation of this theme; the team fully welcomes and encourages early feedback in order to flush out any lingering blind spots. Nonetheless, we’re excited with the amount of progress made already, and hope you enjoy this new theme firsthand!

The project showcased in the new theme exhibit is Librerama, by Michael Alexsander.

Condense inspector layout for arrays

In a similar vein to the previous point, we’ve applied a similar minimal-style overhaul to the array inspector. This change is inherent to the inspector itself, so the benefits will be shown regardless of which theme is chosen. Koliur Rahman has brought us this revamped implementation, trimming away wasted space by consolidating information and logic to their essential elements (GH-103257).

Old New
Array old Array new

Rendering: Overhaul screen space reflections

The editor has gotten a lot of love in this blog post, so let’s shake things up with some rendering news! Skyth has been hard at work overhauling our current screen space reflection logic, and their efforts in GH-111210 have resulted in better performance and higher quality! The PR is readily available for those seeking a more technical deep-dive on the “how”, but we’re here to showcase the end results; they should speak for themselves:

64 Max Steps

Old New (half) New (full)
64 max steps old 64 max steps new (half) 64 max steps new (full)

256 Max Steps

Old New (half) New (full)
256 max steps old 256 max steps new (half) 256 max steps new (full)

Roughness

Old New
Roughness old Roughness new

Metallic Surface

Old New (half) New (full)
Metallic surface old Metallic surface new (half) Metallic surface new (full)

And more!

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

  • Animation: Remove default skeleton path in MeshInstance3D (GH-112267).*
  • Editor: Add Create Resource Hotkey (GH-110641).
  • Editor: Add splitter to “Create New Node” dialog (GH-111017).
  • Editor: Android Editor: Add game speed control options in game menu bar (GH-111296).
  • Editor: FindInFiles: Allow replacing individual results (GH-109727).
  • Editor: Speed up deletion via the Scene Tree Dock in large trees (GH-109511).
  • Editor: Use Inter as the default editor font, features enabled (GH-111140).
  • Export: Android: Add export option to use scrcpy to run project from editor (GH-108737).
  • Export: Fix custom icon in Android export (GH-111688).
  • Import: Betsy: Convert RGB to RGBA on the GPU for faster compression (GH-110060).
  • Navigation: Make NavigationServer backend engine selectable (GH-106290).
  • Rendering: Add Persistent Buffers utilizing UMA (GH-111183).
  • Rendering: Implement a very simple SSAO in GLES3 (GH-109447).
  • Rendering: Overhaul and optimize Glow in the mobile renderer (GH-110077).
  • Rendering: Use half float precision buffer for 3D when HDR2D is enabled (GH-109971).
  • Tests: Add Android instrumented tests to the app module (GH-110829).

*If relying on the default skeleton_path in some scenes, users should manually re-specify the parent node as the NodePath, or they can enable the animation/compatibility/default_parent_skeleton_in_mesh_instance_3d project setting to restore the pre-4.6 behavior.

Changelog

101 contributors submitted 239 fixes for this release. See our interactive changelog for the complete list of changes since 4.6-dev2. You can also review all changes included in 4.6 compared to the previous 4.5 feature release.

This release is built from commit 9d84f3d13.

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 platform managed by Godot Foundation. There are also several alternative ways to donate which you may find more suitable.

Donate now

Castle Game Engine: Various October Improvements – VS Code and VS Codium, Google Play 16k requirement, Nintendo Switch update

We released a new version (1.6) of our extension to integrate with VS Code: We fixed how it detects OS on win64. This in turn fixes Code Completion, jumping to declaration and other LSP features on Win64. In addition to the VS Code marketplace, we’re now also in OpenVSX marketplace. This means that you can …

Maintenance release: Godot 3.6.2

Although we fixed many of the major 3.6 bugs in Godot 3.6.1 in June, we have decided to make a new 3.6 point release in order to keep up to date with platform requirements.

Google announced that from August 31, 2025 (with possible extension to November 1, 2025), apps and updates submitted to the Play Store must target Android 15 (API level 35) and support 16 KiB page size. As a result we have updated Godot Android APIs and made compatibility changes to ensure users can update their Godot 3 games on Play Store with 3.6.2.

Since we had to rebuild Mono for Android with a 16 KiB page size, we took the opportunity to update our build containers to provide more recent toolchains for official builds. Like for 3.6.1, UWP export templates are no longer provided in this build (but can be compiled from source if needed).

This is a safe and recommended update for all Godot 3.6.x users. It should have no major impact on your projects, even complex ones in production, if you’re already using 3.6.1-stable.

Download Godot 3.6.2 now or try the online version of the Godot editor.

Godot is downloading…

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


Make a Donation

Close this popup

The illustration picture for this article comes from House of Necrosis, a turn-based horror RPG with retro 32-bit 3D graphics. It is developed by Warkus with Godot 3.6 Mono. You can get the game on Steam, and follow the developer on Bluesky.

Changed

  • Buildsystem: Update toolchains for official builds (Fedora 42 base, Mono 6.12.0.206, MinGW-GCC 14.2.1, Xcode 16.2) (build-containers#156).
  • Network: mbedTLS: Update to mbedTLS 3.6.5 (GH-108382, GH-111845).
  • Porting: Android: Update to target API 35, NDK r28, 16kb page size (GH-108433).
  • Porting: Android: Address API 35 UI changes (GH-110255).
  • Porting: Android: Set minsdk to 21, workaround fseeko error in Opus (GH-111061).
  • Porting: iOS: Switch window creation to UIScene (GH-111103).
  • Thirdparty: Enable builds with miniupnpc API 18 (GH-100389).

Fixed

  • Buildsystem: Fix build on macOS 26 by removing AGL framework link (GH-110898).
  • Editor: Fix inability to assign script after clearing (GH-108171).
  • Editor: Fix Open Editor Data/Settings Folder menu in self-contained mode (GH-110414).
  • Export: Fix order of operations for macOS template check (GH-108930).
  • GUI: Fix Line breaking may not work correctly when using color tags with specific font (GH-109695).
  • Rendering: Batching: Fix MultiRect casting to wrong type (GH-109111).

Changelog

14 contributors submitted 19 fixes for this release. See our interactive changelog for the complete list of changes since the 3.6.1 release.

This release is built from commit 3cd3caab6.

Bug reports

As a tester, you are encouraged to open bug reports if you experience issues with 3.6.2. 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.

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 3.6.1 or earlier 3.x releases no longer works in 3.6.2).

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 with the development fund.