Files
godot-website/rss.xml
2025-03-14 11:33:39 +00:00

3002 lines
263 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"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Godot Engine Official</title><link/><description/><atom:link href="https://godotengine.org/rss.xml" rel="self" type="application/rss+xml"/><item><title>Release candidate: Godot 4.2.1 RC 1</title><link>https://godotengine.org/article/release-candidate-godot-4-4-1-rc-1/</link><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><description>&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></description><category>Pre-release</category><guid>https://godotengine.org/article/release-candidate-godot-4-4-1-rc-1/</guid><dc:creator>Rémi Verschelde</dc:creator><pubDate>Fri, 14 Mar 2025 11:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/release-candidate-godot-4-4-1-rc-1.webp</image></item><item><title>Godot XR update - February 2025</title><link>https://godotengine.org/article/godot-xr-update-feb-2025/</link><summary>New plugin releases for Godot XR.</summary><description>&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></description><category>Progress Report</category><guid>https://godotengine.org/article/godot-xr-update-feb-2025/</guid><dc:creator>Bastiaan Olij</dc:creator><pubDate>Thu, 06 Mar 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/february-2025-update-godot-xr-community.webp</image></item><item><title>Godot 4.4, a unified experience</title><link>https://godotengine.org/article/godot-4-4-a-unified-experience/</link><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><description/><category>Release</category><guid>https://godotengine.org/article/godot-4-4-a-unified-experience/</guid><dc:creator>Godot contributors</dc:creator><pubDate>Mon, 03 Mar 2025 15:45:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/godot-4-4-a-unified-experience.webp</image></item><item><title>Release candidate: Godot 4.4 RC 3</title><link>https://godotengine.org/article/release-candidate-godot-4-4-rc-3/</link><summary>We said "final" for the previous release candidate, but good things come in threes, don't they?</summary><description>&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></description><category>Pre-release</category><guid>https://godotengine.org/article/release-candidate-godot-4-4-rc-3/</guid><dc:creator>Rémi Verschelde</dc:creator><pubDate>Fri, 28 Feb 2025 17:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/release-candidate-godot-4-4-rc-3.webp</image></item><item><title>Release candidate: Godot 4.4 RC 2</title><link>https://godotengine.org/article/release-candidate-godot-4-4-rc-2/</link><summary>With a stable release imminent, join us for one final round of testing.</summary><description>&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></description><category>Pre-release</category><guid>https://godotengine.org/article/release-candidate-godot-4-4-rc-2/</guid><dc:creator>Thaddeus Crews</dc:creator><pubDate>Wed, 26 Feb 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/release-candidate-godot-4-4-rc-2.webp</image></item><item><title>Godot Showcase - Museum of All Things</title><link>https://godotengine.org/article/museum-of-all-things/</link><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><description>&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></description><category>Showcase</category><guid>https://godotengine.org/article/museum-of-all-things/</guid><dc:creator>Emi</dc:creator><pubDate>Tue, 25 Feb 2025 22:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/moat_logo_large_colorful_over_screenshot.webp</image></item><item><title>Release candidate: Godot 4.4 RC 1</title><link>https://godotengine.org/article/release-candidate-godot-4-4-rc-1/</link><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><description>&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></description><category>Pre-release</category><guid>https://godotengine.org/article/release-candidate-godot-4-4-rc-1/</guid><dc:creator>Rémi Verschelde</dc:creator><pubDate>Fri, 21 Feb 2025 20:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/release-candidate-godot-4-4-rc-1.webp</image></item><item><title>Dev snapshot: Godot 4.4 beta 4</title><link>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-4/</link><summary>The 4.4 beta phase nears its end!</summary><description>&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></description><category>Pre-release</category><guid>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-4/</guid><dc:creator>Thaddeus Crews</dc:creator><pubDate>Mon, 17 Feb 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/dev-snapshot-godot-4-4-beta-4.webp</image></item><item><title>Dev snapshot: Godot 4.4 beta 3</title><link>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-3/</link><summary>Picking up the pace!</summary><description>&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></description><category>Pre-release</category><guid>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-3/</guid><dc:creator>Thaddeus Crews</dc:creator><pubDate>Fri, 07 Feb 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/dev-snapshot-godot-4-4-beta-3.webp</image></item><item><title>Dev snapshot: Godot 4.4 beta 2</title><link>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-2/</link><summary>The bugs don't stand a chance!</summary><description>&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></description><category>Pre-release</category><guid>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-2/</guid><dc:creator>Thaddeus Crews</dc:creator><pubDate>Thu, 30 Jan 2025 12:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/dev-snapshot-godot-4-4-beta-2.webp</image></item><item><title>2024 Cherry-picks</title><link>https://godotengine.org/article/2024-cherry-picks/</link><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><description>&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></description><category>Showcase</category><guid>https://godotengine.org/article/2024-cherry-picks/</guid><dc:creator>Nat</dc:creator><pubDate>Tue, 28 Jan 2025 17:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/2024-cherry-picks/2024-cherry-picks.webp</image></item><item><title>Our first GodotCon in the US - Save the date!</title><link>https://godotengine.org/article/godotcon-2025/</link><summary>Want to join? Boston 5th - 7th of May. Call for speakers and sponsors open!</summary><description>&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></description><category>Events</category><guid>https://godotengine.org/article/godotcon-2025/</guid><dc:creator>Emi</dc:creator><pubDate>Tue, 21 Jan 2025 18:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/godotcon-boston-2025.webp?1</image></item><item><title>Dev snapshot: Godot 4.4 beta 1</title><link>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-1/</link><summary>Godot 4.4 is on its way! Please lend a hand by testing this beta release and reporting your findings.</summary><description>&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></description><category>Pre-release</category><guid>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-1/</guid><dc:creator>Godot contributors</dc:creator><pubDate>Thu, 16 Jan 2025 18:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/dev-snapshot-godot-4-4-beta-1.webp</image></item><item><title>UID changes coming to Godot 4.4</title><link>https://godotengine.org/article/uid-changes-coming-to-godot-4-4/</link><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><description>&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></description><category>Progress Report</category><guid>https://godotengine.org/article/uid-changes-coming-to-godot-4-4/</guid><dc:creator>Hugo Locurcio</dc:creator><pubDate>Wed, 15 Jan 2025 14:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/uid-changes-coming-to-godot-4-4.webp</image></item><item><title>Godot C# packages move to .NET 8</title><link>https://godotengine.org/article/godotsharp-packages-net8/</link><summary>On moving to the latest .NET LTS release, and what it means for users.</summary><description>&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></description><category>Progress Report</category><guid>https://godotengine.org/article/godotsharp-packages-net8/</guid><dc:creator>Raul Santos</dc:creator><pubDate>Thu, 02 Jan 2025 17:00:00 +0000</pubDate><image>https://godotengine.org/storage/blog/covers/godotsharp-packages-net8.webp</image></item></channel></rss>