Files
godot-website/atom.xml
2025-04-14 11:24:22 +00:00

5016 lines
434 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title>Godot Engine Official</title><link href="https://godotengine.org/atom.xml" rel="self"/><link href="https://godotengine.org/"/><updated>2025-04-14T11:23:41+00:00</updated><id>https://godotengine.org/</id><entry><title>Dev snapshot: Godot 4.5 dev 2</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-5-dev-2/"/><updated>2025-04-08T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-5-dev-2/</id><summary>This is where the fun begins</summary><content type="html">&lt;p>With the &lt;a href="/releases/4.4/">4.4 release&lt;/a> a little over a month ago, one mightve expected content updates to trickle out slowly for our initial 4.5 development snapshots. …Well, maybe not after seeing the &lt;a href="/article/dev-snapshot-godot-4-5-dev-1/">4.5 dev 1&lt;/a> snapshot, but &lt;strong>surely&lt;/strong> they couldnt follow that up with another flood of anticipated changes, right?&lt;/p>
&lt;p>You fools. You underestimate the passion of our community yet again, as &lt;strong>250&lt;/strong> improvements are ready to roll for this snapshot. Whats more is that, unlike last time, were not &lt;em>just&lt;/em> in bugfix territory any more. Now the time for proper enhancements and features entirely unique to this development cycle has come, and this blogpost will aim to highlight them to the best of our ability. As always: with new features comes new bugs (probably), so the sooner we can get feedback and bug reports in, the better.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.5.dev2/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/1810050/Fortune_Avenue/?curator_clanid=41324400">&lt;strong>Fortune Avenue&lt;/strong>&lt;/a>, &lt;em>a capitalism simulator where you shrewdly extort and outmaneuver your friends in a chaotic, board-game environment. It is developed by &lt;a href="https://www.binogure-studio.com/">Binogure Studio&lt;/a>. You can wishlist the game &lt;a href="https://store.steampowered.com/app/1810050/Fortune_Avenue/?curator_clanid=41324400">on Steam&lt;/a> and follow the developers on &lt;a href="https://bsky.app/profile/binogure-studio.com">Bluesky&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>In case you missed them, see the &lt;a href="/article/dev-snapshot-godot-4-5-dev-1/">4.5 dev 1&lt;/a> release notes for an overview of some key features which were already in that snapshot, and are therefore still available for testing in dev 2.&lt;/p>
&lt;h3 id="dedicated-2d-navigation-server">Dedicated 2D navigation server&lt;/h3>
&lt;p>For the longest time, the navigation server was a unified beast. 3D and 2D, Yin and Yang, two sides of the same coin. While beautiful on a philosophical level and undoubtedly a heart-wrenching screenplay waiting to happen, it was a pretty sour deal for the 2D side of things. Previously, if you were making a 2D game and wanted to make use of navigational features, you were effectively locked into a bunch of 3D settings and features that would never see any use but would &lt;em>absolutely&lt;/em> see a bump in output size.&lt;/p>
&lt;p>Steps have been taken during this initial 4.5 period to ensure that navigation logic is more cleanly divided and organized, spearheaded by our navigation guru &lt;a href="https://github.com/smix8">smix8&lt;/a>, but none of this couldve been possible without cleanly splitting the navigation server in twain. Longtime contributor &lt;a href="https://github.com/AThousandShips">AThousandShips&lt;/a> took the mantle on this project, and she successfully accomplished this goal with &lt;a href="https://github.com/godotengine/godot/pull/101504">GH-101504&lt;/a>. From now on, users will be able to selectively enable/disable the navigation modules for 2D and/or 3D, instead of being forced into an all-or-nothing ultimatum.&lt;/p>
&lt;h3 id="reorganized-shader-editor-ui">Reorganized shader editor UI&lt;/h3>
&lt;p>The editor experience for shaders and visual shaders got some &lt;abbr title="Tender loving care">TLC&lt;/abbr> in &lt;a href="https://github.com/godotengine/godot/pull/100287">GH-100287&lt;/a>. Helmed by &lt;a href="https://github.com/Chaosus">Yuri Rubinsky&lt;/a>, this PR provides several requested features and QOL updates to our shading friends. Below is a preview image taken directly from the PR in question, where youll find more information on what to expect when you get your hands on it this snapshot.&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-2/shader-editor.webp" alt="Updated shader editor UI" />&lt;/p>
&lt;h3 id="changing-editor-language-without-restart">Changing editor language without restart&lt;/h3>
&lt;p>Godot has built-in support for handling multiple languages, both for the games you create and the editor itself. However, in contrast to games built with the engine, it wasnt possible to change the current language on-the-fly within the editor itself. Our editor expert &lt;a href="https://github.com/KoBeWi">Tomasz Chabora&lt;/a> addressed this issue in &lt;a href="https://github.com/godotengine/godot/pull/102562">GH-102562&lt;/a>, ensuring that users can swap to their preferred language within the same editor session! While this is somewhat niche in practice, our stance on convenience and accessibility is one that we take very seriously, and a seamless/streamlined editor experience is exactly the sort of thing we want as many users as possible to enjoy.&lt;/p>
&lt;h3 id="fragment-density-map-support">Fragment density map support&lt;/h3>
&lt;p>When rendering for VR headsets, the pixels around the outside of the viewport are less important, because they will be somewhat distorted by the lens, and players will tend to turn their head rather than move their eyes too far from the center.&lt;/p>
&lt;p>Godot already supports using the Vulkan “Fragment Shading Rate” extension to render the outside of the viewport at a lower resolution, leading to performance improvements with little noticeable decrease in quality. However, on standalone VR headsets (like the Meta Quest), this extension either isnt supported, or doesnt provide as big performance improvements as the Vulkan “Fragment Density Map” extension.&lt;/p>
&lt;p>In &lt;a href="https://github.com/godotengine/godot/pull/99551">GH-99551&lt;/a>, rendering expert &lt;a href="https://github.com/DarioSamo">DarioSamo&lt;/a> has implemented support for the “Fragment Density Map” extension, making the Vulkan Mobile renderer more viable for VR on standalone headsets.&lt;/p>
&lt;h3 id="wayland-native-sub-window-support">Wayland: Native sub-window support&lt;/h3>
&lt;p>Thanks to the tireless efforts of &lt;a href="https://github.com/Riteo">Riteo&lt;/a>, the X11 alternative &lt;a href="https://wayland.freedesktop.org/">Wayland&lt;/a> has been given first-class treatment on Godot. Its been a long road to stand as an equal to such a dominant display server protocol, but its getting closer with every passing PR; though some have been hesitant to make the change for one reason: lack of native sub-windows. Taking on this hurdle for parity was no small feat, but it was a requirement for supporting embedded game windows on Wayland, so (&lt;a href="https://github.com/godotengine/godot/pull/101774">GH-101774&lt;/a>) made it happen all the same:&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-2/wayland-sub-window.webp" alt="Multi-Window output on Wayland" />&lt;/p>
&lt;h3 id="and-more">And more!&lt;/h3>
&lt;p>There are too many exciting changes to list them all here, but heres a curated selection:&lt;/p>
&lt;ul>
&lt;li>2D: Optimize usability of VisibleOnScreenNotifier2D (&lt;a href="https://github.com/godotengine/godot/pull/100874">GH-100874&lt;/a>).&lt;/li>
&lt;li>3D: Allow customizing debug color of Path3D (&lt;a href="https://github.com/godotengine/godot/pull/82321">GH-82321&lt;/a>).&lt;/li>
&lt;li>Animation: Add &lt;code class="language-plaintext highlighter-rouge">delta&lt;/code> argument to &lt;code class="language-plaintext highlighter-rouge">_process_modification()&lt;/code> as &lt;code class="language-plaintext highlighter-rouge">_process_modification_with_delta(delta)&lt;/code> and expose &lt;code class="language-plaintext highlighter-rouge">advance()&lt;/code> at &lt;code class="language-plaintext highlighter-rouge">Skeleton3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103639">GH-103639&lt;/a>).&lt;/li>
&lt;li>Animation: Add selection box movement/scaling to the animation bezier editor (&lt;a href="https://github.com/godotengine/godot/pull/100470">GH-100470&lt;/a>).&lt;/li>
&lt;li>Core: Optimize &lt;code class="language-plaintext highlighter-rouge">Object::cast_to&lt;/code> by assuming no virtual and multiple inheritance, gaining 7x throughput over &lt;code class="language-plaintext highlighter-rouge">dynamic_cast&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103708">GH-103708&lt;/a>).&lt;/li>
&lt;li>Editor: Add UID to file tooltip (&lt;a href="https://github.com/godotengine/godot/pull/105069">GH-105069&lt;/a>).&lt;/li>
&lt;li>Editor: Improve default/no query quick open dialog behavior (&lt;a href="https://github.com/godotengine/godot/pull/104061">GH-104061&lt;/a>).&lt;/li>
&lt;li>Editor: Remove New prefix from EditorResourcePicker (&lt;a href="https://github.com/godotengine/godot/pull/104604">GH-104604&lt;/a>).&lt;/li>
&lt;li>Export: Updates and fixes to the Android prebuilt export logic (&lt;a href="https://github.com/godotengine/godot/pull/103173">GH-103173&lt;/a>).&lt;/li>
&lt;li>GDScript: Return early when parsing invalid super call (&lt;a href="https://github.com/godotengine/godot/pull/104509">GH-104509&lt;/a>).&lt;/li>
&lt;li>GUI: Improve Popup &lt;code class="language-plaintext highlighter-rouge">content_scale_factor&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104399">GH-104399&lt;/a>).&lt;/li>
&lt;li>GUI: Optimize startup times by using &lt;code class="language-plaintext highlighter-rouge">ubrk_clone&lt;/code> instead of &lt;code class="language-plaintext highlighter-rouge">ubrk_open&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104455">GH-104455&lt;/a>).&lt;/li>
&lt;li>GUI: Scroll &lt;code class="language-plaintext highlighter-rouge">EditorInspector&lt;/code> while drag &amp;amp; drop hovering near the edges (&lt;a href="https://github.com/godotengine/godot/pull/103943">GH-103943&lt;/a>).&lt;/li>
&lt;li>Import: Load decompressable texture format if no supported one is found (&lt;a href="https://github.com/godotengine/godot/pull/104590">GH-104590&lt;/a>).&lt;/li>
&lt;li>Navigation: Allow compiling templates without navigation features (&lt;a href="https://github.com/godotengine/godot/pull/104811">GH-104811&lt;/a>).&lt;/li>
&lt;li>Physics: Allow compiling templates without physics servers (&lt;a href="https://github.com/godotengine/godot/pull/103373">GH-103373&lt;/a>).&lt;/li>
&lt;li>Physics: Jolt: Update to 5.3.0 (&lt;a href="https://github.com/godotengine/godot/pull/104449">GH-104449&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Add an editor setting to enable/disable &lt;code class="language-plaintext highlighter-rouge">TouchActionsPanel&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/105015">GH-105015&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Add support for &lt;code class="language-plaintext highlighter-rouge">Mute Game&lt;/code> toggle (&lt;a href="https://github.com/godotengine/godot/pull/104409">GH-104409&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Auto create &lt;code class="language-plaintext highlighter-rouge">nomedia&lt;/code> file to hide project files in media apps (&lt;a href="https://github.com/godotengine/godot/pull/104970">GH-104970&lt;/a>).&lt;/li>
&lt;li>Porting: Linux: Detect KDE/LXQt and swap OK/Cancel buttons to Windows style (&lt;a href="https://github.com/godotengine/godot/pull/104959">GH-104959&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Replace custom main loop with &lt;code class="language-plaintext highlighter-rouge">[NSApp run]&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">CFRunLoop&lt;/code> observer (&lt;a href="https://github.com/godotengine/godot/pull/104397">GH-104397&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Support more controllers on macOS 11+ (&lt;a href="https://github.com/godotengine/godot/pull/104619">GH-104619&lt;/a>).&lt;/li>
&lt;li>Rendering: Avoid using a global variable to store instance index in canvas items shader in RD renderer (&lt;a href="https://github.com/godotengine/godot/pull/105037">GH-105037&lt;/a>).&lt;/li>
&lt;li>XR: Deactivate the &lt;code class="language-plaintext highlighter-rouge">CameraServer&lt;/code> by default (&lt;a href="https://github.com/godotengine/godot/pull/104232">GH-104232&lt;/a>).&lt;/li>
&lt;li>XR: OpenXR: Clean-up &lt;code class="language-plaintext highlighter-rouge">OpenXRExtensionWrapper&lt;/code> by removing multiple inheritance and deprecating &lt;code class="language-plaintext highlighter-rouge">OpenXRExtensionWrapperExtension&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104087">GH-104087&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>90 contributors&lt;/strong> submitted &lt;strong>250 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-dev2">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the previous 4.5-dev1 snapshot.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/af2c713971499953373380b9ae8673f64423bd59">&lt;code class="language-plaintext highlighter-rouge">af2c71397&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.5-dev2">
Download Godot 4.5 dev2
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-5-dev-2.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.5-dev2">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>There are currently no known issues introduced by this release.&lt;/p>
&lt;p>With every release we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Godot XR update - March 2025</title><link href="https://godotengine.org/article/godot-xr-update-mar-2025/"/><updated>2025-03-28T12:00:00+00:00</updated><id>https://godotengine.org/article/godot-xr-update-mar-2025/</id><summary>Godot XR Community Game Jam February 2025</summary><content type="html">&lt;p>In the second half of February 2025, the &lt;a href="https://godot-xr.itch.io/">Godot XR Community&lt;/a> held their latest &lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025">Godot XR Game Jam&lt;/a>.
It was organised by &lt;a href="https://www.youtube.com/@BastiaanOlij">Bastiaan Olij&lt;/a> and &lt;a href="https://www.youtube.com/@MalcolmANixon">Malcolm Nixon&lt;/a> acting in their roles as representatives of the general Godot XR Community.&lt;/p>
&lt;p>This was a week-long event in which developers had to create an XR application using the theme “Enchanted”. XR has great potential on this topic, whether you interpret this as physical spell casting, a magical environment, or something else, and the entries did not disappoint.&lt;/p>
&lt;p>Compared to our previous game jam, we went from 26 entries and 283 ratings to 27 entries and 290 ratings. Not a great jump, however we had 125 people join this game jam compared to 77 in our previous jam.
Based on feedback weve received on our Discord channel, the main reason the higher participation did not translate to more entries was due to a number of participants not finishing their entry in time. Weve had overwhelmingly positive feedback on the experience with many new developers becoming active members in our XR community.&lt;/p>
&lt;p>While subjective, the overall quality of the entries seems to have been a lot higher than the previous jam so we are really looking forward to what the future will bring.&lt;/p>
&lt;h2 id="top-5">Top 5&lt;/h2>
&lt;p>Lets take a closer look at the top 5 entries!&lt;/p>
&lt;h3 id="no-5-syneed">No 5. Syneed&lt;/h3>
&lt;p>&lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025/rate/3332396">Syneed&lt;/a> by &lt;a href="https://hiina.itch.io/">Hiina&lt;/a> ranked 5th with 13 ratings (Score: 3.705).&lt;/p>
&lt;p>Our fifth place entry is a puzzle game where you need to manipulate a stream of particles using attractors.
By adjusting these within the world, the trajectory of the particles changes and you can guide them past a number of stars.
The goal is for the particle stream to touch all stars.&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/uwsC-RsR9dM" title="syneed: VR puzzle game." frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h3 id="no-4-keziahs-house">No 4. Keziahs House&lt;/h3>
&lt;p>&lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025/rate/3331240">Keziahs House&lt;/a> by &lt;a href="https://warpingrealities.itch.io/">Warping Realities VR&lt;/a> ranked 4th with 12 ratings (Score: 3.764).&lt;/p>
&lt;p>Our fourth place goes to this great escape room game.
You find yourself waking up trapped in a derelict old house.
Solve puzzles while casting magic spells to find your way out.&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/EK75Raq0i7c" title="Keziah's House" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h3 id="no-3-the-chant-of-cthulhu">No 3. The Chant of Cthulhu&lt;/h3>
&lt;p>&lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025/rate/3322870">The Chant of Cthulhu&lt;/a> by &lt;a href="https://copper-tunic.itch.io/">Copper Tunic&lt;/a> ranked 3rd with 12 ratings (Score: 3.833).&lt;/p>
&lt;p>Our third place is a horror karaoke game.
You need to sing out loud the chants given and as you do so, more and more “clones” are created that repeat your words.
As everything reaches a crescendo, you summon the monsters of the deep.
All within a church environment that fits the concept well.
Very good use of recording and sound and with a freeplay mode you can extend the fun by manually placing clones that sing out your recorded song.&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/7Yxv9bE2sIQ" title="The Chant of Cthulhu" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h3 id="no-2-ez-enchants">No 2. EZ Enchants&lt;/h3>
&lt;p>&lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025/rate/3316696">EZ Enchants&lt;/a> by &lt;a href="https://dragon1freak.itch.io/">Dragon1Freak&lt;/a> ranked 2nd with 12 ratings (Score: 3.931).&lt;/p>
&lt;p>Our runner-up is a fun little crafting game.
As customers walk past your little magic store, they ask you to enchant different objects.
You have to perform different actions according to the customers wishes, all within a time limit.
A very polished, good looking entry that is fun to play!&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/ni4SI-HelwM" title="EZ Enchants - Full Run" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h3 id="no-1-your-hand-is-a-dragon-xr">No 1. Your Hand Is A Dragon (XR)&lt;/h3>
&lt;p>&lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025/rate/3332432">Your Hand Is A Dragon (XR)&lt;/a> by &lt;a href="https://andyman404.itch.io/">Andyman404&lt;/a> ranked 1st with 10 ratings (Score: 4.020).&lt;/p>
&lt;p>Our winning entry is a very distinct game, as weve come to expect from Andyman404.
You play as a dragon that attacks fortresses manned by knights.
What makes it unique is that you control the dragon with your hand as if it is a sockpuppet,
while simultaneously roaring out loud to make the dragon breathe fire.
Its especially impressive as Andyman404 only had 3 days to dedicate to this entry.&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/xP-1_EOkLZA" title="Your Hand Is A Dragon - Trailer" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h2 id="other-entries">Other entries&lt;/h2>
&lt;p>Malcolm Nixon created the below video on his YouTube channel that shows off the top 5 games and highlights many of the other entries.
It is well worth a watch to get an impression of the entries that were submitted.&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/t5U6dXm8WY4" title="Godot XR Game Jam 3 - Top 5 Countdown" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h2 id="the-next-godot-xr-community-game-jam">The next Godot XR Community game jam&lt;/h2>
&lt;p>The next jam will likely be in August or September of this year.
Communication around the game jam has moved to the newly created &lt;a href="https://godot-xr.itch.io/">Godot XR Community itch.io page&lt;/a>, so be sure to follow that account.
Join the Godot XR Community in the XR channel on &lt;a href="https://discord.gg/godotengine">Godots official Discord server&lt;/a> if youre interested in using Godot to develop XR projects.&lt;/p></content><author><name>Bastiaan Olij</name></author><category term="Progress Report"/></entry><entry><title>Maintenance release: Godot 4.4.1</title><link href="https://godotengine.org/article/maintenance-release-godot-4-4-1/"/><updated>2025-03-26T15:00:00+00:00</updated><id>https://godotengine.org/article/maintenance-release-godot-4-4-1/</id><summary>Godot 4.4 was a massive success, and with most users migrating to it, we discovered and fixed a number of significant bugs which warrant a first maintenance release.</summary><content type="html">&lt;p>We released &lt;a href="/releases/4.4/">Godot 4.4&lt;/a> in early March and we are delighted to see the reception, with so many users upgrading to it on day one and sharing their favorite new changes on social media! If you havent seen the &lt;a href="/releases/4.4/">&lt;strong>4.4 release page&lt;/strong>&lt;/a>, its well worth a read!&lt;/p>
&lt;p>Since then, weve started the development phase for Godot 4.5 at full speed (with a first &lt;a href="/article/dev-snapshot-godot-4-5-dev-1/">dev snapshot&lt;/a> released last week!), 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.&lt;/p>
&lt;p>See below for a list of the most relevant changes. This release includes fixes to &lt;a href="https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.6.3">security vulnerabilities&lt;/a> in the mbedTLS third-party library, so we strongly recommend updating for any game using networking functionality.&lt;/p>
&lt;p>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.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, 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.&lt;/p>
&lt;p>&lt;a href="/download/">&lt;strong>Download Godot 4.4.1 now&lt;/strong>&lt;/a> or try the &lt;a href="https://editor.godotengine.org/4.4.1.stable/">online version of the Godot editor&lt;/a>.&lt;/p>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4.1-stable">
Download Godot 4.4.1 stable
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/maintenance-release-godot-4-4-1.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4.1-stable">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;hr />
&lt;p>&lt;em>The illustration picture for this article comes from&lt;/em> &lt;a href="https://store.steampowered.com/app/1907590/Psycho_Patrol_R/?curator_clanid=41324400">&lt;strong>Psycho Patrol R&lt;/strong>&lt;/a>, &lt;em>a FPS/mecha hybrid europolice sim, which was recently released in Early Access &lt;a href="https://store.steampowered.com/app/1907590/Psycho_Patrol_R/?curator_clanid=41324400">on Steam&lt;/a>. It is developed by &lt;a href="https://csoftproducts.life/">Consumer Softproducts&lt;/a>, known for their previous Godot hit &lt;a href="https://store.steampowered.com/app/1388770/Cruelty_Squad/?curator_clanid=41324400">Cruelty Squad&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="changes">Changes&lt;/h2>
&lt;p>&lt;strong>58 contributors&lt;/strong> submitted around &lt;strong>125 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4.1">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the &lt;a href="/releases/4.4/">4.4 release&lt;/a>.&lt;/p>
&lt;p>Below are some of the most notable changes (with critical fixes highlighted in bold):&lt;/p>
&lt;ul>
&lt;li>3D: Fix &lt;code class="language-plaintext highlighter-rouge">RemoteTransform3D&lt;/code> to always use global rotation if &lt;code class="language-plaintext highlighter-rouge">use_global_coordinates&lt;/code> is true (&lt;a href="https://github.com/godotengine/godot/pull/97498">GH-97498&lt;/a>).&lt;/li>
&lt;li>Animation: Fix console errors and crash in cleanup code for PhysicalBoneSimulator3D (&lt;a href="https://github.com/godotengine/godot/pull/103921">GH-103921&lt;/a>).&lt;/li>
&lt;li>Animation: Fix missing &lt;code class="language-plaintext highlighter-rouge">process_state&lt;/code> error in blend spaces (&lt;a href="https://github.com/godotengine/godot/pull/104018">GH-104018&lt;/a>).&lt;/li>
&lt;li>Animation: Fix rest translation space in &lt;code class="language-plaintext highlighter-rouge">LookAtModifier3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104217">GH-104217&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Audio: Set interactive music streams as meta streams (&lt;a href="https://github.com/godotengine/godot/pull/104054">GH-104054&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Audio: Fix AudioEffectPitchShift issues when &lt;code class="language-plaintext highlighter-rouge">pitch_scale&lt;/code> is set to 1 (&lt;a href="https://github.com/godotengine/godot/pull/104090">GH-104090&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Android: Fix build with &lt;code class="language-plaintext highlighter-rouge">disable_3d&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103523">GH-103523&lt;/a>).&lt;/li>
&lt;li>C#: Use &lt;code class="language-plaintext highlighter-rouge">ObjectID&lt;/code> when converting &lt;code class="language-plaintext highlighter-rouge">Variant&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">GodotObject&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/98034">GH-98034&lt;/a>).&lt;/li>
&lt;li>C#: Skip re-saving &lt;code class="language-plaintext highlighter-rouge">.csproj&lt;/code> when TFM is unchanged (&lt;a href="https://github.com/godotengine/godot/pull/103714">GH-103714&lt;/a>).&lt;/li>
&lt;li>Core: Use single RNG instance for &lt;code class="language-plaintext highlighter-rouge">FileAccessEncrypted&lt;/code> IV generation (&lt;a href="https://github.com/godotengine/godot/pull/103415">GH-103415&lt;/a>).&lt;/li>
&lt;li>Core: Fix &lt;code class="language-plaintext highlighter-rouge">Invalid Task ID&lt;/code> errors in &lt;code class="language-plaintext highlighter-rouge">ResourceLoader&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104060">GH-104060&lt;/a>).&lt;/li>
&lt;li>Editor: Fix copying a Node with a signal potentially resulting in an editor crash (&lt;a href="https://github.com/godotengine/godot/pull/96372">GH-96372&lt;/a>).&lt;/li>
&lt;li>Editor: Make &lt;code class="language-plaintext highlighter-rouge">EditorProperty&lt;/code> and its child &lt;code class="language-plaintext highlighter-rouge">EditorProperty&lt;/code> behave like sibling nodes when handling mouse events (&lt;a href="https://github.com/godotengine/godot/pull/103316">GH-103316&lt;/a>).&lt;/li>
&lt;li>Editor: Fix TextEdit scrolls wrong on text selection (&lt;a href="https://github.com/godotengine/godot/pull/103410">GH-103410&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Editor: Update script modified times when saved in EditorNode (&lt;a href="https://github.com/godotengine/godot/pull/103695">GH-103695&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Editor: Fix ownership when pasting non root with child nodes in new scene (&lt;a href="https://github.com/godotengine/godot/pull/103769">GH-103769&lt;/a>).&lt;/li>
&lt;li>Editor: Create .uid files for detected new files (&lt;a href="https://github.com/godotengine/godot/pull/104248">GH-104248&lt;/a>).&lt;/li>
&lt;li>Editor: Fix editor crash when inspecting 2 objects handled by the same plugin (&lt;a href="https://github.com/godotengine/godot/pull/104296">GH-104296&lt;/a>).&lt;/li>
&lt;li>Editor: Change root node transform warning to only show up for position (&lt;a href="https://github.com/godotengine/godot/pull/104331">GH-104331&lt;/a>).&lt;/li>
&lt;li>Export: iOS: Restore one-click deploy device enumeration using Xcode (&lt;a href="https://github.com/godotengine/godot/pull/103590">GH-103590&lt;/a>).&lt;/li>
&lt;li>Export: Android: Convert &lt;code class="language-plaintext highlighter-rouge">compress_native_libraries&lt;/code> to a basic export option (&lt;a href="https://github.com/godotengine/godot/pull/104301">GH-104301&lt;/a>).&lt;/li>
&lt;li>&lt;strong>GDExtension: Correctly register editor-only &lt;code class="language-plaintext highlighter-rouge">OpenXR*&lt;/code> classes &lt;code class="language-plaintext highlighter-rouge">api_type&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103869">GH-103869&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>GDScript: Fix head class range to include &lt;code class="language-plaintext highlighter-rouge">class_name&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104114">GH-104114&lt;/a>).&lt;/li>
&lt;li>GDScript: Add clearing of &lt;code class="language-plaintext highlighter-rouge">static_gdscript_cache&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">GDScriptCache&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104281">GH-104281&lt;/a>).&lt;/li>
&lt;li>GUI: Fix Tree keyboard navigation in RTL direction (&lt;a href="https://github.com/godotengine/godot/pull/102865">GH-102865&lt;/a>).&lt;/li>
&lt;li>GUI: Fix &lt;code class="language-plaintext highlighter-rouge">changed&lt;/code> signal emission in &lt;code class="language-plaintext highlighter-rouge">Curve::set_point_offset&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/96296">GH-96296&lt;/a>).&lt;/li>
&lt;li>GUI: Fix spinbox decimal issues when &lt;code class="language-plaintext highlighter-rouge">update_on_text_changed&lt;/code> = true (&lt;a href="https://github.com/godotengine/godot/pull/100684">GH-100684&lt;/a>).&lt;/li>
&lt;li>GUI: Fix error when embedded popup is closed while resizing (&lt;a href="https://github.com/godotengine/godot/pull/102504">GH-102504&lt;/a>).&lt;/li>
&lt;li>GUI: VideoStreamPlayer: Stop video on exit tree (&lt;a href="https://github.com/godotengine/godot/pull/103396">GH-103396&lt;/a>).&lt;/li>
&lt;li>GUI: Use &lt;code class="language-plaintext highlighter-rouge">Viewport&lt;/code>s default texture filter/repeat in GUI tooltips (&lt;a href="https://github.com/godotengine/godot/pull/103636">GH-103636&lt;/a>).&lt;/li>
&lt;li>GUI: Label: Fix min. size calculation counting extra spacing twice (&lt;a href="https://github.com/godotengine/godot/pull/103728">GH-103728&lt;/a>).&lt;/li>
&lt;li>Import: Fix headless import always emits errors (&lt;a href="https://github.com/godotengine/godot/pull/103403">GH-103403&lt;/a>).&lt;/li>
&lt;li>Import: BasisUniversal: Ensure ASTCs HDR variant is supported when transcoding (&lt;a href="https://github.com/godotengine/godot/pull/103766">GH-103766&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Import: ResourceLoader: Do not wait for the main thread during initial reimport (&lt;a href="https://github.com/godotengine/godot/pull/104013">GH-104013&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>&lt;strong>Import: Force multiple of 4 sizes for Betsy compressor (&lt;a href="https://github.com/godotengine/godot/pull/104275">GH-104275&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Import: Fix crash when reimporting nested gltf scenes (&lt;a href="https://github.com/godotengine/godot/pull/104384">GH-104384&lt;/a>).&lt;/li>
&lt;li>Input: Fix Android mouse capture issues (&lt;a href="https://github.com/godotengine/godot/pull/103413">GH-103413&lt;/a>).&lt;/li>
&lt;li>Input: macOS/iOS: Ensure only one axis change event is produced during single &lt;code class="language-plaintext highlighter-rouge">process_joypads()&lt;/code> call (&lt;a href="https://github.com/godotengine/godot/pull/104314">GH-104314&lt;/a>).&lt;/li>
&lt;li>Navigation: Make NavigationLink3D properly update on visibility change (&lt;a href="https://github.com/godotengine/godot/pull/103588">GH-103588&lt;/a>).&lt;/li>
&lt;li>Particles: Fix particle jitter when scene tree is paused (&lt;a href="https://github.com/godotengine/godot/pull/95912">GH-95912&lt;/a>).&lt;/li>
&lt;li>Particles: Fix GPU particles not emitting at some configured rates when scale curve is zero (&lt;a href="https://github.com/godotengine/godot/pull/103121">GH-103121&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Physics: Fix interpolation in XR (&lt;a href="https://github.com/godotengine/godot/pull/103233">GH-103233&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Physics: Fix broken negative scaling when using Jolt Physics (&lt;a href="https://github.com/godotengine/godot/pull/103440">GH-103440&lt;/a>).&lt;/li>
&lt;li>Physics: Fix &lt;code class="language-plaintext highlighter-rouge">ConcavePolygonShape3D&lt;/code> always enabling &lt;code class="language-plaintext highlighter-rouge">backface_collision&lt;/code> when using Jolt Physics (&lt;a href="https://github.com/godotengine/godot/pull/104310">GH-104310&lt;/a>).&lt;/li>
&lt;li>Physics: Fix &lt;code class="language-plaintext highlighter-rouge">shape&lt;/code> always being zero with &lt;code class="language-plaintext highlighter-rouge">get_rest_info&lt;/code> when using Jolt Physics (&lt;a href="https://github.com/godotengine/godot/pull/104599">GH-104599&lt;/a>).&lt;/li>
&lt;li>Plugin: JavaClassWrapper: Improve handling of typed array arguments (&lt;a href="https://github.com/godotengine/godot/pull/102817">GH-102817&lt;/a>).&lt;/li>
&lt;li>Plugin: JavaClassWrapper: Fix converting returned arrays to Godot types (&lt;a href="https://github.com/godotengine/godot/pull/103375">GH-103375&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Plugin: JavaClassWrapper: Fix conversion to/from &lt;code class="language-plaintext highlighter-rouge">org.godotengine.godot.Dictionary&lt;/code> that regressed (&lt;a href="https://github.com/godotengine/godot/pull/103733">GH-103733&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/104156">GH-104156&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Porting: Linux: X11: Fix check for &lt;code class="language-plaintext highlighter-rouge">is_maximized&lt;/code> to require both horizontal and vertical (&lt;a href="https://github.com/godotengine/godot/pull/103526">GH-103526&lt;/a>).&lt;/li>
&lt;li>Porting: Linux: Offload RenderingDevice creation test to subprocess (&lt;a href="https://github.com/godotengine/godot/pull/103560">GH-103560&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Swap Nintendo face buttons (&lt;a href="https://github.com/godotengine/godot/pull/103661">GH-103661&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Update mouse-entered state when subwindow closes (&lt;a href="https://github.com/godotengine/godot/pull/104328">GH-104328&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Fix &lt;code class="language-plaintext highlighter-rouge">get_modified_time&lt;/code> on locked files (&lt;a href="https://github.com/godotengine/godot/pull/103622">GH-103622&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Use more efficient sleep approach when low-processor mode is enabled (&lt;a href="https://github.com/godotengine/godot/pull/103773">GH-103773&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Add ASTC HDR format variants (&lt;a href="https://github.com/godotengine/godot/pull/102777">GH-102777&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix voxelizer normals (&lt;a href="https://github.com/godotengine/godot/pull/102893">GH-102893&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix 2D quad primitive missing lighting data in GLES3 renderer (&lt;a href="https://github.com/godotengine/godot/pull/102908">GH-102908&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix uninitialized value in Tonemap (&lt;a href="https://github.com/godotengine/godot/pull/103092">GH-103092&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Use separate WorkThreadPool for shader compiler (&lt;a href="https://github.com/godotengine/godot/pull/103506">GH-103506&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix incorrect parameters passed to VMA (&lt;a href="https://github.com/godotengine/godot/pull/103730">GH-103730&lt;/a>).&lt;/li>
&lt;li>Rendering: MetalFX: Change fallback behavior (&lt;a href="https://github.com/godotengine/godot/pull/103792">GH-103792&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix GLES3 &lt;code class="language-plaintext highlighter-rouge">gaussian_blur&lt;/code> mipmap setup (&lt;a href="https://github.com/godotengine/godot/pull/103878">GH-103878&lt;/a>).&lt;/li>
&lt;li>Rendering: CPUParticles2D: Fix physics interpolation after entering tree with &lt;code class="language-plaintext highlighter-rouge">emitting = false&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103966">GH-103966&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Vulkan: Disable layers in editor deemed buggy by RenderDoc (&lt;a href="https://github.com/godotengine/godot/pull/104154">GH-104154&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix Metal handling of cube textures; assert equal dimensions (&lt;a href="https://github.com/godotengine/godot/pull/104341">GH-104341&lt;/a>).&lt;/li>
&lt;li>Rendering: Disable broken Vulkan layers before running RenderingDevice tests (&lt;a href="https://github.com/godotengine/godot/pull/104572">GH-104572&lt;/a>).&lt;/li>
&lt;li>Shaders: Fix 2D instance params crashing using outside of &lt;code class="language-plaintext highlighter-rouge">main()&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103348">GH-103348&lt;/a>).&lt;/li>
&lt;li>Shaders: 2D: Fix light shader accessing &lt;code class="language-plaintext highlighter-rouge">TEXTURE_PIXEL_SIZE&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103617">GH-103617&lt;/a>).&lt;/li>
&lt;li>Thirdparty: Theora: Fix YUV422/444 to RGB conversion (&lt;a href="https://github.com/godotengine/godot/pull/102859">GH-102859&lt;/a>).&lt;/li>
&lt;li>Thirdparty: Update to latest version of Swappy (&lt;a href="https://github.com/godotengine/godot/pull/103409">GH-103409&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Thirdparty: mbedTLS: Update to version 3.6.3 (security fix) (&lt;a href="https://github.com/godotengine/godot/pull/104562">GH-104562&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>XR: Correct occlusion culling viewport location calculation when projection uses asymmetric FOV (&lt;a href="https://github.com/godotengine/godot/pull/104249">GH-104249&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="known-incompatibilities">Known incompatibilities&lt;/h2>
&lt;p>As of now, there are no known incompatibilities with the previous Godot 4.4 release. &lt;strong>We encourage all users to upgrade to 4.4.1.&lt;/strong>&lt;/p>
&lt;p>If you experience any unexpected behavior change in your projects after upgrading to 4.4.1, please &lt;a href="https://github.com/godotengine/godot/issues">file an issue on GitHub&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Rémi Verschelde</name></author><category term="Release"/></entry><entry><title>Release candidate: Godot 4.4.1 RC 2</title><link href="https://godotengine.org/article/release-candidate-godot-4-4-1-rc-2/"/><updated>2025-03-21T17:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-4-1-rc-2/</id><summary>Closing in on the first maintenance release for Godot 4.4, fixing a number of regressions and other significant bugs found in this month's feature release.</summary><content type="html">&lt;p>We released &lt;a href="/releases/4.4/">Godot 4.4&lt;/a> 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 havent seen the &lt;a href="/releases/4.4/">&lt;strong>4.4 release page&lt;/strong>&lt;/a>, its well worth a read!&lt;/p>
&lt;p>Since then, weve started the development phase for Godot 4.5 at full speed (with a first &lt;a href="/article/dev-snapshot-godot-4-5-dev-1/">dev snapshot&lt;/a> 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.&lt;/p>
&lt;p>After a first &lt;a href="/article/release-candidate-godot-4-4-1-rc-1/">4.4.1-rc1 snapshot&lt;/a> 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 dont introduce new regressions in this hotfix release.&lt;/p>
&lt;p>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.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, 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.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.1.rc2/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The illustration picture for this article comes from&lt;/em> &lt;a href="https://store.steampowered.com/app/1254770/Haulin_Oats/?curator_clanid=41324400">&lt;strong>Haulin Oats&lt;/strong>&lt;/a>, &lt;em>a board game about truck driving, the US highways, and oatmeal (?!), which was recently released in version 1.0 &lt;a href="https://store.steampowered.com/app/1254770/Haulin_Oats/?curator_clanid=41324400">on Steam&lt;/a>. It is developed by &lt;a href="https://grampsgarcia.com/">Gramps Garcia&lt;/a>, the tireless maintainer of the popular &lt;a href="https://godotsteam.com/">GodotSteam&lt;/a> integration for the Steamworks SDK.&lt;/em>&lt;/p>
&lt;h2 id="whats-new">Whats new&lt;/h2>
&lt;p>&lt;strong>21 contributors&lt;/strong> submitted around &lt;strong>39 improvements&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4.1-rc2">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the &lt;a href="/article/release-candidate-godot-4-4-1-rc-1/">4.4.1-rc1 snapshot&lt;/a>. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4.1">all changes included in 4.4.1&lt;/a> compared to the 4.4 release.&lt;/p>
&lt;p>Below are the most notable changes in this second release candidate (with critical fixes highlighted in bold):&lt;/p>
&lt;ul>
&lt;li>3D: Fix &lt;code class="language-plaintext highlighter-rouge">RemoteTransform3D&lt;/code> to always use global rotation if &lt;code class="language-plaintext highlighter-rouge">use_global_coordinates&lt;/code> is true (&lt;a href="https://github.com/godotengine/godot/pull/97498">GH-97498&lt;/a>).&lt;/li>
&lt;li>Animation: Fix console errors and crash in cleanup code for PhysicalBoneSimulator3D (&lt;a href="https://github.com/godotengine/godot/pull/103921">GH-103921&lt;/a>).&lt;/li>
&lt;li>Animation: Fix rest translation space in &lt;code class="language-plaintext highlighter-rouge">LookAtModifier3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104217">GH-104217&lt;/a>).&lt;/li>
&lt;li>Core: Use single RNG instance for &lt;code class="language-plaintext highlighter-rouge">FileAccessEncrypted&lt;/code> IV generation (&lt;a href="https://github.com/godotengine/godot/pull/103415">GH-103415&lt;/a>).&lt;/li>
&lt;li>Editor: Make &lt;code class="language-plaintext highlighter-rouge">EditorProperty&lt;/code> and its child &lt;code class="language-plaintext highlighter-rouge">EditorProperty&lt;/code> behave like sibling nodes when handling mouse events (&lt;a href="https://github.com/godotengine/godot/pull/103316">GH-103316&lt;/a>).&lt;/li>
&lt;li>Editor: Create .uid files for detected new files (&lt;a href="https://github.com/godotengine/godot/pull/104248">GH-104248&lt;/a>).&lt;/li>
&lt;li>Editor: Change root node transform warning to only show up for position (&lt;a href="https://github.com/godotengine/godot/pull/104331">GH-104331&lt;/a>).&lt;/li>
&lt;li>Editor: Fix use after free in the editor inspector section cleanup (&lt;a href="https://github.com/godotengine/godot/pull/104362">GH-104362&lt;/a>).&lt;/li>
&lt;li>Export: Android: Convert &lt;code class="language-plaintext highlighter-rouge">compress_native_libraries&lt;/code> to a basic export option (&lt;a href="https://github.com/godotengine/godot/pull/104301">GH-104301&lt;/a>).&lt;/li>
&lt;li>GDScript: Fix head class range to include &lt;code class="language-plaintext highlighter-rouge">class_name&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104114">GH-104114&lt;/a>).&lt;/li>
&lt;li>GDScript: Add clearing of &lt;code class="language-plaintext highlighter-rouge">static_gdscript_cache&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">GDScriptCache&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104281">GH-104281&lt;/a>).&lt;/li>
&lt;li>GUI: Fix error when embedded popup is closed while resizing (&lt;a href="https://github.com/godotengine/godot/pull/102504">GH-102504&lt;/a>).&lt;/li>
&lt;li>GUI: Label: Fix min. size calculation counting extra spacing twice (&lt;a href="https://github.com/godotengine/godot/pull/103728">GH-103728&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Import: Force multiple of 4 sizes for Betsy compressor (&lt;a href="https://github.com/godotengine/godot/pull/104275">GH-104275&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Import: Fix crash when reimporting nested gltf scenes (&lt;a href="https://github.com/godotengine/godot/pull/104384">GH-104384&lt;/a>).&lt;/li>
&lt;li>Input: macOS/iOS: Ensure only one axis change event is produced during single &lt;code class="language-plaintext highlighter-rouge">process_joypads()&lt;/code> call (&lt;a href="https://github.com/godotengine/godot/pull/104314">GH-104314&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Physics: Fix interpolation in XR (&lt;a href="https://github.com/godotengine/godot/pull/103233">GH-103233&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Physics: Fix &lt;code class="language-plaintext highlighter-rouge">ConcavePolygonShape3D&lt;/code> always enabling &lt;code class="language-plaintext highlighter-rouge">backface_collision&lt;/code> when using Jolt Physics (&lt;a href="https://github.com/godotengine/godot/pull/104310">GH-104310&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Plugin: JavaClassWrapper: Fix mistake in last fix for &lt;code class="language-plaintext highlighter-rouge">org.godotengine.godot.Dictionary&lt;/code> conversion (&lt;a href="https://github.com/godotengine/godot/pull/104156">GH-104156&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Porting: macOS: Fix editor loading crash on native menu click (&lt;a href="https://github.com/godotengine/godot/pull/103892">GH-103892&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Update mouse-entered state when subwindow closes (&lt;a href="https://github.com/godotengine/godot/pull/104328">GH-104328&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Vulkan: Disable layers in editor deemed buggy by RenderDoc (&lt;a href="https://github.com/godotengine/godot/pull/104154">GH-104154&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix Metal handling of cube textures; assert equal dimensions (&lt;a href="https://github.com/godotengine/godot/pull/104341">GH-104341&lt;/a>).&lt;/li>
&lt;li>XR: Correct occlusion culling viewport location calculation when projection uses asymmetric FOV (&lt;a href="https://github.com/godotengine/godot/pull/104249">GH-104249&lt;/a>).&lt;/li>
&lt;/ul>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/abef5e0d23a7f031ae7df90ccf49d650444b9685">&lt;code class="language-plaintext highlighter-rouge">abef5e0d2&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4.1-rc2">
Download Godot 4.4.1 rc2
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-4-1-rc-2.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4.1-rc2">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>There are currently no known issues introduced by this release.&lt;/p>
&lt;p>With every release we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Rémi Verschelde</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.5 dev 1</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-5-dev-1/"/><updated>2025-03-20T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-5-dev-1/</id><summary>The feature freeze has melted away—here comes the flood!</summary><content type="html">&lt;p>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 wouldve been too much of a risk.
In truth, the quantity has been &lt;em>so&lt;/em> great that we couldve 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
whove been so patient in waiting for their contributions to see the light of day.&lt;/p>
&lt;p>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 &lt;em>is&lt;/em> a pre-release, the bugfixes arent the only additions; the usual safety precautions
that come with such an environment should be taken. Even though we prepare these snapshots such that theyre suitable
for general testing, backups and/or version control are recommended to prevent the loss of data.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.5.dev1/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/3431040/Thats_not_my_Neighbor/?curator_clanid=41324400">&lt;strong>Thats not my Neighbor&lt;/strong>&lt;/a>, &lt;em>where you take the role of a doorman ensuring the safety of your apartment complex from a mysterious surge of doppelgangers. Developed by &lt;a href="https://nachogames.itch.io/">Nachosama Games&lt;/a>, the game was recently released &lt;a href="https://store.steampowered.com/app/3431040/Thats_not_my_Neighbor/?curator_clanid=41324400">on Steam&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;h3 id="mute-game-toggle">“Mute Game” toggle&lt;/h3>
&lt;p>Previously, if a developer wished to mute the audio while testing in the editor, they had to either use the operating
systems builtin tools for sound or outright pause/close their work. &lt;a href="https://github.com/Meorge">Malcolm Anderson&lt;/a> sought
a more streamlined solution, and integrated a new toggle on the Game view (&lt;a href="https://github.com/godotengine/godot/pull/99555">GH-99555&lt;/a>). Now if developers wish to halt/restore audio
output entirely, its just one click away!&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-1/mute-toggle.webm?1" type="video/webm" />
&lt;/video>
&lt;h3 id="drop-preload-resources-as-uid">Drop preload Resources as &lt;code class="language-plaintext highlighter-rouge">UID&lt;/code>&lt;/h3>
&lt;p>With &lt;code class="language-plaintext highlighter-rouge">UID&lt;/code> support being a part of the engine as of 4.4—read more about them &lt;a href="/article/uid-changes-coming-to-godot-4-4/">here&lt;/a>—weve enabled further optimizations via their integration with core components. However, as this is a new change, theres still a few areas that have been lagging behind on support. In particular: preloaded resources lacked the ability to be loaded as &lt;code class="language-plaintext highlighter-rouge">UID&lt;/code> if dragged. &lt;a href="https://github.com/KoBeWi">Tomasz Chabora&lt;/a> has rectified this limitation in &lt;a href="https://github.com/godotengine/godot/pull/99094">GH-99094&lt;/a>, and youll find plenty more like this in our curated selection below.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-1/preload-uid.webm?1" type="video/webm" />
&lt;/video>
&lt;h3 id="allow-selecting-multiple-remote-nodes-at-runtime">Allow selecting multiple remote nodes at runtime&lt;/h3>
&lt;p>A long-awaited QOL addition to the editor experience has finally arrived! Thanks to &lt;a href="https://github.com/YeldhamDev">Michael Alexsander&lt;/a>, developers now have the ability to select multiple nodes in a runtime context! Check out their pull request &lt;a href="https://github.com/godotengine/godot/pull/99680">GH-99680&lt;/a> for more information on how this was integrated.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-1/multiple-nodes.webm?1" type="video/webm" />
&lt;/video>
&lt;h3 id="chunk-tilemap-physics">Chunk tilemap physics&lt;/h3>
&lt;p>The current implementation of &lt;code class="language-plaintext highlighter-rouge">TileMapLayer&lt;/code> 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. &lt;a href="https://github.com/groud">Gilles Roudière&lt;/a> took to entirely reworking this system in &lt;a href="https://github.com/godotengine/godot/pull/102662">GH-102662&lt;/a>, ensuring that cells take every possible opportunity.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-1/chunk-tilemap.webm?1" type="video/webm" />
&lt;/video>
&lt;h3 id="and-more">And more!&lt;/h3>
&lt;p>There are too many exciting changes to list them all here, but heres a curated selection:&lt;/p>
&lt;ul>
&lt;li>2D: Improve usability of &lt;code class="language-plaintext highlighter-rouge">Camera2D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/101427">GH-101427&lt;/a>).&lt;/li>
&lt;li>3D: Fix &lt;code class="language-plaintext highlighter-rouge">Camera3D&lt;/code> gizmo representation to accurately reflect FOV (&lt;a href="https://github.com/godotengine/godot/pull/101884">GH-101884&lt;/a>).&lt;/li>
&lt;li>3D: Use physical keys for the Q/W/E/R editor shortcuts (&lt;a href="https://github.com/godotengine/godot/pull/103533">GH-103533&lt;/a>).&lt;/li>
&lt;li>Animation: Support hiding functions calls in Method Tracks (&lt;a href="https://github.com/godotengine/godot/pull/96421">GH-96421&lt;/a>).&lt;/li>
&lt;li>Core: Add &lt;code class="language-plaintext highlighter-rouge">scene_changed&lt;/code> signal to &lt;code class="language-plaintext highlighter-rouge">SceneTree&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/102986">GH-102986&lt;/a>).&lt;/li>
&lt;li>Core: Add DDS image load and save functionality (&lt;a href="https://github.com/godotengine/godot/pull/101994">GH-101994&lt;/a>).&lt;/li>
&lt;li>Core: Dont duplicate internal nodes (&lt;a href="https://github.com/godotengine/godot/pull/89442">GH-89442&lt;/a>).&lt;/li>
&lt;li>Core: Implement &lt;code class="language-plaintext highlighter-rouge">get_size&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">get_access_time&lt;/code> methods to &lt;code class="language-plaintext highlighter-rouge">FileAccess&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/83538">GH-83538&lt;/a>).&lt;/li>
&lt;li>Debugger: Allow locating VRAM resource by double-clicking (&lt;a href="https://github.com/godotengine/godot/pull/103949">GH-103949&lt;/a>).&lt;/li>
&lt;li>Documentation: Overhaul &lt;code class="language-plaintext highlighter-rouge">Node3D&lt;/code> documentation (&lt;a href="https://github.com/godotengine/godot/pull/87440">GH-87440&lt;/a>).&lt;/li>
&lt;li>Editor: Add option to copy a files name in the FileSystem dock (&lt;a href="https://github.com/godotengine/godot/pull/96536">GH-96536&lt;/a>).&lt;/li>
&lt;li>Editor: Allow ignoring debugger error breaks (&lt;a href="https://github.com/godotengine/godot/pull/77015">GH-77015&lt;/a>).&lt;/li>
&lt;li>Editor: Dont save unnecessarily with &lt;code class="language-plaintext highlighter-rouge">save_before_running&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/90034">GH-90034&lt;/a>).&lt;/li>
&lt;li>Editor: Improve drag and drop into array property editors (&lt;a href="https://github.com/godotengine/godot/pull/102534">GH-102534&lt;/a>).&lt;/li>
&lt;li>Editor: Replace &lt;code class="language-plaintext highlighter-rouge">UID&lt;/code> and Surface upgrade tools with universal one (&lt;a href="https://github.com/godotengine/godot/pull/103044">GH-103044&lt;/a>).&lt;/li>
&lt;li>Export: Android: Convert &lt;code class="language-plaintext highlighter-rouge">compress_native_libraries&lt;/code> to a basic export option (&lt;a href="https://github.com/godotengine/godot/pull/104301">GH-104301&lt;/a>).&lt;/li>
&lt;li>GDExtension: Include precision in extension_api.json (&lt;a href="https://github.com/godotengine/godot/pull/103137">GH-103137&lt;/a>).&lt;/li>
&lt;li>GDScript: Highlight warning lines in Script editor (&lt;a href="https://github.com/godotengine/godot/pull/102469">GH-102469&lt;/a>).&lt;/li>
&lt;li>GUI: Implement properties that can recursively disable child controls &lt;code class="language-plaintext highlighter-rouge">FocusMode&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">MouseFilter&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/97495">GH-97495&lt;/a>).&lt;/li>
&lt;li>GUI: Improve ColorPicker picker shape keyboard and joypad accessibility (&lt;a href="https://github.com/godotengine/godot/pull/99374">GH-99374&lt;/a>).&lt;/li>
&lt;li>Import: Use &lt;code class="language-plaintext highlighter-rouge">UID&lt;/code> in addition to path for extracted meshes, materials and animations (&lt;a href="https://github.com/godotengine/godot/pull/100786">GH-100786&lt;/a>).&lt;/li>
&lt;li>Particles: Add emission shape gizmos to &lt;code class="language-plaintext highlighter-rouge">Particles2D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/102249">GH-102249&lt;/a>).&lt;/li>
&lt;li>Particles: Fix particle jitter when scene tree is paused (&lt;a href="https://github.com/godotengine/godot/pull/95912">GH-95912&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Add &lt;code class="language-plaintext highlighter-rouge">linux-bionic&lt;/code> RID export option (&lt;a href="https://github.com/godotengine/godot/pull/97908">GH-97908&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Add a &lt;code class="language-plaintext highlighter-rouge">TouchActionsPanel&lt;/code> to editor (&lt;a href="https://github.com/godotengine/godot/pull/100339">GH-100339&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Enable support for volume button events (&lt;a href="https://github.com/godotengine/godot/pull/102984">GH-102984&lt;/a>).&lt;/li>
&lt;li>Porting: Linux: Implement native color picker (&lt;a href="https://github.com/godotengine/godot/pull/101546">GH-101546&lt;/a>).&lt;/li>
&lt;li>Porting: macOS/iOS: Ensure only one axis change event is produced during single &lt;code class="language-plaintext highlighter-rouge">process_joypads()&lt;/code> call (&lt;a href="https://github.com/godotengine/godot/pull/104314">GH-104314&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Remove visible &lt;code class="language-plaintext highlighter-rouge">WINDOW_MODE_FULLSCREEN&lt;/code> border by setting window region (&lt;a href="https://github.com/godotengine/godot/pull/88852">GH-88852&lt;/a>).&lt;/li>
&lt;li>Rendering: Clean up more dynamic allocations in the RD renderers with a focus on 2D (&lt;a href="https://github.com/godotengine/godot/pull/103889">GH-103889&lt;/a>).&lt;/li>
&lt;li>Rendering: Optimize &lt;code class="language-plaintext highlighter-rouge">_fill_instance_data function&lt;/code> in Forward+ renderer (&lt;a href="https://github.com/godotengine/godot/pull/103547">GH-103547&lt;/a>).&lt;/li>
&lt;li>Rendering: Significantly reduce per-frame memory allocations from the heap in the Mobile renderer (&lt;a href="https://github.com/godotengine/godot/pull/103794">GH-103794&lt;/a>).&lt;/li>
&lt;li>Rendering: Update &lt;code class="language-plaintext highlighter-rouge">ViewportTexture&lt;/code> path relative to its local scene instead of the &lt;code class="language-plaintext highlighter-rouge">Viewport&lt;/code> owner (&lt;a href="https://github.com/godotengine/godot/pull/97861">GH-97861&lt;/a>).&lt;/li>
&lt;li>Rendering: Use lower shadow normal bias for distant directional shadow splits (&lt;a href="https://github.com/godotengine/godot/pull/60178">GH-60178&lt;/a>).&lt;/li>
&lt;li>Rendering: Use separate WorkThreadPool for shader compiler (&lt;a href="https://github.com/godotengine/godot/pull/103506">GH-103506&lt;/a>).&lt;/li>
&lt;li>Scripting: Fix script docs not being searchable without manually recompiling scripts (&lt;a href="https://github.com/godotengine/godot/pull/95821">GH-95821&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>121 contributors&lt;/strong> submitted &lt;strong>403 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-dev1">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-stable.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/97241ffea6df579347653a8ce0c75db44e28f0c8">&lt;code class="language-plaintext highlighter-rouge">97241ffea&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.5-dev1">
Download Godot 4.5 dev1
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-5-dev-1.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.5-dev1">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>There are currently no known issues introduced by this release.&lt;/p>
&lt;p>With every release we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Release candidate: Godot 4.4.1 RC 1</title><link href="https://godotengine.org/article/release-candidate-godot-4-4-1-rc-1/"/><updated>2025-03-14T11:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-4-1-rc-1/</id><summary>Godot 4.4 was released 10 days ago, and as is customary with such major feature updates, we have a late harvest of regression fixes to offer!</summary><content type="html">&lt;p>We released &lt;a href="/releases/4.4/">Godot 4.4&lt;/a> 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 havent seen the &lt;a href="/releases/4.4/">&lt;strong>4.4 release page&lt;/strong>&lt;/a>, its well worth a read!&lt;/p>
&lt;p>Since then, weve 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.&lt;/p>
&lt;p>So heres 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 dont introduce new regressions in this hotfix release.&lt;/p>
&lt;p>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.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, 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.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.1.rc1/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The illustration picture for this article comes from&lt;/em> &lt;a href="https://store.steampowered.com/app/3320800/Book_Bound/?curator_clanid=41324400">&lt;strong>Book Bound&lt;/strong>&lt;/a>, &lt;em>a cozy bookshop simulator game by Bit66 Games, which was recently released &lt;a href="https://store.steampowered.com/app/3320800/Book_Bound/?curator_clanid=41324400">on Steam&lt;/a>. You can follow the developer &lt;a href="https://bsky.app/profile/bit66.bsky.social">on Bluesky&lt;/a>, and wishlist their other upcoming game &lt;a href="https://store.steampowered.com/app/2830960/Bots__Mods/?curator_clanid=41324400">Bots &amp;amp; Mods&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="whats-new">Whats new&lt;/h2>
&lt;p>&lt;strong>48 contributors&lt;/strong> submitted around &lt;strong>76 improvements&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4.1-rc1">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-stable release. Below are the most notable changes (with critical fixes highlighted in bold):&lt;/p>
&lt;ul>
&lt;li>2D: Fix wrong canvas camera override panning in the runtime debugger (&lt;a href="https://github.com/godotengine/godot/pull/103489">GH-103489&lt;/a>).&lt;/li>
&lt;li>3D: Unify CSGPolygon3D gizmos with the other geometries (&lt;a href="https://github.com/godotengine/godot/pull/103301">GH-103301&lt;/a>).&lt;/li>
&lt;li>Animation: Fix missing &lt;code class="language-plaintext highlighter-rouge">process_state&lt;/code> error in blend spaces (&lt;a href="https://github.com/godotengine/godot/pull/104018">GH-104018&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Audio: Set interactive music streams as meta streams (&lt;a href="https://github.com/godotengine/godot/pull/104054">GH-104054&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Audio: Fix AudioEffectPitchShift issues when &lt;code class="language-plaintext highlighter-rouge">pitch_scale&lt;/code> is set to 1 (&lt;a href="https://github.com/godotengine/godot/pull/104090">GH-104090&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Android: Fix build with &lt;code class="language-plaintext highlighter-rouge">disable_3d&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103523">GH-103523&lt;/a>).&lt;/li>
&lt;li>C#: Use &lt;code class="language-plaintext highlighter-rouge">ObjectID&lt;/code> when converting &lt;code class="language-plaintext highlighter-rouge">Variant&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">GodotObject&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/98034">GH-98034&lt;/a>).&lt;/li>
&lt;li>C#: Skip re-saving &lt;code class="language-plaintext highlighter-rouge">.csproj&lt;/code> when TFM is unchanged (&lt;a href="https://github.com/godotengine/godot/pull/103714">GH-103714&lt;/a>).&lt;/li>
&lt;li>Core: Fix crash when calling &lt;code class="language-plaintext highlighter-rouge">get_argument_count()&lt;/code> on Callable with freed object (&lt;a href="https://github.com/godotengine/godot/pull/103465">GH-103465&lt;/a>).&lt;/li>
&lt;li>Core: Fix &lt;code class="language-plaintext highlighter-rouge">Invalid Task ID&lt;/code> errors in &lt;code class="language-plaintext highlighter-rouge">ResourceLoader&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104060">GH-104060&lt;/a>).&lt;/li>
&lt;li>Core: Fix missing binding for &lt;code class="language-plaintext highlighter-rouge">NOTIFICATION_WM_POSITION_CHANGED&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104083">GH-104083&lt;/a>).&lt;/li>
&lt;li>Editor: Fix copying a Node with a signal potentially resulting in an editor crash (&lt;a href="https://github.com/godotengine/godot/pull/96372">GH-96372&lt;/a>).&lt;/li>
&lt;li>Editor: Fix TextEdit scrolls wrong on text selection (&lt;a href="https://github.com/godotengine/godot/pull/103410">GH-103410&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Editor: Update script modified times when saved in EditorNode (&lt;a href="https://github.com/godotengine/godot/pull/103695">GH-103695&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Editor: Fix ownership when pasting non root with child nodes in new scene (&lt;a href="https://github.com/godotengine/godot/pull/103769">GH-103769&lt;/a>).&lt;/li>
&lt;li>Export: iOS: Restore one-click deploy device enumeration using Xcode (&lt;a href="https://github.com/godotengine/godot/pull/103590">GH-103590&lt;/a>).&lt;/li>
&lt;li>&lt;strong>GDExtension: Correctly register editor-only &lt;code class="language-plaintext highlighter-rouge">OpenXR*&lt;/code> classes &lt;code class="language-plaintext highlighter-rouge">api_type&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103869">GH-103869&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>GUI: Fix &lt;code class="language-plaintext highlighter-rouge">changed&lt;/code> signal emission in &lt;code class="language-plaintext highlighter-rouge">Curve::set_point_offset&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/96296">GH-96296&lt;/a>).&lt;/li>
&lt;li>GUI: Fix spinbox decimal issues when &lt;code class="language-plaintext highlighter-rouge">update_on_text_changed&lt;/code> = true (&lt;a href="https://github.com/godotengine/godot/pull/100684">GH-100684&lt;/a>).&lt;/li>
&lt;li>GUI: Fix Tree keyboard navigation in RTL direction (&lt;a href="https://github.com/godotengine/godot/pull/102865">GH-102865&lt;/a>).&lt;/li>
&lt;li>GUI: VideoStreamPlayer: Stop video on exit tree (&lt;a href="https://github.com/godotengine/godot/pull/103396">GH-103396&lt;/a>).&lt;/li>
&lt;li>GUI: Use &lt;code class="language-plaintext highlighter-rouge">Viewport&lt;/code>s default texture filter/repeat in GUI tooltips (&lt;a href="https://github.com/godotengine/godot/pull/103636">GH-103636&lt;/a>).&lt;/li>
&lt;li>Import: Fix headless import always emits errors (&lt;a href="https://github.com/godotengine/godot/pull/103403">GH-103403&lt;/a>).&lt;/li>
&lt;li>Import: BasisUniversal: Ensure ASTCs HDR variant is supported when transcoding (&lt;a href="https://github.com/godotengine/godot/pull/103766">GH-103766&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Import: ResourceLoader: Do not wait for the main thread during initial reimport (&lt;a href="https://github.com/godotengine/godot/pull/104013">GH-104013&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Input: Fix Android mouse capture issues (&lt;a href="https://github.com/godotengine/godot/pull/103413">GH-103413&lt;/a>).&lt;/li>
&lt;li>Navigation: Make NavigationLink3D properly update on visibility change (&lt;a href="https://github.com/godotengine/godot/pull/103588">GH-103588&lt;/a>).&lt;/li>
&lt;li>Particles: Fix particle jitter when scene tree is paused (&lt;a href="https://github.com/godotengine/godot/pull/95912">GH-95912&lt;/a>).&lt;/li>
&lt;li>Particles: Fix GPU particles not emitting at some configured rates when scale curve is zero (&lt;a href="https://github.com/godotengine/godot/pull/103121">GH-103121&lt;/a>).&lt;/li>
&lt;li>Physics: Fix broken negative scaling when using Jolt Physics (&lt;a href="https://github.com/godotengine/godot/pull/103440">GH-103440&lt;/a>).&lt;/li>
&lt;li>Plugin: JavaClassWrapper: Improve handling of typed array arguments (&lt;a href="https://github.com/godotengine/godot/pull/102817">GH-102817&lt;/a>).&lt;/li>
&lt;li>Plugin: JavaClassWrapper: Fix converting returned arrays to Godot types (&lt;a href="https://github.com/godotengine/godot/pull/103375">GH-103375&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Plugin: JavaClassWrapper: Fix conversion to/from &lt;code class="language-plaintext highlighter-rouge">org.godotengine.godot.Dictionary&lt;/code> that regressed (&lt;a href="https://github.com/godotengine/godot/pull/103733">GH-103733&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Porting: Android: Fix editor crash after changing device language (&lt;a href="https://github.com/godotengine/godot/pull/103419">GH-103419&lt;/a>).&lt;/li>
&lt;li>Porting: X11: Fix check for &lt;code class="language-plaintext highlighter-rouge">is_maximized&lt;/code> to require both horizontal and vertical (&lt;a href="https://github.com/godotengine/godot/pull/103526">GH-103526&lt;/a>).&lt;/li>
&lt;li>Porting: Linux: Offload RenderingDevice creation test to subprocess (&lt;a href="https://github.com/godotengine/godot/pull/103560">GH-103560&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Fix &lt;code class="language-plaintext highlighter-rouge">get_modified_time&lt;/code> on locked files (&lt;a href="https://github.com/godotengine/godot/pull/103622">GH-103622&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Swap Nintendo face buttons (&lt;a href="https://github.com/godotengine/godot/pull/103661">GH-103661&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Use more efficient sleep approach when low-processor mode is enabled (&lt;a href="https://github.com/godotengine/godot/pull/103773">GH-103773&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Add ASTC HDR format variants (&lt;a href="https://github.com/godotengine/godot/pull/102777">GH-102777&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix voxelizer normals (&lt;a href="https://github.com/godotengine/godot/pull/102893">GH-102893&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix 2D quad primitive missing lighting data in GLES3 renderer (&lt;a href="https://github.com/godotengine/godot/pull/102908">GH-102908&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix uninitialized value in Tonemap (&lt;a href="https://github.com/godotengine/godot/pull/103092">GH-103092&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Use separate WorkThreadPool for shader compiler (&lt;a href="https://github.com/godotengine/godot/pull/103506">GH-103506&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix incorrect parameters passed to VMA (&lt;a href="https://github.com/godotengine/godot/pull/103730">GH-103730&lt;/a>).&lt;/li>
&lt;li>Rendering: MetalFX: Change fallback behavior (&lt;a href="https://github.com/godotengine/godot/pull/103792">GH-103792&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix GLES3 &lt;code class="language-plaintext highlighter-rouge">gaussian_blur&lt;/code> mipmap setup (&lt;a href="https://github.com/godotengine/godot/pull/103878">GH-103878&lt;/a>).&lt;/li>
&lt;li>Rendering: CPUParticles2D: Fix physics interpolation after entering tree with &lt;code class="language-plaintext highlighter-rouge">emitting = false&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103966">GH-103966&lt;/a>).&lt;/li>
&lt;li>Shaders: Fix 2D instance params crashing using outside of &lt;code class="language-plaintext highlighter-rouge">main()&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103348">GH-103348&lt;/a>).&lt;/li>
&lt;li>Shaders: Fix “unused varying” incorrect warning in shaders (&lt;a href="https://github.com/godotengine/godot/pull/103434">GH-103434&lt;/a>).&lt;/li>
&lt;li>Shaders: 2D: Fix light shader accessing &lt;code class="language-plaintext highlighter-rouge">TEXTURE_PIXEL_SIZE&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103617">GH-103617&lt;/a>).&lt;/li>
&lt;li>Thirdparty: Theora: Fix YUV422/444 to RGB conversion (&lt;a href="https://github.com/godotengine/godot/pull/102859">GH-102859&lt;/a>).&lt;/li>
&lt;li>Thirdparty: Update to latest version of Swappy (&lt;a href="https://github.com/godotengine/godot/pull/103409">GH-103409&lt;/a>).&lt;/li>
&lt;/ul>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/daa4b058ee9272dd4ee9033bb093afb21ad558b7">&lt;code class="language-plaintext highlighter-rouge">daa4b058e&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4.1-rc1">
Download Godot 4.4.1 rc1
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-4-1-rc-1.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4.1-rc1">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>There are currently no known issues introduced by this release.&lt;/p>
&lt;p>With every release we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Rémi Verschelde</name></author><category term="Pre-release"/></entry><entry><title>Godot XR update - February 2025</title><link href="https://godotengine.org/article/godot-xr-update-feb-2025/"/><updated>2025-03-06T12:00:00+00:00</updated><id>https://godotengine.org/article/godot-xr-update-feb-2025/</id><summary>New plugin releases for Godot XR.</summary><content type="html">&lt;h2 id="announcing-the-meta-toolkit-extension">Announcing the Meta Toolkit extension&lt;/h2>
&lt;p>We are pleased to announce the release of the &lt;a href="https://github.com/godot-sdk-integrations/godot-meta-toolkit">Godot Meta Toolkit&lt;/a>, a GDExtension plugin that exposes Metas &lt;a href="https://developers.meta.com/horizon/documentation/native/ps-platform-intro">Platform SDK&lt;/a> and provides other tools to simplify and accelerate XR development on Metas platform.&lt;/p>
&lt;p>The project is Open Source (MIT license) and maintained by &lt;a href="https://www.w4games.com/">W4 Games&lt;/a> with sponsorship from Meta. Contributions from the community are welcome! 🙂&lt;/p>
&lt;p>You can download version 1.0.2 &lt;a href="https://github.com/godot-sdk-integrations/godot-meta-toolkit/releases/tag/1.0.2-stable">from GitHub&lt;/a> or the &lt;a href="https://godotengine.org/asset-library/asset/3673">Asset Library&lt;/a>.&lt;/p>
&lt;p>Lets take a look at the features available in this release!&lt;/p>
&lt;h3 id="platform-sdk">Platform SDK&lt;/h3>
&lt;p>The Platform SDK allows developers to access features of Metas store and online services, including:&lt;/p>
&lt;ul>
&lt;li>User profiles (including authentication and checking entitlement)&lt;/li>
&lt;li>In-App Purchases (IAP)&lt;/li>
&lt;li>Downloadable Content (DLC)&lt;/li>
&lt;li>Friends, Parties, and Group Presence&lt;/li>
&lt;li>Achievements&lt;/li>
&lt;li>Leaderboards&lt;/li>
&lt;li>… and much more!&lt;/li>
&lt;/ul>
&lt;p>Support of the Platform SDK in the Godot Meta Toolkit is done using code generation, which automatically generates the Godot classes by processing the &lt;a href="https://developers.meta.com/horizon/downloads/package/oculus-platform-sdk/">Platform SDKs official C headers&lt;/a>. This approach simplifies keeping the Godot Meta Toolkit up-to-date with the latest updates to the Platform SDK, and provides Godot APIs that match the Platform SDKs C, Unity, and Unreal APIs.&lt;/p>
&lt;p>As of version 1.0.2, the Godot Meta Toolkit supports v72 of the Platform SDK.&lt;/p>
&lt;p>See &lt;a href="https://godot-sdk-integrations.github.io/godot-meta-toolkit/manual/platform_sdk/getting_started.html">the “Getting Started” guide in the documentation&lt;/a> for more information!&lt;/p>
&lt;h3 id="setup-tool-for-xr-simulator">Setup Tool for XR Simulator&lt;/h3>
&lt;p>The &lt;a href="https://developers.meta.com/horizon/documentation/unity/xrsim-intro">Meta XR Simulator&lt;/a> is the counterpart of the &lt;a href="https://www.meta.com/experiences/godot-game-engine/7713660705416473/">Godot XR Editor&lt;/a> as it allows developers to test XR applications directly on their computer (Windows or macOS), removing the need to constantly put the headset on and off, thus leading to faster iteration.&lt;/p>
&lt;p>The Godot editor can be configured to launch the Meta XR Simulator when you run your game, and the Godot Meta Toolkit includes a tool to help you with that configuration!&lt;/p>
&lt;p>&lt;img alt="Configure XR simulator" src="/storage/blog/godot-xr/xr_simulator_tool.webp" />&lt;/p>
&lt;p>See &lt;a href="https://godot-sdk-integrations.github.io/godot-meta-toolkit/manual/xr_simulator.html">the “XR Simulator” documentation&lt;/a> for more information!&lt;/p>
&lt;h3 id="easily-configure-exports-for-meta-quest-headsets">Easily configure exports for Meta Quest headsets&lt;/h3>
&lt;p>When exporting your game for a Meta Quest headset, in particular, if you want to release on the HorizonOS store, there are a number of specific, required export settings.&lt;/p>
&lt;p>The Godot Meta Toolkit provides a new export option that, if checked, will automatically configure these settings to their required values.&lt;/p>
&lt;p>&lt;img alt="Enable toolkit" src="/storage/blog/godot-xr/enable_toolkit.webp" />&lt;/p>
&lt;h2 id="openxr-vendors-plugin-312-release">OpenXR Vendors plugin 3.1.2 release&lt;/h2>
&lt;p>Here comes another release of the Godot OpenXR Vendors plugin with plenty of features and bug fixes!
This release of the OpenXR vendors plugin is for Godot 4.3 and later only.&lt;/p>
&lt;p>You can download version 3.1.2 from &lt;a href="https://github.com/GodotVR/godot_openxr_vendors/releases/tag/3.1.2-stable">GitHub&lt;/a> or the &lt;a href="https://godotengine.org/asset-library/asset/3076">Asset Library&lt;/a>.&lt;/p>
&lt;p>In addition, the XR sample projects are also available on the &lt;a href="https://github.com/GodotVR/godot_openxr_vendors/releases/tag/3.1.2-stable">GitHub release&lt;/a> and the &lt;a href="https://godotengine.org/asset-library/asset?filter=XR+Sample&amp;amp;category=&amp;amp;godot_version=&amp;amp;cost=&amp;amp;sort=updated">Asset Library&lt;/a>.&lt;/p>
&lt;h3 id="features">Features&lt;/h3>
&lt;ul>
&lt;li>Update OpenXR to Khronos 1.1.41 release&lt;/li>
&lt;li>Add the option to enable hand tracking on Pico devices
&lt;ul>
&lt;li>Add support for toggling the hand tracking frequency on Pico devices between &lt;em>LOW&lt;/em> and &lt;em>HIGH&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Add the &lt;code class="language-plaintext highlighter-rouge">xr/openxr/extensions/automatically_request_runtime_permissions&lt;/code> project setting to enable/disable automatic requests for runtime permissions
&lt;ul>
&lt;li>The project setting is enabled by default, which causes all runtime permissions to be requested at app launch&lt;/li>
&lt;li>Developers can disable that behavior so that application logic can request the permissions in a context-specific manner&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Add export profile for Magic Leap 2 devices&lt;/li>
&lt;/ul>
&lt;h3 id="bug-fixes">Bug fixes&lt;/h3>
&lt;ul>
&lt;li>Update the signal emitted by &lt;code class="language-plaintext highlighter-rouge">OpenXRFbSpatialEntity.erase_from_storage()&lt;/code> from &lt;code class="language-plaintext highlighter-rouge">_on_save_to_storage&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">_on_erase_from_storage&lt;/code>&lt;/li>
&lt;li>Only add the &lt;a href="https://developer.android.com/reference/android/content/Intent#CATEGORY_LAUNCHER">Android LAUNCHER category&lt;/a> to the generated XR binary if the &lt;code class="language-plaintext highlighter-rouge">package/show_in_app_library&lt;/code> export option is enabled&lt;/li>
&lt;li>Fix wall, floor, and ceiling collision shapes with Jolt physics&lt;/li>
&lt;li>Add export option to enable or disable sharing of Metas spatial anchors
&lt;ul>
&lt;li>This adds the &lt;code class="language-plaintext highlighter-rouge">com.oculus.permission.IMPORT_EXPORT_IOT_MAP_DATA&lt;/code> permission when enabled&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Fix a crash that happens when a spatial anchor is created before the OpenXR session has begun&lt;/li>
&lt;li>Reworked geometric algebra used by Meta body tracking extension to address root and shoulder tracking bugs&lt;/li>
&lt;li>Remove deprecated “Contextual” boundary mode on Meta Quest&lt;/li>
&lt;li>Fix &lt;code class="language-plaintext highlighter-rouge">OpenXRFbPassthroughExtensionWrapper&lt;/code> from wiping out the next pointer chain for system properties&lt;/li>
&lt;li>Fix passthrough sample color map display bug&lt;/li>
&lt;li>Fix the issue preventing vendor options in the export preset from being updated&lt;/li>
&lt;/ul>
&lt;h2 id="godot-xr-tools-440-release">Godot XR Tools 4.4.0 release&lt;/h2>
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/xJKQ2ca5zVw" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen="">&lt;/iframe>
&lt;p>This version of XR Tools has been updated to contain &lt;a href="https://godotengine.org/article/godot-4-2-arrives-in-style/#critical-and-breaking-changes">Godot 4.2 mesh formats&lt;/a> and thus &lt;strong>requires Godot 4.2+&lt;/strong>.&lt;/p>
&lt;p>You can download version 4.4.0 from &lt;a href="https://github.com/GodotVR/godot-xr-tools/releases">GitHub&lt;/a> or the &lt;a href="https://godotengine.org/asset-library/asset/1698">Asset Library&lt;/a>.
You can download &lt;a href="https://godot-xr.itch.io/godot-xr-tools-demo">the Godot XR Tools demo on itch.io&lt;/a>.&lt;/p>
&lt;p>The Godot XR Tools repository on GitHub contains a &lt;a href="https://github.com/GodotVR/godot-xr-tools/blob/master/.github/workflows/publish-demo-on-push.yaml">GitHub workflow&lt;/a> that prepares and uploads the demo project to the above itch.io page. This workflow can be used as a template for your own project.&lt;/p>
&lt;h3 id="features-1">Features&lt;/h3>
&lt;ul>
&lt;li>The StartXR startup script has had a cleanup pass, it now:
&lt;ul>
&lt;li>Properly handles the passthrough system changes in Godot 4.3. Godot 4.3 saw changes in basing passthrough on the environment blend mode and moved logic into the vendor plugin to improve platform support for passthrough. XR Tools now makes use of this new system.&lt;/li>
&lt;li>Add proper support for the immersive-ar and immersive-vr webXR modes&lt;/li>
&lt;li>Provides signals to notify when the user enters or exits XR&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://godotvr.github.io/godot-xr-tools/docs/pickable/">Pickable objects&lt;/a> now include an &lt;code class="language-plaintext highlighter-rouge">action_released&lt;/code> signal so additional logic can be written when objects are dropped by the user&lt;/li>
&lt;li>Allow &lt;a href="https://godotvr.github.io/godot-xr-tools/docs/grab_point/">grab-points&lt;/a> and poses to work with different types of hand trackers&lt;/li>
&lt;li>The &lt;a href="https://godotvr.github.io/godot-xr-tools/docs/vignette/">vignette shader&lt;/a> now works properly in Godot 4 including support for reverse-Z depth buffers&lt;/li>
&lt;li>Add &lt;code class="language-plaintext highlighter-rouge">visibility_changed&lt;/code> notifications to &lt;a href="https://godotvr.github.io/godot-xr-tools/docs/pointer/">Viewport2Din3D&lt;/a> hosted scenes&lt;/li>
&lt;li>Add &lt;em>SnapPath&lt;/em>, a new snap object that allows you to snap objects along a path and at fixed intervals&lt;/li>
&lt;/ul>
&lt;h3 id="bug-fixes-1">Bug fixes&lt;/h3>
&lt;ul>
&lt;li>Fix custom hand poses calling legacy &lt;code class="language-plaintext highlighter-rouge">remove_animation&lt;/code>&lt;/li>
&lt;li>Invisible &lt;a href="https://godotvr.github.io/godot-xr-tools/docs/pointer/">Viewport2Din3D&lt;/a> now disable physics and viewport updates&lt;/li>
&lt;li>Improvements to collision hands so collision shapes of picked up objects are added and we no longer have hands collide with dropped objects&lt;/li>
&lt;/ul></content><author><name>Bastiaan Olij</name></author><category term="Progress Report"/></entry><entry><title>Godot 4.4, a unified experience</title><link href="https://godotengine.org/article/godot-4-4-a-unified-experience/"/><updated>2025-03-03T15:45:00+00:00</updated><id>https://godotengine.org/article/godot-4-4-a-unified-experience/</id><summary>Look forward to plenty of quality of life improvements hidden within this release. Faster load speeds, reduced stutter, streamlined processes — spotting all the optimizations that have been applied in the background will take some time.</summary><content type="html"/><author><name>Godot contributors</name></author><category term="Release"/></entry><entry><title>Release candidate: Godot 4.4 RC 3</title><link href="https://godotengine.org/article/release-candidate-godot-4-4-rc-3/"/><updated>2025-02-28T17:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-4-rc-3/</id><summary>We said "final" for the previous release candidate, but good things come in threes, don't they?</summary><content type="html">&lt;p>We are almost ready to release Godot 4.4 officially! As we are in the &lt;a href="https://en.wikipedia.org/wiki/Software_release_life_cycle#Release_candidate">Release Candidate&lt;/a> stage and focus only on critical regression fixes, the pace of merging pull requests has nearly stopped… but a lot of good stuff is already being queued for the next release cycle. In the meantime, the communication team is doing an amazing work to finalize the contents of the release page, so that you can all (re)discover the highlights of Godot 4.4 with an exciting format!&lt;/p>
&lt;p>We managed to get a few more regressions identified and fixed since our RC2 snapshot 2 days ago, so were making a &lt;em>final&lt;/em> final release candidate to round this all up and ensure Godot 4.4 is ready for prime time!&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, 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.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.rc3/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/2689470/CRUEL/?curator_clanid=41324400">&lt;strong>CRUEL&lt;/strong>&lt;/a>, &lt;em>a fast run and gun horror shooter with roguelike elements. Developed by James Dornan, the game was released &lt;a href="https://store.steampowered.com/app/2689470/CRUEL/?curator_clanid=41324400">on Steam&lt;/a> in January 2025.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>We covered the most important highlights from Godot 4.4 in the previous &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">&lt;strong>4.4 beta 1 blog post&lt;/strong>&lt;/a>, so if you havent read that one, have a look to be introduced to the main new features added in the 4.4 release.&lt;/p>
&lt;p>Especially if youre testing 4.4 for the first time, youll want to get a condensed overview of what new features you might want to make use of.&lt;/p>
&lt;p>This section covers changes made since the previous &lt;a href="/article/dev-snapshot-godot-4-4-rc-2/">RC 2 snapshot&lt;/a>, which are strictly regression fixes:&lt;/p>
&lt;ul>
&lt;li>Buildsystem: Add &lt;code class="language-plaintext highlighter-rouge">(void *)&lt;/code> cast directly to &lt;code class="language-plaintext highlighter-rouge">GetProcAddress&lt;/code> calls (&lt;a href="https://github.com/godotengine/godot/pull/103354">GH-103354&lt;/a>).&lt;/li>
&lt;li>Editor: Replace error to info messages for embedded game (&lt;a href="https://github.com/godotengine/godot/pull/103339">GH-103339&lt;/a>).&lt;/li>
&lt;li>Editor: Add checks to prevent crashes when accessing the GameMenu api (&lt;a href="https://github.com/godotengine/godot/pull/103371">GH-103371&lt;/a>).&lt;/li>
&lt;li>GDScript: Add bound checks to &lt;code class="language-plaintext highlighter-rouge">Array&lt;/code>/&lt;code class="language-plaintext highlighter-rouge">Packed*Array&lt;/code> variant call &lt;code class="language-plaintext highlighter-rouge">get&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">set&lt;/code> methods (&lt;a href="https://github.com/godotengine/godot/pull/103362">GH-103362&lt;/a>).&lt;/li>
&lt;li>Input: Change default deadzone back to 0.5 for &lt;code class="language-plaintext highlighter-rouge">ui_*&lt;/code> actions and axis &lt;code class="language-plaintext highlighter-rouge">pressed&lt;/code> state (&lt;a href="https://github.com/godotengine/godot/pull/103364">GH-103364&lt;/a>).&lt;/li>
&lt;li>Rendering: Shaders: Only convert default value to linear color if type hint is &lt;code class="language-plaintext highlighter-rouge">source_color&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103201">GH-103201&lt;/a>).&lt;/li>
&lt;li>Rendering: Metal: Fix SPIR-V → MSL compilation on iOS targets (&lt;a href="https://github.com/godotengine/godot/pull/103337">GH-103337&lt;/a>).&lt;/li>
&lt;li>XR: OpenXR: Emulated alpha blend mode should override the real blend mode (&lt;a href="https://github.com/godotengine/godot/pull/103338">GH-103338&lt;/a>).&lt;/li>
&lt;li>XR: Inform that Android sensors must be enabled for MobileVR support (&lt;a href="https://github.com/godotengine/godot/pull/103370">GH-103370&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>7 contributors&lt;/strong> submitted &lt;strong>10 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-rc3">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-rc2 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/15ff450680a40391aabbffde0a57ead2cd84db56">&lt;code class="language-plaintext highlighter-rouge">15ff45068&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-rc3">
Download Godot 4.4 rc3
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-4-rc-3.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-rc3">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the Release Candidate stage, we focus exclusively on solving showstopping regressions (i.e. something that worked in a previous release is now broken, without workaround). You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new blocking issues after more users start testing the RC snapshots.&lt;/p>
&lt;p>With every release, we are aware that there are going to be various issues which have already been reported but havent been fixed yet, due to limited resources. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Rémi Verschelde</name></author><category term="Pre-release"/></entry><entry><title>Release candidate: Godot 4.4 RC 2</title><link href="https://godotengine.org/article/release-candidate-godot-4-4-rc-2/"/><updated>2025-02-26T12:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-4-rc-2/</id><summary>With a stable release imminent, join us for one final round of testing.</summary><content type="html">&lt;p>Last week, we released the first of our &lt;a href="https://en.wikipedia.org/wiki/Software_release_life_cycle#Release_candidate">Release Candidate&lt;/a> builds, a state suitable for production settings. This is the second entry, and already shaping up to be our last, as all relevant release blockers have been dealt with! While we prepare for the stable release—no more than a weeks time from now—lets enjoy one last roundup of changes.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, 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.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.rc2/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/2531940/Stray_Path/?curator_clanid=41324400">&lt;strong>Stray Path&lt;/strong>&lt;/a>, &lt;em>a roguelike card game where optimization is key to unraveling the mystery of this stray world. Developed by chx games, the game was just released &lt;a href="https://store.steampowered.com/app/2531940/Stray_Path/?curator_clanid=41324400">on Steam&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>We covered the most important highlights from Godot 4.4 in the previous &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">&lt;strong>4.4 beta 1 blog post&lt;/strong>&lt;/a>, so if you havent read that one, have a look to be introduced to the main new features added in the 4.4 release.&lt;/p>
&lt;p>Especially if youre testing 4.4 for the first time, youll want to get a condensed overview of what new features you might want to make use of.&lt;/p>
&lt;p>This section covers changes made since the previous &lt;a href="/article/dev-snapshot-godot-4-4-rc-1/">RC 1 snapshot&lt;/a>, which are mostly regression fixes, or “safe” fixes to longstanding issues:&lt;/p>
&lt;ul>
&lt;li>Buildsystem: Fix libtheora optimizations causing errors in calling function for x86_64 Windows (&lt;a href="https://github.com/godotengine/godot/pull/103176">GH-103176&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Fix compiling on arm64 Linux with GCC (&lt;a href="https://github.com/godotengine/godot/pull/103303">GH-103303&lt;/a>).&lt;/li>
&lt;li>Core: Use atomic flag to prevent &lt;code class="language-plaintext highlighter-rouge">flush_if_pending&lt;/code> from reading unlocked &lt;code class="language-plaintext highlighter-rouge">command_mem&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103298">GH-103298&lt;/a>).&lt;/li>
&lt;li>Editor: Fix Embedded Game window wrong first startup location and size (&lt;a href="https://github.com/godotengine/godot/pull/103105">GH-103105&lt;/a>).&lt;/li>
&lt;li>Editor: Fix plugin icons not displayed (&lt;a href="https://github.com/godotengine/godot/pull/103143">GH-103143&lt;/a>).&lt;/li>
&lt;li>Editor: Load docks layout after their position is initialized (&lt;a href="https://github.com/godotengine/godot/pull/103266">GH-103266&lt;/a>).&lt;/li>
&lt;li>Export: Fix cross-platform configuration of rendering driver settings (narrower approach) (&lt;a href="https://github.com/godotengine/godot/pull/103197">GH-103197&lt;/a>).&lt;/li>
&lt;li>GDExtension: Bind new core &lt;code class="language-plaintext highlighter-rouge">METHOD_FLAG_VIRTUAL_REQUIRED&lt;/code> bitfield (&lt;a href="https://github.com/godotengine/godot/pull/103302">GH-103302&lt;/a>).&lt;/li>
&lt;li>GUI: Fix Tree hover position with multiple columns (&lt;a href="https://github.com/godotengine/godot/pull/103168">GH-103168&lt;/a>).&lt;/li>
&lt;li>GUI: Fix label clipping when ascent/descent are fractional (&lt;a href="https://github.com/godotengine/godot/pull/103192">GH-103192&lt;/a>).&lt;/li>
&lt;li>GUI: Label: Fix rounding errors with fractional scale (&lt;a href="https://github.com/godotengine/godot/pull/103224">GH-103224&lt;/a>).&lt;/li>
&lt;li>I18n: CSV import: Generate positve UID for .translation and follow renames (&lt;a href="https://github.com/godotengine/godot/pull/103120">GH-103120&lt;/a>).&lt;/li>
&lt;li>Import: bcdec: Fix unnecessary alignment of texture resolution when only one of its dimensions isnt divisible by 4 (&lt;a href="https://github.com/godotengine/godot/pull/103259">GH-103259&lt;/a>).&lt;/li>
&lt;li>Network: mbedTLS: Integrate TLS handshake defragmentation PR (&lt;a href="https://github.com/godotengine/godot/pull/103247">GH-103247&lt;/a>).&lt;/li>
&lt;li>Porting: Fix Embedded Game does not focus when mouse over on Windows (&lt;a href="https://github.com/godotengine/godot/pull/103052">GH-103052&lt;/a>).&lt;/li>
&lt;li>Porting: Android Editor: Fix expand button black bar issue (&lt;a href="https://github.com/godotengine/godot/pull/103117">GH-103117&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Fix excessive &lt;code class="language-plaintext highlighter-rouge">getRotation&lt;/code> calls (&lt;a href="https://github.com/godotengine/godot/pull/103122">GH-103122&lt;/a>).&lt;/li>
&lt;li>Rendering: Metal: Compile &lt;code class="language-plaintext highlighter-rouge">MTLLibrary&lt;/code> on demand when pipeline is created (&lt;a href="https://github.com/godotengine/godot/pull/103185">GH-103185&lt;/a>).&lt;/li>
&lt;li>Rendering: Windows: Offload &lt;code class="language-plaintext highlighter-rouge">RenderingDevice&lt;/code> creation test to subprocess (&lt;a href="https://github.com/godotengine/godot/pull/103245">GH-103245&lt;/a>).&lt;/li>
&lt;li>Rendering: &lt;code class="language-plaintext highlighter-rouge">texture_create_from_native_handle()&lt;/code> should return &lt;code class="language-plaintext highlighter-rouge">RID&lt;/code> for texture from &lt;code class="language-plaintext highlighter-rouge">RenderingServer&lt;/code>, not &lt;code class="language-plaintext highlighter-rouge">RenderingDevice&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103296">GH-103296&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>19 contributors&lt;/strong> submitted &lt;strong>31 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-rc2">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-rc1 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/01545c995b0612c68f9dfce8f6cc67576c298381">&lt;code class="language-plaintext highlighter-rouge">01545c995&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-rc2">
Download Godot 4.4 rc2
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-4-rc-2.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-rc2">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the Release Candidate stage, we focus exclusively on solving showstopping regressions (i.e. something that worked in a previous release is now broken, without workaround). You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new blocking issues after more users start testing the RC snapshots.&lt;/p>
&lt;p>With every release, we are aware that there are going to be various issues which have already been reported but havent been fixed yet, due to limited resources. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Godot Showcase - Museum of All Things</title><link href="https://godotengine.org/article/museum-of-all-things/"/><updated>2025-02-25T22:00:00+00:00</updated><id>https://godotengine.org/article/museum-of-all-things/</id><summary>What if Wikipedia was a place you could visit? Thats the idea behind The Museum of All Things, a free and open-source procedurally-generated museum built on Wikipedias vast knowledge base.</summary><content type="html">&lt;p>What if Wikipedia was a place you could visit? Thats the idea behind &lt;a href="https://may.as/moat">The Museum of All Things&lt;/a>, a &lt;a href="https://github.com/m4ym4y/museum-of-all-things">free and open-source&lt;/a> procedurally-generated museum built on Wikipedias vast knowledge base.&lt;/p>
&lt;p>In this interview, we talk to &lt;a href="https://may.as">Maya&lt;/a>, the creator of The Museum of All Things, about the challenges of turning an entire encyclopedia into an walkable space, why she chose Godot for development, and how VR transformed the project into something even more immersive.&lt;/p>
&lt;h2 id="can-you-tell-us-a-little-bit-about-your-project">Can you tell us a little bit about your project?&lt;/h2>
&lt;p>The Museum of All Things (or the MoAT) is a free virtual museum that lets you explore any topic you can imagine! It does this by procedurally generating its exhibits using Wikipedia.&lt;/p>
&lt;p>Every exhibit you enter in the museum corresponds to an article on Wikipedia. Text and images from the Wikipedia article cover the walls of the exhibit, and you can find hallways leading to other related exhibits based on the links in the exhibits Wikipedia article.&lt;/p>
&lt;p>&lt;img src="/storage/blog/moat/peach.webp" alt="A screenshot of the museum (article: Peach)" />&lt;/p>
&lt;p>Ive been making video games for most of my life, but The Museum of All Things is the biggest game Ive made so far. Its also my first real 3D game. I have prototypes of the game going back a few years, but I started really working on this iteration in November 2024.&lt;/p>
&lt;p>Ever since I was a kid Ive loved museums, so being able to make my own museum is so exciting to me. I love that the skills of game development let me create a project like this, even though its outside the traditional genres of video games.&lt;/p>
&lt;h2 id="what-were-some-of-the-biggest-challenges-you-faced-during-the-development-process-and-how-did-you-overcome-them">What were some of the biggest challenges you faced during the development process, and how did you overcome them?&lt;/h2>
&lt;p>The hardest part of this project has been turning something as huge as Wikipedia into a procedurally-generated space that makes sense and is fun to explore.&lt;/p>
&lt;p>The Museum of All Things has about the same square footage as Philadelphia based on my rough calculation. Its different from most procedurally-generated worlds because all the text and images displayed in that whole area are actually unique. But its still really hard to make all of that area interesting to the player.&lt;/p>
&lt;p>Ive worked hard on adding interest to the museum, and on making the museum feel more like a physical space. Im using &lt;a href="https://docs.godotengine.org/en/stable/tutorials/3d/using_gridmaps.html">Godots GridMap feature&lt;/a> to randomly generate a unique floorplan for every exhibit. The exhibit generation is seeded, so everyone is visiting the same version of each exhibit. There are several different interior themes used in the exhibits to add visual variety. Ambient sounds and music create an atmosphere. And in addition to the images and text pulled from Wikipedia to fill the exhibits, the museum also pulls images from &lt;a href="https://commons.wikimedia.org/wiki/Main_Page">Wikimedia Commons&lt;/a> to make exhibits larger and
more interesting to explore.&lt;/p>
&lt;p>&lt;img src="/storage/blog/moat/chongqing.webp" alt="A screenshot of the museum (article: Chongqing)" />&lt;/p>
&lt;h2 id="the-project-is-under-the-mit-license-and-available-for-everyone-at-github-what-made-you-decide-to-make-the-project-free-and-open-source">The project is under the MIT license and available for everyone &lt;a href="https://github.com/m4ym4y/museum-of-all-things">at GitHub&lt;/a>. What made you decide to make the project free and open source?&lt;/h2>
&lt;p>This project would have been totally impossible without the wealth of knowledge compiled by Wikipedias community and the APIs which Wikimedia makes freely available. So I really want my project to pay that goodwill forward as much as I can. And the beauty of this museum being a virtual experience is that theres no space to rent or building to upkeep, so I can afford to make it free!&lt;/p>
&lt;h2 id="how-did-you-discover-godot-what-made-you-pick-it-for-your-project">How did you discover Godot? What made you pick it for your project?&lt;/h2>
&lt;p>I discovered Godot a few years ago when I was looking for an engine to use for a game jam, and I had a good experience with it! Using open-source tools is really important to me, because I dont want to learn skills that could become obsolete if a company decides to change their pricing model. The cross-platform support was a big selling point to me as well!&lt;/p>
&lt;p>Ive used Godot several more times for game jams (most of my &lt;a href="https://ldjam.com/users/maymay/games">Ludum Dare entries&lt;/a> are in Godot). Ive gotten more comfortable with the features and workflow now, so Godot was the first tool I reached for when I started prototyping my museum!&lt;/p>
&lt;h2 id="the-museum-can-be-visited-in-vr-how-was-your-experience-implementing-vr-with-godot">The museum can be visited in VR. How was your experience implementing VR with Godot?&lt;/h2>
&lt;p>I was really intimidated by VR, but I actually found it to be straightforward! I didnt go into this project knowing anything about developing in VR, so the &lt;a href="https://github.com/GodotVR/godot-xr-tools">godot-xr-tools&lt;/a> addon was extremely helpful. All the elements like movement and interaction came out of the box and fit into the game world I had written.&lt;/p>
&lt;p>Im really happy that I took the leap and added VR. For a project like this where the objective is just to explore a world, VR makes a big difference in the experience. I went from thinking “hey I made a cool game” to thinking “wow I created a world that I can actually visit.” And thats kinda the coolest feeling ever for me.&lt;/p>
&lt;p>&lt;img src="/storage/blog/moat/vr-lobby.webp" alt="A screenshot of the museum (The lobby in VR)" />&lt;/p>
&lt;h2 id="how-can-people-visit-the-museum">How can people visit the museum?&lt;/h2>
&lt;p>You can download the Museum of All Things for free on Windows, Linux, or macOS! If you have a headset compatible with OpenXR (the Oculus Quest is not supported currently) you can download the OpenXR release.&lt;/p>
&lt;p>You can visit the projects official homepage at &lt;a href="https://may.as/moat">https://may.as/moat&lt;/a> or download the &lt;a href="https://mayeclair.itch.io/museum-of-all-things">Museum of All Things from Itch.io&lt;/a>.&lt;/p>
&lt;h2 id="do-you-have-any-other-projects-in-mind-for-the-future">Do you have any other projects in mind for the future?&lt;/h2>
&lt;p>Im waiting for another idea to come along that captures my attention. Im working on my art and writing skills, so I think my next game may be something that includes more of a story. Ill probably be participating in game jams too!&lt;/p>
&lt;p>Im going to be taking a break from working on the Musuem of All Things, but I want to return to it and publish updates in the future too. There are big features that Id still like to add for example the ability to visit the museum with others in multiplayer is something many people have requested. Id also like to add more variety to the museums layout, and maybe the ability to pull in more types of content from Wikimedia where available, such as audio and 3D models. Its one of these projects where every time I touch it theres more things I want to add.&lt;/p>
&lt;p>&lt;img src="/storage/blog/moat/geometry.webp" alt="A screenshot of the museum (article: Geometry)" />&lt;/p>
&lt;h3 id="thank-you-for-sharing-your-experience-using-godot-is-there-anything-you-would-like-to-plug">Thank you for sharing your experience using Godot. Is there anything you would like to plug?&lt;/h3>
&lt;p>You can find me and my socials at &lt;a href="https://may.as/">https://may.as/&lt;/a> if youd like to stay up to date on all my future projects! I hired Willow Wolf from &lt;a href="https://neomoon.one/">https://neomoon.one/&lt;/a> to create sound and music for my project. Check out her site if youre looking for game audio services!&lt;/p></content><author><name>Emi</name></author><category term="Showcase"/></entry><entry><title>Release candidate: Godot 4.4 RC 1</title><link href="https://godotengine.org/article/release-candidate-godot-4-4-rc-1/"/><updated>2025-02-21T20:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-4-rc-1/</id><summary>Godot 4.4 is now practically ready for its stable release, so it's time for the last round(s) of testing to make sure it's a smooth upgrade for all users.</summary><content type="html">&lt;p>We are entering the final stage of development for Godot 4.4, which is the &lt;a href="https://en.wikipedia.org/wiki/Software_release_life_cycle#Release_candidate">Release Candidate&lt;/a>: all features are in place, the most critical regressions have been tackled, and so were confident that its now ready for production use.&lt;/p>
&lt;p>But without very extensive testing from the community, we can never be 100% sure that the release is ready to be published as a recommended stable upgrade for all users. With this candidate, Godot 4.4 is now ready for testing to upgrade existing projects (but always make a copy or version control commit before upgrading!), and were eager to hear how it fares and whether any new major issues have been left unnoticed until now.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, 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.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.rc1/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/3167550/Tiny_Pasture/?curator_clanid=41324400">&lt;strong>Tiny Pasture&lt;/strong>&lt;/a>, &lt;em>an endearing literal desktop pet that has cute pixel art animals grazing at the bottom of your screen while you do other things. Developed by CaveLiquid (&lt;a href="https://bsky.app/profile/caveliquid.bsky.social">Bluesky&lt;/a>, &lt;a href="https://linktr.ee/CaveLiquid">website&lt;/a>), the game was just released &lt;a href="https://store.steampowered.com/app/3167550/Tiny_Pasture/?curator_clanid=41324400">on Steam&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>We covered the most important highlights from Godot 4.4 in the previous &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">&lt;strong>4.4 beta 1 blog post&lt;/strong>&lt;/a>, so if you havent read that one, have a look to be introduced to the main new features added in the 4.4 release.&lt;/p>
&lt;p>Especially if youre testing 4.4 for the first time, youll want to get a condensed overview of what new features you might want to make use of.&lt;/p>
&lt;p>This section covers changes made since the previous &lt;a href="/article/dev-snapshot-godot-4-4-beta-4/">beta 4 snapshot&lt;/a>, which are mostly regression fixes, or “safe” fixes to longstanding issues:&lt;/p>
&lt;ul>
&lt;li>Audio: Web: Fix issue when pausing an non-started sample (&lt;a href="https://github.com/godotengine/godot/pull/102955">GH-102955&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Windows: Configure MinGW LTO with &lt;code class="language-plaintext highlighter-rouge">-fno-use-linker-plugin -fwhole-program&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103077">GH-103077&lt;/a>).&lt;/li>
&lt;li>Editor: Fix parsing translations in &lt;code class="language-plaintext highlighter-rouge">EditorTranslationParserPlugin&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/99297">GH-99297&lt;/a>).&lt;/li>
&lt;li>Editor: Remove non-existent IPUnix conversion (&lt;a href="https://github.com/godotengine/godot/pull/102922">GH-102922&lt;/a>).&lt;/li>
&lt;li>Editor: Fix Embedded Game over expanded bottom panel, by resetting expanded bottom panel on Play (&lt;a href="https://github.com/godotengine/godot/pull/102978">GH-102978&lt;/a>).&lt;/li>
&lt;li>Editor: Always allow selecting any rendering driver in the settings, add “auto” option (&lt;a href="https://github.com/godotengine/godot/pull/103026">GH-103026&lt;/a>).&lt;/li>
&lt;li>Editor: Dont show &lt;code class="language-plaintext highlighter-rouge">Show in Filesystem&lt;/code> Popup for empty frames in &lt;code class="language-plaintext highlighter-rouge">SpriteFrames&lt;/code> editor (&lt;a href="https://github.com/godotengine/godot/pull/103050">GH-103050&lt;/a>).&lt;/li>
&lt;li>Export: Fix &lt;code class="language-plaintext highlighter-rouge">modified_time&lt;/code> on Android (&lt;a href="https://github.com/godotengine/godot/pull/103080">GH-103080&lt;/a>).&lt;/li>
&lt;li>GUI: IME: Do not redraw and move caret on IME update w/o text/position changes (&lt;a href="https://github.com/godotengine/godot/pull/103059">GH-103059&lt;/a>).&lt;/li>
&lt;li>Input: Remove temporary project conversion (&lt;a href="https://github.com/godotengine/godot/pull/99479">GH-99479&lt;/a>).&lt;/li>
&lt;li>Input: Prevent pending input event callbacks from erasing the window in the middle of a loop (&lt;a href="https://github.com/godotengine/godot/pull/102993">GH-102993&lt;/a>).&lt;/li>
&lt;li>Network: mbedtls: Dont set TLS max version on Mbed TLS &amp;lt; 3.0 (&lt;a href="https://github.com/godotengine/godot/pull/102964">GH-102964&lt;/a>).&lt;/li>
&lt;li>Particles: Fix particle not re-randomizing every emission (&lt;a href="https://github.com/godotengine/godot/pull/103068">GH-103068&lt;/a>).&lt;/li>
&lt;li>Porting: Window: Fix flashing subwindows (&lt;a href="https://github.com/godotengine/godot/pull/102983">GH-102983&lt;/a>).&lt;/li>
&lt;li>Porting: Fix Embedded Game startup location on Windows (&lt;a href="https://github.com/godotengine/godot/pull/103021">GH-103021&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix debug CanvasItem redraw rects in RD renderer (&lt;a href="https://github.com/godotengine/godot/pull/103017">GH-103017&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>As we released 4.4 beta 4 just days ago, and tightened a lot our policy on what kind of changes can be merged leading to the release candidate stage, there arent a lot of changes in this snapshot. &lt;strong>12 contributors&lt;/strong> (at this stage, release heroes!) submitted &lt;strong>18 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-rc1">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-beta4 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/8ed125b42908d0d46d3b8967e3a3bc03f809b3af">&lt;code class="language-plaintext highlighter-rouge">8ed125b42&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-rc1">
Download Godot 4.4 rc1
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-4-rc-1.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-rc1">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the Release Candidate stage, we focus exclusively on solving showstopping regressions (i.e. something that worked in a previous release is now broken, without workaround). You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new blocking issues after more users start testing the RC snapshots.&lt;/p>
&lt;p>&lt;em>Edit:&lt;/em> A regression was introduced in this snapshot and will be fixed in RC 2:&lt;/p>
&lt;ul>
&lt;li>The change to the &lt;code class="language-plaintext highlighter-rouge">rendering/rendering_device/driver&lt;/code> project setting and its platform overrides to default to a new &lt;code class="language-plaintext highlighter-rouge">auto&lt;/code> mode in &lt;a href="https://github.com/godotengine/godot/issues/103026">GH-103026&lt;/a> caused a regression in the Android and iOS export process, where some necessary configuration is no longer set properly (&lt;a href="https://github.com/godotengine/godot/issues/103156">GH-103156&lt;/a>). You can work it around by explicitly setting &lt;code class="language-plaintext highlighter-rouge">rendering/rendering_device/driver.android&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">vulkan&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">rendering/rendering_device/driver.ios&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">metal&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>With every release, we are aware that there are going to be various issues which have already been reported but havent been fixed yet, due to limited resources. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Rémi Verschelde</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.4 beta 4</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-4-beta-4/"/><updated>2025-02-17T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-4/</id><summary>The 4.4 beta phase nears its end!</summary><content type="html">&lt;p>We knew from the beginning that aiming for a late-February release was an ambitious timeframe, but the community has risen to the challenge and kept development right on track! As such, you can expect this to be our final beta release of the 4.4 period, with release candidates set to come out shortly after. In practice, this means that all further changes will be &lt;em>strictly&lt;/em> regression fixes, so the content available here will be largely reflective of the 4.4 release. As always, users are strongly encouraged to test this snapshot to catch the remaining few release blockers.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, 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.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.beta4/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/2308630/Dawnfolk/?curator_clanid=41324400">&lt;strong>Dawnfolk&lt;/strong>&lt;/a>, &lt;em>a charmingly dark and minimalist survival city-builder, developed by Darenn Keller and published by Astra Logical! You can buy the game &lt;a href="https://store.steampowered.com/app/2308630/Dawnfolk/?curator_clanid=41324400">on Steam&lt;/a>, and follow the developer on &lt;a href="https://bsky.app/profile/darenn.bsky.social">Bluesky&lt;/a> and his &lt;a href="https://darenn.github.io/linktree/">website&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>For an overview of whats new overall in Godot 4.4, have a look at the highlights for &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">4.4 beta 1&lt;/a>, which cover a lot of the changes. This blog post only covers the changes between beta 3 and beta 4. This section covers the most relevant changes made since the &lt;a href="/article/dev-snapshot-godot-4-4-beta-3/">beta 3 snapshot&lt;/a>, which are largely regression fixes.&lt;/p>
&lt;ul>
&lt;li>2D: Fix &lt;code class="language-plaintext highlighter-rouge">Camera2D&lt;/code> limits drawing (&lt;a href="https://github.com/godotengine/godot/pull/102868">GH-102868&lt;/a>).&lt;/li>
&lt;li>3D: Add changeable freelook speed in Game Window (&lt;a href="https://github.com/godotengine/godot/pull/102704">GH-102704&lt;/a>).&lt;/li>
&lt;li>3D: Fix collision reposition with &lt;code class="language-plaintext highlighter-rouge">CSGShape3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/102286">GH-102286&lt;/a>).&lt;/li>
&lt;li>3D: Fix stale VoxelGI warnings (&lt;a href="https://github.com/godotengine/godot/pull/102843">GH-102843&lt;/a>).&lt;/li>
&lt;li>Audio: AudioStreamGenerator: Add mixing rate presets, update docs (&lt;a href="https://github.com/godotengine/godot/pull/102691">GH-102691&lt;/a>).&lt;/li>
&lt;li>Audio: Fix Theora video issues (&lt;a href="https://github.com/godotengine/godot/pull/101958">GH-101958&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Separate Android editor artifacts (&lt;a href="https://github.com/godotengine/godot/pull/102543">GH-102543&lt;/a>).&lt;/li>
&lt;li>C#: Disallow &lt;code class="language-plaintext highlighter-rouge">ExportToolButton&lt;/code> on members that may store the Callable (&lt;a href="https://github.com/godotengine/godot/pull/102836">GH-102836&lt;/a>).&lt;/li>
&lt;li>C#: Fix Android mono export with 2 or more CPU architectures fails (&lt;a href="https://github.com/godotengine/godot/pull/98066">GH-98066&lt;/a>).&lt;/li>
&lt;li>C#: Validate project TFM for Android template exports (&lt;a href="https://github.com/godotengine/godot/pull/102627">GH-102627&lt;/a>).&lt;/li>
&lt;li>Documentation: Add parentheses to method links in online class reference (&lt;a href="https://github.com/godotengine/godot/pull/102567">GH-102567&lt;/a>).&lt;/li>
&lt;li>Editor: Fix accessing UID before first scan (&lt;a href="https://github.com/godotengine/godot/pull/102513">GH-102513&lt;/a>).&lt;/li>
&lt;li>Editor: Fix lag when resizing Floating Game Window (&lt;a href="https://github.com/godotengine/godot/pull/102618">GH-102618&lt;/a>).&lt;/li>
&lt;li>Editor: Return fast for built-in class icon (&lt;a href="https://github.com/godotengine/godot/pull/101435">GH-101435&lt;/a>).&lt;/li>
&lt;li>Editor: Show enum property invalid value in inspector (&lt;a href="https://github.com/godotengine/godot/pull/102743">GH-102743&lt;/a>).&lt;/li>
&lt;li>Editor: Tweak Quick Open theming (&lt;a href="https://github.com/godotengine/godot/pull/101598">GH-101598&lt;/a>).&lt;/li>
&lt;li>GDScript: Fix Plugin Scripts load twice on startup (&lt;a href="https://github.com/godotengine/godot/pull/102535">GH-102535&lt;/a>).&lt;/li>
&lt;li>GUI: Android: Add Snackbar UI component (&lt;a href="https://github.com/godotengine/godot/pull/102590">GH-102590&lt;/a>).&lt;/li>
&lt;li>GUI: Fix Tree Mouse hover position (&lt;a href="https://github.com/godotengine/godot/pull/102842">GH-102842&lt;/a>).&lt;/li>
&lt;li>GUI: Optimize &lt;code class="language-plaintext highlighter-rouge">Font&lt;/code> calculations by avoiding unnecessary copy-on-write (&lt;a href="https://github.com/godotengine/godot/pull/102132">GH-102132&lt;/a>).&lt;/li>
&lt;li>Input: Web: Refactor &lt;code class="language-plaintext highlighter-rouge">mouse_mode&lt;/code> setters in display server (&lt;a href="https://github.com/godotengine/godot/pull/102719">GH-102719&lt;/a>).&lt;/li>
&lt;li>Physics: Jolt: Fix ghost collision issue on dense triangle meshes (&lt;a href="https://github.com/godotengine/godot/pull/102614">GH-102614&lt;/a>).&lt;/li>
&lt;li>Physics: Jolt: Improve performance of certain physics queries (&lt;a href="https://github.com/godotengine/godot/pull/101071">GH-101071&lt;/a>).&lt;/li>
&lt;li>Porting: Add support for embedding game process in the Android Editor (&lt;a href="https://github.com/godotengine/godot/pull/102492">GH-102492&lt;/a>).&lt;/li>
&lt;li>Porting: Fix game and editor freeze when clicking on the games title bar (&lt;a href="https://github.com/godotengine/godot/pull/102744">GH-102744&lt;/a>).&lt;/li>
&lt;li>Rendering: Reduce mobile pipeline compilations (&lt;a href="https://github.com/godotengine/godot/pull/102217">GH-102217&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>65 contributors&lt;/strong> submitted &lt;strong>141 improvements&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-beta4">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-beta3 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/93d270693079ea7802c9e1334a2e0ecd8529eeed">&lt;code class="language-plaintext highlighter-rouge">93d270693&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-beta4">
Download Godot 4.4 beta4
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-4-beta-4.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-beta4">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.&lt;/p>
&lt;p>With every release, we accept that there are going to be various issues which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;ul>
&lt;li>Changes to scenes are not reflected in APK exports after the initial export in the Android editor. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101007">GH-101007&lt;/a>.&lt;/li>
&lt;/ul>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.4 beta 3</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-4-beta-3/"/><updated>2025-02-07T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-3/</id><summary>Picking up the pace!</summary><content type="html">&lt;p>Woah, another beta build already? Youre not imagining things, its only been a week since our last release. The team is fully in the swing of getting release-blockers merged, so were able to expedite output. Whats more, our community has been on the ball with submitting regression reports; thanks to everyone whos involved themselves!&lt;/p>
&lt;p>While progress has been at a rate were all excited about, its not over yet! Well likely do one more beta release the following week, but after that we hope to be gearing up for release candidates. If you havent already, we encourage users who havent engaged with the beta releases to do so and help us catch the last few stragglers.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, 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.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.beta3/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/2667120/Ballionaire/">&lt;strong>Ballionaire&lt;/strong>&lt;/a>, &lt;em>a roguelike pachinko simulator where the laws of physics bend to your will, developed by newobject and published by Raw Fury! You can buy the game &lt;a href="https://store.steampowered.com/app/2667120/Ballionaire/">on Steam&lt;/a>, and follow the developer on &lt;a href="https://bsky.app/profile/newobject.bsky.social">Bluesky&lt;/a> and &lt;a href="https://newobject.itch.io/">itch.io&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>For an overview of whats new overall in Godot 4.4, have a look at the highlights for &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">4.4 beta 1&lt;/a>, which cover a lot of the changes. This blog post only covers the changes between beta 2 and beta 3. This section covers the most relevant changes made since the &lt;a href="/article/dev-snapshot-godot-4-4-beta-2/">beta 2 snapshot&lt;/a>, which are largely regression fixes.&lt;/p>
&lt;h3 id="uid-upgrade-tool">UID upgrade tool&lt;/h3>
&lt;p>The introduction of &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> files remains one of the biggest changes to the 4.4 release cycle, so much so that we gave it a &lt;a href="/article/uid-changes-coming-to-godot-4-4/">dedicated article&lt;/a>. However, it hasnt been the most straightforward system, particularly for those that are attempting to upgrade their projects from 4.3. In order to address this, &lt;a href="https://github.com/Meorge">Malcolm Anderson&lt;/a> has put together a UID upgrade tool to automate this process (&lt;a href="https://github.com/godotengine/godot/pull/102071">GH-103071&lt;/a>).&lt;/p>
&lt;h3 id="porting-fixes-to-embeddedfloating-window-mode">Porting fixes to Embedded/Floating Window mode&lt;/h3>
&lt;p>The Embedded/Floating game window option added in 4.4 is proving to be quite popular, but also exposes all kinds of quirks on various systems with how they deal with windows. &lt;a href="https://github.com/Hilderin">Hilderin&lt;/a> did impressive work to track and fix these issues, with pull requests such as &lt;a href="https://github.com/godotengine/godot/pull/102104">GH-102104&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102238">GH-102238&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102251">GH-102251&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102311">GH-102311&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102312">GH-102312&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102470">GH-102470&lt;/a>, and more! The experience should be much better already in beta 3.&lt;/p>
&lt;h3 id="lightmap-baking-improvements">Lightmap baking improvements&lt;/h3>
&lt;p>&lt;a href="https://github.com/clayjohn">Clay John&lt;/a> changed the logic for baking direct lighting in LightmapGI to spread it over multiple frames, avoiding a spike of computation that can lead the OS to trigger &lt;abbr title="Timeout Detection and Recovery">TDR&lt;/abbr>, resulting in a crash of the GPU context (&lt;a href="https://github.com/godotengine/godot/pull/102257">GH-102257&lt;/a>). With some further fixes like &lt;a href="https://github.com/godotengine/godot/pull/102424">GH-102424&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102497">GH-102497&lt;/a>, and &lt;a href="https://github.com/godotengine/godot/pull/102477">GH-102477&lt;/a>, lightmap baking got a nice upgrade in this snapshot.&lt;/p>
&lt;h3 id="and-more">And more!&lt;/h3>
&lt;ul>
&lt;li>Animation: Fix incomplete FPS spinbox display in sprite frames editor (&lt;a href="https://github.com/godotengine/godot/pull/101798">GH-101798&lt;/a>).&lt;/li>
&lt;li>Audio: Web: Fix audio issues with samples and GodotPositionReportingProcessor (&lt;a href="https://github.com/godotengine/godot/pull/102163">GH-102163&lt;/a>).&lt;/li>
&lt;li>Core: Add explicit error messages to Multimesh functions (&lt;a href="https://github.com/godotengine/godot/pull/101109">GH-101109&lt;/a>).&lt;/li>
&lt;li>Core: Fix &lt;code class="language-plaintext highlighter-rouge">Basis::get_euler&lt;/code> incorrectly simplifying rotations in some cases (&lt;a href="https://github.com/godotengine/godot/pull/102144">GH-102144&lt;/a>).&lt;/li>
&lt;li>Core: Fix &lt;code class="language-plaintext highlighter-rouge">is_valid_float&lt;/code>, &lt;code class="language-plaintext highlighter-rouge">Variant&lt;/code> parser, &lt;code class="language-plaintext highlighter-rouge">Expression&lt;/code> parser, script highlighter, and &lt;code class="language-plaintext highlighter-rouge">TextServer&lt;/code> not handing capital E in scientific notation (&lt;a href="https://github.com/godotengine/godot/pull/102396">GH-102396&lt;/a>).&lt;/li>
&lt;li>Editor: Fix resource details will unexpectedly expand (&lt;a href="https://github.com/godotengine/godot/pull/101817">GH-101817&lt;/a>).&lt;/li>
&lt;li>Editor: Improve UID file creation condition (&lt;a href="https://github.com/godotengine/godot/pull/102489">GH-102489&lt;/a>).&lt;/li>
&lt;li>Editor: Optimize classnames enumeration (&lt;a href="https://github.com/godotengine/godot/pull/101489">GH-101489&lt;/a>).&lt;/li>
&lt;li>Editor: Revert “EditorResourcePicker: Replace options to load file with button for QuickOpenDialog” (&lt;a href="https://github.com/godotengine/godot/pull/102196">GH-102196&lt;/a>).&lt;/li>
&lt;li>Editor: Use &lt;code class="language-plaintext highlighter-rouge">FlowContainer&lt;/code> for &lt;code class="language-plaintext highlighter-rouge">Profiler&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">Visual Profiler&lt;/code> bars (&lt;a href="https://github.com/godotengine/godot/pull/102024">GH-102024&lt;/a>).&lt;/li>
&lt;li>Export: Disable Metal and Vulkan renderers in simulator builds. Remove simulator support from editor/exporter (&lt;a href="https://github.com/godotengine/godot/pull/102179">GH-102179&lt;/a>).&lt;/li>
&lt;li>GDExtension: Fix memory leak when &lt;code class="language-plaintext highlighter-rouge">ClassDB::bind_method_custom()&lt;/code> fails (&lt;a href="https://github.com/godotengine/godot/pull/102131">GH-102131&lt;/a>).&lt;/li>
&lt;li>GDScript: Fix uppercase B and X parsing in the integer literals (&lt;a href="https://github.com/godotengine/godot/pull/102400">GH-102400&lt;/a>).&lt;/li>
&lt;li>GUI: Fix TextEdit mouse selection and scroll cancel (&lt;a href="https://github.com/godotengine/godot/pull/91778">GH-91778&lt;/a>).&lt;/li>
&lt;li>GUI: Fix TextEdit visible line count when setting text (&lt;a href="https://github.com/godotengine/godot/pull/102296">GH-102296&lt;/a>).&lt;/li>
&lt;li>GUI: Introduce &lt;code class="language-plaintext highlighter-rouge">Viewport&lt;/code> functions for keeping the mouse over state consistent (&lt;a href="https://github.com/godotengine/godot/pull/99890">GH-99890&lt;/a>).&lt;/li>
&lt;li>GUI: Prevent tooltip from showing when hovering past the end of script line (&lt;a href="https://github.com/godotengine/godot/pull/100913">GH-100913&lt;/a>).&lt;/li>
&lt;li>Network: Fix WebSocket wslay multi-frame message parsing (again) (&lt;a href="https://github.com/godotengine/godot/pull/102128">GH-102128&lt;/a>).&lt;/li>
&lt;li>Porting: FreeDesktop portal: Check for &lt;code class="language-plaintext highlighter-rouge">FileChooser&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">Settings&lt;/code> interface availability instead of assuming its always available (&lt;a href="https://github.com/godotengine/godot/pull/101812">GH-101812&lt;/a>).&lt;/li>
&lt;li>Porting: Implement &lt;code class="language-plaintext highlighter-rouge">get_length()&lt;/code> for pipes (&lt;a href="https://github.com/godotengine/godot/pull/102365">GH-102365&lt;/a>).&lt;/li>
&lt;li>Rendering: 2D: Fix clip children and rendering artefacts (&lt;a href="https://github.com/godotengine/godot/pull/102161">GH-102161&lt;/a>).&lt;/li>
&lt;li>Rendering: Add loop annotations to ubershaders to prevent loop unrolling (&lt;a href="https://github.com/godotengine/godot/pull/102480">GH-102480&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix shadow peter-panning with default spotlight (&lt;a href="https://github.com/godotengine/godot/pull/101952">GH-101952&lt;/a>).&lt;/li>
&lt;li>Rendering: Fully enable HDR2D when the setting is changed (&lt;a href="https://github.com/godotengine/godot/pull/102177">GH-102177&lt;/a>).&lt;/li>
&lt;li>Rendering: Mark pipeline compilation of ubershaders as high priority (&lt;a href="https://github.com/godotengine/godot/pull/102125">GH-102125&lt;/a>).&lt;/li>
&lt;li>Rendering: Metal: Enable GPU buffer address support (&lt;a href="https://github.com/godotengine/godot/pull/101602">GH-101602&lt;/a>).&lt;/li>
&lt;li>Rendering: Use a smaller epsilon for omni and spot attenuation cutoff (&lt;a href="https://github.com/godotengine/godot/pull/102272">GH-102272&lt;/a>).&lt;/li>
&lt;li>Shaders: Fix &lt;code class="language-plaintext highlighter-rouge">source_color&lt;/code> default value (&lt;a href="https://github.com/godotengine/godot/pull/101642">GH-101642&lt;/a>).&lt;/li>
&lt;li>Thirdparty: Harmonize patches to document downstream changes (&lt;a href="https://github.com/godotengine/godot/pull/102242">GH-102242&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>51 contributors&lt;/strong> submitted &lt;strong>116 improvements&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-beta3">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-beta2 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/06acfccf89ad6b900ae694a4d58ceade1967a85f">&lt;code class="language-plaintext highlighter-rouge">06acfccf8&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-beta3">
Download Godot 4.4 beta3
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-4-beta-3.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-beta3">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.&lt;/p>
&lt;p>With every release, we accept that there are going to be various issues which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Baking a Lightmap3D is more prone to crash after we added support for transparency. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101391">GH-101391&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Changes to scenes are not reflected in APK exports after the initial export in the Android editor. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101007">GH-101007&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.4 beta 2</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-4-beta-2/"/><updated>2025-01-30T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-2/</id><summary>The bugs don't stand a chance!</summary><content type="html">&lt;p>Weve been keeping busy these past two weeks squashing the bugs that cropped up in &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">4.4 beta 1&lt;/a>. Despite how much the previous snapshot added, it bears repeating that we have entered the 4.4 feature freeze, so our energy has been focused on addressing any new &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aopen+is%3Aissue+label%3Aregression+milestone%3A4.4">regressions&lt;/a> or the aforementioned bugs. Were still aiming for a release sometime next month, but that all depends on how effectively new bugs get reported during this period. Users are strongly encouraged to test these beta releases so this process can be as smooth and expedient as possible!&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, 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.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.beta1/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/2754380/The_Roottrees_are_Dead/">&lt;strong>The Roottrees are Dead&lt;/strong>&lt;/a>, &lt;em>a detective game where you piece together a family trees billion-dollar paper trail through the power of a dial-up modem! You can buy the game &lt;a href="https://store.steampowered.com/app/2754380/The_Roottrees_are_Dead/">on Steam&lt;/a>, and follow the developer on &lt;a href="https://bsky.app/profile/eviltrout.com">Bluesky&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>For an overview of whats new overall in Godot 4.4, have a look at the highlights for &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">4.4 beta 1&lt;/a>, which cover a lot of the changes. This blog post only covers the changes between beta 1 and beta 2. This section covers the most relevant changes made since the beta 1 snapshot, which are largely regression fixes:&lt;/p>
&lt;ul>
&lt;li>2D: Add property guards to shape 2Ds (&lt;a href="https://github.com/godotengine/godot/pull/101747">GH-101747&lt;/a>).&lt;/li>
&lt;li>3D: Add flag to enable use of accurate path tangents for polygon rotation in &lt;code class="language-plaintext highlighter-rouge">CSGPolygon3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/94479">GH-94479&lt;/a>).&lt;/li>
&lt;li>Android: Fix &lt;code class="language-plaintext highlighter-rouge">create_instance&lt;/code> in GodotApp so non-editor apps can restart (&lt;a href="https://github.com/godotengine/godot/pull/101050">GH-101050&lt;/a>).&lt;/li>
&lt;li>Animation: Add validation for rotation axis to SpringBoneSimulator3D (&lt;a href="https://github.com/godotengine/godot/pull/101571">GH-101571&lt;/a>).&lt;/li>
&lt;li>Animation: Clarify &lt;code class="language-plaintext highlighter-rouge">SpringBoneSimulator3D&lt;/code>s gravity units and improve documentation (&lt;a href="https://github.com/godotengine/godot/pull/101652">GH-101652&lt;/a>).&lt;/li>
&lt;li>Animation: Fix glitch in &lt;code class="language-plaintext highlighter-rouge">SpringBoneSimulator3D&lt;/code> by storing the previous frames rotation instead of using no rotation when the axis is flipped (&lt;a href="https://github.com/godotengine/godot/pull/101651">GH-101651&lt;/a>).&lt;/li>
&lt;li>Animation: Remove dead variable &lt;code class="language-plaintext highlighter-rouge">end_bone_tip_radius&lt;/code> from &lt;code class="language-plaintext highlighter-rouge">SpringBoneSimulator3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/101861">GH-101861&lt;/a>).&lt;/li>
&lt;li>Audio: Fix default &lt;code class="language-plaintext highlighter-rouge">AudioBusLayout&lt;/code> not loading correctly if path is set in Project Settings (&lt;a href="https://github.com/godotengine/godot/pull/100371">GH-100371&lt;/a>).&lt;/li>
&lt;li>Core: Fix “res://” being replaced by resource packs in the editor and on Android (&lt;a href="https://github.com/godotengine/godot/pull/90425">GH-90425&lt;/a>).&lt;/li>
&lt;li>Editor: Add editor setting to globally override project game mode settings (&lt;a href="https://github.com/godotengine/godot/pull/101283">GH-101283&lt;/a>).&lt;/li>
&lt;li>Editor: Dont duplicate .uid files (&lt;a href="https://github.com/godotengine/godot/pull/101683">GH-101683&lt;/a>).&lt;/li>
&lt;li>Editor: Fix center viewport not working horizontally (&lt;a href="https://github.com/godotengine/godot/pull/93792">GH-93792&lt;/a>).&lt;/li>
&lt;li>Editor: Fix crashes when pressing enter on project manager screen (&lt;a href="https://github.com/godotengine/godot/pull/101572">GH-101572&lt;/a>).&lt;/li>
&lt;li>Editor: Fix Embedded Game Size (&lt;a href="https://github.com/godotengine/godot/pull/101807">GH-101807&lt;/a>).&lt;/li>
&lt;li>Editor: Fix Embedded Game Window with user arguments (&lt;a href="https://github.com/godotengine/godot/pull/101739">GH-101739&lt;/a>).&lt;/li>
&lt;li>Editor: Fix flickering in embedded game when paused (&lt;a href="https://github.com/godotengine/godot/pull/102006">GH-102006&lt;/a>).&lt;/li>
&lt;li>GDScript: Fix GDScript editor crash on invalid &lt;code class="language-plaintext highlighter-rouge">tween_property&lt;/code> arguments (&lt;a href="https://github.com/godotengine/godot/pull/101632">GH-101632&lt;/a>).&lt;/li>
&lt;li>Input: Added shortcut for Lookup Symbol action (&lt;a href="https://github.com/godotengine/godot/pull/101565">GH-101565&lt;/a>).&lt;/li>
&lt;li>Input: Delegate handling &lt;code class="language-plaintext highlighter-rouge">mouse_mode&lt;/code> to the &lt;code class="language-plaintext highlighter-rouge">DisplayServer&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/101924">GH-101924&lt;/a>).&lt;/li>
&lt;li>Navigation: Make nodes handle their respective navigation source geometry (&lt;a href="https://github.com/godotengine/godot/pull/100882">GH-100882&lt;/a>).&lt;/li>
&lt;li>Network: Fix peer stuck in CLOSING state (&lt;a href="https://github.com/godotengine/godot/pull/101760">GH-101760&lt;/a>).&lt;/li>
&lt;li>Physics: Add debug colours and fills to CollisionPolygon3D (&lt;a href="https://github.com/godotengine/godot/pull/101810">GH-101810&lt;/a>).&lt;/li>
&lt;li>Physics: Refactor post-step operations in Jolt module to be done as needed (&lt;a href="https://github.com/godotengine/godot/pull/101815">GH-101815&lt;/a>).&lt;/li>
&lt;li>Rendering: Bake UV2 emission using half float in the compatibility backend (&lt;a href="https://github.com/godotengine/godot/pull/101730">GH-101730&lt;/a>).&lt;/li>
&lt;li>Rendering: Ensure Voxelizer SDF generation uses the correct cell level (&lt;a href="https://github.com/godotengine/godot/pull/101631">GH-101631&lt;/a>).&lt;/li>
&lt;li>Shaders: Fix space transformations in WorldPositionFromDepth visual shader node generation (&lt;a href="https://github.com/godotengine/godot/pull/100350">GH-100350&lt;/a>).&lt;/li>
&lt;li>Windows: Fix left/right Shift key regression (&lt;a href="https://github.com/godotengine/godot/pull/101763">GH-101763&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>76 contributors&lt;/strong> submitted &lt;strong>142 improvements&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-beta2">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-beta1 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/a013481b0911e59cc3f3dea7ebb732450c3e1460">&lt;code class="language-plaintext highlighter-rouge">a013481b0&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-beta2">
Download Godot 4.4 beta2
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-4-beta-2.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-beta2">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.&lt;/p>
&lt;p>With every release, we accept that there are going to be various issues which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Baking a Lightmap3D is more prone to crash after we added support for transparency. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101391">GH-101391&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Changes to scenes are not reflected in APK exports after the initial export in the Android editor. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101007">GH-101007&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>2024 Cherry-picks</title><link href="https://godotengine.org/article/2024-cherry-picks/"/><updated>2025-01-28T17:00:00+00:00</updated><id>https://godotengine.org/article/2024-cherry-picks/</id><summary>Over the course of 2024, the Godot project has amassed more new features and community highlights than any one person can keep track of. To ensure you did not miss anything essential, we have selected a few memorable moments and key updates to revisit together.</summary><content type="html">&lt;style>
.year-2024-game {
display: grid;
grid-template-areas:
"img box";
grid-template-columns:
minmax(250px, 1fr) 2fr;
gap: 1em;
margin: 2em 0;
padding: 1em;
background-color: var(--button-card-background-color);
}
@media screen and (max-width: 700px) {
.year-2024-game {
grid-template-areas:
"img"
"box";
grid-template-rows:
auto
auto;
grid-template-columns:
auto;
}
}
.year-2024-game-image {
grid-area: img;
}
.year-2024-game-image .lightbox {
display: inline-block;
height: 100%;
}
.year-2024-game-image img {
height: 100%;
width: 100%;
object-fit: cover;
margin: 0;
}
.year-2024-game-box {
grid-area: box;
display: grid;
grid-template-areas:
"title"
"description";
grid-template-rows:
min-content
1fr;
gap: 0.5em;
font-family: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
.year-2024-game-box-title {
grid-area: title;
font-weight: 700;
}
.year-2024-game-box-description {
grid-area: description;
font-size: 90%;
}
.year-2024-game-box-description p {
margin: 1em 0;
}
.year-2024-game-box-description p:first-of-type {
margin-top: 0;
}
.year-2024-game-box-description p:last-of-type {
margin-bottom: 0;
}
&lt;/style>
&lt;p>And with that, the 2024 season comes to an end. What a year it has been, with the number of Godot submissions in game jams rising to new heights, &lt;a href="https://godotengine.org/article/godot-foundation-update-dec-2024/">more people working for the Godot Foundation than ever before&lt;/a>, and most industry award shows featuring one if not more games made with Godot.&lt;/p>
&lt;p>A busy year inside the project as well. Too much to compile into a single article, unless you want to read pages of meeting notes and technical documentation. So instead, we chose to celebrate the past by looking back at one cherry-pick per month, something you might have missed during the scuffle but is worth learning about even now.&lt;/p>
&lt;p>This could be an event the team attended, a major project milestone being reached, or a fun moment online the Godot community gathered around. Likewise, we looked at the release dates of notable &lt;a href="https://steamdb.info/tech/Engine/Godot/">Godot games on Steam&lt;/a> and decided to introduce you to some favorites alongside our own organizational news. The separate tech highlight section might even introduce you to a feature or two you missed out on so far.&lt;/p>
&lt;p>But before we get started, let us sneak in an announcement: this blog post is part of our newsletter project, premiering this January. &lt;a href="https://godot.news/subscription/form">Subscribe to “The Nodeletter”&lt;/a> to get a regular digest of Godot Engine news directly in your email inbox!&lt;/p>
&lt;h1 id="tech-highlights">Tech Highlights&lt;/h1>
&lt;p>To be frank: there is no good way to summarize the work of hundreds of contributors across the span of an entire year without leaving out something important. The closest we can feasibly get are the &lt;a href="https://godotengine.org/releases/4.3/">Godot 4.3 release page&lt;/a>, and the newly published &lt;a href="https://godotengine.org/article/dev-snapshot-godot-4-4-beta-1/">Godot 4.4 beta 1 release notes&lt;/a>.&lt;/p>
&lt;p>For the purpose of this retrospective, we approached the engine maintainers directly, asking them to point us at one particularly compelling change they witnessed in their area of expertise. How many of these have you not heard about yet?&lt;/p>
&lt;h3 id="general">General&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>2D:&lt;/strong> &lt;a href="https://docs.godotengine.org/en/stable/tutorials/2d/2d_parallax.html">2D parallax&lt;/a>&lt;/li>
&lt;li>&lt;strong>3D:&lt;/strong> &lt;a href="https://github.com/godotengine/godot/pull/92391">3D physics interpolation&lt;/a>&lt;/li>
&lt;li>&lt;strong>Core:&lt;/strong> &lt;a href="https://github.com/godotengine/godot/pull/78656">Typed dictionaries&lt;/a>&lt;/li>
&lt;li>&lt;strong>Editor:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#editor-layout-ux-improvements-project-manager">Project Manager refresh&lt;/a> and &lt;strong>Android Editor:&lt;/strong> &lt;a href="https://github.com/godotengine/godot/pull/93526">Binary export support&lt;/a>&lt;/li>
&lt;li>&lt;strong>Documentation:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#documenation-commenting-enabled-on-the-online-docs">Comment section added&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="platforms">Platforms&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Android:&lt;/strong> &lt;a href="https://github.com/godotengine/godot/pull/98350">Native file picker support&lt;/a>&lt;/li>
&lt;li>&lt;strong>Web:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#editor-layout-ux-improvements-project-manager">Single-threaded exports&lt;/a> and &lt;a href="https://godotengine.org/releases/4.3/#web-web-audio">audio samples&lt;/a>&lt;/li>
&lt;li>&lt;strong>Linux:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#display-wayland-support">Wayland support&lt;/a>&lt;/li>
&lt;li>&lt;strong>macOS/iOS:&lt;/strong> &lt;a href="https://godotengine.org/article/dev-snapshot-godot-4-4-dev-1/#metal-rendering-backend">Metal renderer&lt;/a>&lt;/li>
&lt;li>&lt;strong>Windows:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#display-d3d12-driver">Direct3D 12&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="systems">Systems&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Animation:&lt;/strong> &lt;a href="https://godotengine.org/article/migrating-animations-from-godot-4-0-to-4-3/">Feature migration from Godot 4.0 to 4.3&lt;/a>&lt;/li>
&lt;li>&lt;strong>Audio:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#highlights-interactive-music">Interactive music&lt;/a>&lt;/li>
&lt;li>&lt;strong>Import&lt;/strong>: &lt;a href="https://godotengine.org/article/introducing-the-improved-ufbx-importer-in-godot-4-3/">New ufbx importer&lt;/a>&lt;/li>
&lt;li>&lt;strong>Navigation:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#navigation-splitting-navigation-meshes-into-chunks">Chunk &amp;amp; obstacle baking&lt;/a>&lt;/li>
&lt;li>&lt;strong>Physics:&lt;/strong> &lt;a href="https://github.com/godotengine/godot/pull/99895">Jolt merged&lt;/a>&lt;/li>
&lt;li>&lt;strong>Rendering:&lt;/strong> &lt;a href="https://docs.godotengine.org/en/latest/tutorials/performance/pipeline_compilations.html">Ubershaders&lt;/a>&lt;/li>
&lt;li>&lt;strong>VFX:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#highlights-visual-shader">Visual Shader overhaul&lt;/a>&lt;/li>
&lt;li>&lt;strong>XR:&lt;/strong> &lt;a href="https://godotengine.org/article/godot-editor-horizon-store-early-access-release/">Godot Editor now available on the Meta Horizon Store&lt;/a>&lt;/li>
&lt;/ul>
&lt;h1 id="godot-engine-news">Godot Engine News&lt;/h1>
&lt;h2 id="january">January&lt;/h2>
&lt;p>&lt;img alt="The commit that open-sourced Godot" src="/storage/blog/2024-cherry-picks/commit.webp" />&lt;/p>
&lt;p>Nostalgia became the theme of January, as we compiled a small &lt;a href="https://x.com/godotengine/status/1754601111229497650">game showcase&lt;/a> leading up to Godots 10-year-anniversary (counting from the moment the engine was first open sourced). For every year from 2014 to 2024 we shared two gems found on Steam and itch.io with the community, celebrating an ever growing list of Godot releases since the beginnings of the project.&lt;/p>
&lt;p>Have a look at that &lt;a href="https://github.com/godotengine/godot/commit/0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac">monumental commit&lt;/a> all those years ago!&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="KinitoPET screenshot" src="/storage/blog/2024-cherry-picks/KinitoPET.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2075070/KinitoPET" target="_blank">
&lt;span>KinitoPET&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Desktop pets have risen to new popularity in 2024. &lt;em>KinitoPET&lt;/em> combines this trend with the evergreen horror genre to bring you a unique experience about virtual assistants.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="february">February&lt;/h2>
&lt;p>As part of our social media expansion, we also created an &lt;a href="https://www.twitch.tv/godotengine_official">official Godot Engine account&lt;/a> on the streaming platform Twitch.&lt;/p>
&lt;p>Using it to check on Godot game development streamers resulted in &lt;a href="https://www.youtube.com/watch?v=Ed9xuwtmoUw">this funny compilation&lt;/a> — both the content creators and their viewers expressed happiness that the communities they had built were being recognized by us.&lt;/p>
&lt;p>Logically, the next step was to hand over the reins of the channel to some of these talented developers directly. You can find the &lt;a href="https://youtube.com/playlist?list=PLeG_dAglpVo5vWX06WyYThUOydLVmb1Iu&amp;amp;si=WBi8qIJEaSHh42NN">takeover recordings&lt;/a> on &lt;a href="https://www.youtube.com/@GodotEngineOfficial">our YouTube&lt;/a>.&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Windowkill screenshot" src="/storage/blog/2024-cherry-picks/Windowkill.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2726450/Windowkill/" target="_blank">
&lt;span>Windowkill&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Another twist on “gaming directly on a desktop” came in the form of the action roguelike &lt;em>Windowkill&lt;/em>. The twin-stick shooter requires you to keep track of and fight the ever-closing game windows while evading enemies.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="march">March&lt;/h2>
&lt;p>In March, the Godot Foundation team assembled in San Francisco to meet community members at our biggest event booth yet, in the expo hall of the annual Game Developer Conference (GDC). We shared the space with our sponsor &lt;a href="https://www.w4games.com/">W4 Games&lt;/a> and an amazing lineup of &lt;a href="https://godotengine.org/article/gdc-2024-godot-games/">Godot-powered games&lt;/a> that we had the pleasure of inviting.&lt;/p>
&lt;p>&lt;img alt="Group picture at the GDC booth" src="/storage/blog/2024-cherry-picks/gdc.webp" />&lt;/p>
&lt;p>We had a great time, both on the event grounds and at our own gatherings, and made sure to recount our full experience in a &lt;a href="https://godotengine.org/article/gdc-2024-retrospective/">retrospective blog post&lt;/a> — see you this year?&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Backpack Battles screenshot" src="/storage/blog/2024-cherry-picks/Backpack%20Battles.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2427700/Backpack_Battles/" target="_blank">
&lt;span>Backpack Battles&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
&lt;em>Backpack Battles&lt;/em> decided to make inventory management the main game mechanic. The PvP auto-battler with a medieval fantasy theme has quickly gained popularity with content creators!
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="april">April&lt;/h2>
&lt;p>Towards the end of 2023 we &lt;a href="https://godotengine.org/article/collaboration-with-google-forge-2023/">announced a collaboration with Google and The Forge&lt;/a> to improve the performance of our Vulkan mobile backend. The work concluded in April, with the &lt;a href="https://github.com/godotengine/godot/pull/90284">matching PR&lt;/a> being split into the 4.3 and 4.4 releases.&lt;/p>
&lt;p>A few highlights:&lt;/p>
&lt;ul>
&lt;li>Usage of Unified Memory Architecture (UMA) buffers when available&lt;/li>
&lt;li>Add Android &lt;a href="https://developer.android.com/games/optimize/adpf/thermal">Thermal API&lt;/a> support&lt;/li>
&lt;li>Replace large push constants with dynamic uniform buffers&lt;/li>
&lt;li>Optimize descriptor sets and descriptor set batching&lt;/li>
&lt;li>Optimize swapchain operations&lt;/li>
&lt;li>Integrate &lt;a href="https://developer.android.com/games/sdk/frame-pacing">Swappy frame pacing&lt;/a> from the Google AGDK&lt;/li>
&lt;/ul>
&lt;p>Read more about the changes in our &lt;a href="https://godotengine.org/article/update-on-google-forge-2024/">collaboration update&lt;/a>.&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Of Life and Land screenshot" src="/storage/blog/2024-cherry-picks/Of%20Life%20and%20Land.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/1733110/Of_Life_and_Land/" target="_blank">
&lt;span>Of Life and Land&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Build your own settlements in &lt;em>Of Life and Land&lt;/em> and experience different maps, scenarios, and rich simulations. Strategize with animals and nature in mind!
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="may">May&lt;/h2>
&lt;p>Did you know that we still update Godot 3? Not everyone upgraded their projects when the big codebase refresh happened last year, so by offering two versions alongside each other we aim to accommodate these existing games as well as the lower-end systems used by some developers.&lt;/p>
&lt;p>The feature freeze for 3.6 happened in May, leading up to the most recent &lt;a href="https://godotengine.org/article/godot-3-6-finally-released/">release in September&lt;/a>.&lt;/p>
&lt;p>Look at these shiny highlights:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#2d-physics-interpolation-gh-76252">2D physics interpolation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#2d-hierarchical-culling-gh-68738">2D hierarchical culling&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#mesh-merging-gh-61568">Mesh merging&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#discrete-level-of-detail-lod-gh-85437">Discrete level of detail (LOD)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#orm-materials-gh-76023">ORM materials&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#text-to-speech-support-gh-61316">Text to speech&lt;/a>&lt;/li>
&lt;/ul>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Arctic Eggs screenshot" src="/storage/blog/2024-cherry-picks/Arctic%20Eggs.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2763670/Arctic_Eggs/" target="_blank">
&lt;span>Arctic Eggs&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
This game about cooking eggs in a cold climate found great reception on the internet. There is just something about the frustratingly fun mechanics of &lt;em>Arctic Eggs&lt;/em> that captured quite an audience — who are we to judge your taste?
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="june">June&lt;/h2>
&lt;p>Our annual community poll rolled around in June. We want to know who our users are, so we can learn about common needs and offer the best support possible.&lt;/p>
&lt;p>&lt;a href="https://docs.google.com/forms/d/1eicOppRQG2RFZ8CjIGFf5Kha5yklO854fV8-YFtlWxk/viewanalytics">This years poll&lt;/a> had more responses than ever before, once again proving the incredible growth the Godot community is experiencing.&lt;/p>
&lt;p>&lt;img alt="Poll results: programming languages" src="/storage/blog/2024-cherry-picks/poll1.webp" />
&lt;img alt="Poll results: donations" src="/storage/blog/2024-cherry-picks/poll2.webp" />&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Until Then screenshot" src="/storage/blog/2024-cherry-picks/Until%20Then.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/1574820/Until_Then/" target="_blank">
&lt;span>Until Then&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Nominated for a plethora of awards, the visual novel &lt;em>Until Then&lt;/em> tells the emotional story of the highschooler Mark in polished pixel art. Build relationships, play minigames, use social media, and most importantly: solve the mystery at hand.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="july">July&lt;/h2>
&lt;p>The &lt;a href="https://www.makeship.com/products/godot-robot-plush">Godot robot plushies&lt;/a> took the internet by storm. In a collaboration with Makeship, we finally proved our infamous logos worth. Toothy grin and googly eyes translated adorably into the 3D medium. By the end of the campaign, almost 4,000 cuddly coding companions were headed towards new homes.&lt;/p>
&lt;p>Aside from the profits being funneled into the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a> and thereby opening an additional path to supporting the project financially, the plush also became a beloved community icon. Fanart was made, models of the robot were shared, and the character was granted countless cameos in games made with the engine.&lt;/p>
&lt;p>&lt;img alt="3D model of the Godot robot plush" src="/storage/blog/2024-cherry-picks/plush.webp" />
&lt;a href="https://fr3nkd.gumroad.com/l/vhfvy">CC0 model by FR3NKD&lt;/a>&lt;/p>
&lt;p>While the plush is currently sold out, we are working on bringing it back soon!&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Forgotten Mines screenshot" src="/storage/blog/2024-cherry-picks/Forgotten%20Mines.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2238630/Forgotten_Mines/" target="_blank">
&lt;span>Forgotten Mines&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
This tactical roguelite invites you to go on runs in the &lt;em>Forgotten Mines&lt;/em>. Turn-based mechanics and an RPG flavor round off the experience.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="august">August&lt;/h2>
&lt;p>Instead of our usual release blogposts, we tried something new for Godot 4.3: a fully fledged &lt;a href="https://godotengine.org/releases/4.3/">release page&lt;/a> detailing all the juicy features awaiting you.&lt;/p>
&lt;p>Highlights of the biggest release yet:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-interactive-music">Interactive music&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-2d-physics-interpolation">2D physics interpolation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-new-tilemaplayer-node">TileMapLayer nodes&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-visual-shader">Overhauled visual shader editor&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-general-multi-threading-improvements">Multi-threading improvements&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-single-threaded-web-export">Single-threaded web exports&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>All in all, &lt;strong>3,520 commits from 521 contributors&lt;/strong> came together in this shared effort!&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Megaloot screenshot" src="/storage/blog/2024-cherry-picks/Megaloot.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2440380/Megaloot/" target="_blank">
&lt;span>Megaloot&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
More inventory management mechanics come to you in the form of &lt;em>Megaloot&lt;/em>, a roguelite allowing for diverse and powerful builds each run. Looting strategically is key.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="september">September&lt;/h2>
&lt;p>As an open-source community, the Godot project thrives in matters of community maintained extensions. To ensure that valuable knowledge does not get lost once a creator decides to step down, we opened a new GitHub organization called &lt;a href="https://github.com/godot-sdk-integrations">Godot SDK Integrations&lt;/a> to host such projects.&lt;/p>
&lt;p>Read more in our detailed &lt;a href="https://godotengine.org/article/godot-sdk-integrations/">blogpost on the topic&lt;/a>.&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Halls of Torment screenshot" src="/storage/blog/2024-cherry-picks/Halls%20of%20Torment.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2218750/Halls_of_Torment/" target="_blank">
&lt;span>Halls of Torment&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Survive monster hordes in this bullet hell roguelite set in the underworld. &lt;em>Halls of Torment&lt;/em> is also available on Steam Deck and Android for gaming on the go!
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="october">October&lt;/h2>
&lt;p>We listened to the feedback of last years &lt;a href="https://conference.godotengine.org/past/">GodotCon&lt;/a> attendees and did the unthinkable: doubling the ticket amount once more, allowing 600 people onto the premises.&lt;/p>
&lt;p>On top of that, we introduced a game showcase and activities to the event schedule. Increasing our scope like so, we hoped to invite a wider variety of visitors to enjoy mingling with other community members and facilitate networking.&lt;/p>
&lt;p>Read the full &lt;a href="https://godotengine.org/article/review-godotcon24/">GodotCon 2024 review&lt;/a> to reminisce together with us or (re-)watch the &lt;a href="https://www.youtube.com/watch?v=hKLl03A9Kws&amp;amp;list=PLeG_dAglpVo6TS0q858NajyeglRuvb7hs&amp;amp;index=12">talks on YouTube&lt;/a>.&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Psychopomp GOLD screenshot" src="/storage/blog/2024-cherry-picks/Psychopomp%20GOLD.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/3243190/Psychopomp_GOLD/" target="_blank">
&lt;span>Psychopomp GOLD&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Atmospheric psychological horror awaits you in the catacombs of &lt;em>Psychopomp&lt;/em>. Solve the secrets of these new levels or mod your own.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="november">November&lt;/h2>
&lt;p>Watch this years &lt;a href="https://www.youtube.com/watch?v=n1Lon_Q2T18">Godot Engine showreel&lt;/a> and join us in awe of the variety of projects being created by this community. Every year our expectations are exceeded all over again!&lt;/p>
&lt;p>Submissions are handled via our own &lt;a href="https://showreel.godotengine.org/about">showreel page&lt;/a> and always &lt;a href="https://godotengine.org/article/submissions-open-godot-2024-showreel/">announced on our blog&lt;/a>, so keep a close eye on those if you are interested in pitching your own game for the next one.&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Unrailed 2: Back on Track screenshot" src="/storage/blog/2024-cherry-picks/Unrailed%202%20Back%20on%20Track.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2211170/Unrailed_2_Back_on_Track/" target="_blank">
&lt;span>Unrailed 2: Back on Track&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
The second installment of this railroad construction game is made in Godot. Enjoy co-op gaming and procedurally generated worlds in &lt;em>Unrailed 2&lt;/em>.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="december">December&lt;/h2>
&lt;p>The &lt;a href="https://github.com/godotengine/godot">Godot Engine GitHub repository&lt;/a> is not only the most popular one in the game development category and has been starred 92,300 times at the time of writing, but we also reached yet another milestone this December: &lt;a href="https://github.com/godotengine/godot/issues/100000">crossing the threshold of 100,000 issues&lt;/a>.&lt;/p>
&lt;p>To celebrate the occasion (and snatch the coveted number) our Release Manager wrote a &lt;a href="https://godotengine.org/article/beyond-100000-you-re-breathtaking/">heartwarming blogpost&lt;/a> that cannot be done justice by summarizing — so go read it for yourself!&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Ballionaire screenshot" src="/storage/blog/2024-cherry-picks/Ballionaire.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2667120/Ballionaire/" target="_blank">
&lt;span>Ballionaire&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
The “autobonker” &lt;em>Ballionaire&lt;/em> shows how fun physics can be. Assemble your pachinko boards strategically and watch the effects go wild.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>Concluding our walk through memory lane, the only thing left to say is &lt;strong>thank you&lt;/strong>. To those of you who contribute to the engine by code, donations, or growing the community through content creation. To our users, who help promote the project with their own success and battletest new features in real time. We also want to once again thank our &lt;a href="https://fund.godotengine.org/#credits">corporate sponsors&lt;/a> for believing in what we do. Lastly, I want to give a shoutout to my wonderful colleagues, for if they werent so incredibly dedicated to organizing and maintaining a collaboration this big, none of this would be possible either.&lt;/p>
&lt;p>Dont forget to sign up for &lt;a href="https://godot.news/subscription/form">“The Nodeletter”&lt;/a>, to receive more summaries and highlights like these, but up to twice a month!&lt;/p>
&lt;form method="post" action="https://godot.news/subscription/form" class="listmonk-form">
&lt;div>
&lt;input type="hidden" name="nonce" />
&lt;input type="email" name="email" required="" placeholder="E-mail" style="font-size: 18px;padding: 16px 18px;border: 1px solid var(--base-color);box-shadow: 0 4px 9px -3px #0000002e;background: var(--card-footer-color);color: var(--base-color-text);" />
&lt;p style="display:none;">
&lt;input id="a72d8" type="checkbox" name="l" checked="" value="a72d8608-e48e-408d-a19f-d425c2c4ba70" />
&lt;label for="a72d8">Godot Newsletter &lt;/label>
&lt;/p>
&lt;input type="submit" class="btn" value="Subscribe" style="cursor: pointer;border: inherit;" />
&lt;/div>
&lt;/form></content><author><name>Nat</name></author><category term="Showcase"/></entry><entry><title>Our first GodotCon in the US - Save the date!</title><link href="https://godotengine.org/article/godotcon-2025/"/><updated>2025-01-21T18:00:00+00:00</updated><id>https://godotengine.org/article/godotcon-2025/</id><summary>Want to join? Boston 5th - 7th of May. Call for speakers and sponsors open!</summary><content type="html">&lt;p>Up until now, we held all of our annual GodotCon events in Europe, but after the request of many of you and thanks to help from &lt;a href="https://www.meetup.com/bostongamedev/">Boston Game Dev&lt;/a> and the &lt;a href="https://www.meetup.com/bostongamedev/events/298734856/">Boston Godot Users Group&lt;/a>, we are finally able to bring the event to the US for the first time.&lt;/p>
&lt;h3 id="information">Information&lt;/h3>
&lt;table>
&lt;tbody>
&lt;tr>
&lt;td>📅 Dates&lt;/td>
&lt;td>5th, 6th, 7th of May&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>🕑 Time&lt;/td>
&lt;td>8AM - 6PM&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>🇺🇲 Location&lt;/td>
&lt;td>Boston, Massachusetts&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>📍 Venue&lt;/td>
&lt;td>Microsoft NERD. &lt;a href="https://www.google.com/maps/place/Microsoft+New+England+Research+and+Development+Center/@42.3608684,-71.0832216,1122m/data=!3m1!1e3!4m6!3m5!1s0x89e370a423d61825:0x58516248462c99eb!8m2!3d42.3614256!4d-71.0812092!16s%2Fg%2F1tfx5xkv?entry=ttu&amp;amp;g_ep=EgoyMDI1MDExMC4wIKXMDSoASAFQAw%3D%3D">1 Memorial Dr, Cambridge, MA 02142, United States&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>🌐 Website&lt;/td>
&lt;td>&lt;a href="https://conference.godotengine.org/US/2025">https://conference.godotengine.org&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;a class="btn" href="https://tickets.godotengine.org/foundation/godotcon-us-2025/">Buy tickets 🎟️&lt;/a>&lt;/p>
&lt;h3 id="call-for-speakers-and-sponsors">Call for speakers and sponsors&lt;/h3>
&lt;p>If you would like to be a part of the conference by giving a talk or a workshop, please submit your proposals through the link below. We are looking for a diverse range of topics, from beginner to advanced, so dont hesitate to submit your ideas.&lt;/p>
&lt;p>&lt;a href="https://talks.godotengine.org/godotcon-us-2025/cfp">&lt;strong>➡️ Call for submissions&lt;/strong>&lt;/a>, Deadline: 23th of February&lt;/p>
&lt;p>We are also actively looking for sponsors to support GodotCon Boston. If you or your company would be interested in learning more about sponsorship opportunities, feel free to reach out to &lt;a href="mailto:godotcon@godotengine.org">godotcon@godotengine.org&lt;/a>.&lt;/p>
&lt;h3 id="tickets-and-more">Tickets and more&lt;/h3>
&lt;p>Get your tickets &lt;a href="https://tickets.godotengine.org/foundation/godotcon-us-2025/">here&lt;/a> and stay tuned for more information by joining the &lt;a href="https://discord.gg/Jasg9cpjqA">GodotCon Discord&lt;/a> or the mailing list.&lt;/p>
&lt;form method="post" action="https://godot.news/subscription/form" class="listmonk-form">
&lt;style>@media (min-width: 768px) { input[type="submit"] {border-radius: 0px var(--button-border-radius) var(--button-border-radius) 0;}}&lt;/style>
&lt;div>
&lt;input type="hidden" name="nonce" />
&lt;input type="email" name="email" required="" placeholder="E-mail" style="font-size: 18px;padding: 16px 18px;border: 1px solid var(--base-color);box-shadow: 0 4px 9px -3px #0000002e;background: var(--card-footer-color);color: var(--base-color-text);" />
&lt;p style="display:none;">
&lt;input id="6e6e9" type="checkbox" name="l" checked="" value="6e6e9ba4-732b-4528-b4cd-71bbe6850f8d" />
&lt;label for="6e6e9">Godot Conference&lt;/label>
&lt;/p>
&lt;input type="submit" class="btn" value="Subscribe" style="cursor: pointer;border: inherit;" />
&lt;/div>
&lt;/form>
&lt;h3 id="will-there-still-be-a-european-edition-in-2025">Will there still be a European edition in 2025?&lt;/h3>
&lt;p>Absolutely! We are excited to confirm that a European GodotCon is also in the works for later this year. Stay tuned for more updates as we finalize the details.&lt;/p>
&lt;p>See you soon!&lt;/p></content><author><name>Emi</name></author><category term="Events"/></entry><entry><title>Dev snapshot: Godot 4.4 beta 1</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-4-beta-1/"/><updated>2025-01-16T18:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-1/</id><summary>Godot 4.4 is on its way! Please lend a hand by testing this beta release and reporting your findings.</summary><content type="html">&lt;p>We have reached the first beta release for the 4.4 release cycle. This officially marks the start of feature freeze for 4.4. This means contributors are encouraged to focus their efforts on fixing &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aopen+is%3Aissue+label%3Aregression+milestone%3A4.4">regressions&lt;/a> and other outstanding bugs. We wont risk merging any new features or risky bug fixes until after we release 4.4 and begin preparing for 4.5.&lt;/p>
&lt;p>We will aim to release 4.4 in around a month, but as usual, this timeline will depend on how quickly we are able to fix the outstanding bugs and what new bugs are identified in the beta process. We ask that users test these beta releases and report bugs as soon as you spot them to help us ensure a quick beta period and a timely release of 4.4.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, 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.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.beta1/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/3146520/WEBFISHING/">&lt;strong>WEBFISHING&lt;/strong>&lt;/a>, &lt;em>a multiplayer online casual fishing game where you relax, hang out, make friends, and catch fish! You can buy the game &lt;a href="https://store.steampowered.com/app/3146520/WEBFISHING/">on Steam&lt;/a>, and follow the development on &lt;a href="https://x.com/westthewerst">Twitter&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>Many features originally intended for 4.3 ended up making it into 4.4 meaning that Godot 4.4 is jam-packed with new features
despite having a much shorter development period than 4.3.&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#new-in-beta-1">New in Beta 1!&lt;/a>&lt;/li>
&lt;li>&lt;a href="#breaking-changes">Breaking changes&lt;/a>&lt;/li>
&lt;li>&lt;a href="#animation">Animation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#audio">Audio&lt;/a>&lt;/li>
&lt;li>&lt;a href="#c">C#&lt;/a>&lt;/li>
&lt;li>&lt;a href="#core">Core&lt;/a>&lt;/li>
&lt;li>&lt;a href="#editor">Editor&lt;/a>&lt;/li>
&lt;li>&lt;a href="#gdscript">GDScript&lt;/a>&lt;/li>
&lt;li>&lt;a href="#import">Import&lt;/a>&lt;/li>
&lt;li>&lt;a href="#input">Input&lt;/a>&lt;/li>
&lt;li>&lt;a href="#physics">Physics&lt;/a>&lt;/li>
&lt;li>&lt;a href="#platforms">Platforms&lt;/a>&lt;/li>
&lt;li>&lt;a href="#rendering-and-shaders">Rendering and shaders&lt;/a>&lt;/li>
&lt;li>&lt;a href="#xr">XR&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="new-in-beta-1">New in Beta 1!&lt;/h3>
&lt;p>Normally our Beta 1 release notes summarize all the most exciting changes from the previous dev releases. But the team managed to merge an unusually large number of exciting PRs right before the beta this time around, so we would like to first introduce some of the exciting changes that are new in this beta.&lt;/p>
&lt;p>A short word of warning, new means “untested”, so consider the following the most untested part of the beta release and make sure to let us know if you run into any issues!&lt;/p>
&lt;h4 id="game-window-embedding">Game window embedding&lt;/h4>
&lt;p>Game window embedding makes it possible to run the game while being able to interact with the full editor window, without needing to move the game window to the side of the editor window. This is particularly useful on single-monitor setups and laptops where screen real estate is at a premium. However, this was challenging to implement as Godot runs the game as a separate process from the editor for two reasons:&lt;/p>
&lt;ul>
&lt;li>The game process uses its own address space and therefore doesnt have to share CPU/GPU resources with the editor (or at least, not as much as if it was the same process).&lt;/li>
&lt;li>Most importantly, if the game crashes for any reason, the editor does not crash at the same time (which could cause data loss).&lt;/li>
&lt;/ul>
&lt;p>The approach we decided upon relies on window management tricks instead, so that the game window is still a separate process, but it &lt;em>looks&lt;/em> like its embedded within the editor. Contributor Hilderin took upon this task and implemented seamless window embedding on Windows and Linux. Support in Android is coming in Beta 2 while support in macOS will require a different approach for technical reasons.&lt;/p>
&lt;p>Game window embedding was implemented to support our recent interactive in-game editing feature. Now you can easily run your game, override the game camera, and select objects in game, all from the editor!&lt;/p>
&lt;p>&lt;img src="/storage/blog/godot-4-4-beta-1/embedded-editor.webp" alt="Embedding game window in main editor" />&lt;/p>
&lt;p>For more information and a handy video, check out the PR &lt;a href="https://github.com/godotengine/godot/pull/99010">GH-99010&lt;/a>.&lt;/p>
&lt;h4 id="use-property-editors-instead-of-labels-to-display-keys">Use property editors instead of labels to display keys&lt;/h4>
&lt;p>With the addition of typed dictionaries, one glaring issue quickly revealed itself in the inspector: keys were always displayed as strings! While this was the case even before typed dictionaries, the issue only became more pronounced as it undermined the benefits of static-typing. bruvzg came to the rescue with &lt;a href="https://github.com/godotengine/godot/pull/100512">GH-100512&lt;/a>, which allows the inspector to treat ALL dictionary keys as a read-only field for their respective types.&lt;/p>
&lt;h4 id="apple-game-controller-improvements">Apple Game Controller improvements&lt;/h4>
&lt;p>Weve made some improvements to how Game Controllers work on iOS and macOS. Weve unified the code to make sure it works the same on both platforms, and weve fixed some bugs. These changes improve reliability of controller discovery and manipulating the rumble motors, which should make the gaming experience even better. You can learn more about these changes in &lt;a href="https://github.com/godotengine/godot/pull/94580">GH-94580&lt;/a>.&lt;/p>
&lt;h4 id="add-2d-shader-instance-uniforms">Add 2D shader instance uniforms&lt;/h4>
&lt;p>Previously, Godot only supported shader instance uniforms in Spatial shaders. Thanks to KoBeWi, EIREXE, huwpascoe, and Patrick Exner this release will add support for shader instance uniforms for CanvasItem shaders (&lt;a href="https://github.com/godotengine/godot/pull/99230">GH-99230&lt;/a>). Shader instance uniforms allow you to assign a different value to the uniform for each CanvasItem that uses it. Importantly, this works without breaking batching, so it can be used as a performant way to add unique effects to CanvasItems without having to juggle materials.&lt;/p>
&lt;h4 id="add-visualization-of-3d-particle-emission-shapes">Add visualization of 3D particle emission shapes&lt;/h4>
&lt;p>Up until now, users of the particle system had to guess from the emission shape properties where particles would appear. This improvement (&lt;a href="https://github.com/godotengine/godot/pull/100113">GH-100113&lt;/a>) by Patrick Exner adds a visualization of the emission shapes for 3D CPU and GPU particle systems.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/godot-4-4-beta-1/particle-emission.webm?1" type="video/webm" />
&lt;/video>
&lt;h4 id="add-support-for-metalfx-upscaling-on-macos-and-ios">Add support for MetalFX upscaling on macOS and iOS&lt;/h4>
&lt;p>Weve added support for MetalFX upscaling as an option for Apple platforms using the Metal driver. MetalFX provides a high-performance alternative to FSR1 or FSR2, leveraging Apples optimized GPU pipeline to deliver smooth upscaling and enhanced visual fidelity with minimal overhead.&lt;/p>
&lt;p>This integration ensures developers targeting macOS or iOS can achieve excellent rendering quality and performance on supported Apple hardware. For more details, check out &lt;a href="https://github.com/godotengine/godot/pull/99603">GH-99603&lt;/a>.&lt;/p>
&lt;h4 id="add-support-for-agx-tone-mapping">Add support for AgX tone mapping&lt;/h4>
&lt;p>AgX is the cool, new kid on the block when it comes to tone mapping algorithms. Last year Blender made waves by replacing their previous “filmic” tone mapper with AgX. We have implemented a version of AgX that closely matches Blenders while being not quite as high quality, but much more suitable for real time. AgX is a stylized tone mapper intended to give a filmic quality to images that handles very bright scenes much better than our other tone mappers.&lt;/p>
&lt;p>&lt;img src="/storage/blog/godot-4-4-beta-1/tonemap.webp" alt="ACES tone mapping left, AgX right" />&lt;/p>
&lt;h4 id="add-transparency-support-for-lightmapgi">Add transparency support for LightmapGI&lt;/h4>
&lt;p>Currently when baking lightmaps users have to choose between transparent objects casting shadows as if they were fully opaque, or not casting shadows at all. This has been a major limitation in both the quality of lightmap baking and the ergonomics of the lightmap baking workflow.&lt;/p>
&lt;p>In &lt;a href="https://github.com/godotengine/godot/pull/99538">GH-99538&lt;/a>, Hendrik Brucker added support for baking with transparent objects, including having tinted shadows (something that dynamic shadows dont support yet). Since this is brand new in Beta 1, please test it carefully and report any issues.&lt;/p>
&lt;p>&lt;img src="/storage/blog/godot-4-4-beta-1/lightmap-color.webp" alt="Lightmap shaders with color" />&lt;/p>
&lt;h3 id="breaking-changes">Breaking changes&lt;/h3>
&lt;p>We try to minimize breaking changes, but sometimes they are necessary in order to fix high priority issues. Where we do break compatibility, we do our best to make sure that the changes are minimal and require few changes in user projects.&lt;/p>
&lt;p>You can find a list of such issues by filtering the merged PRs in the 4.4 milestone with the &lt;a href="https://github.com/godotengine/godot/issues?q=milestone%3A4.4%20is%3Amerged%20label%3A%22breaks%20compat%22">&lt;code class="language-plaintext highlighter-rouge">breaks compat&lt;/code> label&lt;/a>. Here are some which are worth being aware of:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://godotengine.org/article/uid-changes-coming-to-godot-4-4/">Universal UID support.&lt;/a> This will create several &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> files for resources that lacked this metadata. &lt;strong>These should be added to version control&lt;/strong>, much like &lt;code class="language-plaintext highlighter-rouge">.import&lt;/code> files. (&lt;a href="https://github.com/godotengine/godot/pull/97352">GH-97352&lt;/a>)&lt;/li>
&lt;li>Floats converted to strings now display as a decimal by default, even for whole numbers. This makes printed types more explicit, which can be used to catch bugs that were previously invisible. That is: &lt;code class="language-plaintext highlighter-rouge">print(1.0)&lt;/code> will now print &lt;code class="language-plaintext highlighter-rouge">1.0&lt;/code> instead of &lt;code class="language-plaintext highlighter-rouge">1&lt;/code>. (&lt;a href="https://github.com/godotengine/godot/pull/47502">GH-47502&lt;/a>)&lt;/li>
&lt;li>Changed &lt;code class="language-plaintext highlighter-rouge">KEY_MODIFIER_MASK&lt;/code> to correct value. Unlikely to directly affect any projects, as the previous value was simply wrong. (&lt;a href="https://github.com/godotengine/godot/pull/98441">GH-98441&lt;/a>)&lt;/li>
&lt;li>Controls &lt;code class="language-plaintext highlighter-rouge">offset_*&lt;/code> get/set type changed from &lt;code class="language-plaintext highlighter-rouge">int&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">float&lt;/code>. This matches the behavior described in the documentation. (&lt;a href="https://github.com/godotengine/godot/pull/98443">GH-98443&lt;/a>)&lt;/li>
&lt;li>&lt;code class="language-plaintext highlighter-rouge">OpenXR&lt;/code> action maps opened in Godot 4.4 arent compatible with earlier versions. (&lt;a href="https://github.com/godotengine/godot/pull/98163">GH-98163&lt;/a>)&lt;/li>
&lt;li>&lt;code class="language-plaintext highlighter-rouge">CSGMesh3D&lt;/code> now explicitly requires the mesh to be manifold. A manifold mesh must be closed, have each edge connected to only two faces, and have volume. Commonly, this means that it needs to be a “watertight” mesh without any holes and where you can never see the backside of the triangles. (&lt;a href="https://github.com/godotengine/godot/pull/100014">GH-100014&lt;/a>)&lt;/li>
&lt;li>StringName Dictionary keys are saved as-is, without being converted to String beforehand. For the majority of cases this shouldnt cause breakage, as String &amp;amp; StringName are largely interchangeable. This should only be relevant when performing type-checking (&lt;code class="language-plaintext highlighter-rouge">is&lt;/code>, &lt;code class="language-plaintext highlighter-rouge">is_instance_of()&lt;/code>, &lt;code class="language-plaintext highlighter-rouge">typeof()&lt;/code>) and/or strict comparison (&lt;code class="language-plaintext highlighter-rouge">is_same()&lt;/code>). (&lt;a href="https://github.com/godotengine/godot/pull/70096">GH-70096&lt;/a>)&lt;/li>
&lt;li>Remove “Raycast Normals” and associated “Normal Split Angle” settings from LOD import. We removed this because the quality is almost always better now without it and import time is much faster without it. (&lt;a href="https://github.com/godotengine/godot/pull/93727">GH-93727&lt;/a>)&lt;/li>
&lt;li>Make PopupMenu/Panel shadows properly visible again. This makes PopupMenu/Panels transparent by default now. When using non-embedded popups, you will still need to enable &lt;code class="language-plaintext highlighter-rouge">display/window/per_pixel_transparency/allowed&lt;/code> to see the shadows. (&lt;a href="https://github.com/godotengine/godot/pull/91333">GH-91333&lt;/a>)&lt;/li>
&lt;li>The names of imported blend shapes and animation libraries from glTF files have changed as unsupported characters are automatically removed. All “&lt;code class="language-plaintext highlighter-rouge">:&lt;/code>” for blendshapes are now removed, and any of “&lt;code class="language-plaintext highlighter-rouge">/&lt;/code>”, “&lt;code class="language-plaintext highlighter-rouge">:&lt;/code>”, “&lt;code class="language-plaintext highlighter-rouge">,&lt;/code>”, and “&lt;code class="language-plaintext highlighter-rouge">[&lt;/code>” are removed for animation libraries. (&lt;a href="https://github.com/godotengine/godot/pull/94783">GH-94783&lt;/a>)&lt;/li>
&lt;li>Change NavigationMesh to also parse collision shapes by default. This is part of an effort to encourage users to use collision shapes for NavigationMesh instead of visual meshes as collision shapes are much simpler and thus more efficient for Navigation. (&lt;a href="https://github.com/godotengine/godot/pull/95013">GH-95013&lt;/a>)&lt;/li>
&lt;li>XR: Disable hand tracking by default. This has a non-trivial performance cost and is not needed for many games. Users need to enable the setting if they want to use hand tracking now. (&lt;a href="https://github.com/godotengine/godot/pull/95153">GH-95153&lt;/a>)&lt;/li>
&lt;li>Automatically resolve initial and final action for draw lists. &lt;code class="language-plaintext highlighter-rouge">RenderingDevice.draw_list_begin()&lt;/code> has been vastly simplified and so it will be much easier to use. The old method signature will continue to work, but we recommend using the new method since it is much simpler. (&lt;a href="https://github.com/godotengine/godot/pull/98670">GH-98670&lt;/a>)&lt;/li>
&lt;li>Editor camera override has moved from the editor viewport to the “Game” tab. (&lt;a href="https://github.com/godotengine/godot/pull/97257">GH-97257&lt;/a>)&lt;/li>
&lt;/ul>
&lt;p>UIDs in particular are a pretty massive shake-up to existing project structures, and have understandably been among the more contentious changes of the 4.4 development cycle. Read this blog post to better understand the rationale behind that change, as well as the benefits it brings to the table: &lt;a href="https://godotengine.org/article/uid-changes-coming-to-godot-4-4/">UID changes coming to Godot 4.4&lt;/a>.&lt;/p>
&lt;h3 id="animation">Animation&lt;/h3>
&lt;p>One of our newest additions to the animators toolkit is markers (&lt;a href="https://github.com/godotengine/godot/pull/91765">GH-91765&lt;/a>) by ChocolaMint. Markers allow you to create sub regions of an animation that can be jumped to, or looped without playing the entire animation. This functionality is even supported inside AnimationTree, where you can easily create an AnimationNodes custom timeline based on the markers.&lt;/p>
&lt;p>Weve also added &lt;code class="language-plaintext highlighter-rouge">LookAtModifier3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/98446">GH-98446&lt;/a>) to handle 3D model procedural animation, partially replacing the deprecated &lt;code class="language-plaintext highlighter-rouge">SkeletonIK3D&lt;/code>. Thanks to the efforts of animation expert Silc Renew (Tokage), users no longer need to rely on specific bone structures and arbitrary layouts; this new tool allows for angle limitations, forward axis settings, etc., and is specialized for making a 3D character model look in the target direction.&lt;/p>
&lt;p>Sneaking in right before the feature freeze, the Animation team added &lt;code class="language-plaintext highlighter-rouge">SpringBoneSimulator3D&lt;/code>(&lt;a href="https://github.com/godotengine/godot/pull/101409">GH-101409&lt;/a>) as well. The spring bone is an open source cross-platform module that is distributed by the &lt;a href="https://vrm-consortium.org/en/">VRM consortium&lt;/a> under the MIT license. It has been available in Godot as an &lt;a href="https://godotengine.org/asset-library/asset/2031">add-on&lt;/a> for a while now, but there were some difficulties in stability and complex setup due to the complicated data structure. Tokage refined it based on &lt;code class="language-plaintext highlighter-rouge">SkeletonModifier3D&lt;/code> with some improvements by leaning on existing core functionality, so it is now much improved and easier to use!&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/godot-4-4-beta-1/springbone.webm?1" type="video/webm" />
&lt;/video>
&lt;h3 id="audio">Audio&lt;/h3>
&lt;p>First-time contributor what-is-a-git implemented the long-requested support for runtime loading of WAV files (&lt;a href="https://github.com/godotengine/godot/pull/93831">GH-93831&lt;/a>). This adds parity with Ogg Vorbis audio tracks, and will be a welcome addition for users who want to load user-generated content at runtime (including non-game audio applications).&lt;/p>
&lt;h3 id="c">C#&lt;/h3>
&lt;p>Paul Joannon and Raul Santos have put the final pieces in place for moving both the GodotSharp library and user projects to .NET 8 (&lt;a href="https://github.com/godotengine/godot/pull/92131">GH-92131&lt;/a> and &lt;a href="https://github.com/godotengine/godot/pull/100195">GH-100195&lt;/a>). All new projects will use .NET 8 by default and existing projects will automatically update to .NET 8 once opened with this release or any newer 4.4 build. For more details, check out the recent article on &lt;a href="https://godotengine.org/article/godotsharp-packages-net8/">Godot C# packages moving to .NET 8&lt;/a>.&lt;/p>
&lt;p>For C# developers targeting Android platforms, exported projects will now use the &lt;code class="language-plaintext highlighter-rouge">android&lt;/code> runtime identifier (&lt;a href="https://github.com/godotengine/godot/pull/88803">GH-88803&lt;/a>). This means C# Android exports now support all available architectures (arm32, arm64, x32, and x64) whereas previously it only supported 64-bit architectures. The necessary Java library to bind the .NET cryptography implementation to the Android OS functions is now also included in exported projects, which fixes issues such as crashing when using SSL with the BCL-provided &lt;code class="language-plaintext highlighter-rouge">HttpClient&lt;/code>.&lt;/p>
&lt;h3 id="core">Core&lt;/h3>
&lt;p>As mentioned in our &lt;a href="https://godotengine.org/article/dev-snapshot-godot-4-4-dev-7/">last development update&lt;/a>, the improvements to the core of our codebase have been absolutely staggering! Lukas Tenbrink has spearheaded optimizations to strings and the speed/efficiency at which theyre parsed. Adam Scott opened the door for tool makers to take advantage of temporary files and directories (&lt;a href="https://github.com/godotengine/godot/pull/98397">GH-98397&lt;/a>). Ocean has broadened the scope in which &lt;code class="language-plaintext highlighter-rouge">Curve&lt;/code> can be applied, allowing for domains outside of &lt;code class="language-plaintext highlighter-rouge">[0, 1]&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/67857">GH-67857&lt;/a>).&lt;/p>
&lt;p>But perhaps the biggest highlight of them all is Typed Dictionaries. After the introduction of Typed Arrays in 4.0 by George Marques (&lt;a href="https://github.com/godotengine/godot/pull/46830">GH-46830&lt;/a>), Typed Dictionaries rapidly became one of the engines most requested features. Thanks to the efforts of Thaddeus Crews (&lt;a href="https://github.com/godotengine/godot/pull/78656">GH-78656&lt;/a>), this is finally a reality! This feature being implemented at the core of the engine means that all scripting languages (GDScript, C#, C++) can take advantage by interfacing with Godots Dictionary type. You can now export typed dictionaries from scripts and benefit from a much improved Inspector UX to assign the right keys and values.&lt;/p>
&lt;h3 id="editor">Editor&lt;/h3>
&lt;p>Thanks to the contribution from YeldhamDev of Lone Wolf Technology and W4 Games we now have a new “Game” tab along with the existing “2D”, 3D”, “Script”, and “AssetLib” tabs that allows users to have fine-tuned control over the running game from the editor. This includes overriding the in-game camera and selecting objects in game.&lt;/p>
&lt;p>Check out the PR (&lt;a href="https://github.com/godotengine/godot/pull/97257">GH-97257&lt;/a>) and the video below to see exactly what this change enables.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-4-dev-4/game-editor-debug.mp4?1" type="video/mp4" />
&lt;/video>
&lt;p>See also &lt;em>game window embedding&lt;/em> further above, which works in tandem with this feature. Note that these features can be used separately: you can still make use of interactive in-game editing even if the game is split to a separate window.&lt;/p>
&lt;p>Manipulating Camera3Ds in the editor is also improved! With Haoyu Qius new feature in &lt;a href="https://github.com/godotengine/godot/pull/90778">GH-90778&lt;/a>, every selected 3D camera shows a preview inside the inspector. No switching cameras needed to preview anymore.&lt;/p>
&lt;p>Hilderin valiantly fought their way through a labyrinth of dependencies and multi-threading pitfalls, and brought us back the long awaited grail: error-less first import of projects. This took a lot of effort between multiple PRs (&lt;a href="https://github.com/godotengine/godot/pull/92303">GH-92303&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/93972">GH-93972&lt;/a>, and &lt;a href="https://github.com/godotengine/godot/pull/92667">GH-92667&lt;/a>), but resolves a major annoyance faced by any user who downloaded an existing project from online.&lt;/p>
&lt;p>Moreover, with this newfound knowledge, Hilderin also further improved the first project import experience to make the FileSystem dock more responsive while resources are being scanned (&lt;a href="https://github.com/godotengine/godot/pull/93064">GH-93064&lt;/a>) and improve the overall editor startup speed for large projects (&lt;a href="https://github.com/godotengine/godot/pull/95678">GH-95678&lt;/a>). Large projects can expect up to a 3× speed improvement when loading the project and a similar speedup when doing any operations that scan the filesystem.&lt;/p>
&lt;p>HP van Braam was able to make a similar performance improvement when moving or renaming nodes in the SceneTree (&lt;a href="https://github.com/godotengine/godot/pull/99700">GH-99700&lt;/a>). Godot should now feel much faster when editing large scenes with hundreds or thousands of nodes.&lt;/p>
&lt;p>The debugger panel now features an expression evaluator which adds a new tab to the debugger panel that allows you to evaluate expressions using the local state of your scripts while stopped at a breakpoint. Many users are familiar with this workflow from other REPL debuggers. This feature has been a work in progress for awhile and was recently finished and merged in (&lt;a href="https://github.com/godotengine/godot/pull/97647">GH-97647&lt;/a>). Thank you to Oğuzhan, Erik, and Tomek for bringing it across the finish line.&lt;/p>
&lt;p>To further improve your debugging experience Hendrik introduced a checkbox that allows you to start the profiler automatically when you run your game from the editor and capture valuable profiling data immediately (&lt;a href="https://github.com/godotengine/godot/pull/96759">GH-96759&lt;/a>).&lt;/p>
&lt;p>The editor has become more ergonomic for everyone! Ryevdokimov added object snapping for moving 3D objects in the editor (&lt;a href="https://github.com/godotengine/godot/pull/96740">GH-96740&lt;/a>) which allows you to snap existing objects to other objects when you move them. This can be toggled on by selecting an object and pressing Shift+G.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-4-dev-4/physics-placement.mp4?1" type="video/mp4" />
&lt;/video>
&lt;p>To reduce clutter in your inspector and highlight the properties you care the most about, YeldhamDev brings us the long-awaited ability to pin ones favorite properties in the inspector! Check out the implementation in PR &lt;a href="https://github.com/godotengine/godot/pull/97352">GH-97352&lt;/a>.&lt;/p>
&lt;p>Thanks to Danil Alexeev, the GDScript code editor will now display a tooltip containing information about functions, variables, classes, etc. when you hover over them, including the documentation you have written using our documentation system (&lt;a href="https://github.com/godotengine/godot/pull/91060">GH-91060&lt;/a>). This makes using the integrated documentation system even more powerful as you no longer have to bounce between the code editor and the related docs to quickly get information.&lt;/p>
&lt;h3 id="gdscript">GDScript&lt;/h3>
&lt;p>This release GDScript saw quite a few quality of life features to improve your development experience. For example, you can now create buttons in the inspector seamlessly using the new &lt;code class="language-plaintext highlighter-rouge">@export_tool_button&lt;/code> annotation in &lt;code class="language-plaintext highlighter-rouge">@tool&lt;/code> scripts. This was added by Macksaur in &lt;a href="https://github.com/godotengine/godot/pull/96290">GH-96290&lt;/a>.&lt;/p>
&lt;p>Danil Alexeev brings us &lt;code class="language-plaintext highlighter-rouge">@warning_ignore_start&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">@warning_ignore_restore&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/76020">GH-76020&lt;/a>) to suppress warnings in a safely scoped manner across entire sections of code. Similarly, &lt;code class="language-plaintext highlighter-rouge">@warning_ignore&lt;/code> no longer works when applied to a function. This is because it previously had undocumented functionality which applied the warning to the &lt;em>entire function&lt;/em> unexpectedly. Now users have much more control and the annotations should function more like what you would expect.&lt;/p>
&lt;h3 id="import">Import&lt;/h3>
&lt;p>4.4 is coming with huge improvements to texture importing quality and speed thanks to new maintainer Bluecube3310. The import times of textures using the “VRAM Compressed” import setting have been greatly improved by integrating the GPU-based Betsy texture compressor. The biggest difference is observable when importing HDR images (such as HDRIs or lightmaps), which used to take up to several minutes before. Thanks to Betsy, as well as other optimizations to the import process (&lt;a href="https://github.com/godotengine/godot/pull/92291">GH-92291&lt;/a> and &lt;a href="https://github.com/godotengine/godot/pull/95291">GH-95291&lt;/a>), that time has gone down significantly. Additionally, textures not using the “High Quality” import setting should look better by default, since previously we had to trade the quality for faster import times. Further, there have been countless improvements to the texture import process to improve compatibility across devices and the number of texture formats supported. Overall, texture importing should feel faster and more stable than ever before.&lt;/p>
&lt;p>The new retargeting method, RetargetModifier3D, a new feature from Tokage allows users to use animation retargeting without discarding the original bone rests that were set in the external DCC (&lt;a href="https://github.com/godotengine/godot/pull/97824">GH-97824&lt;/a>).&lt;/p>
&lt;p>Godot now supports the &lt;a href="https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_animation_pointer">&lt;code class="language-plaintext highlighter-rouge">KHR_animation_pointer&lt;/code>&lt;/a> glTF extension thanks to the efforts of Aaron Franke (&lt;a href="https://github.com/godotengine/godot/pull/94165">GH-94165&lt;/a>). This allows imported animations to target custom properties in addition to position, rotation, scale, and mesh blend shape weights (which were all it previously supported). For example, you can now animate the color of a light, the FOV of a camera, the albedo color of a material, the UV offset of a material, and more.&lt;/p>
&lt;h3 id="input">Input&lt;/h3>
&lt;p>Input saw a lot of incremental improvements and polish this dev cycle. Notably, rptfrg made their first contribution by lowering the default deadzone for new actions from 0.5 down to 0.2 (&lt;a href="https://github.com/godotengine/godot/pull/97281">GH-97281&lt;/a>). This should make input feel much more responsive by default. And, after several years of diligent effort, Markus Sauermann has expanded the Drag-and-Drop system to support dragging and dropping across different &lt;code class="language-plaintext highlighter-rouge">Viewports&lt;/code> and even &lt;code class="language-plaintext highlighter-rouge">Windows&lt;/code>. For more information, see &lt;a href="https://github.com/godotengine/godot/pull/67531">GH-67531&lt;/a>.&lt;/p>
&lt;h3 id="navigation">Navigation&lt;/h3>
&lt;p>Navigation contains some of the oldest code in the engine. While it continues to serve its purpose, much of it is getting dated and needs to be cleaned up. Accordingly, the Navigation team, especially smix8, have bravely stepped up and begun the difficult process of improving legacy code. Fortunately, their work has already begun to bear fruit in the form of a cleaner codebase and faster Navigation features.&lt;/p>
&lt;p>Notably, the navigation map synchronization now happens asynchronously and in a background thread so it has a much smaller impact on framerate. Instead of making the entire game slow down on lower end systems, updates will just happen less frequently.&lt;/p>
&lt;p>There have also been many quality of life improvements such as debug indicators to show the direction of NavigationLinks (&lt;a href="https://github.com/godotengine/godot/pull/101010">GH-101010&lt;/a>) and support for transforming NavigationObstacle nodes using the nodes transform (&lt;a href="https://github.com/godotengine/godot/pull/96730">GH-96730&lt;/a>).&lt;/p>
&lt;h3 id="physics">Physics&lt;/h3>
&lt;p>Ever since its inception in late 2022, godot-jolt has slowly become the de-facto 3D physics engine for many of our developers. So it is no surprise that the Godot Jolt maintainers, Mikael Hermansson and Jorrit Rouwe, have taken things a step further and integrated Jolt as part of the engine directly. There was already a symbiosis between their team and Godot, with many features being added to Godot and Jolt to accommodate both, but the integration of an official module was no small feat; their pull request (&lt;a href="https://github.com/godotengine/godot/pull/99895">GH-99895&lt;/a>) ended up adding over 500 files and 115 thousand lines of code!&lt;/p>
&lt;p>Note: At time of writing, this does not replace Godot Physics as the default 3D physics engine. The Jolt Physics integration in Godot is considered experimental, and may change in future releases. It also lacks some features of Godot Physics, so it isnt a full drop-in replacement. If your interests/use-case are supported, the tool can be enabled by changing the &lt;strong>Physics &amp;gt; 3D &amp;gt; Physics Engine&lt;/strong> project setting to &lt;strong>Jolt Physics&lt;/strong>.&lt;/p>
&lt;p>Our hope is that many users opt to use Jolt as their 3D physics backend and give us valuable feedback so we can improve our integration with Jolt and eventually make it the default physics engine for all new projects.&lt;/p>
&lt;h3 id="platforms">Platforms&lt;/h3>
&lt;h4 id="linux">Linux&lt;/h4>
&lt;p>pkowal1982s long-running pull request, &lt;a href="https://github.com/godotengine/godot/pull/53666">GH-53666&lt;/a>, was finally merged adding camera support for the Linux platform, allowing developers to access connected cameras from within their game.&lt;/p>
&lt;h4 id="android">Android&lt;/h4>
&lt;p>Thanks to the tireless efforts of Fredia Huya-Kouadio and Anish Mishra (our newest Android maintainer), the development experience on Android devices for Android devices has become significantly better. In &lt;a href="https://github.com/godotengine/godot/pull/93526">GH-93526&lt;/a> Fredia added support for exporting games from the Android editor. Previously developers had to leave their Android device when they exported their game. Fredia also added support for launching the Play window in PiP mode (in &lt;a href="https://github.com/godotengine/godot/pull/95700">GH-95700&lt;/a>) allowing developers to more easily take advantage of the tight integration between the editor and running game while developing on Android devices.&lt;/p>
&lt;p>To further improve the development experience on Android, Anish added support for the native file picker (in &lt;a href="https://github.com/godotengine/godot/pull/98350">GH-98350&lt;/a>) so now Android game and app developers can benefit from using the file picker that Android provides and Android users are accustomed to. Similarly, Fredia added the new AndroidRuntime plugin which exposes the Android Runtime, making it easier to access Android libraries and SDKs in games/apps. For example, for APIs bundled in the Android OS, no additional setup is required and they can be accessed directly using this new plugin. For more details, see &lt;a href="https://github.com/godotengine/godot/pull/97500">GH-97500&lt;/a>.&lt;/p>
&lt;h3 id="rendering-and-shaders">Rendering and shaders&lt;/h3>
&lt;p>Many monumental rendering changes were finished towards the end of the 4.3 dev cycle slightly too late to be included in 4.3. As a result, 4.4 contains a massive amount of exciting features, too many to include here, but here are a few.&lt;/p>
&lt;p>For Apple users, Stuart Carnie has been hard at work ensuring that you get the benefit of the best performance by incorporating the Metal rendering backend (&lt;a href="https://github.com/godotengine/godot/pull/88199">GH-88199&lt;/a>, &lt;a href="https://godotengine.org/article/dev-snapshot-godot-4-4-dev-1/">Dev snapshot: Godot 4.4 dev 1&lt;/a>) and the MetalFX upscaler (mentioned above).&lt;/p>
&lt;p>DarioSamo spent several months last year perfecting the Ubershader system which was earlier designed by Juan Linietsky and Clay John in the early days of building Godot 4. The Ubershader allows the engine to compile a flexible, but slow version of shaders at load time which can be used as a fallback while the optimized shaders compile in the background. The technique allows users to ship games &lt;strong>without shader stutter&lt;/strong> and without resorting to manually displaying every possible material and object combination behind a loading screen.&lt;/p>
&lt;p>Shadow caster masks, a long awaited improvement from EMBYRDEV, allow users to apply a mask on Light3Ds to select what rendering layers will be considered when casting shadows (&lt;a href="https://github.com/godotengine/godot/pull/85338">GH-85338&lt;/a>). Previously, it was only possible to disable shadows from a GeometryInstance (for all Light3Ds) or a Light3D (for all GeometryInstances). This allows much more fine-grained control that allows users to further optimize dynamic lights and control where shadows appear in their games.&lt;/p>
&lt;p>After tackling the Metal rendering backend merged in an earlier snapshot, Stuart took on another impressive rendering contribution: 2D batching! Batching has been implemented in the Compatibility renderer since the release of 4.0. This release brings the same performance benefits to the other backends by implementing batching when using the Forward+ and Mobile backends (&lt;a href="https://github.com/godotengine/godot/pull/92797">GH-92797&lt;/a>). Now 2D performance is comparable between all backends.&lt;/p>
&lt;p>Continuing their excellent work on texture import and the Betsy texture compressor, BlueCube has made huge improvements to the lightmapper by adding:&lt;/p>
&lt;ul>
&lt;li>Support for bicubic sampling to smooth out the results of low resolution lightmap bakes (&lt;a href="https://github.com/godotengine/godot/pull/89919">GH-89919&lt;/a>)&lt;/li>
&lt;li>Shadow masks, to allow falling back on baked lighting when outside of the range of dynamic lights (&lt;a href="https://github.com/godotengine/godot/pull/85653">GH-85653&lt;/a>)&lt;/li>
&lt;li>Compression for lightmap textures to reduce the memory use and rendering overhead of large lightmap textures (&lt;a href="https://github.com/godotengine/godot/pull/100327">GH-100327&lt;/a>).&lt;/li>
&lt;/ul>
&lt;p>Hendrik Brucker, a long time contributor, also decided that lightmaps deserved some attention this release and carried the work of Hugo Locurcio and Guerro323 over the finish line by implementing lightmap supersampling (which bakes the lightmap at a higher resolution to reduce aliasing and capture finer details) and adding support for transparent objects to lightmap baking (including semi-transparent shadows).&lt;/p>
&lt;p>Ricardo Buring continued his amazing work in bringing physics interpolation to Godot 4. This time around he added support for 3D objects (include Multimesh!). Physics interpolation is a technique that allows you to run your physics update at a very low FPS while maintaining smooth movement. This allows you to both save CPU overhead and make your game look much smoother.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-4-dev-1/physics-interpolation.mp4?1" type="video/mp4" />
&lt;/video>
&lt;p>After pointing out the many limitations that exist with ReflectionProbes, Lander-vr decided to take matters into his own hands and personally overhaul the blending logic for ReflectionProbes in &lt;a href="https://github.com/godotengine/godot/pull/100241">GH-100241&lt;/a> to make smaller probes automatically take priority over larger probes, which avoids the “double reflection” effects that can look strange. Additionally, in &lt;a href="https://github.com/godotengine/godot/pull/99958">GH-99958&lt;/a>, he added a blend distance property so you can now configure the distance at which the reflection starts fading. The default distance at which reflections start fading is now much lower than before, which ensures the full reflection can be seen when inside the ReflectionProbes bounds.&lt;/p>
&lt;p>Not content to stop there, Lander-vr also significantly improved the editor UX for ReflectionProbe and VoxelGI by making their gizmos less intrusive (in &lt;a href="https://github.com/godotengine/godot/pull/99920">GH-99920&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/99969">GH-99969&lt;/a>, and &lt;a href="https://github.com/godotengine/godot/pull/100370">GH-100370&lt;/a>).&lt;/p>
&lt;p>&lt;img src="/storage/blog/godot-4-4-beta-1/reflection-probes.webp" alt="Sponza with reflective floor" />&lt;/p>
&lt;p>After many requests and years of patient waiting from many within the community, we have finally re-introduced vertex shading which is both a significant performance optimization and and integral part of recreating PSX-style graphics (&lt;a href="https://github.com/godotengine/godot/pull/83360">GH-83360&lt;/a>). This turned out to be a significant endeavor for ywmaa who enlisted the help of veteran rendering contributor Clay John to get the feature over the finish line.&lt;/p>
&lt;p>Currently when trying to run Godot with the Forward+ or Mobile backend on a device that doesnt support Vulkan, D3D12, or Metal, the engine will provide the user with an OS alert notifying them that they dont have support for the needed graphics API and they need to try again with the Compatibility backend. This alert has proven to be confusing for users and the process of opening the scene ends up being cumbersome. Now with &lt;a href="https://github.com/godotengine/godot/pull/97142">GH-97142&lt;/a>, the first contribution from SheepYhangCN, the engine will automatically fall back to using OpenGL (the Compatibility backend) when the other backends are not available. This should provide the smoothest possible experience for users on older devices.&lt;/p>
&lt;p>Rendering contributors have been relentless in identifying and implementing performance enhancements this release cycle. Many areas of the renderers, both 2D and 3D have been optimized and we expect that many users will notice an improvement to performance this release cycle, especially for 2D lighting, rendering on mobile devices, and general 2D rendering.&lt;/p>
&lt;h3 id="xr">XR&lt;/h3>
&lt;p>Thanks to Godots unique feature of its editor being made with the engine itself, weve been able to bring the Godot editor to unconventional places, such as the web and Android devices. Building upon the latter, Fredia Huya-Kouadio completed the proof of concept started by Bastiaan Olij years ago, to add support for using the Android editor on XR devices using OpenXR (&lt;a href="https://github.com/godotengine/godot/pull/96624">GH-96624&lt;/a>)! The XR editor is currently available on the Meta Quest 3 and Quest Pro through the &lt;a href="https://www.meta.com/experiences/godot-game-engine/7713660705416473/">Horizon Store&lt;/a>. Support for the PICO 4 Ultra is also in progress and will be available soon.&lt;/p>
&lt;p>OpenXR support for Metal (&lt;a href="https://github.com/godotengine/godot/pull/98872">GH-98872&lt;/a>) has been added, improving the developer experience for MacOS developers using the Meta XR Simulator.&lt;/p>
&lt;p>Some OpenXR runtimes support applying modifiers to the action map, for example, applying thresholds or haptic triggers, and now you can configure those in Godot as well (&lt;a href="https://github.com/godotengine/godot/pull/97140">GH-97140&lt;/a>)!&lt;/p>
&lt;p>Support for OpenXR composition layers was added in Godot 4.3, allowing developers to show crisp and clear 2D panels that show content from a Godot &lt;strong>SubViewport&lt;/strong>. Now, in Godot 4.4, weve added the ability to show content from an Android surface as well, allowing for performant media playback in XR on Android (&lt;a href="https://github.com/godotengine/godot/pull/96185">GH-96185&lt;/a>).&lt;/p>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>140 contributors&lt;/strong> submitted &lt;strong>406 improvements&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-beta1">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-dev7 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/d33da79d3f8fe84be2521d25b9ba8e440cf25a88">&lt;code class="language-plaintext highlighter-rouge">d33da79d3&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-beta1">
Download Godot 4.4 beta1
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-4-beta-1.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta1/Godot_v4.4-beta1_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta1/Godot_v4.4-beta1_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta1/Godot_v4.4-beta1_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta1/Godot_v4.4-beta1_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta1/Godot_v4.4-beta1_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta1/Godot_v4.4-beta1_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-beta1">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.&lt;/p>
&lt;p>With every release, we accept that there are going to be various issues which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Baking a Lightmap3D is more prone to crash after we added support for transparency. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101391">GH-101391&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Changes to scenes are not reflected in APK exports after the initial export in the Android editor. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101007">GH-101007&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 or full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a> platform managed by &lt;a href="https://godot.foundation/">Godot Foundation&lt;/a>. There are also several &lt;a href="/donate">alternative ways to donate&lt;/a> which you may find more suitable.&lt;/p></content><author><name>Godot contributors</name></author><category term="Pre-release"/></entry><entry><title>UID changes coming to Godot 4.4</title><link href="https://godotengine.org/article/uid-changes-coming-to-godot-4-4/"/><updated>2025-01-15T14:00:00+00:00</updated><id>https://godotengine.org/article/uid-changes-coming-to-godot-4-4/</id><summary>Godot's resource UID system is changing to better support scripts and shaders. Read on to know what's required on your part to fully benefit from it.</summary><content type="html">&lt;h2 id="why-use-uids-in-godot">Why use UIDs in Godot?&lt;/h2>
&lt;p>Until Godot 4.0, the engine exclusively relied on file paths to refer to scenes, scripts and other resources. While this means references in scenes and scripts use human-readable paths, these paths will break if files are moved to a different location in the project (regardless of whether the move was done using the FileSystem dock or outside Godot). This is especially problematic for large projects where filesystem organization often changes regularly.&lt;/p>
&lt;p>Since Godot 3.x, the editor already updates path references if files are moved within the FileSystem dock. This works more or less, but has drawbacks: the process is slow in large projects (as files need to be scanned and modified), file paths in scripts are left unchanged, and a single file move can result in a large amount of modified files in commits. Its also not fully reliable, and veteran Godot users probably remember various situations where moving a file seemingly corrupted a scene or resource.&lt;/p>
&lt;p>Additionally, it is common for users to move these files outside Godot (e.g. using the OS file manager, an IDE or the command line). If the editor is not open, it has no way to know the change happened. Even if the editor is open, when working with version control, files may change or be moved and the editor has no way to know where files have gone, resulting in all sorts of errors.&lt;/p>
&lt;p>With the aim of making Godot better suited for large projects and significantly more resilient to external filesystem changes, ensuring this is a fully supported workflow has become a priority. External file manager programs often have more features than Godots own FileSystem dock, making them more convenient for many use cases. This means we need an approach that can reliably track files being moved, even if the Godot editor isnt open.&lt;/p>
&lt;p>Partial “Unique IDentifier” (UID) support was therefore introduced in Godot 4.0, which made it possible for users to safely move files outside Godot if they have UID support implemented. The editor will automatically store resource references as UIDs, with the path still being stored alongside for displaying in the editor UI (and as a fallback if the UID reference becomes invalid). However, UID support wasnt completely finished by the time Godot 4.0 released, which means many file types didnt benefit from the UID system entirely (if at all).&lt;/p>
&lt;h2 id="limitations-of-uids-before-godot-44">Limitations of UIDs before Godot 4.4&lt;/h2>
&lt;p>Each imported resource in Godot has a &lt;code class="language-plaintext highlighter-rouge">.import&lt;/code> file, which allows for storing a UID. Additionally, Godots own scene and resource file formats store a UID in their header. However, scripts and shaders are not imported resources and they are “plain text” formats, without any Godot-specific information stored within. In practice, this meant that UIDs could be used for scenes and most resources, but not scripts and shaders. The UID implementation was therefore not covering every resource type Godot support (&lt;a href="https://docs.godotengine.org/en/stable/classes/class_script.html">scripts&lt;/a> and &lt;a href="https://docs.godotengine.org/en/stable/classes/class_shader.html">shaders&lt;/a> are resources too).&lt;/p>
&lt;p>Moreover, the editor support for making use of UIDs and relying primarily on them was lacking, so UIDs didnt yet fulfill their promise of enabling seamless refactoring of project files.&lt;/p>
&lt;h2 id="whats-changing-with-uids-in-godot-44">Whats changing with UIDs in Godot 4.4&lt;/h2>
&lt;p>To resolve the issue of scripts and shaders not being able to benefit from the UID system, dedicated UID files are being introduced in Godot 4.4. These files are automatically generated by Godot when saving a script or shader and are placed besides the source file with the &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> extension as a suffix. For example, if you have &lt;code class="language-plaintext highlighter-rouge">some_file.gd&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">some_file.shader&lt;/code>, Godot will generate the files &lt;code class="language-plaintext highlighter-rouge">some_file.gd.uid&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">some_file.shader.uid&lt;/code>. This avoids conflicts in case a script and shader file have the same name (but a different extension) within the same folder.&lt;/p>
&lt;p>This now means you can use UID references in your own scripts if you wish. While using file paths is still the primary approach for now, using UIDs means that the paths to other referenced resources can safely change without breaking the script, even if the files are moved outside Godot.&lt;/p>
&lt;div class="language-gdscript highlighter-rouge">&lt;div class="highlight">&lt;pre class="highlight">&lt;code>&lt;span class="k">extends&lt;/span> &lt;span class="n">Node&lt;/span>
&lt;span class="c1"># These references point to the same Script resource.&lt;/span>
&lt;span class="c1"># `other_script.gd` contains a `static func greet()` that prints some text.&lt;/span>
&lt;span class="k">var&lt;/span> &lt;span class="n">other_script&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">preload&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">"res://other_script.gd"&lt;/span>&lt;span class="p">)&lt;/span>
&lt;span class="c1"># TIP: You can copy any resource's UID from the FileSystem dock's context menu.&lt;/span>
&lt;span class="k">var&lt;/span> &lt;span class="n">other_script_uid&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">preload&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">"uid://fkjlqx8er2sg"&lt;/span>&lt;span class="p">)&lt;/span>
&lt;span class="k">func&lt;/span> &lt;span class="nf">_ready&lt;/span>&lt;span class="p">():&lt;/span>
&lt;span class="n">other_script&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">greet&lt;/span>&lt;span class="p">()&lt;/span>
&lt;span class="n">other_script_uid&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">greet&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;p>Thanks to &lt;a href="https://github.com/godotengine/godot/pull/100803">GH-100803&lt;/a>, you can see the underlying &lt;code class="language-plaintext highlighter-rouge">res://&lt;/code> path and resource type when hovering the &lt;code class="language-plaintext highlighter-rouge">uid://&lt;/code> path with the mouse in the script editor. (This feature also works when hovering &lt;code class="language-plaintext highlighter-rouge">res://&lt;/code> paths, so it is not exclusive to &lt;code class="language-plaintext highlighter-rouge">uid://&lt;/code> paths.)&lt;/p>
&lt;h2 id="what-should-i-change-in-my-project-or-workflow">What should I change in my project or workflow?&lt;/h2>
&lt;p>The most important step is to &lt;strong>make sure &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> files are committed to version control&lt;/strong>. In other words, &lt;code class="language-plaintext highlighter-rouge">*.uid&lt;/code> should &lt;strong>not&lt;/strong> be added to &lt;code class="language-plaintext highlighter-rouge">.gitignore&lt;/code>.&lt;/p>
&lt;p>Secondly, when you move a script or shader outside Godot, &lt;strong>you should also move the &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> file along with it&lt;/strong>. When you remove a script or shader outside Godot, you should also remove the &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> file, although this is less important not removing the &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> file wont break anything.&lt;/p>
&lt;p>Moving files externally will produce warnings when opening scenes referencing said files. You need to re-save all depending scenes to remove warnings.&lt;/p>
&lt;p>After upgrading the project to 4.4, you should re-save all scenes and resources to add any missing UID references. The editor will add them automatically as you save scenes/resources for the first time with 4.4, but its better to do it all at once to avoid random diffs appearing in version control later on.&lt;/p>
&lt;h2 id="frequently-asked-questions">Frequently asked questions&lt;/h2>
&lt;h3 id="why-not-use-another-approach-to-track-file-references-like-checksums">Why not use another approach to track file references like checksums?&lt;/h3>
&lt;p>Godot already keeps track of checksums in &lt;code class="language-plaintext highlighter-rouge">.import&lt;/code> files. This is used to detect whether the file has actually changed, and can therefore reimport the file if it has changed while Godot wasnt open.&lt;/p>
&lt;p>Unfortunately, checksums are the wrong tool for the job to keep track of &lt;strong>unique&lt;/strong> file references. If you have two files with the exact same content, they would have the same checksum, but these files are still separately referenced by other scenes or resources in the project (with the expectation that these remain separate). If we relied on the files checksum to determine file references, then the references would break once the file contents change.&lt;/p>
&lt;p>There could still be value to computing a checksum and storing it in &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> files, so that Godot can automatically move the UID file if the source file was moved without its UID file. This is something that should be tackled separately though, as this approach comes with its downsides too.&lt;/p>
&lt;h3 id="why-not-use-replace-import-files-with-meta-files-and-use-them-for-all-resources-that-have-a-uid">Why not use replace &lt;code class="language-plaintext highlighter-rouge">.import&lt;/code> files with &lt;code class="language-plaintext highlighter-rouge">.meta&lt;/code> files and use them for all resources that have a UID?&lt;/h3>
&lt;p>While Godot must import many resource types before they can be used in a project, not all types actually need to be imported to be used. Resources that dont need to be imported to be used dont have properties that you could set on import, as they are directly loaded by Godot with no remapping system in place. Instead, everything about the file is inferred from the file itself. This approach makes more sense for files that you expect to be able to copy-paste around (or even copy directly from websites), while making sure the file remains functional without needing a separate metadata file. Its a common workflow from users to copy scripts or shaders from websites such as &lt;a href="https://godotshaders.com/">Godot Shaders&lt;/a> after all.&lt;/p>
&lt;p>The main examples of resources that dont need to be imported are scripts and shaders, hence the dedicated &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> files.&lt;/p>
&lt;p>It has been suggested that we could still use &lt;code class="language-plaintext highlighter-rouge">.meta&lt;/code> files for scripts and shaders, and use them to store more information than just UIDs, such as user-defined metadata. For the time being we prefer to focus on the problem at hand (the need of UIDs for better refactoring possibility) and not future-proof things. If we ever change our mind, it would be easy enough to migrate information from &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> files to whichever new container we decide to use.&lt;/p>
&lt;h3 id="why-not-use-a-single-centralized-file-to-store-all-the-projects-uids">Why not use a single centralized file to store all the projects UIDs?&lt;/h3>
&lt;p>Many other programs use a centralized database to store UIDs for all files in the project. While this approach makes for a leaner filesystem, it also has several downsides:&lt;/p>
&lt;ul>
&lt;li>With a centralized file for all UIDs, the purpose of being able to move scripts or shaders outside of Godot would not be fulfilled. When moving a script outside of Godot, the centralized UID mapping would not be updated, and thus it would lose the connection between the previous path and its UID. For this use case to be supported, the UID needs to be close to the file being moved - either alongside it in a &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> or &lt;code class="language-plaintext highlighter-rouge">.import&lt;/code> file, or embedded in it (e.g. for &lt;code class="language-plaintext highlighter-rouge">.tscn&lt;/code> or &lt;code class="language-plaintext highlighter-rouge">.tres&lt;/code> files).&lt;/li>
&lt;li>This file would be subject to frequent merge conflicts in version control systems. For example, if you have two branches that add or edit different scripts/shaders, they would each add their own lines to the UID database file. Both of these branches would add these lines at the same location in the file (probably at the end). However, once you try to merge those two branches together, your version control system wouldnt be able to know what to keep automatically. This is where a merge conflict occurs.
&lt;ul>
&lt;li>In contrast, using separate files ensures merge conflicts dont happen quite as often. If conflicts do arise, they can be resolved by just including the file (or removing it if the source file has also been removed).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Centralizing UID information is problematic for add-ons. For example, if a developer refactors their addon and moves files around, then someone downloads the new version of their addon into an existing project of theirs, references to files in the addon in their project get updated automatically. If UIDs are stored in a centralized fashion, there wouldnt be a way to do this as the addons UIDs wouldnt be stored in the addon. This would result in UID references breaking.&lt;/li>
&lt;/ul>
&lt;p>While using separate UID files is not perfect by any means, we felt it was a better compromise for Godots design and to ensure version control remains as seamless as possible.&lt;/p>
&lt;h3 id="why-not-embed-the-uid-directly-in-the-scripts-as-a-comment-or-annotation">Why not embed the UID directly in the scripts as a comment or annotation?&lt;/h3>
&lt;p>We evaluated it, but we saw a lot of pushback against having this kind of magic string injected as a comment or annotation in all script files, as testers found it to be quite disruptive.&lt;/p>
&lt;p>On the technical side, there are also implementation hurdles. All scripting languages supported by Godot (including community bindings via GDExtension) would need to implement this kind of magic comment or annotation (if they have such a concept) with an appropriate syntax. The Godot editor would need to know how to extract these UIDs from all types of scripts in an efficient manner (without having to parse it).&lt;/p>
&lt;p>Additionally, external IDEs and tools may not play nice with such Godot-specific comments or annotations in various scripting languages, and if Godot-specific plugins want to implement UID support, they would also need to manually implement how to extract the UIDs from the scripts in an efficient manner (as opposed to just reading a file with a predictable name).&lt;/p>
&lt;p>Finally, its not only scripts and shaders that need UIDs, but all resources. While most other builtin resource types can store UID information as described above, this system is also relevant for custom resource formats that users can implement. Having &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> files generated for such resources makes the system work out of the box.&lt;/p>
&lt;h3 id="what-happens-if-i-dont-commit-uid-files-to-version-control">What happens if I dont commit &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> files to version control?&lt;/h3>
&lt;p>If you forget to commit &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> files to version control, the project will still work locally. However, as soon as you clone the project on another device, the UID references will break. Godot will still be able to resolve them if the paths havent changed (since paths are also saved as a fallback), but a warning will be printed for every resource where a path fallback had to be used to infer the reference. This behavior should not be relied upon intentionally, as it is possible for two resources to be swapped around without either of their paths changing. This can occur if the path of one of the resources was changed to be identical to another resource that was relocated elsewhere.&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 or full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a> platform managed by &lt;a href="https://godot.foundation/">Godot Foundation&lt;/a>. There are also several &lt;a href="/donate">alternative ways to donate&lt;/a> which you may find more suitable.&lt;/p></content><author><name>Hugo Locurcio</name></author><category term="Progress Report"/></entry><entry><title>Godot C# packages move to .NET 8</title><link href="https://godotengine.org/article/godotsharp-packages-net8/"/><updated>2025-01-02T17:00:00+00:00</updated><id>https://godotengine.org/article/godotsharp-packages-net8/</id><summary>On moving to the latest .NET LTS release, and what it means for users.</summary><content type="html">&lt;p>A new version of .NET is released in November each year, alternating Long Term Support (LTS) and Standard Term Support (STS) releases. The quality of all releases is the same. The only difference is the length of support. LTS releases are supported for 3 years, while STS releases are supported for 18 months.&lt;/p>
&lt;p>With the release of Godot 4.0, we moved our C# packages from targeting Mono to .NET 6. This version of .NET was released on November 8, 2021 and ended support on November 12, 2024.&lt;/p>
&lt;p>With .NET 6 ending support, Godot C# packages in 4.4 will target the current LTS release, .NET 8. Thanks to &lt;a href="https://github.com/RedworkDE">RedworkDE&lt;/a> and &lt;a href="https://github.com/paulloz">Paul Joannon&lt;/a> for their great work in &lt;a href="https://github.com/godotengine/godot/pull/92131">GH-92131&lt;/a>.&lt;/p>
&lt;figure>
&lt;picture>
&lt;source srcset="/storage/blog/dotnet/release-schedule-dark.svg" media="(prefers-color-scheme: dark)" />
&lt;img class="lightbox-ignore" style="background-color: transparent;" src="/storage/blog/dotnet/release-schedule-light.svg" />
&lt;/picture>
&lt;figcaption>&lt;small>.NET release cadence from the &lt;a href="https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core">.NET official support policy&lt;/a>.&lt;/small>&lt;/figcaption>
&lt;/figure>
&lt;h2 id="what-does-this-mean-for-users">What does this mean for users?&lt;/h2>
&lt;p>Starting with Godot 4.4, your project will need to target .NET 8 or newer, otherwise it will be incompatible with the new &lt;code class="language-plaintext highlighter-rouge">GodotSharp&lt;/code> packages. You will still be able to use other libraries that target older .NET versions.&lt;/p>
&lt;p>Existing projects will be automatically upgraded to target &lt;code class="language-plaintext highlighter-rouge">net8.0&lt;/code> when they are opened with Godot 4.4. If your project already targets .NET 8 or newer, nothing will change. This was implemented in &lt;a href="https://github.com/godotengine/godot/pull/100195">GH-100195&lt;/a>.&lt;/p>
&lt;h2 id="what-took-so-long">What took so long?&lt;/h2>
&lt;p>The version of .NET that a library targets becomes the minimum required version for consumers of that library. That is, if the &lt;code class="language-plaintext highlighter-rouge">GodotSharp&lt;/code> package targets &lt;code class="language-plaintext highlighter-rouge">net7.0&lt;/code>, your game project needs to target &lt;code class="language-plaintext highlighter-rouge">net7.0&lt;/code> or newer. We didnt want to force our users to upgrade to a non-LTS release.&lt;/p>
&lt;p>When .NET 8 was released in November 2023, it wouldve been a good time to bump the target version in Godot C# packages, since .NET 8 is an LTS release. Unfortunately, there were some breaking changes in .NET 7&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1&lt;/a>&lt;/sup> that prevented us from upgrading, and making the required changes took us longer than we hoped.&lt;/p>
&lt;p>However, users could always use the latest version of .NET in their projects. Up until now, .NET 6 has been the minimum required version, but newer versions have always been supported from day one (even the pre-releases&lt;sup id="fnref:2">&lt;a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2&lt;/a>&lt;/sup>). In 4.4, the new minimum is now .NET 8, but as always, your projects can target the recent STS release .NET 9 and any newer version that is released in the future.&lt;/p>
&lt;p>Libraries tend to stay on older versions of .NET to support as many consumers as possible. But upgrading to the latest version of .NET brings benefits that we want to take advantage of.&lt;/p>
&lt;h2 id="what-about-older-godot-releases">What about older Godot releases?&lt;/h2>
&lt;p>We encourage users to upgrade to the latest version of Godot. We work hard to prevent breaking compatibility, to ensure you can safely upgrade to new versions of Godot when they are released. Please, make sure to test the pre-releases and let us know if you find some bugs so we can fix them before the stable release.&lt;/p>
&lt;p>Older versions of Godot will keep targeting .NET 6; we wont change the target version in patch updates, since that would be a big breaking change. If you still need to target .NET 6, you can stay on an older version of Godot, but we strongly encourage you to update to benefit from all the fixes and improvements included in the latest version of Godot and the .NET runtime.&lt;/p>
&lt;h2 id="what-about-future-net-releases">What about future .NET releases?&lt;/h2>
&lt;p>Godot always supports the latest .NET version. The version targeted by Godots C# packages is only the minimum version that your project can target, but you are always free to target a newer .NET version. To target the latest .NET 9 release in your project, you just need to install the latest version of the .NET SDK and change the &lt;code class="language-plaintext highlighter-rouge">TargetFramework&lt;/code> property in your &lt;code class="language-plaintext highlighter-rouge">.csproj&lt;/code>:&lt;/p>
&lt;div class="language-xml highlighter-rouge">&lt;div class="highlight">&lt;pre class="highlight">&lt;code>&lt;span class="nt">&amp;lt;Project&lt;/span> &lt;span class="na">Sdk=&lt;/span>&lt;span class="s">"Godot.NET.Sdk/4.3.0"&lt;/span>&lt;span class="nt">&amp;gt;&lt;/span>
&lt;span class="nt">&amp;lt;PropertyGroup&amp;gt;&lt;/span>
&lt;span class="c">&amp;lt;!-- Target .NET 9 --&amp;gt;&lt;/span>
&lt;span class="nt">&amp;lt;TargetFramework&amp;gt;&lt;/span>net9.0&lt;span class="nt">&amp;lt;/TargetFramework&amp;gt;&lt;/span>
&lt;span class="nt">&amp;lt;EnableDynamicLoading&amp;gt;&lt;/span>true&lt;span class="nt">&amp;lt;/EnableDynamicLoading&amp;gt;&lt;/span>
&lt;span class="nt">&amp;lt;/PropertyGroup&amp;gt;&lt;/span>
&lt;span class="nt">&amp;lt;/Project&amp;gt;&lt;/span>
&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;div class="card card-warning">
&lt;p>You should always use the latest version of the .NET SDK even when targeting an older .NET version in your projects.&lt;/p>
&lt;/div>
&lt;p>Well keep updating our C# packages to the latest LTS version as they are released. The next LTS release will be .NET 10, due in November 2025.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;ol>
&lt;li id="fn:1">
&lt;p>.NET 7 introduced the new &lt;code class="language-plaintext highlighter-rouge">scoped&lt;/code> keyword. This feature breaks compatibility in some low-level scenarios that affected Godot. &lt;a href="#fnref:1" class="reversefootnote" role="doc-backlink">&amp;#8617;&lt;/a>&lt;/p>
&lt;/li>
&lt;li id="fn:2">
&lt;p>While pre-releases are usually supported by Godot, they may require users to enable them by setting the &lt;code class="language-plaintext highlighter-rouge">DOTNET_ROLL_FORWARD_TO_PRERELEASE&lt;/code> environment variable to &lt;code class="language-plaintext highlighter-rouge">1&lt;/code>. Keep in mind pre-releases are still a work-in-progress so there may be bugs. &lt;a href="#fnref:2" class="reversefootnote" role="doc-backlink">&amp;#8617;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></content><author><name>Raul Santos</name></author><category term="Progress Report"/></entry><entry><title>Dev snapshot: Godot 4.4 dev 7</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-4-dev-7/"/><updated>2024-12-19T18:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-4-dev-7/</id><summary>One last build before the holidays!</summary><content type="html">&lt;p>Seasons greetings, everyone! As our team winds down for the holiday season, we present you with one last gift before
the new year: our final development build of the year!&lt;/p>
&lt;p>After having a few notable regressions in dev 6, we intended to do a quick turnaround for dev 7 with high priority bug
fixes. But we got greedy and ended up making dev 7 another feature-packed new release so you will have plenty of things
to check out while we are on holidays.&lt;/p>
&lt;p>Keep in mind that while we try to make sure each dev snapshot is stable enough for general testing, 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.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the &lt;a href="https://editor.godotengine.org/releases/4.4.dev7/">&lt;strong>Web editor&lt;/strong>&lt;/a>, &lt;a href="https://www.meta.com/experiences/godot-game-engine/7713660705416473/">&lt;strong>XR editor&lt;/strong>&lt;/a>, or the &lt;strong>Android editor&lt;/strong> for this release (join the &lt;a href="https://groups.google.com/g/godot-testers">Android editor testing group&lt;/a> to get access to pre-release builds).&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/2506810/Pest_Apocalypse/">&lt;strong>Pest Apocalypse&lt;/strong>&lt;/a>, &lt;em>a hyper-realistic post apocalyptic physics based pizza delivery action rogue-lite! It is developed by &lt;a href="https://www.kikimora.games/">Kikimora Games&lt;/a>. You can purchase the game &lt;a href="https://store.steampowered.com/app/2506810/Pest_Apocalypse/">on Steam&lt;/a>, and follow the developers &lt;a href="https://bsky.app/profile/kikimora.games">on Bluesky&lt;/a> and &lt;a href="https://discord.com/invite/sSmGbJSa4E">Discord&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>In case you missed them, see the &lt;a href="/article/dev-snapshot-godot-4-4-dev-1/">4.4 dev 1&lt;/a>, &lt;a href="/article/dev-snapshot-godot-4-4-dev-2/">4.4 dev 2&lt;/a>,
&lt;a href="/article/dev-snapshot-godot-4-4-dev-3/">4.4 dev 3&lt;/a>, &lt;a href="/article/dev-snapshot-godot-4-4-dev-4/">4.4 dev 4&lt;/a>, &lt;a href="/article/dev-snapshot-godot-4-4-dev-5/">4.4 dev 5&lt;/a>, and &lt;a href="/article/dev-snapshot-godot-4-4-dev-6/">4.4 dev 6&lt;/a> release notes for an overview of
some key features which were already in those snapshots, and are therefore still available for testing in dev 7.&lt;/p>
&lt;p>Here are highlights of a few new features in dev 7 that you might find particularly exciting!&lt;/p>
&lt;h3 id="jolt-physics-module">Jolt Physics module&lt;/h3>
&lt;p>Ever since its inception in late 2022, &lt;a href="https://github.com/godot-jolt/godot-jolt">godot-jolt&lt;/a> has become the de-facto 3D
physics engine for many of our developers. Much of the history behind why this was the case is documented in &lt;a href="https://github.com/godotengine/godot-proposals/issues/7308">this
proposal&lt;/a> by &lt;a href="https://github.com/adamscott">Adam Scott&lt;/a>, but
the main takeaway was a strong push for this tool to be recognized as an official addon. In doing so, users would be
able to find this amazing resource in a way that was promoted by the engine itself; an exciting prospect!&lt;/p>
&lt;p>The Godot Jolt maintainers, &lt;a href="https://github.com/mihe">Mikael Hermansson&lt;/a> and &lt;a href="https://github.com/jrouwe">Jorrit Rouwe&lt;/a>,
took this idea one step further: integrating the tool as part of the engine &lt;em>directly&lt;/em>. There was already a symbiosis
between their team and the Godot engine, with many features being added to Godot &lt;em>and&lt;/em> Jolt to accommodate both, but the
integration of an official module was no small feat; their pull request
(&lt;a href="https://github.com/godotengine/godot/pull/99895">GH-99895&lt;/a>) ended up adding over 500 files and 115 &lt;strong>thousand&lt;/strong> lines
of code! So while this was one of the most rigorously tested PRs relative to the amount of time its been up, itd be
impossible for any team to account for &lt;em>everything&lt;/em> this behemoth introduced, so we eagerly await your feedback (and bug
reports) on one of the most highly-requested features of 4.x.&lt;/p>
&lt;p>&lt;strong>Note:&lt;/strong> At time of writing, this does &lt;strong>not&lt;/strong> replace Godot Physics as the default 3D physics engine.
The Jolt Physics integration in Godot is considered experimental, and may change in future releases. It also lacks some features of Godot Physics so isnt a full drop-in replacement. If your interests/use-case are supported, the
tool can be enabled by changing the &lt;code class="language-plaintext highlighter-rouge">physics/3d/physics_engine&lt;/code> project setting to &lt;code class="language-plaintext highlighter-rouge">Jolt Physics&lt;/code>.&lt;/p>
&lt;h3 id="net-80">.NET 8.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/paulloz">Paul Joannon&lt;/a> and &lt;a href="https://github.com/raulsntos">Raul Santos&lt;/a> have put the final pieces in
place for moving both the GodotSharp library and user projects to .NET 8 (&lt;a href="https://github.com/godotengine/godot/pull/92131">GH-92131&lt;/a> and
&lt;a href="https://github.com/godotengine/godot/pull/100195">GH-100195&lt;/a>). All new projects will use .NET 8 by default and
existing projects will automatically update to .NET 8 once opened with this release or any newer 4.4 build.&lt;/p>
&lt;h3 id="improved-scene-tree-editor-performance">Improved Scene Tree editor performance&lt;/h3>
&lt;p>The amount of performance boosts that have been crammed in between dev 6 and dev 7 has been staggering. Of note are the
recent improvements to the engines core including many optimizations throughout the String class, spearheaded by
&lt;a href="https://github.com/Ivorforce">Ivorforce&lt;/a>. But perhaps the most obvious improvement comes from &lt;a href="https://github.com/hpvb">HP van
Braam&lt;/a> and their modifications to the SceneTree system
(&lt;a href="https://github.com/godotengine/godot/pull/99700">GH-99700&lt;/a>). While this will prove beneficial across all projects,
these changes result in especially complex scenes having a tenfold performance in the editor when moving or renaming
nodes in the SceneTree.&lt;/p>
&lt;h3 id="documentation-tooltips">Documentation tooltips&lt;/h3>
&lt;p>Thanks to &lt;a href="https://github.com/dalexeev">Danil Alexeev&lt;/a> the GDScript code editor will now display a tooltip containing
information about functions, variables, classes, etc. when you hover over them, including the documentation you have
written using our documentation system (&lt;a href="https://github.com/godotengine/godot/pull/91060">GH-91060&lt;/a>). This makes using
the integrated documentation system even more powerful as you no longer have to bounce between the code editor and the
related docs to quickly get information.&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-4-dev-7/documentation-tooltip.webp" alt="Documentation tooltip" />&lt;/p>
&lt;h3 id="baked-shadowmasks-for-lightmaps">Baked shadowmasks for lightmaps&lt;/h3>
&lt;p>Until now, you have always had to choose between fully baked or fully dynamic shadows when using LightmapGI. However,
sometimes you want to have dynamic shadows up close where detail matters, but use static shadows in the distance where a
low resolution is acceptable. Finally it is possible thanks to the hard work of
&lt;a href="https://github.com/BlueCube3310">BlueCube3310&lt;/a> in &lt;a href="https://github.com/godotengine/godot/pull/85653">GH-85653&lt;/a>. You can
now enable shadow masks while baking your LightmapGI to combine dynamic and static shadows for the best quality.&lt;/p>
&lt;p>Additionally, this allows you to drastically shorten the range of your dynamic shadows which is a very important
optimization, especially for mobile devices.&lt;/p>
&lt;p>This feature is still experimental and it will change in response to feedback, so please test it out and let us know
what you think!&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-4-dev-7/shadowmask.webp" alt="Baked Lightmap" />&lt;/p>
&lt;h3 id="updated-toolchains-for-official-builds">Updated toolchains for official builds&lt;/h3>
&lt;p>We updated some of the toolchains we use for official builds in &lt;a href="https://github.com/godotengine/build-containers/pull/150">build-containers#150&lt;/a>,
notably macOS and iOS SDKs from Xcode 16.2, and MinGW 12.0.0 with GCC 14.2.1 for Windows builds.&lt;/p>
&lt;p>Toolchains for Linux, Android, and Web are still the same versions as for Godot 4.3.&lt;/p>
&lt;h3 id="and-more">And more!&lt;/h3>
&lt;p>There are too many exciting changes to list them all here, but heres a curated selection:&lt;/p>
&lt;ul>
&lt;li>3D: Add 3D translation sensitivity to Editor Settings (&lt;a href="https://github.com/godotengine/godot/pull/81714">GH-81714&lt;/a>).&lt;/li>
&lt;li>3D: Add ruler mode to 3D (&lt;a href="https://github.com/godotengine/godot/pull/100162">GH-100162&lt;/a>).&lt;/li>
&lt;li>Animation: Add animation node extension (&lt;a href="https://github.com/godotengine/godot/pull/99181">GH-99181&lt;/a>).&lt;/li>
&lt;li>Audio: Add Web MIDI support (&lt;a href="https://github.com/godotengine/godot/pull/95928">GH-95928&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Add loongarch64 support for Linux/*BSD (&lt;a href="https://github.com/godotengine/godot/pull/97822">GH-97822&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Make Godot compile on &lt;code class="language-plaintext highlighter-rouge">FreeBSD&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/100047">GH-100047&lt;/a>).&lt;/li>
&lt;li>Core: Fix &lt;code class="language-plaintext highlighter-rouge">JSON.{from,to}_native()&lt;/code> issues (&lt;a href="https://github.com/godotengine/godot/pull/99765">GH-99765&lt;/a>).&lt;/li>
&lt;li>Core: Optimize StringBuilder by using &lt;code class="language-plaintext highlighter-rouge">LocalVector&lt;/code> instead of &lt;code class="language-plaintext highlighter-rouge">Vector&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/99775">GH-99775&lt;/a>).&lt;/li>
&lt;li>Core: Optimize String construction from statically known strings by evaluating &lt;code class="language-plaintext highlighter-rouge">strlen&lt;/code> at compile-time (&lt;a href="https://github.com/godotengine/godot/pull/100132">GH-100132&lt;/a>).&lt;/li>
&lt;li>Core: Add move assignment and move constructor to Variant (&lt;a href="https://github.com/godotengine/godot/pull/100426">GH-100426&lt;/a>).&lt;/li>
&lt;li>Documentation: Document &lt;code class="language-plaintext highlighter-rouge">_process()&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">_physics_process()&lt;/code> delta behavior at low FPS (&lt;a href="https://github.com/godotengine/godot/pull/94636">GH-94636&lt;/a>).&lt;/li>
&lt;li>Editor: Add ability to create a new inherited scene from code (&lt;a href="https://github.com/godotengine/godot/pull/90057">GH-90057&lt;/a>).&lt;/li>
&lt;li>Editor: Add profiler autostart indicator to EditorRunBar (&lt;a href="https://github.com/godotengine/godot/pull/97492">GH-97492&lt;/a>).&lt;/li>
&lt;li>Editor: Allow dragging to specific folders in filesystem dock (&lt;a href="https://github.com/godotengine/godot/pull/99453">GH-99453&lt;/a>).&lt;/li>
&lt;li>Editor: Make the Script Editors parser execute sooner on edit after error was found (&lt;a href="https://github.com/godotengine/godot/pull/87542">GH-87542&lt;/a>).&lt;/li>
&lt;li>Editor: Show String properties text in a tooltip in the inspector (&lt;a href="https://github.com/godotengine/godot/pull/76231">GH-76231&lt;/a>).&lt;/li>
&lt;li>Export: Use temp dirs instead of cache dirs for export (&lt;a href="https://github.com/godotengine/godot/pull/100150">GH-100150&lt;/a>).&lt;/li>
&lt;li>GDExtension: Fix &lt;code class="language-plaintext highlighter-rouge">Variant&lt;/code> modulo operation (&lt;a href="https://github.com/godotengine/godot/pull/99559">GH-99559&lt;/a>).&lt;/li>
&lt;li>GDScript: Add &lt;code class="language-plaintext highlighter-rouge">@warning_ignore_start&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">@warning_ignore_restore&lt;/code> annotations (&lt;a href="https://github.com/godotengine/godot/pull/76020">GH-76020&lt;/a>).&lt;/li>
&lt;li>GUI: Change default Arabic font to Vazirmatn (&lt;a href="https://github.com/godotengine/godot/pull/100053">GH-100053&lt;/a>).&lt;/li>
&lt;li>GUI: Fix Tree drag-and-drop scrolling having low FPS at low Physics Ticks per Second (&lt;a href="https://github.com/godotengine/godot/pull/98766">GH-98766&lt;/a>).&lt;/li>
&lt;li>GUI: Improve emoji SVG parsing by caching (&lt;a href="https://github.com/godotengine/godot/pull/100300">GH-100300&lt;/a>).&lt;/li>
&lt;li>GUI: Save color palette as resources to reuse later (&lt;a href="https://github.com/godotengine/godot/pull/91604">GH-91604&lt;/a>).&lt;/li>
&lt;li>Import: Consider all texture types for resource thumbnail generation (&lt;a href="https://github.com/godotengine/godot/pull/100247">GH-100247&lt;/a>).&lt;/li>
&lt;li>Input: Add &lt;code class="language-plaintext highlighter-rouge">Tablet/Trackpad&lt;/code> 3D navigation preset (&lt;a href="https://github.com/godotengine/godot/pull/97985">GH-97985&lt;/a>).&lt;/li>
&lt;li>Navigation: Despaghettify NavigationServer path queries (&lt;a href="https://github.com/godotengine/godot/pull/100129">GH-100129&lt;/a>).&lt;/li>
&lt;li>Plugin: Export &lt;code class="language-plaintext highlighter-rouge">EditorInspector::instantiate_property_editor&lt;/code> for use by plugins (&lt;a href="https://github.com/godotengine/godot/pull/87375">GH-87375&lt;/a>).&lt;/li>
&lt;li>Rendering: Add Blend Distance property to ReflectionProbe (&lt;a href="https://github.com/godotengine/godot/pull/99958">GH-99958&lt;/a>).&lt;/li>
&lt;li>Rendering: Allow changing the anisotropic filter level at run-time per Viewport (&lt;a href="https://github.com/godotengine/godot/pull/88313">GH-88313&lt;/a>).&lt;/li>
&lt;li>Rendering: Further performance improvements from The Forge (&lt;a href="https://github.com/godotengine/godot/pull/99257">GH-99257&lt;/a>).&lt;/li>
&lt;li>Rendering: Automatically compress new lightmap textures (&lt;a href="https://github.com/godotengine/godot/pull/100327">GH-100327&lt;/a>).&lt;/li>
&lt;li>Rendering: Optimize PointLight2D shadow rendering by reducing draw calls and RD state changes (&lt;a href="https://github.com/godotengine/godot/pull/100302">GH-100302&lt;/a>).&lt;/li>
&lt;li>Rendering: Implement &lt;code class="language-plaintext highlighter-rouge">RD::buffer_get_data_async()&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">RD::texture_get_data_async()&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/100110">GH-100110&lt;/a>).&lt;/li>
&lt;li>Shaders: Avoid error spam when shaders fail to compile by freeing shader_data version when compilation fails (&lt;a href="https://github.com/godotengine/godot/pull/100128">GH-100128&lt;/a>).&lt;/li>
&lt;li>XR: Allow locking the camera to the &lt;code class="language-plaintext highlighter-rouge">XROrigin3D&lt;/code> for benchmarking or automated testing (&lt;a href="https://github.com/godotengine/godot/pull/99145">GH-99145&lt;/a>).&lt;/li>
&lt;li>XR: OpenXR: Add support for binding modifiers (&lt;a href="https://github.com/godotengine/godot/pull/97140">GH-97140&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>113 contributors&lt;/strong> submitted &lt;strong>263 improvements&lt;/strong> for this new snapshot. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-dev7">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the previous 4.4-dev6 snapshot.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/46c8f8c5c5874c7c56ea5b1384259de9402d3449">&lt;code class="language-plaintext highlighter-rouge">46c8f8c5c&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-dev7">
Download Godot 4.4 dev7
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-4-dev-7.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev7/Godot_v4.4-dev7_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev7/Godot_v4.4-dev7_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev7/Godot_v4.4-dev7_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev7/Godot_v4.4-dev7_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev7/Godot_v4.4-dev7_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev7/Godot_v4.4-dev7_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-dev7">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>With every release we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;p>There are currently no known issues introduced by this release.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 or full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a> platform managed by &lt;a href="https://godot.foundation/">Godot Foundation&lt;/a>. There are also several &lt;a href="/donate">alternative ways to donate&lt;/a> which you may find more suitable.&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Godot XR community - December 2024</title><link href="https://godotengine.org/article/godot-xr-community-nov-2024/"/><updated>2024-12-18T12:00:00+00:00</updated><id>https://godotengine.org/article/godot-xr-community-nov-2024/</id><summary>Interesting projects from the Godot XR community.</summary><content type="html">&lt;p>Godot has a very active XR-focused community on the XR channel of the &lt;a href="/community/">official Godot Discord server&lt;/a>.
Today, we want to put a spotlight on a number of community projects.&lt;/p>
&lt;h2 id="godot-xr-community-game-jams">Godot XR community Game Jams&lt;/h2>
&lt;p>To showcase the engine capabilities and the ingenuity of the Godot XR community, game jams are now being organized twice a year.
Its a fun way for participants to get introduced to Godots XR capabilities.&lt;/p>
&lt;h3 id="godot-xr-game-jam-1">Godot XR Game Jam #1&lt;/h3>
&lt;p>The &lt;a href="https://itch.io/jam/godot-xr-game-jam">first Godot XR Game Jam&lt;/a> was held from 1 December until 4 December 2023.
The theme of this game jam was Vapor.
We saw both many new faces and long-time community members join, and had a total of 17 entries.&lt;/p>
&lt;p>The #1 spot went to &lt;a href="https://itch.io/jam/godot-xr-game-jam/rate/2402526">Cloud Shepherd&lt;/a> which won 3 out of 6 categories, including “Originality”, “User experience”, and “Audio”.
In this entry, you herd sheep on clouds in the sky by using fans to create breezes that blow the sheep to their destinations.&lt;/p>
&lt;p>The #2 spot was taken by &lt;a href="https://itch.io/jam/godot-xr-game-jam/rate/2402404">Super Steam Hands&lt;/a> which won 2 out of 6 categories (“Fun factor” and “Theme incorporation”).
Dont let the thumbnail of this entry fool you. Its a great game where you can feel like Iron Man by using jets of steam to parkour around a level.&lt;/p>
&lt;p>The #3 spot went to &lt;a href="https://itch.io/jam/godot-xr-game-jam/rate/2400974">Pipe Stream&lt;/a> which ranked the best in the “Haptics” category.
Its a great little puzzle game where you need to chip away a path for vapor to reach a target. Very challenging!&lt;/p>
&lt;p>There were far more great entries, so be sure to &lt;a href="https://itch.io/jam/godot-xr-game-jam/entries">check out the jam page for more&lt;/a>!&lt;/p>
&lt;h3 id="godot-xr-game-jam-2">Godot XR Game Jam #2&lt;/h3>
&lt;p>The &lt;a href="https://itch.io/jam/godot-xr-game-jam-july-2024">second Godot XR Game Jam&lt;/a> was held from 8 July until 15 July 2024.
We decided to give participants a full week to complete their game.
The theme this jam was Relaxation. There were a total of 26 entries and this time we scored them on the average points in all categories.&lt;/p>
&lt;p>The #1 spot went to &lt;a href="https://itch.io/jam/godot-xr-game-jam-july-2024/rate/2821459">Whos a good boy&lt;/a> with 4.042 points.
This cute little game has you play fetch with a dog in a park.
It features some excellent interactions both from the players and dogs points of view.&lt;/p>
&lt;p>The #2 spot went to &lt;a href="https://itch.io/jam/godot-xr-game-jam-july-2024/rate/2830514">Constellation Coach VR&lt;/a> with 3.974 points.
This game has you find constellations in the night sky by holding up a picture of the constellation and aligning it with the relevant stars.
Excellent haptic feedback lets you know when youve gotten close, and successfully aligning the constellation lights it up.&lt;/p>
&lt;p>The #3 spot went to &lt;a href="https://itch.io/jam/godot-xr-game-jam-july-2024/rate/2830121">Summer Pottery VR&lt;/a> with 3.938 points.
This game lets you do some clay pottery sculpting.
Its a great and very well-executed use of physically interacting with the clay to shape and paint your creation.&lt;/p>
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/0IxvWaj8iUo?si=em-D99NacStXyIYA" title="5 VR Games Made in Godot To Inspire You" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;p>Again, many of the other entries were of great quality and we highly recommend &lt;a href="https://itch.io/jam/godot-xr-game-jam-july-2024/entries">checking them out&lt;/a>.&lt;/p>
&lt;h3 id="godot-xr-game-jam-3">Godot XR Game Jam #3&lt;/h3>
&lt;p>The 3rd game jam will be held in the week starting 10 February 2025. &lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025">You can read all about it and sign up here&lt;/a>.&lt;/p>
&lt;h2 id="universal-godot-vr-plugin">Universal Godot VR plugin&lt;/h2>
&lt;p>Inspired by the Universal Unreal Engine VR Mod, community member TeddyBear082 has created a mod to inject VR capabilities into existing 3D games made with Godot.&lt;/p>
&lt;p>TeddyBear082 previously made a name for himself with the excellent VR port of the popular game Cruelty Squad and has used the knowledge gained with that and similar projects to create a more universal mod.&lt;/p>
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/Hb9BDcCZHCY?si=Zr2Jw3MV7cY00yEE" title="UGVR Demo" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;p>You can find the plugin &lt;a href="https://github.com/teddybear082/UGVR">on teddybear082s GitHub profile&lt;/a>.&lt;/p>
&lt;h2 id="body-tracking-and-motion-capture-plugins">Body tracking and motion capture plugins&lt;/h2>
&lt;p>Core contributor Malcolm Nixon has created various plugins for Godot that use the new body tracking feature to make tracking data available from various sources.&lt;/p>
&lt;p>He has support for Rokoko, Axis Studio and Movella.
He also has a plugin for VMC (Virtual Motion Capture), which is a standard used by a number of motion capture systems.&lt;/p>
&lt;p>You can find the plugins &lt;a href="https://github.com/Malcolmnixon?tab=repositories">on his GitHub profile&lt;/a>.&lt;/p>
&lt;h2 id="meta-platform-plugin">Meta platform plugin&lt;/h2>
&lt;p>Community member Decacis has released a few of his games on the Meta Horizon store and implemented part of the Meta platform SDK in support of this.
He has implemented support for things like in-app purchases, leaderboard, challenges, and much much more.&lt;/p>
&lt;p>The plugin he created is open source and can be found &lt;a href="https://github.com/decacis/godot_oculus_platform">on his GitHub profile&lt;/a>.&lt;/p>
&lt;h2 id="godot-xr-tools">Godot XR Tools&lt;/h2>
&lt;p>Weve showcased XR Tools before, but with version 4.4 of the plugin nearly ready for release, its worth quickly looking at whats coming.&lt;/p>
&lt;ul>
&lt;li>Improved support for Godot 4.2+ features such as pass through logic with both OpenXR and WebXR.&lt;/li>
&lt;li>New objects to make games suitable for both VR and non-VR use.&lt;/li>
&lt;li>A new gaze interaction component for controller-less experiences.&lt;/li>
&lt;li>Various improvements to snap points.&lt;/li>
&lt;li>Improvements to hands interacting with physics.&lt;/li>
&lt;/ul>
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/YWdcc6r9w3E?si=BimitXSjjVQxcLrO" title="Godot XR tools demo for GodotCon 2024" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h2 id="godot-arcore-support">Godot ARCore support&lt;/h2>
&lt;p>ARCore support in Godot has been a long time coming.
From an early working prototype in Godot 3, to moving this into a community maintained plugin, there have been plenty of hurdles along the way. Thanks to the persistance of Patrick Exner, Luca Junge, and Chambefort Maxime, we have nearly reached the finish line.&lt;/p>
&lt;p>Supporting changes were recently merged into the master branch of Godot and you can find the plugin itself &lt;a href="https://github.com/GodotVR/godot_arcore">on the plugins GitHub&lt;/a>.&lt;/p></content><author><name>Bastiaan Olij</name></author><category term="News"/></entry><entry><title>Meet the creator behind the Godot Game Awards</title><link href="https://godotengine.org/article/godot-game-awards-stayathomedev/"/><updated>2024-12-09T18:00:00+00:00</updated><id>https://godotengine.org/article/godot-game-awards-stayathomedev/</id><summary>StayAtHomeDev has been sharing his passion on YouTube for over two years and now he's running the awards.</summary><content type="html">&lt;h2 id="update-the-godot-game-awards-winners-have-been-announced-you-can-watch-the-video-here">Update: The Godot Game Awards winners have been announced! You can watch the video &lt;a href="https://www.youtube.com/watch?v=mUzAHrpjwl4">here&lt;/a>.&lt;/h2>
&lt;hr />
&lt;p>If youve watched Godot-related content on YouTube, &lt;a href="https://www.youtube.com/@stayathomedev">StayAtHomeDev&lt;/a> needs no introduction. Hes been sharing his passion for game development and the Godot Engine through his channel. As the creator of the popular “&lt;a href="https://www.youtube.com/playlist?list=PLEHvj4yeNfeHArSU6U2a715ssJYYCnKCg">This Week in Godot&lt;/a>” series, and the Godot Game Awards, hes helped showcase the amazing work of the Godot community. We had the chance to talk with him about his journey, what inspired the awards, and his efforts to support the community.&lt;/p>
&lt;h3 id="what-inspired-you-to-create-the-godot-game-awards-and-how-long-has-it-been-running">What inspired you to create the Godot Game Awards, and how long has it been running?&lt;/h3>
&lt;p>I started the “&lt;a href="https://www.youtube.com/playlist?list=PLEHvj4yeNfeHArSU6U2a715ssJYYCnKCg">This Week in Godot&lt;/a>” series over two years ago on my channel. At first it started as a compilation of cool projects or games I found throughout each week. About 7-8 videos in, I thought it would be cool if people could vote for their favorite each week and the engagement exploded. People would comment every week and eventually I compiled every winner into a final vote for the “&lt;a href="https://www.youtube.com/watch?v=3_3N_nL9gIM">Best Godot Project of the Year&lt;/a>” in 2023.&lt;/p>
&lt;p>This year I wanted to expand that into multiple categories, highlighting certain achievements like art design and music, and give attention to other things like plugins, tutorials, even devlogs. From that came the Godot Game Awards, a compilation of the best Godot-based games, plugins, and projects as voted by viewers on my channel.&lt;/p>
&lt;h3 id="how-can-people-get-involved-in-this-years-edition">How can people get involved in this years edition?&lt;/h3>
&lt;p>People can get involved from now until December 15th by voting on the 20+ different categories with an official 2024 🗳️ &lt;a href="https://forms.gle/Q4yYy82neZcKA3Ny6">Godot Game Awards Ballot&lt;/a>.&lt;/p>
&lt;p>The winners will be announced in a premiere video on December 28th at 2:00pm EST on my channel so that everyone can watch together and help support the great work by these developers.&lt;/p>
&lt;h3 id="tell-us-about-your-youtube-channelwhat-kind-of-content-do-you-focus-on-and-what-motivated-you-to-start-creating-videos">Tell us about your YouTube channel—what kind of content do you focus on, and what motivated you to start creating videos?&lt;/h3>
&lt;p>I started &lt;a href="https://www.youtube.com/@stayathomedev">StayAtHomeDev&lt;/a> over two years ago to share my passion for creating through game development. At the time, I had a potential job offer to be the Web Coordinator for a professional football team in the US. But I had just been given a grant by Meta for some VR development work with their Oculus Quest 2 headset so I used that to launch the channel. It really was an exercise to create independent income so I could stay at home with my kids. That was a lifestyle choice I knew I wanted to make for them, so I took a shot at YouTube.&lt;/p>
&lt;p>Im very interested in sharing knowledge so the channel has had an element of teaching with tutorials or game development concept videos. With the “&lt;a href="https://www.youtube.com/playlist?list=PLEHvj4yeNfeHArSU6U2a715ssJYYCnKCg">This Week in Godot&lt;/a>” series, the channel started to steer more towards enriching the Godot community and showcasing what people were creating with the engine. Now, its a mix of tutorials, QAs about general game development topics, and the newest format, interviews. I am actually most excited about the interview videos because they really give a chance for viewers to peek into real game dev life with stories and advice from developers actively breaking through the industry or those who are already successful, and of course doing it with the Godot Engine.&lt;/p>
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/8nsJw89FG_A" frameborder="0" allowfullscreen="" style="width: 100%; aspect-ratio: 16 / 9; height: auto;">&lt;/iframe>
&lt;h3 id="how-did-you-discover-godot-when-did-you-start-using-it-do-you-have-prior-experience-with-other-game-engines">How did you discover Godot? When did you start using it? Do you have prior experience with other game engines?&lt;/h3>
&lt;p>If you look at the earliest videos on the channel, youll notice they were all focused on the Unreal Engine. I actually worked within Unreal first. Long ago…like long ago…I started making little games with an engine called 3D GameStudio.&lt;/p>
&lt;p>When I started the channel, I knew of Godot (which I thought was called GoDot) but never tried it. After spending more time on YouTube and lurking around other game dev content, Godot kept popping up, so I took it for a test drive. I ended up making a video about it which went “viral” for a small channel while my first kid was being born. There was clearly a lot of interest in the engine so I kept playing around with it and fell in love. Not only with how streamlined it felt but also because it was open source and had such a strong sense of community and pride. I decided I wanted to help support that with the channel.&lt;/p>
&lt;h3 id="what-advice-would-you-give-to-someone-starting-out-as-a-game-developer-or-content-creator-in-the-godot-community">What advice would you give to someone starting out as a game developer or content creator in the Godot community?&lt;/h3>
&lt;p>I would say the WORST thing you can do is stop yourself before you even try. Game development and content creation are both difficult. They are also largely self-motivated so telling yourself you cant do them means you likely wont.&lt;/p>
&lt;p>The BEST thing you can do is just try. If you are interested in making games, download the engine and try. You are going to hit walls and fail at a number of things but thats part of the learning process. The information and tools are out there, you just need to start the climb.&lt;/p>
&lt;p>In more applicable terms…start small, remake Pong or level 1 of Mario Bros. If something seems too difficult to understand, break it into smaller pieces. Dont try to make an entire 2D platformer controller, make it move left and right first. And dont think youre going to sell your first game and make tons of money. Youll put too much pressure on yourself and it wont be fun anymore, youll get frustrated, and youll quit.&lt;/p>
&lt;p>For content creation, its a marathon so the most important thing is dont worry about the views. Make content that you want to make. If a video gets more views than normal, analyze why, and do it again with a small change. YouTube is sort of a constantly moving target and you wont get a good idea of your style, your interest, or what people want to watch for a while. And even then, those things can always change. Consistency is the important variable…keep doing it and consistently try to get better. Better sound, better speaking, better editing, better pacing, better thumbnails, better topics, better storytelling. There is always something you can improve. If you create videos consistently and improve with every video, youll get to where you want to go and build a ton of new skills along the way.&lt;/p>
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/C-sJarU469Y" frameborder="0" allowfullscreen="" style="width: 100%; aspect-ratio: 16 / 9; height: auto;">&lt;/iframe>
&lt;h3 id="do-you-plan-to-continue-organizing-the-godot-game-awards-in-the-future">Do you plan to continue organizing the Godot Game Awards in the future?&lt;/h3>
&lt;p>Absolutely! There have already been nearly 1000 ballots submitted, which is crazy to me. People comment how they enjoy finding new Godot projects every week with the weekly video series and tell me that they feel inspired to make something themselves. That is the best thing I could hope for, that people feel inspired to create. Im also a music therapist so I have seen the effect creativity and expression can have on a persons well-being. To me, games are an art form and within that lies the ability to create powerful feelings in other people through interactive play. If one person continues to be inspired by the games showcased in the awards, then Ill keep making the videos.&lt;/p>
&lt;hr />
&lt;p>&lt;span style="font-size: 28px; font-family: var(--header-font-family); font-weight: 800;">🗳️ &lt;a href="https://forms.gle/Q4yYy82neZcKA3Ny6">Vote now!&lt;/a> 👈&lt;span>&lt;/span>&lt;/span>&lt;/p>
&lt;hr />
&lt;p>If you want to support StayAtHomeDev you can visit his &lt;a href="https://www.patreon.com/StayAtHomeDev_">Patreon&lt;/a>, subscribe to &lt;a href="https://www.youtube.com/@stayathomedev">his channel&lt;/a>, or vote for your favorite Godot projects each week.&lt;/p>
&lt;p>Good luck to all the nominees, and thank you StayAtHomeDev for all your work organizing the awards!&lt;/p></content><author><name>Emi</name></author><category term="Showcase"/></entry><entry><title>Dev snapshot: Godot 4.4 dev 6</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-4-dev-6/"/><updated>2024-12-05T17:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-4-dev-6/</id><summary>New snapshot on the road to beta, with a lot of 3D workflow goodies!</summary><content type="html">&lt;p>Safety goggles on, people! Features and Quality-of-Life are being integrated at blinding speeds; precautions must be taken to view them head-on. Once secure, we can dive into whats shaping up to be one of the final development snapshots before 4.4-beta builds roll out!&lt;/p>
&lt;p>Keep in mind that while we try to make sure each dev snapshot is stable enough for general testing, 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.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the &lt;a href="https://editor.godotengine.org/releases/4.4.dev6/">&lt;strong>Web editor&lt;/strong>&lt;/a>, &lt;a href="https://www.meta.com/experiences/godot-game-engine/7713660705416473/">&lt;strong>XR editor&lt;/strong>&lt;/a>, or the &lt;strong>Android editor&lt;/strong> for this release (join the &lt;a href="https://groups.google.com/g/godot-testers">Android editor testing group&lt;/a> to get access to pre-release builds).&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/3019370/Malware/">&lt;strong>Malware&lt;/strong>&lt;/a>, &lt;em>an installation simulator where players must navigate a minefield of circa-1999 malware! It is developed by &lt;a href="https://store.steampowered.com/search/?developer=Odd%20Games">Odd Games&lt;/a>. You can purchase the game &lt;a href="https://store.steampowered.com/app/3019370/Malware/">on Steam&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>In case you missed them, see the &lt;a href="/article/dev-snapshot-godot-4-4-dev-1/">4.4 dev 1&lt;/a>, &lt;a href="/article/dev-snapshot-godot-4-4-dev-2/">4.4 dev 2&lt;/a>,
&lt;a href="/article/dev-snapshot-godot-4-4-dev-3/">4.4 dev 3&lt;/a>, &lt;a href="/article/dev-snapshot-godot-4-4-dev-4/">4.4 dev 4&lt;/a>, and &lt;a href="/article/dev-snapshot-godot-4-4-dev-5/">4.4 dev 5&lt;/a> release notes for an overview of
some key features which were already in those snapshots, and are therefore still available for testing in dev 6.&lt;/p>
&lt;p>Here are highlights of a few new features in dev 6 that you might find particularly exciting!&lt;/p>
&lt;h3 id="camera3d-preview-in-inspector">Camera3D preview in inspector&lt;/h3>
&lt;p>Previously, adjusting the view of a &lt;code class="language-plaintext highlighter-rouge">Camera3D&lt;/code> in a scene could be a chore to handle. It required activating the camera you wanted to preview, and then reverting it back if it wasnt the main camera. You could pin a preview of a camera in a dedicated viewport, but that meant reducing the real-estate of your main viewport.&lt;/p>
&lt;p>Now, with &lt;a href="https://github.com/timothyqiu">Haoyu Qiu&lt;/a>s feature (&lt;a href="https://github.com/godotengine/godot/pull/90778">GH-90778&lt;/a>), every selected 3D camera shows a preview inside the inspector. No switching cameras needed to preview anymore.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-4-dev-6/camera3d-inspector.mp4?1" type="video/mp4" />
&lt;/video>
&lt;h3 id="collisionshape3d-debug-color-customization">CollisionShape3D debug color customization&lt;/h3>
&lt;p>3D collision shapes now have parity with their 2D counterparts with the newly added &lt;code class="language-plaintext highlighter-rouge">debug_color&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">debug_fill&lt;/code> properties, which lets you customize the appearance of debug collision shapes in the editor, or at runtime if “Visible Collision Shapes” is enabled in the Debug menu. Thanks to first-time contributor &lt;a href="https://github.com/BattyBovine">BattyBovine&lt;/a> for implementing this much-requested proposal (&lt;a href="https://github.com/godotengine/godot/pull/90644">GH-90644&lt;/a>).&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-4-dev-6/debug-color.webp" alt="Examples of custom debug colors" />&lt;/p>
&lt;h3 id="replace-internal-csg-implementation-with-manifold-library">Replace internal CSG implementation with Manifold library&lt;/h3>
&lt;p>Godot added support for CSG, or Constructive Solid Geometry, &lt;a href="/article/godot-gets-csg-support/">back in 3.1&lt;/a>. This is a great tool for rapidly prototyping level geometry or even simple props and characters by combining 3D primitives with various boolean operations (union, intersection, subtraction).&lt;/p>
&lt;p>Our implementation suffered from a number of bugs and stability issues, with no dedicated maintainer to tackle them. Thankfully, a great open source library has been released since then which can be used as a well-maintained replacement for our CSG internals: &lt;a href="https://github.com/elalish">Emmett Lalish&lt;/a>s &lt;a href="https://github.com/elalish/manifold">Manifold&lt;/a>.&lt;/p>
&lt;p>&lt;a href="https://github.com/fire">Ernest Lee&lt;/a> did an amazing work implementing Manifold in Godot, with help from Emmett to ensure that the library fits our requirements (&lt;a href="https://github.com/godotengine/godot/pull/94321">GH-94321&lt;/a>). As this is a fairly big change to how Godots CSG works internally (but with minimal impact on the user API), you might notice differences in your projects using CSG. Please report any change that appears to have a negative impact on your usage.&lt;/p>
&lt;h3 id="runtime-wav-file-loading">Runtime WAV file loading&lt;/h3>
&lt;p>First-time contributor &lt;a href="https://github.com/what-is-a-git">cherry&lt;/a> implemented the long-requested support for runtime loading of WAV files (&lt;a href="https://github.com/godotengine/godot/pull/93831">GH-93831&lt;/a>). This adds parity with OGG Vorbis audio tracks, and will be a welcome addition for users who want to load user-generated content at runtime (including non-game audio applications).&lt;/p>
&lt;h3 id="extend-curve-to-allow-for-domains-outside-of-0-1">Extend Curve to allow for domains outside of &lt;code class="language-plaintext highlighter-rouge">[0, 1]&lt;/code>&lt;/h3>
&lt;p>Have you ever wished that you could edit a &lt;code class="language-plaintext highlighter-rouge">Curve&lt;/code> in a domain that goes beyond the normalized &lt;code class="language-plaintext highlighter-rouge">[0, 1]&lt;/code> range? &lt;a href="https://github.com/anvilfolk">ocean&lt;/a> finally got their implementation of this feature merged (&lt;a href="https://github.com/godotengine/godot/pull/67857">GH-67857&lt;/a>), which should give you greater flexibility in how to map your functions and data to Godots ubiquitous Curve resource.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-4-dev-6/curve-extended-domain.mp4?1" type="video/mp4" />
&lt;/video>
&lt;h3 id="temporary-file-and-directory-utilities">Temporary file and directory utilities&lt;/h3>
&lt;p>Tool creators, &lt;a href="https://github.com/adamscott">Adam Scott&lt;/a> cooked a little something that could be interesting for you. A brand new API lets you create and dispose of temporary files. Handy if you need to write content on disk, but without worrying about polluting user data. These temporary files and directories even dispose of themselves after use by default. For more information, see (&lt;a href="https://github.com/godotengine/godot/pull/98397">GH-98397&lt;/a>).&lt;/p>
&lt;h3 id="and-more">And more!&lt;/h3>
&lt;p>There are too many exciting changes to list them all here, but heres a curated selection:&lt;/p>
&lt;ul>
&lt;li>2D: Change how multi selection scale is applied to canvas item (&lt;a href="https://github.com/godotengine/godot/pull/99506">GH-99506&lt;/a>).&lt;/li>
&lt;li>2D: Ensure primitive meshes are created before connected to changed signal (&lt;a href="https://github.com/godotengine/godot/pull/99740">GH-99740&lt;/a>).&lt;/li>
&lt;li>3D: Add ShadowCastingSetting to MeshLibrary / GridMap items (&lt;a href="https://github.com/godotengine/godot/pull/85443">GH-85443&lt;/a>).&lt;/li>
&lt;li>3D: Add CollisionShape3D custom debug colors (&lt;a href="https://github.com/godotengine/godot/pull/90644">GH-90644&lt;/a>).&lt;/li>
&lt;li>3D: Add Camera3D preview in Inspector (&lt;a href="https://github.com/godotengine/godot/pull/90778">GH-90778&lt;/a>).&lt;/li>
&lt;li>3D: Allow tool scripts to alter transform of Node3DEditorViewport camera (&lt;a href="https://github.com/godotengine/godot/pull/93503">GH-93503&lt;/a>).&lt;/li>
&lt;li>3D: Fix mesh corruption of CSG by using elalish/manifold (&lt;a href="https://github.com/godotengine/godot/pull/94321">GH-94321&lt;/a>).&lt;/li>
&lt;li>3D: Adjust VoxelGI gizmo opacity (&lt;a href="https://github.com/godotengine/godot/pull/99969">GH-99969&lt;/a>).&lt;/li>
&lt;li>Animation: Add persistent folding to Animation Library Editor (&lt;a href="https://github.com/godotengine/godot/pull/86481">GH-86481&lt;/a>).&lt;/li>
&lt;li>Animation: Fix crash when re-importing model with AnimationPlayer panel open and node selected (&lt;a href="https://github.com/godotengine/godot/pull/95795">GH-95795&lt;/a>).&lt;/li>
&lt;li>Animation: Add RetargetModifier3D for realtime retarget to keep original rest (&lt;a href="https://github.com/godotengine/godot/pull/97824">GH-97824&lt;/a>).&lt;/li>
&lt;li>Animation: Prioritize proximity to green arrow when selecting overlapping transitions in AnimationNodeStateMachine (&lt;a href="https://github.com/godotengine/godot/pull/98401">GH-98401&lt;/a>).&lt;/li>
&lt;li>Audio: Add runtime file loading to &lt;code class="language-plaintext highlighter-rouge">AudioStreamWAV&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/93831">GH-93831&lt;/a>).&lt;/li>
&lt;li>Audio: Fix AudioStreamPlayer2D/3Ds &lt;code class="language-plaintext highlighter-rouge">get_playback_position&lt;/code> returning &lt;code class="language-plaintext highlighter-rouge">0&lt;/code> right after calling &lt;code class="language-plaintext highlighter-rouge">seek&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/99759">GH-99759&lt;/a>).&lt;/li>
&lt;li>C#: Preserve no-hint behavior for unmarshallable generics in dictionaries (&lt;a href="https://github.com/godotengine/godot/pull/99485">GH-99485&lt;/a>).&lt;/li>
&lt;li>Core: RegEx: Fix handling of unset/unknown capture groups (&lt;a href="https://github.com/godotengine/godot/pull/73973">GH-73973&lt;/a>).&lt;/li>
&lt;li>Core: FileAccess: Return error codes from &lt;code class="language-plaintext highlighter-rouge">store_*&lt;/code> methods (&lt;a href="https://github.com/godotengine/godot/pull/78289">GH-78289&lt;/a>).&lt;/li>
&lt;li>Core: Avoid duplicating signals from scene instances into packed scenes (&lt;a href="https://github.com/godotengine/godot/pull/97303">GH-97303&lt;/a>).&lt;/li>
&lt;li>Core: Make loading translations from threads safe (&lt;a href="https://github.com/godotengine/godot/pull/99527">GH-99527&lt;/a>).&lt;/li>
&lt;li>Core: Do not generate &lt;code class="language-plaintext highlighter-rouge">*.uid&lt;/code> files for JSON, certificates, and translations (&lt;a href="https://github.com/godotengine/godot/pull/99540">GH-99540&lt;/a>).&lt;/li>
&lt;li>Core: Convert line breaks to &lt;code class="language-plaintext highlighter-rouge">\n&lt;/code> and strip line break from the end of string returned by &lt;code class="language-plaintext highlighter-rouge">OS::read_string_from_stdin&lt;/code>/&lt;code class="language-plaintext highlighter-rouge">OS::get_stdin_string&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/99542">GH-99542&lt;/a>).&lt;/li>
&lt;li>Core: Fix &lt;code class="language-plaintext highlighter-rouge">OS::has_feature()&lt;/code> skipping custom features (&lt;a href="https://github.com/godotengine/godot/pull/99864">GH-99864&lt;/a>).&lt;/li>
&lt;li>Core: Add temp utilities (alias &lt;code class="language-plaintext highlighter-rouge">OS::get_temp_dir()&lt;/code>, &lt;code class="language-plaintext highlighter-rouge">FileAccess::create_temp()&lt;/code>, and &lt;code class="language-plaintext highlighter-rouge">DirAccess::create_temp()&lt;/code>) (&lt;a href="https://github.com/godotengine/godot/pull/98397">GH-98397&lt;/a>).&lt;/li>
&lt;li>Editor: Extend Curve to allow for domains outside of &lt;code class="language-plaintext highlighter-rouge">[0, 1]&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/67857">GH-67857&lt;/a>).&lt;/li>
&lt;li>Editor: Implement zooming and panning in the profiler (&lt;a href="https://github.com/godotengine/godot/pull/76055">GH-76055&lt;/a>).&lt;/li>
&lt;li>Editor: Fix jumping to editor help does not scroll correctly sometimes (&lt;a href="https://github.com/godotengine/godot/pull/96449">GH-96449&lt;/a>).&lt;/li>
&lt;li>Editor: Show file names in remove files confirmation dialog (&lt;a href="https://github.com/godotengine/godot/pull/98539">GH-98539&lt;/a>).&lt;/li>
&lt;li>Editor: Add editor setting to stop the bottom panel from switching to the Stack Trace (&lt;a href="https://github.com/godotengine/godot/pull/98657">GH-98657&lt;/a>).&lt;/li>
&lt;li>Editor: Dont tint editor bottom panel icons when hovered or pressed (&lt;a href="https://github.com/godotengine/godot/pull/98765">GH-98765&lt;/a>).&lt;/li>
&lt;li>Editor: Add copy button to toast notification (&lt;a href="https://github.com/godotengine/godot/pull/98778">GH-98778&lt;/a>).&lt;/li>
&lt;li>Editor: Enable editing of controls inside viewports in editor (&lt;a href="https://github.com/godotengine/godot/pull/99401">GH-99401&lt;/a>).&lt;/li>
&lt;li>Editor: Improve appearance of external links in built-in docs (&lt;a href="https://github.com/godotengine/godot/pull/99480">GH-99480&lt;/a>).&lt;/li>
&lt;li>Editor: Make the alt selection menu available for all modes (&lt;a href="https://github.com/godotengine/godot/pull/99795">GH-99795&lt;/a>).&lt;/li>
&lt;li>Export: Ensure excluded GDExtension files are not included in &lt;code class="language-plaintext highlighter-rouge">extension_list.cfg&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/97216">GH-97216&lt;/a>).&lt;/li>
&lt;li>Export: Write text server data from memory, instead of using temporary file (&lt;a href="https://github.com/godotengine/godot/pull/99164">GH-99164&lt;/a>).&lt;/li>
&lt;li>GDExtension: Register Engine, OS, ProjectSettings, and Time singletons in time for &lt;code class="language-plaintext highlighter-rouge">INITIZATION_LEVEL_CORE&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/98862">GH-98862&lt;/a>).&lt;/li>
&lt;li>GDExtension: Support extension icons in ScriptCreateDialog (&lt;a href="https://github.com/godotengine/godot/pull/98914">GH-98914&lt;/a>).&lt;/li>
&lt;li>GDScript: Fix crash when division by zero/modulo by zero happen on vectors (&lt;a href="https://github.com/godotengine/godot/pull/95172">GH-95172&lt;/a>).&lt;/li>
&lt;li>GDScript: Improve GDScript autocompletion for methods (&lt;a href="https://github.com/godotengine/godot/pull/99102">GH-99102&lt;/a>).&lt;/li>
&lt;li>GDScript: LSP: Fix spec violations that break the VSCode outline (&lt;a href="https://github.com/godotengine/godot/pull/99295">GH-99295&lt;/a>).&lt;/li>
&lt;li>GDScript: Core: Fix built-in enum constant bindings (&lt;a href="https://github.com/godotengine/godot/pull/99424">GH-99424&lt;/a>).&lt;/li>
&lt;li>GDScript: Support tracking multiple analyzer and runtime errors in tests (&lt;a href="https://github.com/godotengine/godot/pull/99490">GH-99490&lt;/a>).&lt;/li>
&lt;li>GUI: Add a Viewport method to get automatically computed 2D stretch transform (&lt;a href="https://github.com/godotengine/godot/pull/80965">GH-80965&lt;/a>).&lt;/li>
&lt;li>GUI: Make &lt;code class="language-plaintext highlighter-rouge">FileDialog&lt;/code> filtering case insensitive (&lt;a href="https://github.com/godotengine/godot/pull/85789">GH-85789&lt;/a>).&lt;/li>
&lt;li>GUI: Make TextEdit autocompletion replace word unless Shift is held (&lt;a href="https://github.com/godotengine/godot/pull/90723">GH-90723&lt;/a>).&lt;/li>
&lt;li>GUI: Reshape and update button on oversampling change (&lt;a href="https://github.com/godotengine/godot/pull/95511">GH-95511&lt;/a>).&lt;/li>
&lt;li>GUI: Prevent infinite recursion in first &lt;code class="language-plaintext highlighter-rouge">_draw&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/97328">GH-97328&lt;/a>).&lt;/li>
&lt;li>GUI: Add theme type variations for secondary Trees and ItemLists (&lt;a href="https://github.com/godotengine/godot/pull/97884">GH-97884&lt;/a>).&lt;/li>
&lt;li>GUI: RTL: Add support for vertical alignment (&lt;a href="https://github.com/godotengine/godot/pull/97963">GH-97963&lt;/a>).&lt;/li>
&lt;li>GUI: Introduce a &lt;code class="language-plaintext highlighter-rouge">SubViewportContainer&lt;/code> config for drag-and-drop target locations (&lt;a href="https://github.com/godotengine/godot/pull/99270">GH-99270&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/99691">GH-99691&lt;/a>).&lt;/li>
&lt;li>GUI: Fix SVG font rendering (&lt;a href="https://github.com/godotengine/godot/pull/99459">GH-99459&lt;/a>).&lt;/li>
&lt;li>GUI: Add tooltip support to meta/url tag (&lt;a href="https://github.com/godotengine/godot/pull/99481">GH-99481&lt;/a>).&lt;/li>
&lt;li>Import: Generate thumbnails on imported scenes (&lt;a href="https://github.com/godotengine/godot/pull/96544">GH-96544&lt;/a>).&lt;/li>
&lt;li>Import: Blend file import: Dont keep original files when not unpacking them (&lt;a href="https://github.com/godotengine/godot/pull/96782">GH-96782&lt;/a>).&lt;/li>
&lt;li>Import: Betsy: Add BC3 and BC5 support (&lt;a href="https://github.com/godotengine/godot/pull/99537">GH-99537&lt;/a>).&lt;/li>
&lt;li>Multiplayer: Fix UID support in MultiplayerSpawner (&lt;a href="https://github.com/godotengine/godot/pull/99712">GH-99712&lt;/a>).&lt;/li>
&lt;li>Navigation: Improve &lt;code class="language-plaintext highlighter-rouge">NavMeshQueries3D::polygons_get_closest_point_info&lt;/code> performance (&lt;a href="https://github.com/godotengine/godot/pull/97928">GH-97928&lt;/a>).&lt;/li>
&lt;li>Navigation: Make NavMap objects request sync only on demand (&lt;a href="https://github.com/godotengine/godot/pull/99646">GH-99646&lt;/a>).&lt;/li>
&lt;li>Network: Add half precision floating point support to &lt;code class="language-plaintext highlighter-rouge">StreamPeer&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">FileAccess&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/97716">GH-97716&lt;/a>).&lt;/li>
&lt;li>Network: Allow disabling UPNP implementation on the Web (&lt;a href="https://github.com/godotengine/godot/pull/99597">GH-99597&lt;/a>).&lt;/li>
&lt;li>Physics: Fix &lt;code class="language-plaintext highlighter-rouge">GodotSpace3D::test_body_motion()&lt;/code> not setting &lt;code class="language-plaintext highlighter-rouge">local_shape&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/99901">GH-99901&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Fix immersive mode issue (&lt;a href="https://github.com/godotengine/godot/pull/98917">GH-98917&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Change the shortcut for Align Transform with View (&lt;a href="https://github.com/godotengine/godot/pull/94026">GH-94026&lt;/a>).&lt;/li>
&lt;li>Porting: Unix: Dont create world-writable files when safe save is enabled (&lt;a href="https://github.com/godotengine/godot/pull/96399">GH-96399&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Fix restoring fullscreen window (&lt;a href="https://github.com/godotengine/godot/pull/98631">GH-98631&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Fix Inspector tooltips blinking on Windows (&lt;a href="https://github.com/godotengine/godot/pull/99988">GH-99988&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Improve frame pacing by busy waiting as needed (&lt;a href="https://github.com/godotengine/godot/pull/99833">GH-99833&lt;/a>).&lt;/li>
&lt;li>Porting: Implement &lt;code class="language-plaintext highlighter-rouge">DisplayServer.beep&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/99371">GH-99371&lt;/a>).&lt;/li>
&lt;li>Rendering: Optimize &lt;code class="language-plaintext highlighter-rouge">RenderForwardClustered::_setup_render_pass_uniform_set&lt;/code> by reducing Vector allocations (&lt;a href="https://github.com/godotengine/godot/pull/94368">GH-94368&lt;/a>).&lt;/li>
&lt;li>Rendering: Deprecate the pointless unsafe threading model for rendering (&lt;a href="https://github.com/godotengine/godot/pull/98383">GH-98383&lt;/a>).&lt;/li>
&lt;li>Rendering: Automatically resolve initial and final action for draw lists (&lt;a href="https://github.com/godotengine/godot/pull/98670">GH-98670&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix occlusion culling for double builds by enforcing float conversion for Embree (&lt;a href="https://github.com/godotengine/godot/pull/98770">GH-98770&lt;/a>).&lt;/li>
&lt;li>Rendering: Mask out shadows on CanvasItems that dont have a matching &lt;code class="language-plaintext highlighter-rouge">item_shadow_mask&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/98835">GH-98835&lt;/a>).&lt;/li>
&lt;li>Rendering: Add lightmap bake cancelling (&lt;a href="https://github.com/godotengine/godot/pull/99483">GH-99483&lt;/a>).&lt;/li>
&lt;li>Rendering: Add VoxelGI bake cancelling and progress UI improvement (&lt;a href="https://github.com/godotengine/godot/pull/99562">GH-99562&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix ReflectionProbe AABB (&lt;a href="https://github.com/godotengine/godot/pull/99802">GH-99802&lt;/a>).&lt;/li>
&lt;li>Shaders: Allow &lt;code class="language-plaintext highlighter-rouge">SCREEN_UV&lt;/code> to be used in light function of spatial shader (&lt;a href="https://github.com/godotengine/godot/pull/94981">GH-94981&lt;/a>).&lt;/li>
&lt;li>Shaders: VisualShader: Add LinearToSRGB and SRGBToLinear to ColorFunc node (&lt;a href="https://github.com/godotengine/godot/pull/97388">GH-97388&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>114 contributors&lt;/strong> submitted &lt;strong>259 improvements&lt;/strong> for this new snapshot. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-dev6">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the previous 4.4-dev5 snapshot.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/1f47e4c4e3a09a422e96880a7918d986dd575a63">&lt;code class="language-plaintext highlighter-rouge">1f47e4c4e&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-dev6">
Download Godot 4.4 dev6
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-4-dev-6.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev6/Godot_v4.4-dev6_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev6/Godot_v4.4-dev6_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev6/Godot_v4.4-dev6_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev6/Godot_v4.4-dev6_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev6/Godot_v4.4-dev6_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-dev6/Godot_v4.4-dev6_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-dev6">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>See also &lt;a href="https://docs.godotengine.org/en/latest/tutorials/scripting/c_sharp/index.html#c-platform-support">C# platform support&lt;/a>.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. 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.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>With every release we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;p>Here are some known regressions introduced in this snapshot:&lt;/p>
&lt;ul>
&lt;li>Occlusion culling randomly occluding things completely in the open (&lt;a href="https://github.com/godotengine/godot/issues/100032">GH-10032&lt;/a>).
&lt;ul>
&lt;li>A pull request is already open to fix this in the next dev snapshot (&lt;a href="https://github.com/godotengine/godot/pull/100060">GH-100060&lt;/a>).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Error “Manifold creation from mesh failed” with Plane and Quad shapes, which do not get rendered (&lt;a href="https://github.com/godotengine/godot/issues/100014">GH-100014&lt;/a>).
&lt;ul>
&lt;li>Planes and Quads cannot be used with CSG, and just seemed to be usable previously. Well improve the usability so they cannot be selected for CSGMesh3D. Instead, use MeshInstance3D to place Planes and Quads.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>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).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>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 or full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a> platform managed by &lt;a href="https://godot.foundation/">Godot Foundation&lt;/a>. There are also several &lt;a href="/donate">alternative ways to donate&lt;/a> which you may find more suitable.&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry></feed>