Files
godot-website/atom.xml
2025-06-17 11:31:04 +00:00

4919 lines
388 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

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

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

<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title>Godot Engine Official</title><link href="https://godotengine.org/atom.xml" rel="self"/><link href="https://godotengine.org/"/><updated>2025-06-17T11:30:24+00:00</updated><id>https://godotengine.org/</id><entry><title>A new convention to look forward to: GodotFest - Save the Date!</title><link href="https://godotengine.org/article/godotfest-2025/"/><updated>2025-06-17T00:00:00+00:00</updated><id>https://godotengine.org/article/godotfest-2025/</id><summary>Introducing the second annual Godot convention: GodotFest 25 - GodotCon Europe!</summary><content type="html">&lt;p>Were excited to announce a new annual, independent convention centered around Godot: &lt;strong>GodotFest&lt;/strong>!&lt;/p>
&lt;p>What does this mean? It means well now have another annual Godot event to look forward to! Godot&lt;em>Con&lt;/em>, will still be organized
by the Godot Foundation in 2026, and it will continue to travel the world, offering a great starting point for anyone curious about
the engine.&lt;/p>
&lt;p>Godot&lt;em>Fest&lt;/em>, meanwhile, will be held in the same location each year, always around the same time of the year. Since its aimed more
at a professional audience, itll take place during the workweek to make business travel more convenient.&lt;/p>
&lt;p>This year, the GodotFest will be the GodotCon in Europe. Starting next year, you can expect to have at least three events: GodotCon North America, GodotCon Europe and GodotFest.&lt;/p>
&lt;p>GodotFest is organized by the Munich Godot user group, the same team behind the GodotCon 23 - thats why it will take place in &lt;strong>Munich, Germany, on the 11th and 12th of November, at Smartvillage Bogenhausen&lt;/strong>.&lt;/p>
&lt;p>These two days will be filled with many talks and workshops vetted by our talented submission committee
and plenty of chances to meet new people. We strive to create a professional event in a beautiful,
light and modern venue with opportunities to:&lt;/p>
&lt;ul>
&lt;li>connect with others in the Godot ecosystem&lt;/li>
&lt;li>pitch your games and&lt;/li>
&lt;li>enjoy great food and drinks throughout the event (included in your ticket)&lt;/li>
&lt;/ul>
&lt;h2 id="tickets">Tickets!&lt;/h2>
&lt;p>The ticket shop is now open at &lt;a href="https://25.godotfest.com/">https://25.godotfest.com/&lt;/a>, get your tickets with
an early supporter discount until the end of June!&lt;/p>
&lt;h2 id="call-for-speakers-at-godotfest">Call for Speakers at GodotFest&lt;/h2>
&lt;p>Would you like to give a talk, share your knowledge in a workshop, or perhaps exhibit your game?
Were looking for all kinds of submissions around Godot and game development in general!&lt;/p>
&lt;p>&lt;a href="https://pretalx.godotfest.com/godotfest-25/">➡️ Call for submissions&lt;/a>, deadline: July 17th, 2025&lt;/p>
&lt;p>A big thank you ahead of time to our lovely submission committee,
for helping us curate and create a diverse and interesting roster of submissions!&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://godotsteam.com/">Gramps Garcia&lt;/a>, GodotSteam Creator / Maintainer&lt;/li>
&lt;li>&lt;a href="https://bsky.app/profile/rothiotome.bsky.social">Rothio Tome&lt;/a>, Twitch development streamer and lead developer @ Patattie Games&lt;/li>
&lt;li>Ariel Manzur, Godot Engine Co-founder&lt;/li>
&lt;li>&lt;a href="https://bsky.app/profile/passivestar.bsky.social">passivestar&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.youtube.com/LucyLavend">LucyLavend&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.linkedin.com/in/kerstin-pfaffinger/">Kerstin Pfaffinger&lt;/a>, GodotFest Co-founder, master student @ TUM&lt;/li>
&lt;li>&lt;a href="https://dyrda.page/">Daniel Dyrda&lt;/a>, Game Design Engineer and Researcher @ TUM&lt;/li>
&lt;li>&lt;a href="https://youtube.com/bitbraindev">Miguel aka bitbrain&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>We are also actively looking for sponsors to support GodotFest.
If you or your company would be interested in learning more about sponsorship opportunities,
please reach out to &lt;a href="mailto:contact@godotfest.com?subject=Sponsorhip inquiry">contact@godotfest.com&lt;/a>.&lt;/p>
&lt;p>Follow the &lt;a href="https://taplink.cc/godotfest">GodotFest socials&lt;/a> to never miss any news,
and &lt;a href="https://discord.com/invite/DD95reBjzM">join the Discord&lt;/a> to stay in touch.&lt;/p>
&lt;p>See you there!&lt;/p>
&lt;h2 id="overview">Overview&lt;/h2>
&lt;table>
&lt;tbody>
&lt;tr>
&lt;td>📅 Dates&lt;/td>
&lt;td>11th, 12th of November&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>🕑 Time&lt;/td>
&lt;td>09:30 - 18:00 CEST&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>🌍 Location&lt;/td>
&lt;td>Munich, Germany&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>📍 Venue&lt;/td>
&lt;td>Smartvillage Bogenhausen &lt;br />&lt;a href="https://www.openstreetmap.org/node/12025157887">Rosenkavalierplatz 13, 81925 Munich&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>🌐 Socials + News&lt;/td>
&lt;td>&lt;a href="https://taplink.cc/godotfest">https://taplink.cc/godotfest&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>💬 Discord&lt;/td>
&lt;td>&lt;a href="https://discord.com/invite/DD95reBjzM">https://discord.com/invite/DD95reBjzM&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></content><author><name>GodotFest Team</name></author><category term="Events"/></entry><entry><title>Upcoming (serious) Web performance boost</title><link href="https://godotengine.org/article/upcoming-serious-web-performance-boost/"/><updated>2025-06-05T18:00:00+00:00</updated><id>https://godotengine.org/article/upcoming-serious-web-performance-boost/</id><summary>Compiling the Godot Engine with WASM SIMD support truly is a game changer.</summary><content type="html">&lt;p>Sometimes, just adding a compiler flag can yield significant performance boosts. &lt;a href="https://github.com/godotengine/godot/pull/106319">And that just happened.&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://caniuse.com/wasm-simd">For about two years now&lt;/a>, all major browsers have supported WASM (&lt;a href="https://en.wikipedia.org/wiki/WebAssembly">WebAssembly&lt;/a>) SIMD. SIMD stands for &lt;a href="https://en.wikipedia.org/wiki/Single_instruction,_multiple_data">“Single instruction, multiple data”&lt;/a> and is a technology that permits CPUs to do some parallel computation, often speeding up the whole program. And thats exactly why we tried it out recently.&lt;/p>
&lt;p>We got positive results.&lt;/p>
&lt;h2 id="the-need-for-performance-on-the-web">The need for performance on the Web&lt;/h2>
&lt;p>The Web platform is often overlooked as a viable target, because of its less-than-ideal environment and its perceived poor performance. And the perception is somewhat right: the Web environment has a lot of security-related quirks to take into account—the user needs to interact with a game frame before the browser allows it to play any sound&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1&lt;/a>&lt;/sup>. Also, due to bandwidth and compatibility reasons, you rarely see high-fidelity games being played on a browser. Performance is better achieved when running software natively on the operating system.&lt;/p>
&lt;p>But dont underestimate the potential of the Web platform. As I explained in broad terms at the talk I gave at the last GodotCon Boston 2025, the Web has caught up a lot since the days of Flash games. Not only are there more people playing Web games every year, but standards and browsers improve every year in functionality and in performance.&lt;/p>
&lt;p>And thats why we are interested in using WASM SIMD.&lt;/p>
&lt;h2 id="wasm-simd-benchmarks">WASM SIMD Benchmarks&lt;/h2>
&lt;p>Our resident benchmark expert Hugo Locurcio (better known as &lt;a href="https://github.com/Calinou/">Calinou&lt;/a>) ran the numbers for us on a stress test I made. We wanted to compare standard builds to builds with WASM SIMD enabled.&lt;/p>
&lt;div class="note">
&lt;p>&lt;strong>Note:&lt;/strong> You may try to replicate his results, but be aware that he has a beast of a machine. Here are his PCs specifications:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>CPU:&lt;/strong> Intel Core i9-13900K&lt;/li>
&lt;li>&lt;strong>GPU:&lt;/strong> NVIDIA GeForce RTX 4090&lt;/li>
&lt;li>&lt;strong>RAM:&lt;/strong> 64 GB (2×32 GB DDR5-5800 CL30)&lt;/li>
&lt;li>&lt;strong>SSD:&lt;/strong> Solidigm P44 Pro 2 TB&lt;/li>
&lt;li>&lt;strong>OS:&lt;/strong> Linux (Fedora 42)&lt;/li>
&lt;/ul>
&lt;/div>
&lt;p>I built a Jolt physics stress test from a scene initially made by &lt;a href="https://bsky.app/profile/passivestar.bsky.social">passivestar&lt;/a>. By spawning more and more barrels into the contraption, we can easily test the performance difference between the WASM SIMD build and the other.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: center"> &lt;/th>
&lt;th style="text-align: center">Without WASM SIMD&lt;/th>
&lt;th style="text-align: center">With WASM SIMD&lt;/th>
&lt;th style="text-align: center">Improvement (approx.)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: center">Test links&lt;/td>
&lt;td style="text-align: center">&lt;a href="https://adamscott.github.io/godot-physics-demo-without-simd/" target="_blank">Link&lt;/a>&lt;/td>
&lt;td style="text-align: center">&lt;a href="https://adamscott.github.io/godot-physics-demo-with-simd/" target="_blank">Link&lt;/a>&lt;/td>
&lt;td style="text-align: center">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">Firefox 138&lt;br />(“+100 barrels” 3 times)&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/upcoming-web-serious-performance-boost/calinou-firefox138-3times-without-wasm-simd.webp" alt="Firefox 138 &amp;quot;+ 100 barrels&amp;quot; 3 times without SIMD" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/upcoming-web-serious-performance-boost/calinou-firefox138-3times-with-wasm-simd.webp" alt="Firefox 138 &amp;quot;+ 100 barrels&amp;quot; 6 times without SIMD" />&lt;/td>
&lt;td style="text-align: center">&lt;strong>2×&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">Firefox 138&lt;br />(“+100 barrels” 6 times)&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/upcoming-web-serious-performance-boost/calinou-firefox138-6times-without-wasm-simd.webp" alt="Firefox 138 &amp;quot;+ 100 barrels&amp;quot; 3 times without SIMD" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/upcoming-web-serious-performance-boost/calinou-firefox138-6times-with-wasm-simd.webp" alt="Firefox 138 &amp;quot;+ 100 barrels&amp;quot; 6 times without SIMD" />&lt;/td>
&lt;td style="text-align: center">&lt;strong>10.17×&lt;/strong>*&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">Chromium 134&lt;br />(“+100 barrels” 3 times)&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/upcoming-web-serious-performance-boost/calinou-chromium134-3times-without-wasm-simd.webp" alt="Chromium 134 &amp;quot;+ 100 barrels&amp;quot; 3 times without SIMD" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/upcoming-web-serious-performance-boost/calinou-chromium134-3times-with-wasm-simd.webp" alt="Chromium 134 &amp;quot;+ 100 barrels&amp;quot; 6 times without SIMD" />&lt;/td>
&lt;td style="text-align: center">&lt;strong>1.37×&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">Chromium 134&lt;br />(“+100 barrels” 6 times)&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/upcoming-web-serious-performance-boost/calinou-chromium134-6times-without-wasm-simd.webp" alt="Chromium 134 &amp;quot;+ 100 barrels&amp;quot; 3 times without SIMD" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/upcoming-web-serious-performance-boost/calinou-chromium134-6times-with-wasm-simd.webp" alt="Chromium 134 &amp;quot;+ 100 barrels&amp;quot; 6 times without SIMD" />&lt;/td>
&lt;td style="text-align: center">&lt;strong>14.17×&lt;/strong>*&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;em>*Please note that once the physics engine enters a “spiral of death”, it is common for the framerate to drop to single digits, SIMD or not. These tests dont prove 10× to 15× CPU computing speed improvements, but rather that games will be more resilient to framerate drops on the same machine in the same circumstances. The 1.5× to 2× numbers are more representative here of the performance gains by WASM SIMD.&lt;/em>&lt;/p>
&lt;h2 id="what-it-means-for-your-games">What it means for your games&lt;/h2>
&lt;p>Starting with 4.5 dev 5, you can expect your Web games to run a little bit more smoothly, without having to do anything. Especially when things get chaotic (for your CPU). It isnt a silver bullet for poorly optimized games, but it will help nonetheless. Also, note that it cannot do anything for GPU rendering bottlenecks.&lt;/p>
&lt;p>Be aware that the stress tests are meant by nature to only test the worst case scenarios, so you may not see such large improvements in normal circumstances. But its nice to see such stark improvements when the worst happens.&lt;/p>
&lt;h2 id="availability">Availability&lt;/h2>
&lt;p>From here on out, the 4.5 release official templates will only support WebAssembly SIMD-compatible browsers in order to keep the template sizes small. We generally aim to maintain compatibility with the oldest devices we can. But in this case, the performance gains are too large to ignore and the chances of users having browsers that are that far out of date is too small relative to the potential benefits.&lt;/p>
&lt;p>If you need to use non-SIMD templates, dont fret. You can always &lt;a href="https://docs.godotengine.org/en/stable/contributing/development/compiling/index.html">build&lt;/a> the Godot Editor and the engine templates without WebAssembly SIMD support by using the &lt;code class="language-plaintext highlighter-rouge">wasm_simd=no&lt;/code> build option.&lt;/p>
&lt;h2 id="whats-next">Whats next?&lt;/h2>
&lt;p>As I wrote in &lt;a href="/article/live-from-godotcon-boston-web-dotnet-prototype/">my last blog post&lt;/a>, were currently working very hard to make C#/.NET exports a reality. We do have &lt;a href="https://lab.godotengine.org/godot-dotnet-web/">a promising prototype&lt;/a>, we just need to make sure that its production-ready.&lt;/p>
&lt;p>I also mentioned in that article that I wanted to concentrate on improving our asset loading game. Preloading an entire game before even starting it hinders the ability to use Godot for commercial Web games. Once something is implemented to improve that issue, count on me to share the news with you.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;ol>
&lt;li id="fn:1">
&lt;p>Its either that, or we return to the old days of spam-webpages using the &lt;a href="https://www.youtube.com/watch?v=WckVsX5-uyE">“Congratulations, you won!”&lt;/a> sound effect when you least expect it. &lt;a href="#fnref:1" class="reversefootnote" role="doc-backlink">&amp;#8617;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></content><author><name>Adam Scott</name></author><category term="Progress Report"/></entry><entry><title>Dev snapshot: Godot 4.5 dev 5</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-5-dev-5/"/><updated>2025-06-02T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-5-dev-5/</id><summary>The cool chill of the feature freeze approaches…</summary><content type="html">&lt;p>Brrr… Do you feel that? Thats the cold front of the feature freeze just around the corner. Its not upon us &lt;em>just&lt;/em> yet, but this is likely to be our final development snapshot of the 4.5 release cycle. As we enter the home stretch of new features, bugs are naturally going to follow suit, meaning bug reports and feedback will be especially important for a smooth beta timeframe.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.5.dev5/">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://www.walaber.com/replicube">&lt;strong>Replicube&lt;/strong>&lt;/a>, &lt;em>a programming puzzle game where you write code to recreate voxelized objects. It is developed by &lt;a href="https://www.walaber.com/">Walaber Entertainment LLC&lt;/a> (&lt;a href="https://bsky.app/profile/walaber.com">Bluesky&lt;/a>, &lt;a href="https://twitter.com/walaber">Twitter&lt;/a>). You can get the game on &lt;a href="https://store.steampowered.com/app/3401490/Replicube/?curator_clanid=41324400">Steam&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>In case you missed them, see the &lt;a href="/article/dev-snapshot-godot-4-5-dev-1/">4.5 dev 1&lt;/a>, &lt;a href="/article/dev-snapshot-godot-4-5-dev-2/">4.5 dev 2&lt;/a>, &lt;a href="/article/dev-snapshot-godot-4-5-dev-3/">4.5 dev 3&lt;/a>, and &lt;a href="/article/dev-snapshot-godot-4-5-dev-4/">4.5 dev 4&lt;/a> release notes for an overview of some key features which were already in those snapshots, and are therefore still available for testing in dev 5.&lt;/p>
&lt;h3 id="native-visionos-support">Native visionOS support&lt;/h3>
&lt;p>Normally, our featured highlights in these development blogs come from long-time contributors. This makes sense of course, as its generally those users that have the familiarity necessary for major changes or additions that are commonly used for these highlights. Thats why it might surprise you to hear that visionOS support comes to us from &lt;a href="https://github.com/rsanchezsaez">Ricardo Sanchez-Saez&lt;/a>, whose pull request &lt;a href="https://github.com/godotengine/godot/pull/105628">GH-105628&lt;/a> is his &lt;em>very first&lt;/em> contribution to the engine! It might &lt;em>not&lt;/em> surprise you to hear that Ricardo is part of the visionOS engineering team at Apple, which certainly helps get his foot in the door, but that still makes visionOS the first officially-supported platform integration in about a decade.&lt;/p>
&lt;p>For those unfamiliar, visionOS is Apples XR environment. Were no strangers to XR as a concept (see our recent &lt;a href="/article/godot-xr-update-mar-2025/">XR blogpost&lt;/a> highlighting the latest &lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025">Godot XR Game Jam&lt;/a>), but XR platforms are as distinct from one another as traditional platforms. visionOS users have expressed a strong interest in integrating with our ever-growing XR community, and now we can make that happen. See you all in the next XR Game Jam!&lt;/p>
&lt;h3 id="gdscript-abstract-classes">GDScript: Abstract classes&lt;/h3>
&lt;p>While the Godot Engine utilizes abstract classes—a class that cannot be directly instantiated—frequently, this was only ever supported internally. Thanks to the efforts of &lt;a href="https://github.com/aaronfranke">Aaron Franke&lt;/a>, this paradigm is now available to GDScript users (&lt;a href="https://github.com/godotengine/godot/pull/67777">GH-67777&lt;/a>). Now if a user wants to introduce their own abstract class, they merely need to declare it via the new &lt;code class="language-plaintext highlighter-rouge">abstract&lt;/code> keyword:&lt;/p>
&lt;div class="language-gdscript highlighter-rouge">&lt;div class="highlight">&lt;pre class="highlight">&lt;code>&lt;span class="n">abstract&lt;/span> &lt;span class="k">class_name&lt;/span> &lt;span class="n">MyAbstract&lt;/span> &lt;span class="k">extends&lt;/span> &lt;span class="n">Node&lt;/span>
&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/abstract-error.webp" alt="Abstract error" />&lt;/p>
&lt;p>The purpose of an abstract class is to create a baseline for other classes to derive from:&lt;/p>
&lt;div class="language-gdscript highlighter-rouge">&lt;div class="highlight">&lt;pre class="highlight">&lt;code>&lt;span class="k">class_name&lt;/span> &lt;span class="n">ExtendsMyAbstract&lt;/span> &lt;span class="k">extends&lt;/span> &lt;span class="n">MyAbstract&lt;/span>
&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/abstract-derived.webp" alt="Abstract derived" />&lt;/p>
&lt;h3 id="shader-baker">Shader baker&lt;/h3>
&lt;p>From the technical gurus behind implementing &lt;a href="/article/dev-snapshot-godot-4-4-dev-4/#ubershaders-and-pipeline-pre-compilation-and-dedicated-transfer-queues">ubershaders&lt;/a>, &lt;a href="https://github.com/DarioSamo">Darío Samo&lt;/a> and &lt;a href="https://github.com/RandomShaper">Pedro J. Estébanez&lt;/a> bring us another miracle of rendering via &lt;a href="https://github.com/godotengine/godot/pull/102552">GH-102552&lt;/a>: shader baker exporting. This is an optional feature that can be enabled at export time to speed up shader compilation massively. This feature works with ubershaders automatically without any work from the user. Using shader baking is strongly recommended when targeting Apple devices or D3D12 since it makes the biggest difference there (over &lt;strong>20× decrease&lt;/strong> in load times in the TPS demo)!&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/shader-baker.webp" alt="Shader baker" />&lt;/p>
&lt;p>&lt;strong>Before:&lt;/strong>&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-5/shader-baker-before.webm?1" type="video/webm" />
&lt;/video>
&lt;p>&lt;strong>After:&lt;/strong>&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-5/shader-baker-after.webm?1" type="video/webm" />
&lt;/video>
&lt;p>However, it comes with tradeoffs:&lt;/p>
&lt;ol>
&lt;li>Export time will be much longer.&lt;/li>
&lt;li>Build size will be much larger since the baked shaders can take up a lot of space.&lt;/li>
&lt;li>We have removed several MoltenVK bug workarounds from the Forward+ shader, therefore we no longer guarantee support for the Forward+ renderer on Intel Macs. If you are targeting Intel Macs, you should use the Mobile or Compatibility renderers.&lt;/li>
&lt;li>Baking for Vulkan can be done from any device, but baking for D3D12 needs to be done from a Windows device and baking for Apple &lt;code class="language-plaintext highlighter-rouge">.metallib&lt;/code> requires a Metal compiler (macOS with Xcode / Command Line Tools installed).&lt;/li>
&lt;/ol>
&lt;h3 id="web-webassembly-simd-support">Web: WebAssembly SIMD support&lt;/h3>
&lt;p>As you might recall, Godot 4.0 initially released under the assumption that multi-threaded web support would become the standard, and only supported that format for web builds. This assumption unfortunately proved to be wishful thinking, and was &lt;a href="/article/dev-snapshot-godot-4-3-dev-3/#single-threaded-web-exports">reverted in 4.3&lt;/a> by allowing for single-threaded builds once more. However, this doesnt mean that these single-threaded environments are inherently incapable of parallel processing; it just requires alternative implementations. One such implementation, &lt;abbr title="Single instruction, multiple data">&lt;a href="https://en.wikipedia.org/wiki/Single_instruction,_multiple_data">SIMD&lt;/a>&lt;/abbr>, is a perfect candidate thanks to its support across &lt;a href="https://caniuse.com/wasm-simd">all major browsers&lt;/a>. To that end, web-wiz &lt;a href="https://github.com/adamscott">Adam Scott&lt;/a> has taken to integrating this implementation for our web builds by default (&lt;a href="https://github.com/godotengine/godot/pull/106319">GH-106319&lt;/a>).&lt;/p>
&lt;h3 id="inline-color-pickers">Inline color pickers&lt;/h3>
&lt;p>While its always been possible to see what kind of variable is assigned to an exported color in the inspector, some users have expressed a keen interest in allowing for this functionality within the script editor itself. This is because it would mean seeing what kind of color is represented by a variable without it needing to be exposed, as well as making it more intuitive at a glance as to what color a name or code corresponds to. &lt;a href="https://github.com/dugramen">Koliur Rahman&lt;/a> has blessed us with this quality-of-life goodness, which adds an inline color picker &lt;a href="https://github.com/godotengine/godot/pull/105724">GH-105724&lt;/a>. Now no matter where the color is declared, users will be able to immediately and intuitively know what is actually represented in a non-intrusive manner.&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/inline-color-picker.webp" alt="Inline color picker" />&lt;/p>
&lt;h3 id="rendering-goodies">Rendering goodies&lt;/h3>
&lt;p>The renderer got a fair amount of love this snapshot; not from any one PR, but rather a multitude of community members bringing some long-awaited features to light. &lt;a href="https://github.com/RGDTAB">Raymond DiDonato&lt;/a> helped SMAA 1x make its transition from addon to fully-fledged engine feature (&lt;a href="https://github.com/godotengine/godot/pull/102330">GH-102330&lt;/a>). &lt;a href="https://github.com/LunaCapra">Capry&lt;/a> brings bent normal maps to further enhance specular occlusion and indirect lighting (&lt;a href="https://github.com/godotengine/godot/pull/89988">GH-89988&lt;/a>). Our very own &lt;a href="https://github.com/clayjohn">Clay John&lt;/a> converted our Compatibility backend to use a fragment shader copy instead of a blit copy, working around common sample rate issues on mobile devices (&lt;a href="https://github.com/godotengine/godot/pull/106267">GH-106267&lt;/a>). More technical information on these rendering changes can be found in their associated PRs.&lt;/p>
&lt;p>&lt;strong>SMAA comparison:&lt;/strong>&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: center">Off&lt;/th>
&lt;th style="text-align: center">On&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/smaa-off-1.webp" alt="SMAA off 1" width="350" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/smaa-on-1.webp" alt="SMAA on 1" width="350" />&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/smaa-off-2.webp" alt="SMAA off 2" width="350" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/smaa-on-2.webp" alt="SMAA on 2" width="350" />&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>Bent normal map comparison:&lt;/strong>&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: center">Before&lt;/th>
&lt;th style="text-align: center">After&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-before-1.webp" alt="Bent normals before 1" width="350" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-after-1.webp" alt="Bent normals after 1" width="350" />&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-before-2.webp" alt="Bent normals before 2" width="350" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-after-2.webp" alt="Bent normals after 2" width="350" />&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-before-3.webp" alt="Bent normals before 3" width="350" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-after-3.webp" alt="Bent normals after 3" width="350" />&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="and-more">And more!&lt;/h3>
&lt;p>There are too many exciting changes to list them all here, but heres a curated selection:&lt;/p>
&lt;ul>
&lt;li>Animation: Add alphabetical sorting to Animation Player (&lt;a href="https://github.com/godotengine/godot/pull/103584">GH-103584&lt;/a>).&lt;/li>
&lt;li>Animation: Add animation filtering to animation editor (&lt;a href="https://github.com/godotengine/godot/pull/103130">GH-103130&lt;/a>).&lt;/li>
&lt;li>Audio: Implement seek operation for Theora video files, improve multi-channel audio resampling (&lt;a href="https://github.com/godotengine/godot/pull/102360">GH-102360&lt;/a>).&lt;/li>
&lt;li>Core: Add &lt;code class="language-plaintext highlighter-rouge">--scene&lt;/code> command line argument (&lt;a href="https://github.com/godotengine/godot/pull/105302">GH-105302&lt;/a>).&lt;/li>
&lt;li>Core: Overhaul resource duplication (&lt;a href="https://github.com/godotengine/godot/pull/100673">GH-100673&lt;/a>).&lt;/li>
&lt;li>Core: Use Grisu2 algorithm in &lt;code class="language-plaintext highlighter-rouge">String::num_scientific&lt;/code> to fix serializing (&lt;a href="https://github.com/godotengine/godot/pull/98750">GH-98750&lt;/a>).&lt;/li>
&lt;li>Editor: Add “Quick Load” button to &lt;code class="language-plaintext highlighter-rouge">EditorResourcePicker&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104490">GH-104490&lt;/a>).&lt;/li>
&lt;li>Editor: Add &lt;code class="language-plaintext highlighter-rouge">PROPERTY_HINT_INPUT_NAME&lt;/code> for use with &lt;code class="language-plaintext highlighter-rouge">@export_custom&lt;/code> to allow using input actions (&lt;a href="https://github.com/godotengine/godot/pull/96611">GH-96611&lt;/a>).&lt;/li>
&lt;li>Editor: Add named &lt;code class="language-plaintext highlighter-rouge">EditorScript&lt;/code>s to the command palette (&lt;a href="https://github.com/godotengine/godot/pull/99318">GH-99318&lt;/a>).&lt;/li>
&lt;li>GUI: Add file sort to FileDialog (&lt;a href="https://github.com/godotengine/godot/pull/105723">GH-105723&lt;/a>).&lt;/li>
&lt;li>I18n: Add translation preview in editor (&lt;a href="https://github.com/godotengine/godot/pull/96921">GH-96921&lt;/a>).&lt;/li>
&lt;li>Import: Add Channel Remap settings to &lt;code class="language-plaintext highlighter-rouge">ResourceImporterTexture&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/99676">GH-99676&lt;/a>).&lt;/li>
&lt;li>Physics: Improve performance with non-monitoring areas when using Jolt Physics (&lt;a href="https://github.com/godotengine/godot/pull/106490">GH-106490&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Add export option for custom theme attributes (&lt;a href="https://github.com/godotengine/godot/pull/106724">GH-106724&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Add support for 16 KB page sizes, update to NDK r28b (&lt;a href="https://github.com/godotengine/godot/pull/106358">GH-106358&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Remove the &lt;code class="language-plaintext highlighter-rouge">gradle_build/compress_native_libraries&lt;/code> export option (&lt;a href="https://github.com/godotengine/godot/pull/106359">GH-106359&lt;/a>).&lt;/li>
&lt;li>Porting: Web: Use actual &lt;code class="language-plaintext highlighter-rouge">PThread&lt;/code> pool size for &lt;code class="language-plaintext highlighter-rouge">get_default_thread_pool_size()&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104458">GH-104458&lt;/a>).&lt;/li>
&lt;li>Porting: Windows/macOS/Linux: Use SSE 4.2 as a baseline when compiling Godot (&lt;a href="https://github.com/godotengine/godot/pull/59595">GH-59595&lt;/a>).&lt;/li>
&lt;li>Rendering: Add new StandardMaterial properties to allow users to control FPS-style objects (hands, weapons, tools close to the camera) (&lt;a href="https://github.com/godotengine/godot/pull/93142">GH-93142&lt;/a>).&lt;/li>
&lt;li>Rendering: FTI - Optimize &lt;code class="language-plaintext highlighter-rouge">SceneTree&lt;/code> traversal (&lt;a href="https://github.com/godotengine/godot/pull/106244">GH-106244&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>109 contributors&lt;/strong> submitted &lt;strong>252 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-dev5">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the previous 4.5-dev4 snapshot.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/64b09905c7b2877f8aef99d8b63e73e5d31acfb9">&lt;code class="language-plaintext highlighter-rouge">64b09905c&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.5-dev5">
Download Godot 4.5 dev5
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-5-dev-5.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.5-dev5">
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;ul>
&lt;li>Windows executables (both the editor and export templates) have been signed with an expired certificate. You may see warnings from Windows Defenders SmartScreen when running this version, or outright be prevented from running the executables with a double-click (&lt;a href="https://github.com/godotengine/godot/issues/106373">GH-106373&lt;/a>). Running Godot from the command line can circumvent this. We will soon have a renewed certificate which will be used for future builds.&lt;/li>
&lt;/ul>
&lt;p>With every release, we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.5 dev 4</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-5-dev-4/"/><updated>2025-05-13T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-5-dev-4/</id><summary>One post-GodotCon snapshot coming up!</summary><content type="html">&lt;p>To everyone who ended up going to GodotCon this past week, we hope you had a safe journey home! For those of you that missed the fun, weve logged some of the highlights on the blog already—such as the long-awaited &lt;a href="/article/live-from-godotcon-boston-web-dotnet-prototype/">web support for .NET&lt;/a>—with more to come later in the week. As always, weve recorded all of our GodotCon talks, and those shall be uploaded to our &lt;a href="https://www.youtube.com/c/GodotEngineOfficial">YouTube channel&lt;/a> in a few weeks. With that now behind us, we can go full-steam ahead on our next development snapshot: 4.5 dev 4. Plenty of new features this time around, so feedback and bug reports from testing are once again strongly recommended.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.5.dev4/">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://www.majorariatto.com/ambidextro">&lt;strong>Ambidextro&lt;/strong>&lt;/a>, &lt;em>a precision-platformer where you must control two characters simultaneously, one with each hand. It is developed by &lt;a href="https://www.majorariatto.com/">Majorariatto&lt;/a> (&lt;a href="https://bsky.app/profile/alvamajo.com">BlueSky&lt;/a>, &lt;a href="https://twitter.com/majorariatto">Twitter&lt;/a>). You can get the game on &lt;a href="https://store.steampowered.com/app/3445580/Ambidextro/?curator_clanid=41324400">Steam&lt;/a>, &lt;a href="https://www.nintendo.com/store/products/ambidextro-switch/">Nintendo Switch&lt;/a>, and &lt;a href="https://www.xbox.com/games/store/ambidextro/9nk9bnkcbvj4">Xbox&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>In case you missed them, see the &lt;a href="/article/dev-snapshot-godot-4-5-dev-1/">4.5 dev 1&lt;/a>, &lt;a href="/article/dev-snapshot-godot-4-5-dev-2/">4.5 dev 2&lt;/a>, and &lt;a href="/article/dev-snapshot-godot-4-5-dev-3/">4.5 dev 3&lt;/a> release notes for an overview of some key features which were already in those snapshots, and are therefore still available for testing in dev 4.&lt;/p>
&lt;h3 id="macos-embedded-window-support">macOS: Embedded window support&lt;/h3>
&lt;p>After Windows and Linux users got to experience the benefits of embedding their windows in the editor, macOS users have understandably been expressing interest in the same coming to their platform. Easier said than done, as this feature is OS-specific and &lt;em>very&lt;/em> low-level, so implementation requires someone both extremely knowledgeable in a niche area and actually owning the platform in question for proper testing. Thankfully, both of these qualifications were met by &lt;a href="https://github.com/stuartcarnie">Stuart Carnie&lt;/a>, who was up to the task of integrating this behemoth in &lt;a href="https://github.com/godotengine/godot/pull/105884">GH-105884&lt;/a>. The results should speak for themselves:&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-4/macos-embedded-window.webm?1" type="video/webm" />
&lt;/video>
&lt;p>The macOS implementation works differently from the Windows and Linux implementations. Since macOS does not allow the kind of window manipulation that Windows and Linux use for game window embedding, macOS uses an inter-process communication approach where the framebuffer is sent from the game process (which performs off-screen rendering) to the editor window. Input events are also sent from the editor window to the game process. This approach is more complex, but is also more robust as it doesnt rely on window management tricks that can fall apart in certain edge cases. This approach may be ported later to Windows/Linux in a future release, as it would help improve the reliability of game window embedding.&lt;/p>
&lt;h3 id="move-3d-physics-interpolation-to-scenetree">Move 3D physics interpolation to &lt;code class="language-plaintext highlighter-rouge">SceneTree&lt;/code>&lt;/h3>
&lt;p>The old design of the 3D interpolation system was fundamentally flawed, as it operated under the assumption that the scene side wouldnt require access to interpolated transforms. This isnt something that couldve just been “patched in” either, thanks to the multithreaded design, command queue, and stalling. Lacking any sort of workaround, &lt;a href="https://github.com/lawnjelly">lawnjelly&lt;/a> has taken a break from being the person responsible for 90% of 3.x code nowadays and &lt;a href="https://github.com/godotengine/godot/pull/103685">forward-ported&lt;/a> a solution via &lt;a href="https://github.com/godotengine/godot/pull/104269">GH-104269&lt;/a>. This addresses the problem by porting all logic to the &lt;code class="language-plaintext highlighter-rouge">SceneTree&lt;/code>, while completely retaining the existing API!&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-4/3d-fti-scenetree.webm?1" type="video/webm" />
&lt;/video>
&lt;p>No changes are needed to existing projects to benefit from the new 3D physics interpolation architecture.&lt;/p>
&lt;h3 id="export-variables-as-variant">Export variables as &lt;code class="language-plaintext highlighter-rouge">Variant&lt;/code>&lt;/h3>
&lt;p>Despite both arrays and dictionaries technically supporting &lt;code class="language-plaintext highlighter-rouge">Variant&lt;/code> values, this functionality was never actually exposed in isolation. That is: it was impossible to export a variable of type &lt;code class="language-plaintext highlighter-rouge">Variant&lt;/code> directly. &lt;a href="https://github.com/KoBeWi">Tomasz Chabora&lt;/a> found this limitation quite silly, so took to addressing this grave injustice with &lt;a href="https://github.com/godotengine/godot/pull/89324">GH-89324&lt;/a>. Now users are granted extra flexibility with their exports, as the option is now available to change not only the variable, but the type itself.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-4/export-variant.webm?1" type="video/webm" />
&lt;/video>
&lt;h3 id="stackable-outlines-on-label">Stackable outlines on &lt;code class="language-plaintext highlighter-rouge">Label&lt;/code>&lt;/h3>
&lt;p>Have you ever been in the situation where you want to add fancy outline or shadow effects to your text, only to realize that youre stuck with only one of each? Sure, you can double-up the amount of text objects directly atop one-another, but thats cumbersome and doesnt account for outlines affecting other outlines. There must be a better way! Well, thanks to the efforts of &lt;a href="https://github.com/Delsin-Yu">Delsin-Yu&lt;/a>, users no longer have to struggle with this moral conundrum. Instead, they can simply take advantage of &lt;a href="https://github.com/godotengine/godot/pull/104731">GH-104731&lt;/a> adding support for stacked layers of effects; no cumbersome workarounds required.&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-4/stacked-outlines.webp" alt="Stacked outlines" />&lt;/p>
&lt;h3 id="specular-occlusion-from-ambient-light">Specular occlusion from ambient light&lt;/h3>
&lt;p>Our renderer currently lacks a cheap option for specular occlusion, causing certain metallic/reflective materials to still receive reflections when they should be darkened/occluded. &lt;a href="https://github.com/lander-vr">Lander&lt;/a> rectified this limitation in &lt;a href="https://github.com/godotengine/godot/pull/106145">GH-106145&lt;/a>, where specular occlusion is added based on ambient light. As users might prefer the old visuals, this is now handled through a toggle in the project settings. The differences can be observed here:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: center">Disabled&lt;/th>
&lt;th style="text-align: center">Enabled&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-4/specular-disabled-1.webp" alt="Specular disabled 1" width="350" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-4/specular-enabled-1.webp" alt="Specular enabled 1" width="350" />&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-4/specular-disabled-2.webp" alt="Specular disabled 2" width="350" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-4/specular-enabled-2.webp" alt="Specular enabled 2" width="350" />&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-4/specular-disabled-3.webp" alt="Specular disabled 3" width="350" />&lt;/td>
&lt;td style="text-align: center">&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-4/specular-enabled-3.webp" alt="Specular enabled 3" width="350" />&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="and-more">And more!&lt;/h3>
&lt;p>There are too many exciting changes to list them all here, but heres a curated selection:&lt;/p>
&lt;ul>
&lt;li>Core: Add &lt;code class="language-plaintext highlighter-rouge">Node.get_orphan_node_ids&lt;/code>, edit &lt;code class="language-plaintext highlighter-rouge">Node.print_orphan_nodes&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/83757">GH-83757&lt;/a>).&lt;/li>
&lt;li>Core: Add compression level support to Zip module (&lt;a href="https://github.com/godotengine/godot/pull/103283">GH-103283&lt;/a>).&lt;/li>
&lt;li>Core: Fix for debugging typed dictionaries (&lt;a href="https://github.com/godotengine/godot/pull/106170">GH-106170&lt;/a>).&lt;/li>
&lt;li>Core: Print script backtrace in the crash handler (&lt;a href="https://github.com/godotengine/godot/pull/105741">GH-105741&lt;/a>).&lt;/li>
&lt;li>Editor: Add editor setting to collapse main menu into a &lt;code class="language-plaintext highlighter-rouge">MenuButton&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/105944">GH-105944&lt;/a>).&lt;/li>
&lt;li>Editor: Enable Auto Reload Scripts on External Change by default in the editor settings (&lt;a href="https://github.com/godotengine/godot/pull/97148">GH-97148&lt;/a>).&lt;/li>
&lt;li>GUI: Add drag zoom feature with CTRL+MiddleMouseButton (&lt;a href="https://github.com/godotengine/godot/pull/105625">GH-105625&lt;/a>).&lt;/li>
&lt;li>GUI: Add property to control showing the virtual keyboard on focus events (&lt;a href="https://github.com/godotengine/godot/pull/106114">GH-106114&lt;/a>).&lt;/li>
&lt;li>Import: Use libjpeg-turbo for improved jpg compatibility and speed (&lt;a href="https://github.com/godotengine/godot/pull/104347">GH-104347&lt;/a>).&lt;/li>
&lt;li>Network: mbedTLS: Fix concurrency issues with TLS (&lt;a href="https://github.com/godotengine/godot/pull/106167">GH-106167&lt;/a>).&lt;/li>
&lt;li>Particles: Overhaul the cull mask internals for Lights, Decals, and Particle Colliders (&lt;a href="https://github.com/godotengine/godot/pull/102399">GH-102399&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Annual versions bump for the Android platform (&lt;a href="https://github.com/godotengine/godot/pull/106152">GH-106152&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Bump the minimum supported SDK version to 24 (&lt;a href="https://github.com/godotengine/godot/pull/106148">GH-106148&lt;/a>).&lt;/li>
&lt;li>Porting: Wayland: Handle &lt;code class="language-plaintext highlighter-rouge">fifo_v1&lt;/code> and clean up suspension logic (&lt;a href="https://github.com/godotengine/godot/pull/101454">GH-101454&lt;/a>).&lt;/li>
&lt;li>Rendering: Add Meshes to the Video RAM Profiler (&lt;a href="https://github.com/godotengine/godot/pull/103238">GH-103238&lt;/a>).&lt;/li>
&lt;li>Rendering: Allow moving meshes without motion vectors (&lt;a href="https://github.com/godotengine/godot/pull/105437">GH-105437&lt;/a>).&lt;/li>
&lt;li>Rendering: Forward+: Replace the current BRDF approximation with a DFG LUT and add multiscattering energy compensation (&lt;a href="https://github.com/godotengine/godot/pull/103934">GH-103934&lt;/a>).&lt;/li>
&lt;li>Rendering: FTI - Add custom interpolation for wheels (&lt;a href="https://github.com/godotengine/godot/pull/105915">GH-105915&lt;/a>).&lt;/li>
&lt;li>Shaders: Expose built-in region information (&lt;a href="https://github.com/godotengine/godot/pull/90436">GH-90436&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>105 contributors&lt;/strong> submitted &lt;strong>261 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-dev4">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the previous 4.5-dev3 snapshot.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/209a446e3657e6fd736b9b7589b94cbdaad2d854">&lt;code class="language-plaintext highlighter-rouge">209a446e3&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.5-dev4">
Download Godot 4.5 dev4
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-5-dev-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.5-dev4/Godot_v4.5-dev4_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev4/Godot_v4.5-dev4_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev4/Godot_v4.5-dev4_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev4/Godot_v4.5-dev4_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev4/Godot_v4.5-dev4_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev4/Godot_v4.5-dev4_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.5-dev4">
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;ul>
&lt;li>Windows executables (both the editor and export templates) have been signed with an expired certificate. You may see warnings from Windows Defenders SmartScreen when running this version, or outright be prevented from running the executables with a double-click (&lt;a href="https://github.com/godotengine/godot/issues/106373">GH-106373&lt;/a>). Running Godot from the command line can circumvent this. We will soon have a renewed certificate which will be used for future builds.&lt;/li>
&lt;/ul>
&lt;p>With every release, we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Live from GodotCon Boston: Web .NET prototype</title><link href="https://godotengine.org/article/live-from-godotcon-boston-web-dotnet-prototype/"/><updated>2025-05-09T12:00:00+00:00</updated><id>https://godotengine.org/article/live-from-godotcon-boston-web-dotnet-prototype/</id><summary>We managed to do the impossible: we created a Godot-based prototype for the Web that runs .NET! Come and try it!</summary><content type="html">&lt;style>
.godot-dotnet-web-link {
margin: 2em auto;
display: block;
width: max-content;
background-color: rgb(54, 137, 201);
text-decoration: none;
border-radius: 1em;
color: white;
padding: 1em;
box-shadow: var(--more-shadow);
}
blockquote {
font-size: 95%;
padding: 1em;
background-color: rgba(0, 0, 0, 0.03);
}
blockquote p, blockquote ul li {
font-style: italic;
}
blockquote p:first-child {
margin-top: 0;
}
blockquote p:last-child {
margin-bottom: 0;
}
&lt;/style>
&lt;p>Hi there! Im Adam Scott (&lt;a href="https://github.com/adamscott">@adamscott on GitHub&lt;/a>), the Godot Engine Web team lead, live from the GodotCon Boston 2025!&lt;/p>
&lt;p>On May 6, during my &lt;a href="https://talks.godotengine.org/godotcon-us-2025/talk/UCLFXR/">State of Godot and the Web talk&lt;/a>, &lt;a href="https://slides.com/scottmada/state-of-the-godot-and-the-web-2025/#/35/2">I revealed a world premiere&lt;/a> to the GodotCon attendees. It was something some thought impossible, and others were resigned to not seeing during their lifetime.&lt;/p>
&lt;p>&lt;em>Please note that the VOD isnt available yet. The link to the recording will be added to the article once available. Meanwhile, you can access &lt;a href="https://slides.com/scottmada/state-of-the-godot-and-the-web-2025">the slides of the presentation&lt;/a>.&lt;/em>&lt;/p>
&lt;p>The .NET team lead, Raul Santos (&lt;a href="https://github.com/raulsntos">@raulsntos on GitHub&lt;/a>), managed to create a prototype running C# on the Web.&lt;/p>
&lt;div>
&lt;a href="https://lab.godotengine.org/godot-dotnet-web/" class="godot-dotnet-web-link" target="_blank">
&lt;span>Click here to see the prototype!&lt;/span>
&lt;/a>
&lt;/div>
&lt;h2 id="wasnt-it-impossible">Wasnt it impossible?&lt;/h2>
&lt;p>We tried &lt;code class="language-plaintext highlighter-rouge">dotnet.js&lt;/code>. &lt;a href="https://github.com/godotengine/godot/issues/70796#issuecomment-2524834258">It didnt work.&lt;/a>&lt;/p>
&lt;p>We tried NativeAOT-LLVM. &lt;a href="https://github.com/godotengine/godot/issues/70796#issuecomment-2524834258">It didnt work.&lt;/a>&lt;/p>
&lt;p>We (initially) tried statically linking Mono. &lt;a href="https://github.com/godotengine/godot/issues/70796#issuecomment-2524834258">It didnt work.&lt;/a>&lt;/p>
&lt;p>Well, Raul gave it another shot recently and managed to make it work. &lt;a href="https://github.com/godotengine/godot/issues/70796#issuecomment-2855430724">Heres how he explains his accomplishment.&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>As mentioned in my last update, the option of statically linking Mono seemed the most promising so we went ahead with that.&lt;/p>
&lt;p>I have opened a draft PR with the latest changes, but keep in mind its still a work in progress:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/godotengine/godot/pull/106125">[.NET] Add web export support #106125&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>As a reminder, this approach still seems very brittle to me and has some limitations. The C# project must match the WASM features supported by the Godot template (this includes things like the threading model, exception handling, SIMD support, etc.). The TargetFramework version of the C# project must also match the one that was used to build the template.&lt;/p>
&lt;p>Additionally, since we currently dont load any globalization data, we only support invariant mode. This is not a big problem because most users will likely rely on Godots localization features, so its not a blocker.&lt;/p>
&lt;p>On the last update the issue we run into was retrieving function pointers. We were able to workaround that by declaring stub C# methods on the project we use to retrieve the Mono runtime. When building the Godot templates, this ensures these methods are included in the generated table which seems to be enough to let us retrieve the function pointer at runtime.&lt;/p>
&lt;p>In a regular C# application built for the web platform youd use dotnet.js which acts as a loader for the WASM file and other required assets. In Godot we have our own way of doing this, and as a result were currently missing a key part of the process.&lt;/p>
&lt;p>The Mono runtime exports some JavaScript functions but at the time of building the templates these are stubs. The dotnet.js loader takes care of replacing these stubs with their real implementation in dotnet.runtime.js. Were currently missing this step so they remain stubs.&lt;/p>
&lt;p>This means some .NET APIs that rely on these exported JavaScript functions will not work, resulting in unexpected behavior. This includes things that must be implemented using browser APIs such as cryptography.&lt;/p>
&lt;p>Nonetheless, I think this is significant progress and has allowed us to build a demo running on the browser.&lt;/p>
&lt;/blockquote>
&lt;h2 id="whats-next-for-cnet-on-the-web">Whats next for C#/.NET on the Web&lt;/h2>
&lt;p>Raul has published &lt;a href="https://github.com/godotengine/godot/pull/106125">his pull request&lt;/a> as a draft so far. It means that theres a lot of work and testing to do.&lt;/p>
&lt;p>Were working as fast as we can to enable you to export C#/.NET to the Web, but we cannot commit to a specific timeline yet. If everything works great, it should be available in the next Godot release.&lt;/p>
&lt;h3 id="what-about-file-size-my-pck-size-has-exploded">What about file size? My &lt;code class="language-plaintext highlighter-rouge">.pck&lt;/code> size has exploded!&lt;/h3>
&lt;p>Currently, we do have to include some &lt;code class="language-plaintext highlighter-rouge">.dll&lt;/code> files in your main &lt;code class="language-plaintext highlighter-rouge">.pck&lt;/code> file in order to be able to run a C# project. For the simple prototype, the &lt;code class="language-plaintext highlighter-rouge">.pck&lt;/code> file size is at an astounding 72 MiB. Fortunately, when Brotli-compressed, the file can be reduced to 23.8 MiB.&lt;/p>
&lt;p>Its not perfect, as we often suggest targeting the smallest size when deploying to the Web. But the following announcement should help at least somewhat concerning this issue.&lt;/p>
&lt;h2 id="introducing-built-in-precompression">Introducing built-in (pre)compression&lt;/h2>
&lt;p>&lt;a href="https://slides.com/scottmada/state-of-the-godot-and-the-web-2025/#/41">I also revealed&lt;/a> my upcoming built-in (pre)compression PR to the public.&lt;/p>
&lt;p>It will do the following:&lt;/p>
&lt;ul>
&lt;li>add an option to compress template files when compiling the engine&lt;/li>
&lt;li>add export options to compress exported files&lt;/li>
&lt;li>if the target server doesnt support serving pre-compiled files, the preloading script will take over as a fallback, ensuring to download compressed files instead of non-compressed ones in order to save bandwidth.&lt;/li>
&lt;/ul>
&lt;h2 id="the-future-is-bright">The future is bright&lt;/h2>
&lt;p>C#/.NET support on the Web and file compression are two important features that will come to the platform. These features will push the limits of what can be done by Godot users on the Web. I do hope that you are as excited as we are!&lt;/p></content><author><name>Adam Scott</name></author><category term="Events"/><category term="Progress Report"/></entry><entry><title>Godot Showcase - Somar</title><link href="https://godotengine.org/article/godot-showcase-somar/"/><updated>2025-05-02T15:00:00+00:00</updated><id>https://godotengine.org/article/godot-showcase-somar/</id><summary>We interviewed Frédéric Plourde from Collabora and Daniel Castellanos from Decasis about the Somar project.</summary><content type="html">&lt;style>
.fred {
color: #aa77e2;
}
.daniel {
color: #40b99f;
}
&lt;/style>
&lt;p>Today we present a showcase that is a little different. We interviewed Frédéric Plourde and Daniel Castellanos who used Godot to create an educational XR experience for &lt;a href="https://somarbio.pt/">SOMAR&lt;/a>, a non-profit association focusing on the conservation of marine life in the Algarve.&lt;/p>
&lt;p>Frédéric Plourde is the XR Lead at Collabora where he drives AR/VR strategy, business development, and open-source innovation, leading a team of talented engineers working on XR customer projects and Monado, the cross-platform open-source OpenXR runtime. He is also Vice Outreach Officer at the Khronos Group where he promotes the OpenXR standard, fosters industry collaboration, and advocates for open and interoperable XR solutions. In the SOMAR project, Frédéric took on a technical leadership role, overviewing the development of an immersive XR experience and leading Collaboras efforts toward developing a Cardboard driver for Monado.&lt;/p>
&lt;p>Daniel Castellanos is the owner of Decacis Studio, and was contracted by Collabora to work mainly as a programmer/developer on the SOMAR project.&lt;/p>
&lt;iframe width="512" height="512" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/JqeOwLQ4wGs" title="The Somar Project" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h3 id="can-you-tell-us-a-little-more-about-the-non-profit-organisation-behind-the-somar-project-who-they-are-and-what-their-mission-is">Can you tell us a little more about the non-profit organisation behind the SOMAR project, who they are and what their mission is?&lt;/h3>
&lt;p>&lt;strong class="fred">Fred:&lt;/strong> SOMAR is a non-profit organization that focuses on protecting dolphins, whales, and marine life in the Algarve. Their mission is to raise awareness about the impact of human activities—like underwater noise pollution—on marine ecosystems. By combining scientific research, education, and innovative technology, SOMAR promotes sustainable practices and works to preserve the regions ocean biodiversity for future generations.&lt;/p>
&lt;h3 id="can-you-tell-us-a-bit-about-the-xr-experience-you-have-created-and-what-you-set-out-to-achieve">Can you tell us a bit about the XR experience you have created, and what you set out to achieve?&lt;/h3>
&lt;p>&lt;strong class="fred">Fred:&lt;/strong> The XR experience developed for the SOMAR project was designed to provide an immersive, educational tool to raise awareness about the impact of underwater noise pollution on marine life. By immersing users in realistic coastal and offshore environments of the Algarve, the experience showcases the effects of noise from tourist boats, particularly whale and dolphin-watching activities. Users can witness firsthand how these essential marine mammals are disrupted in their communication and hunting activities, gaining a deeper understanding of the challenges they face. Through this interactive experience, we aimed to engage users emotionally and inform them about the urgent need for conservation efforts to protect these creatures and their habitats.&lt;/p>
&lt;p>&lt;img alt="SOMAR selection menu" src="/storage/blog/godot-xr/somar-showcase/somar-selection-menu.webp" />&lt;/p>
&lt;h3 id="i-understand-the-project-is-focused-on-being-deployed-in-museums-and-in-classrooms-in-portugal-can-you-tell-us-more-about-how-this-works">I understand the project is focused on being deployed in museums and in classrooms in Portugal. Can you tell us more about how this works?&lt;/h3>
&lt;p>&lt;strong class="fred">Fred:&lt;/strong> The SOMAR project was designed with flexibility in mind and offers content in both English and Portuguese through Godots built-in localization functionality. Built on OpenXR, the project benefits from a standardized framework that simplifies deployment across multiple devices, allowing us to target both museums and classrooms across Portugal. In museums and institutional venues, the Meta Quest version of the XR experience offers a high-fidelity, immersive experience with detailed visuals, allowing visitors to explore the application in a captivating, educational environment. Meanwhile, the PhoneXR version, optimized for accessibility, is intended for use in classrooms, where students can experience the same core content through low-cost &lt;a href="https://arvr.google.com/cardboard/">Google Cardboard&lt;/a>-type phone holders. By running the open-source cross-platform OpenXR runtime &lt;a href="https://monado.dev/">Monado&lt;/a> on those phones, this version is designed to be more accessible and straightforward, making it possible for kids to dive into XR for the first time, all while learning about conservation in an interactive way. This dual deployment strategy ensures that the SOMAR project can reach diverse audiences, from the general public to younger generations, fostering environmental awareness across different settings.&lt;/p>
&lt;h3 id="will-the-experience-be-available-to-play-by-the-general-public-and-if-so-where-can-they-find-it">Will the experience be available to play by the general public and if so, where can they find it?&lt;/h3>
&lt;p>&lt;strong class="fred">Fred:&lt;/strong> Yes — the SOMAR experience is now available for everyone to explore! 🐬 Dive into our open-source XR project and discover the impact of underwater noise pollution on marine life. You can download and try it out for free on &lt;a href="https://somar-project.itch.io/somar-project">SOMARs official itch.io page&lt;/a>.&lt;/p>
&lt;p>&lt;img alt="SOMAR whale" src="/storage/blog/godot-xr/somar-showcase/somar-whale.webp" />&lt;/p>
&lt;h3 id="what-were-your-main-considerations-in-choosing-godot-as-the-xr-platform-to-create-this-experience">What were your main considerations in choosing Godot as the XR platform to create this experience?&lt;/h3>
&lt;p>&lt;strong class="fred">Fred:&lt;/strong> One of the main considerations for selecting Godot as the game engine for this project was finding an open-source engine that could provide flexibility, scalability, and a strong support community. Godot stood out for its robust 3D capabilities, ease of use, and ability to run on multiple platforms. Godots open-source nature felt like a perfect match for the Monado-driven experience and our collaboration with a non-profit as part of Collaboras 1% for the Planet initiative, reinforcing our commitment to both innovation and social impact. Additionally, Godots growing reputation within the XR and gaming communities, coupled with its ongoing OpenXR development via a &lt;a href="https://www.khronos.org/rfp/godot-integration">Khronos-funded project&lt;/a>, gave us confidence in its future-proof capabilities, ensuring that the SOMAR project could evolve and expand over time.&lt;/p>
&lt;h3 id="what-was-the-most-enjoyable-part-of-using-godot">What was the most enjoyable part of using Godot?&lt;/h3>
&lt;p>&lt;strong class="daniel">Daniel:&lt;/strong> Ive been using Godot for a few years now, and the most enjoyable part of it for me is being able to iterate quickly. Throughout its development, the project experienced numerous revisions, but implementing these changes was generally straightforward and quick.&lt;/p>
&lt;h3 id="what-was-the-most-difficult-issue-to-overcome">What was the most difficult issue to overcome?&lt;/h3>
&lt;p>&lt;strong class="daniel">Daniel:&lt;/strong> Having a balance between creating the most realistic or immersive experience possible while having to keep the experience performant on mobile devices apart from the Quest.&lt;/p>
&lt;h3 id="did-you-use-any-existing-toolkitsplugins-in-developing-this-experience-and-what-was-the-motivation-behind-choosing-these-or-building-your-own-solution">Did you use any existing toolkits/plugins in developing this experience and what was the motivation behind choosing these or building your own solution?&lt;/h3>
&lt;p>&lt;strong class="daniel">Daniel:&lt;/strong> Not really! The project doesnt feature movement, and user input is limited, so building a custom solution was not a problem. Furthermore, keeping the project as simple as possible was one of my goals, both to prevent bugs and keep the code clean and easy to understand.&lt;/p>
&lt;p>&lt;img alt="SOMAR boats and dolphins" src="/storage/blog/godot-xr/somar-showcase/somar-boats-dolphins.webp" />&lt;/p>
&lt;h3 id="what-would-you-like-to-see-evolve-within-godots-xr-support-that-would-have-made-building-this-project-easier">What would you like to see evolve within Godots XR support that would have made building this project easier?&lt;/h3>
&lt;p>&lt;strong class="daniel">Daniel:&lt;/strong> There was a single bug or unexpected behavior that I found during development, but nothing that couldnt be worked around. For this project, I believe Godot was the right choice and made things as easy as they could be.&lt;/p>
&lt;h3 id="i-understand-the-project-currently-targets-the-meta-quest-headsets-what-motivated-this-choice">I understand the project currently targets the Meta Quest headsets. What motivated this choice?&lt;/h3>
&lt;p>&lt;strong class="fred">Fred:&lt;/strong> The Meta Quest headset was chosen for the SOMAR project due to its strong popularity, excellent performance, and ease of use. As a standalone device, the Quest 3 delivers high-quality visuals and immersive experiences without needing a PC or external sensors, making it ideal for both museum venues and broader accessibility. Its widespread presence in the XR market ensures compatibility with future updates, allowing us to reach a wide audience while providing a seamless and engaging experience.&lt;/p>
&lt;h3 id="how-was-the-experience-of-using-godot-with-the-meta-quest">How was the experience of using Godot with the Meta Quest?&lt;/h3>
&lt;p>&lt;strong class="daniel">Daniel:&lt;/strong> Awesome! I used Meta Quest Link for most of the development to quickly test things, but every once in a while I deployed the project directly into the Meta Quest to measure performance. Fun fact: the project uses the Khronos OpenXR runtime, and it worked flawlessly first time.&lt;/p>
&lt;h3 id="i-also-understand-the-project-is-also-capable-of-using-the-monado-openxr-runtime-can-you-tell-me-a-bit-more-about-the-motivation-and-goals-of-this-port">I also understand the project is also capable of using the Monado OpenXR runtime. Can you tell me a bit more about the motivation and goals of this port?&lt;/h3>
&lt;p>&lt;strong class="fred">Fred:&lt;/strong> The motivation behind also targeting the Monado OpenXR runtime was to ensure broader accessibility and compatibility across different platforms, particularly for low-cost, phone-based VR systems. Monados open-source nature aligns with our goal of creating a flexible, cost-effective solution thats not reliant on proprietary ecosystems. For this project, Collabora dedicated engineering resources to develop a new Monado Cardboard driver, which enables the experience to run on Android phones with Cardboard VR headsets, making the immersive content accessible to a wider audience, including kids and students. This port reinforces our commitment to open standards, allowing for future enhancements and maintaining the projects long-term sustainability.
You can find the code for that driver on the &lt;a href="https://gitlab.freedesktop.org/bl4ckb0ne/monado/-/tree/cardboard-sdk">freedesktop.org GitLab&lt;/a>. It will be upstreamed soon.&lt;/p>
&lt;h3 id="fred-specifically-for-you-can-you-give-us-a-synopsis-of-what-monado-is-and-your-perspective-on-the-combination-of-using-godot-with-monado">Fred, specifically for you, can you give us a synopsis of what Monado is and your perspective on the combination of using Godot with Monado?&lt;/h3>
&lt;p>&lt;strong class="fred">Fred:&lt;/strong> &lt;a href="https://monado.dev/">Monado&lt;/a> is an open-source, cross-platform OpenXR runtime designed to provide the fundamental building blocks for XR device vendors and developers. By offering compatibility with major platforms like Linux, Windows, and Android, Monado serves as a versatile foundation for creating and deploying XR applications. Combining Monado with Godot, an open-source game engine, creates a powerful synergy. Godots flexibility, combined with Monados OpenXR support, enables both the simplicity of Godots development environment and the vast compatibility of Monados runtime.&lt;/p>
&lt;p>&lt;img alt="SOMAR info panels" src="/storage/blog/godot-xr/somar-showcase/somar-info-panels.webp" />&lt;/p>
&lt;h3 id="are-there-any-plans-to-bring-this-project-to-other-vr-headsets">Are there any plans to bring this project to other VR headsets?&lt;/h3>
&lt;p>&lt;strong class="fred">Fred:&lt;/strong> Yep, were currently testing the SOMAR application on other platforms and devices. Since Monado is built on OpenXR, its designed to be highly adaptable and should be able to run on many other platforms and devices with minimal effort. However, as an open-source project, the real strength lies in the community. While we continue to extend support for more headsets, we encourage developers and enthusiasts to contribute to the project and help expand its reach even further. The open-source nature of Monado makes it easy for anyone to pitch in and bring support to new platforms, creating a collaborative and growing ecosystem.&lt;/p>
&lt;h3 id="whats-next-for-you-anything-interesting-on-the-horizon">Whats next for you, anything interesting on the horizon?&lt;/h3>
&lt;p>&lt;strong class="daniel">Daniel:&lt;/strong> Sure. Im currently working on my next game: &lt;a href="https://stellar.decacis.com/">Stellar Checkpoint&lt;/a>, which will be available in both VR and desktop/flat modes. It should come out later this year, so stay tuned!&lt;/p>
&lt;h3 id="finally-is-there-any-advice-youd-like-to-share-especially-to-someone-considering-using-godot-for-their-next-xr-project">Finally, is there any advice youd like to share especially to someone considering using Godot for their next XR project?&lt;/h3>
&lt;p>&lt;strong class="fred">Fred:&lt;/strong> Absolutely! One of the most exciting things about using Godot for XR projects is the incredible community that surrounds it. Godot has such a passionate and supportive group of developers, artists, and creators, and its all accessible through platforms like &lt;a href="https://discord.com/invite/godotengine">the Godot Discord&lt;/a>. If youre just getting started with XR in Godot, I highly recommend joining the Discord first.&lt;/p>
&lt;p>&lt;strong class="daniel">Daniel:&lt;/strong> Just try it. Read the official documentation, place a couple of cubes as hands and experience how easy it is to get started! And if you get stuck, there is always someone from the community willing to help. Godot scales really well, and it works for both simple and complex projects, and best of all, being open-source means you can extend it to fit your needs.&lt;/p>
&lt;h3 id="some-extra-information-about-the-organisations-involved">Some extra information about the organisations involved&lt;/h3>
&lt;p>&lt;a href="https://www.collabora.com/">Collabora&lt;/a> is a global consultancy specializing in delivering the benefits of open-source software to the commercial world. Whether its the Linux kernel, graphics, multimedia, machine learning or XR, Collaboras expertise spans across all key areas of open-source software development. By harnessing the potential of community-driven open-source projects, and re-using existing components, Collabora helps its clients reduce time to market and focus on creating product differentiation. To learn more, please visit &lt;a href="https://www.collabora.com/">collabora.com&lt;/a>.&lt;/p>
&lt;p>&lt;a href="https://decacis.com/">Decasis studio&lt;/a> is an independent development studio run by Daniel Castellanos.&lt;/p>
&lt;p>&lt;a href="https://somarbio.pt/">SOMAR&lt;/a> is a non-profit association founded in 2020, dedicated to the conservation of the Algarves dolphins, whales, and broader marine life. With a focus on protecting the oceans, SOMAR operates through a variety of initiatives aimed at safeguarding the regions rich biodiversity. The organization is driven by its commitment to raise awareness about the negative impacts of human activities, such as underwater noise pollution, on marine fauna. By combining scientific research, environmental education, and innovative technologies, SOMAR seeks to promote sustainable practices and inspire collective action to preserve the natural marine ecosystems of the Algarve for future generations.&lt;/p>
&lt;p>&lt;img alt="SOMAR orca" src="/storage/blog/godot-xr/somar-showcase/somar-orca.webp" />&lt;/p></content><author><name>Bastiaan Olij</name></author><category term="Showcase"/></entry><entry><title>Dev snapshot: Godot 4.5 dev 3</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-5-dev-3/"/><updated>2025-04-25T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-5-dev-3/</id><summary>Access the engine like never before!</summary><content type="html">&lt;p>If the past snapshot was any indication, you might think that development updates arent slowing down anytime soon. And… Youd be right! Indeed, progress has been booming, and the amount of new features added even compared to the previous release is staggering; curating this selection was especially difficult. As always, new features mean new bugs in need of fixing, so we encourage everyone interested to get feedback and bug reports in as early as possible.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.5.dev3/">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/3454590/Cornerpond/?curator_clanid=41324400">&lt;strong>Cornerpond&lt;/strong>&lt;/a>, &lt;em>a fishing game that takes place entirely in the corner of your desktop. It is developed by &lt;a href="https://foolsroom.itch.io/">foolsroom&lt;/a>. You can get the game &lt;a href="https://store.steampowered.com/app/3454590/Cornerpond/?curator_clanid=41324400">on Steam&lt;/a> and follow the developer on &lt;a href="https://twitter.com/foolsroom">Twitter&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>In case you missed them, see the &lt;a href="/article/dev-snapshot-godot-4-5-dev-1/">4.5 dev 1&lt;/a> and &lt;a href="/article/dev-snapshot-godot-4-5-dev-2/">4.5 dev 2&lt;/a> release notes for an overview of some key features which were already in that snapshot, and are therefore still available for testing in dev 3.&lt;/p>
&lt;h3 id="screen-reader-support">Screen reader support&lt;/h3>
&lt;p>Accessibility should be every developers top priority, full-stop. Someone being excluded from an experience for factors outside of their control is an area that video games and applications have the potential to circumvent entirely. It does, however, take a solid framework to allow such accommodations to be developed. To streamline this process for everyone—players and developers alike—our resident tech guru &lt;a href="https://github.com/bruvzg">bruvzg&lt;/a> took to the absolutely Herculean task of integrating &lt;a href="https://github.com/AccessKit/accesskit">AccessKit&lt;/a> to Godot as a whole.&lt;/p>
&lt;p>&lt;a href="https://github.com/godotengine/godot/pull/76829">GH-76829&lt;/a> was a project started two years ago, which progressed in bursts alongside the AccessKit framework. For the 4.5 release, we made it a priority to finalize, and thus we now merged this major feature with over &lt;strong>32,000&lt;/strong> lines of code, after hundreds of comments with feedback/testing. Users are encouraged to look at the pull request for more information, as theres no feasible way we could properly summarize these changes. Unsurprisingly, this was &lt;em>by far&lt;/em> the change with the most ramifications of the entire snapshot, so much so that its already seen &lt;a href="https://github.com/godotengine/godot/pull/105197">multiple&lt;/a> &lt;a href="https://github.com/godotengine/godot/pull/105216">fixes&lt;/a> to address regressions (even &lt;a href="https://github.com/godotengine/godot/pull/105764">one&lt;/a> right when validating this snapshot), but its well worth it. After all, accessibility is our top priority!&lt;/p>
&lt;p>This is only the first but massive step towards making Godot more accessible. In particular for the editor, a lot more work will be needed to make it really usable, as well as integrate with accessibility frameworks for mobile or web platforms.&lt;/p>
&lt;h3 id="script-backtracing">Script backtracing&lt;/h3>
&lt;p>In any other snapshot, this wouldve been the main highlight, as adding backtracing to GDScript was among the most highly requested features from our users for years. Two brave souls, &lt;a href="https://github.com/mihe">Mikael Hermansson&lt;/a> (godot-jolt) and &lt;a href="https://github.com/reduz">Juan Linietsky&lt;/a> (up-and-coming developer), helmed this task and made this process possible with &lt;a href="https://github.com/godotengine/godot/pull/91006">GH-91006&lt;/a>. This will make it much easier for users to find the cause of warnings/errors that previously required manually hunting down bugs. Stack traces are now available in projects exported in release mode as well if the &lt;strong>Debug &amp;gt; Settings &amp;gt; GDScript &amp;gt; Always Track Call Stacks&lt;/strong> project setting is enabled. This can make it easier for users to report issues in a way that developers can track down.&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-3/backtrace-script.webp" alt="Backtrace script" />
&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-3/backtrace-out.webp" alt="Backtrace out" />&lt;/p>
&lt;h3 id="inspector-section-toggles">Inspector section toggles&lt;/h3>
&lt;p>Another long-awaited feature, inspector section toggles, is now a part of the engine as of &lt;a href="https://github.com/godotengine/godot/pull/105272">GH-105272&lt;/a>. &lt;a href="https://github.com/lodetrick">lodetrick&lt;/a> has expanded editor functionality to what you see below: sections with their own dedicated checkbox to denote if theyre enabled.&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-3/inspector-checkboxes.webp" alt="Inspector checkboxes" />&lt;/p>
&lt;h3 id="and-more">And more!&lt;/h3>
&lt;p>There are too many exciting changes to list them all here, but heres a curated selection:&lt;/p>
&lt;ul>
&lt;li>3D: Set correct position of node with &lt;code class="language-plaintext highlighter-rouge">Align Transform with View&lt;/code> in orthographic view (&lt;a href="https://github.com/godotengine/godot/pull/99099">GH-99099&lt;/a>).&lt;/li>
&lt;li>Audio: Fix AudioStreamPlayer3D stereo panning issue (&lt;a href="https://github.com/godotengine/godot/pull/104853">GH-104853&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Fix &lt;code class="language-plaintext highlighter-rouge">.sln&lt;/code> project generation logic for Rider to support all OS and all C++ toolchains (&lt;a href="https://github.com/godotengine/godot/pull/103405">GH-103405&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Update the Android NDK to the latest LTS version (r27c) (&lt;a href="https://github.com/godotengine/godot/pull/105611">GH-105611&lt;/a>).&lt;/li>
&lt;li>C#: Avoid unnecessary StringName allocations on not implemented virtual &lt;code class="language-plaintext highlighter-rouge">_Get&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">_Set&lt;/code> method call (&lt;a href="https://github.com/godotengine/godot/pull/104689">GH-104689&lt;/a>).&lt;/li>
&lt;li>Core: Add &lt;code class="language-plaintext highlighter-rouge">create_id_for_path()&lt;/code> to ResourceUID (&lt;a href="https://github.com/godotengine/godot/pull/99543">GH-99543&lt;/a>).&lt;/li>
&lt;li>Core: Add negative index to &lt;code class="language-plaintext highlighter-rouge">Array.remove_at&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">Array.insert&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/83027">GH-83027&lt;/a>).&lt;/li>
&lt;li>Core: Add thread safety to Object signals (&lt;a href="https://github.com/godotengine/godot/pull/105453">GH-105453&lt;/a>).&lt;/li>
&lt;li>Editor: Autocompletion: Dont add parenthesis if &lt;code class="language-plaintext highlighter-rouge">Callable&lt;/code> is expected (&lt;a href="https://github.com/godotengine/godot/pull/96375">GH-96375&lt;/a>).&lt;/li>
&lt;li>Editor: Fix exported Node/Resource variables resetting when extending script in the SceneTreeDock (&lt;a href="https://github.com/godotengine/godot/pull/105148">GH-105148&lt;/a>).&lt;/li>
&lt;li>Editor: Project manager: Add option to backup project when it will be changed (&lt;a href="https://github.com/godotengine/godot/pull/104624">GH-104624&lt;/a>).&lt;/li>
&lt;li>Editor: Support custom features in project settings dialog (&lt;a href="https://github.com/godotengine/godot/pull/105307">GH-105307&lt;/a>).&lt;/li>
&lt;li>Export: Use project settings overrides with the target preset features instead of current platform features (&lt;a href="https://github.com/godotengine/godot/pull/71542">GH-71542&lt;/a>).&lt;/li>
&lt;li>GDExtension: Optimize gdvirtual function layout (&lt;a href="https://github.com/godotengine/godot/pull/104264">GH-104264&lt;/a>).&lt;/li>
&lt;li>GUI: Add &lt;code class="language-plaintext highlighter-rouge">FoldableContainer&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/102346">GH-102346&lt;/a>).&lt;/li>
&lt;li>GUI: Add boolean toggle for middle-click to fire &lt;code class="language-plaintext highlighter-rouge">tab_close_pressed&lt;/code> signal (&lt;a href="https://github.com/godotengine/godot/pull/103024">GH-103024&lt;/a>).&lt;/li>
&lt;li>GUI: Add separate &lt;code class="language-plaintext highlighter-rouge">minimize_disabled&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">maximize_disabled&lt;/code> window flags (&lt;a href="https://github.com/godotengine/godot/pull/105107">GH-105107&lt;/a>).&lt;/li>
&lt;li>GUI: Add support for OEM Alt codes input (&lt;a href="https://github.com/godotengine/godot/pull/93466">GH-93466&lt;/a>).&lt;/li>
&lt;li>GUI: Implement &lt;code class="language-plaintext highlighter-rouge">SVGTexture&lt;/code> auto-scalable with font oversampling (&lt;a href="https://github.com/godotengine/godot/pull/105375">GH-105375&lt;/a>).&lt;/li>
&lt;li>GUI: Make embed floating window respect &lt;code class="language-plaintext highlighter-rouge">Always On Top&lt;/code> configuration (&lt;a href="https://github.com/godotengine/godot/pull/103731">GH-103731&lt;/a>).&lt;/li>
&lt;li>GUI: Replace global oversampling with overrideable per-viewport oversampling (&lt;a href="https://github.com/godotengine/godot/pull/104872">GH-104872&lt;/a>).&lt;/li>
&lt;li>Input: Add configuration option to disable &lt;code class="language-plaintext highlighter-rouge">Scroll Deadzone&lt;/code> on Android (&lt;a href="https://github.com/godotengine/godot/pull/96139">GH-96139&lt;/a>).&lt;/li>
&lt;li>Input: Allow all tool modes to select (&lt;a href="https://github.com/godotengine/godot/pull/87756">GH-87756&lt;/a>).&lt;/li>
&lt;li>Plugin: Add maven publishing configuration for Godot tools (&lt;a href="https://github.com/godotengine/godot/pull/104819">GH-104819&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Add new actions and enhancements to &lt;code class="language-plaintext highlighter-rouge">TouchActionsPanel&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/105140">GH-105140&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Embed &lt;code class="language-plaintext highlighter-rouge">TouchActionsPanel&lt;/code> directly into the editor UI (&lt;a href="https://github.com/godotengine/godot/pull/105518">GH-105518&lt;/a>).&lt;/li>
&lt;li>Rendering: Detect more pipeline settings at load time to avoid pipeline stutters (&lt;a href="https://github.com/godotengine/godot/pull/105175">GH-105175&lt;/a>).&lt;/li>
&lt;li>Rendering: Renderer: Reduce scope of mutex locks to prevent common deadlocks (&lt;a href="https://github.com/godotengine/godot/pull/105138">GH-105138&lt;/a>).&lt;/li>
&lt;li>XR: OpenXR: Request the &lt;code class="language-plaintext highlighter-rouge">XR_KHR_loader_init&lt;/code> extension (&lt;a href="https://github.com/godotengine/godot/pull/105445">GH-105445&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>115 contributors&lt;/strong> submitted &lt;strong>253 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-dev3">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the previous 4.5-dev2 snapshot.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/28089c40c13597bf908802c61352c6fffe0a4465">&lt;code class="language-plaintext highlighter-rouge">28089c40c&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.5-dev3">
Download Godot 4.5 dev3
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-5-dev-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.5-dev3/Godot_v4.5-dev3_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev3/Godot_v4.5-dev3_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev3/Godot_v4.5-dev3_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev3/Godot_v4.5-dev3_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev3/Godot_v4.5-dev3_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev3/Godot_v4.5-dev3_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.5-dev3">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>There are currently no known issues introduced by this release.&lt;/p>
&lt;p>With every release, we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.5 dev 2</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-5-dev-2/"/><updated>2025-04-08T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-5-dev-2/</id><summary>This is where the fun begins</summary><content type="html">&lt;p>With the &lt;a href="/releases/4.4/">4.4 release&lt;/a> a little over a month ago, one mightve expected content updates to trickle out slowly for our initial 4.5 development snapshots. …Well, maybe not after seeing the &lt;a href="/article/dev-snapshot-godot-4-5-dev-1/">4.5 dev 1&lt;/a> snapshot, but &lt;strong>surely&lt;/strong> they couldnt follow that up with another flood of anticipated changes, right?&lt;/p>
&lt;p>You fools. You underestimate the passion of our community yet again, as &lt;strong>250&lt;/strong> improvements are ready to roll for this snapshot. Whats more is that, unlike last time, were not &lt;em>just&lt;/em> in bugfix territory any more. Now the time for proper enhancements and features entirely unique to this development cycle has come, and this blogpost will aim to highlight them to the best of our ability. As always: with new features comes new bugs (probably), so the sooner we can get feedback and bug reports in, the better.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.5.dev2/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/1810050/Fortune_Avenue/?curator_clanid=41324400">&lt;strong>Fortune Avenue&lt;/strong>&lt;/a>, &lt;em>a capitalism simulator where you shrewdly extort and outmaneuver your friends in a chaotic, board-game environment. It is developed by &lt;a href="https://www.binogure-studio.com/">Binogure Studio&lt;/a>. You can wishlist the game &lt;a href="https://store.steampowered.com/app/1810050/Fortune_Avenue/?curator_clanid=41324400">on Steam&lt;/a> and follow the developers on &lt;a href="https://bsky.app/profile/binogure-studio.com">Bluesky&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>In case you missed them, see the &lt;a href="/article/dev-snapshot-godot-4-5-dev-1/">4.5 dev 1&lt;/a> release notes for an overview of some key features which were already in that snapshot, and are therefore still available for testing in dev 2.&lt;/p>
&lt;h3 id="dedicated-2d-navigation-server">Dedicated 2D navigation server&lt;/h3>
&lt;p>For the longest time, the navigation server was a unified beast. 3D and 2D, Yin and Yang, two sides of the same coin. While beautiful on a philosophical level and undoubtedly a heart-wrenching screenplay waiting to happen, it was a pretty sour deal for the 2D side of things. Previously, if you were making a 2D game and wanted to make use of navigational features, you were effectively locked into a bunch of 3D settings and features that would never see any use but would &lt;em>absolutely&lt;/em> see a bump in output size.&lt;/p>
&lt;p>Steps have been taken during this initial 4.5 period to ensure that navigation logic is more cleanly divided and organized, spearheaded by our navigation guru &lt;a href="https://github.com/smix8">smix8&lt;/a>, but none of this couldve been possible without cleanly splitting the navigation server in twain. Longtime contributor &lt;a href="https://github.com/AThousandShips">AThousandShips&lt;/a> took the mantle on this project, and she successfully accomplished this goal with &lt;a href="https://github.com/godotengine/godot/pull/101504">GH-101504&lt;/a>. From now on, users will be able to selectively enable/disable the navigation modules for 2D and/or 3D, instead of being forced into an all-or-nothing ultimatum.&lt;/p>
&lt;h3 id="reorganized-shader-editor-ui">Reorganized shader editor UI&lt;/h3>
&lt;p>The editor experience for shaders and visual shaders got some &lt;abbr title="Tender loving care">TLC&lt;/abbr> in &lt;a href="https://github.com/godotengine/godot/pull/100287">GH-100287&lt;/a>. Helmed by &lt;a href="https://github.com/Chaosus">Yuri Rubinsky&lt;/a>, this PR provides several requested features and QOL updates to our shading friends. Below is a preview image taken directly from the PR in question, where youll find more information on what to expect when you get your hands on it this snapshot.&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-2/shader-editor.webp" alt="Updated shader editor UI" />&lt;/p>
&lt;h3 id="changing-editor-language-without-restart">Changing editor language without restart&lt;/h3>
&lt;p>Godot has built-in support for handling multiple languages, both for the games you create and the editor itself. However, in contrast to games built with the engine, it wasnt possible to change the current language on-the-fly within the editor itself. Our editor expert &lt;a href="https://github.com/KoBeWi">Tomasz Chabora&lt;/a> addressed this issue in &lt;a href="https://github.com/godotengine/godot/pull/102562">GH-102562&lt;/a>, ensuring that users can swap to their preferred language within the same editor session! While this is somewhat niche in practice, our stance on convenience and accessibility is one that we take very seriously, and a seamless/streamlined editor experience is exactly the sort of thing we want as many users as possible to enjoy.&lt;/p>
&lt;h3 id="fragment-density-map-support">Fragment density map support&lt;/h3>
&lt;p>When rendering for VR headsets, the pixels around the outside of the viewport are less important, because they will be somewhat distorted by the lens, and players will tend to turn their head rather than move their eyes too far from the center.&lt;/p>
&lt;p>Godot already supports using the Vulkan “Fragment Shading Rate” extension to render the outside of the viewport at a lower resolution, leading to performance improvements with little noticeable decrease in quality. However, on standalone VR headsets (like the Meta Quest), this extension either isnt supported, or doesnt provide as big performance improvements as the Vulkan “Fragment Density Map” extension.&lt;/p>
&lt;p>In &lt;a href="https://github.com/godotengine/godot/pull/99551">GH-99551&lt;/a>, rendering expert &lt;a href="https://github.com/DarioSamo">DarioSamo&lt;/a> has implemented support for the “Fragment Density Map” extension, making the Vulkan Mobile renderer more viable for VR on standalone headsets.&lt;/p>
&lt;h3 id="wayland-native-sub-window-support">Wayland: Native sub-window support&lt;/h3>
&lt;p>Thanks to the tireless efforts of &lt;a href="https://github.com/Riteo">Riteo&lt;/a>, the X11 alternative &lt;a href="https://wayland.freedesktop.org/">Wayland&lt;/a> has been given first-class treatment on Godot. Its been a long road to stand as an equal to such a dominant display server protocol, but its getting closer with every passing PR; though some have been hesitant to make the change for one reason: lack of native sub-windows. Taking on this hurdle for parity was no small feat, but it was a requirement for supporting embedded game windows on Wayland, so (&lt;a href="https://github.com/godotengine/godot/pull/101774">GH-101774&lt;/a>) made it happen all the same:&lt;/p>
&lt;p>&lt;img src="/storage/blog/dev-snapshot-godot-4-5-dev-2/wayland-sub-window.webp" alt="Multi-Window output on Wayland" />&lt;/p>
&lt;h3 id="and-more">And more!&lt;/h3>
&lt;p>There are too many exciting changes to list them all here, but heres a curated selection:&lt;/p>
&lt;ul>
&lt;li>2D: Optimize usability of VisibleOnScreenNotifier2D (&lt;a href="https://github.com/godotengine/godot/pull/100874">GH-100874&lt;/a>).&lt;/li>
&lt;li>3D: Allow customizing debug color of Path3D (&lt;a href="https://github.com/godotengine/godot/pull/82321">GH-82321&lt;/a>).&lt;/li>
&lt;li>Animation: Add &lt;code class="language-plaintext highlighter-rouge">delta&lt;/code> argument to &lt;code class="language-plaintext highlighter-rouge">_process_modification()&lt;/code> as &lt;code class="language-plaintext highlighter-rouge">_process_modification_with_delta(delta)&lt;/code> and expose &lt;code class="language-plaintext highlighter-rouge">advance()&lt;/code> at &lt;code class="language-plaintext highlighter-rouge">Skeleton3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103639">GH-103639&lt;/a>).&lt;/li>
&lt;li>Animation: Add selection box movement/scaling to the animation bezier editor (&lt;a href="https://github.com/godotengine/godot/pull/100470">GH-100470&lt;/a>).&lt;/li>
&lt;li>Core: Optimize &lt;code class="language-plaintext highlighter-rouge">Object::cast_to&lt;/code> by assuming no virtual and multiple inheritance, gaining 7x throughput over &lt;code class="language-plaintext highlighter-rouge">dynamic_cast&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103708">GH-103708&lt;/a>).&lt;/li>
&lt;li>Editor: Add UID to file tooltip (&lt;a href="https://github.com/godotengine/godot/pull/105069">GH-105069&lt;/a>).&lt;/li>
&lt;li>Editor: Improve default/no query quick open dialog behavior (&lt;a href="https://github.com/godotengine/godot/pull/104061">GH-104061&lt;/a>).&lt;/li>
&lt;li>Editor: Remove New prefix from EditorResourcePicker (&lt;a href="https://github.com/godotengine/godot/pull/104604">GH-104604&lt;/a>).&lt;/li>
&lt;li>Export: Updates and fixes to the Android prebuilt export logic (&lt;a href="https://github.com/godotengine/godot/pull/103173">GH-103173&lt;/a>).&lt;/li>
&lt;li>GDScript: Return early when parsing invalid super call (&lt;a href="https://github.com/godotengine/godot/pull/104509">GH-104509&lt;/a>).&lt;/li>
&lt;li>GUI: Improve Popup &lt;code class="language-plaintext highlighter-rouge">content_scale_factor&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104399">GH-104399&lt;/a>).&lt;/li>
&lt;li>GUI: Optimize startup times by using &lt;code class="language-plaintext highlighter-rouge">ubrk_clone&lt;/code> instead of &lt;code class="language-plaintext highlighter-rouge">ubrk_open&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104455">GH-104455&lt;/a>).&lt;/li>
&lt;li>GUI: Scroll &lt;code class="language-plaintext highlighter-rouge">EditorInspector&lt;/code> while drag &amp;amp; drop hovering near the edges (&lt;a href="https://github.com/godotengine/godot/pull/103943">GH-103943&lt;/a>).&lt;/li>
&lt;li>Import: Load decompressable texture format if no supported one is found (&lt;a href="https://github.com/godotengine/godot/pull/104590">GH-104590&lt;/a>).&lt;/li>
&lt;li>Navigation: Allow compiling templates without navigation features (&lt;a href="https://github.com/godotengine/godot/pull/104811">GH-104811&lt;/a>).&lt;/li>
&lt;li>Physics: Allow compiling templates without physics servers (&lt;a href="https://github.com/godotengine/godot/pull/103373">GH-103373&lt;/a>).&lt;/li>
&lt;li>Physics: Jolt: Update to 5.3.0 (&lt;a href="https://github.com/godotengine/godot/pull/104449">GH-104449&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Add an editor setting to enable/disable &lt;code class="language-plaintext highlighter-rouge">TouchActionsPanel&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/105015">GH-105015&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Add support for &lt;code class="language-plaintext highlighter-rouge">Mute Game&lt;/code> toggle (&lt;a href="https://github.com/godotengine/godot/pull/104409">GH-104409&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Auto create &lt;code class="language-plaintext highlighter-rouge">nomedia&lt;/code> file to hide project files in media apps (&lt;a href="https://github.com/godotengine/godot/pull/104970">GH-104970&lt;/a>).&lt;/li>
&lt;li>Porting: Linux: Detect KDE/LXQt and swap OK/Cancel buttons to Windows style (&lt;a href="https://github.com/godotengine/godot/pull/104959">GH-104959&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Replace custom main loop with &lt;code class="language-plaintext highlighter-rouge">[NSApp run]&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">CFRunLoop&lt;/code> observer (&lt;a href="https://github.com/godotengine/godot/pull/104397">GH-104397&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Support more controllers on macOS 11+ (&lt;a href="https://github.com/godotengine/godot/pull/104619">GH-104619&lt;/a>).&lt;/li>
&lt;li>Rendering: Avoid using a global variable to store instance index in canvas items shader in RD renderer (&lt;a href="https://github.com/godotengine/godot/pull/105037">GH-105037&lt;/a>).&lt;/li>
&lt;li>XR: Deactivate the &lt;code class="language-plaintext highlighter-rouge">CameraServer&lt;/code> by default (&lt;a href="https://github.com/godotengine/godot/pull/104232">GH-104232&lt;/a>).&lt;/li>
&lt;li>XR: OpenXR: Clean-up &lt;code class="language-plaintext highlighter-rouge">OpenXRExtensionWrapper&lt;/code> by removing multiple inheritance and deprecating &lt;code class="language-plaintext highlighter-rouge">OpenXRExtensionWrapperExtension&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104087">GH-104087&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>90 contributors&lt;/strong> submitted &lt;strong>250 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-dev2">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the previous 4.5-dev1 snapshot.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/af2c713971499953373380b9ae8673f64423bd59">&lt;code class="language-plaintext highlighter-rouge">af2c71397&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.5-dev2">
Download Godot 4.5 dev2
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-5-dev-2.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev2/Godot_v4.5-dev2_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.5-dev2">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>There are currently no known issues introduced by this release.&lt;/p>
&lt;p>With every release we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Godot XR update - March 2025</title><link href="https://godotengine.org/article/godot-xr-update-mar-2025/"/><updated>2025-03-28T12:00:00+00:00</updated><id>https://godotengine.org/article/godot-xr-update-mar-2025/</id><summary>Godot XR Community Game Jam February 2025</summary><content type="html">&lt;p>In the second half of February 2025, the &lt;a href="https://godot-xr.itch.io/">Godot XR Community&lt;/a> held their latest &lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025">Godot XR Game Jam&lt;/a>.
It was organised by &lt;a href="https://www.youtube.com/@BastiaanOlij">Bastiaan Olij&lt;/a> and &lt;a href="https://www.youtube.com/@MalcolmANixon">Malcolm Nixon&lt;/a> acting in their roles as representatives of the general Godot XR Community.&lt;/p>
&lt;p>This was a week-long event in which developers had to create an XR application using the theme “Enchanted”. XR has great potential on this topic, whether you interpret this as physical spell casting, a magical environment, or something else, and the entries did not disappoint.&lt;/p>
&lt;p>Compared to our previous game jam, we went from 26 entries and 283 ratings to 27 entries and 290 ratings. Not a great jump, however we had 125 people join this game jam compared to 77 in our previous jam.
Based on feedback weve received on our Discord channel, the main reason the higher participation did not translate to more entries was due to a number of participants not finishing their entry in time. Weve had overwhelmingly positive feedback on the experience with many new developers becoming active members in our XR community.&lt;/p>
&lt;p>While subjective, the overall quality of the entries seems to have been a lot higher than the previous jam so we are really looking forward to what the future will bring.&lt;/p>
&lt;h2 id="top-5">Top 5&lt;/h2>
&lt;p>Lets take a closer look at the top 5 entries!&lt;/p>
&lt;h3 id="no-5-syneed">No 5. Syneed&lt;/h3>
&lt;p>&lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025/rate/3332396">Syneed&lt;/a> by &lt;a href="https://hiina.itch.io/">Hiina&lt;/a> ranked 5th with 13 ratings (Score: 3.705).&lt;/p>
&lt;p>Our fifth place entry is a puzzle game where you need to manipulate a stream of particles using attractors.
By adjusting these within the world, the trajectory of the particles changes and you can guide them past a number of stars.
The goal is for the particle stream to touch all stars.&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/uwsC-RsR9dM" title="syneed: VR puzzle game." frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h3 id="no-4-keziahs-house">No 4. Keziahs House&lt;/h3>
&lt;p>&lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025/rate/3331240">Keziahs House&lt;/a> by &lt;a href="https://warpingrealities.itch.io/">Warping Realities VR&lt;/a> ranked 4th with 12 ratings (Score: 3.764).&lt;/p>
&lt;p>Our fourth place goes to this great escape room game.
You find yourself waking up trapped in a derelict old house.
Solve puzzles while casting magic spells to find your way out.&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/EK75Raq0i7c" title="Keziah's House" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h3 id="no-3-the-chant-of-cthulhu">No 3. The Chant of Cthulhu&lt;/h3>
&lt;p>&lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025/rate/3322870">The Chant of Cthulhu&lt;/a> by &lt;a href="https://copper-tunic.itch.io/">Copper Tunic&lt;/a> ranked 3rd with 12 ratings (Score: 3.833).&lt;/p>
&lt;p>Our third place is a horror karaoke game.
You need to sing out loud the chants given and as you do so, more and more “clones” are created that repeat your words.
As everything reaches a crescendo, you summon the monsters of the deep.
All within a church environment that fits the concept well.
Very good use of recording and sound and with a freeplay mode you can extend the fun by manually placing clones that sing out your recorded song.&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/7Yxv9bE2sIQ" title="The Chant of Cthulhu" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h3 id="no-2-ez-enchants">No 2. EZ Enchants&lt;/h3>
&lt;p>&lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025/rate/3316696">EZ Enchants&lt;/a> by &lt;a href="https://dragon1freak.itch.io/">Dragon1Freak&lt;/a> ranked 2nd with 12 ratings (Score: 3.931).&lt;/p>
&lt;p>Our runner-up is a fun little crafting game.
As customers walk past your little magic store, they ask you to enchant different objects.
You have to perform different actions according to the customers wishes, all within a time limit.
A very polished, good looking entry that is fun to play!&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/ni4SI-HelwM" title="EZ Enchants - Full Run" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h3 id="no-1-your-hand-is-a-dragon-xr">No 1. Your Hand Is A Dragon (XR)&lt;/h3>
&lt;p>&lt;a href="https://itch.io/jam/godot-xr-game-jam-feb-2025/rate/3332432">Your Hand Is A Dragon (XR)&lt;/a> by &lt;a href="https://andyman404.itch.io/">Andyman404&lt;/a> ranked 1st with 10 ratings (Score: 4.020).&lt;/p>
&lt;p>Our winning entry is a very distinct game, as weve come to expect from Andyman404.
You play as a dragon that attacks fortresses manned by knights.
What makes it unique is that you control the dragon with your hand as if it is a sockpuppet,
while simultaneously roaring out loud to make the dragon breathe fire.
Its especially impressive as Andyman404 only had 3 days to dedicate to this entry.&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/xP-1_EOkLZA" title="Your Hand Is A Dragon - Trailer" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h2 id="other-entries">Other entries&lt;/h2>
&lt;p>Malcolm Nixon created the below video on his YouTube channel that shows off the top 5 games and highlights many of the other entries.
It is well worth a watch to get an impression of the entries that were submitted.&lt;/p>
&lt;iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/t5U6dXm8WY4" title="Godot XR Game Jam 3 - Top 5 Countdown" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="">&lt;/iframe>
&lt;h2 id="the-next-godot-xr-community-game-jam">The next Godot XR Community game jam&lt;/h2>
&lt;p>The next jam will likely be in August or September of this year.
Communication around the game jam has moved to the newly created &lt;a href="https://godot-xr.itch.io/">Godot XR Community itch.io page&lt;/a>, so be sure to follow that account.
Join the Godot XR Community in the XR channel on &lt;a href="https://discord.gg/godotengine">Godots official Discord server&lt;/a> if youre interested in using Godot to develop XR projects.&lt;/p></content><author><name>Bastiaan Olij</name></author><category term="Progress Report"/></entry><entry><title>Maintenance release: Godot 4.4.1</title><link href="https://godotengine.org/article/maintenance-release-godot-4-4-1/"/><updated>2025-03-26T15:00:00+00:00</updated><id>https://godotengine.org/article/maintenance-release-godot-4-4-1/</id><summary>Godot 4.4 was a massive success, and with most users migrating to it, we discovered and fixed a number of significant bugs which warrant a first maintenance release.</summary><content type="html">&lt;p>We released &lt;a href="/releases/4.4/">Godot 4.4&lt;/a> in early March and we are delighted to see the reception, with so many users upgrading to it on day one and sharing their favorite new changes on social media! If you havent seen the &lt;a href="/releases/4.4/">&lt;strong>4.4 release page&lt;/strong>&lt;/a>, its well worth a read!&lt;/p>
&lt;p>Since then, weve started the development phase for Godot 4.5 at full speed (with a first &lt;a href="/article/dev-snapshot-godot-4-5-dev-1/">dev snapshot&lt;/a> released last week!), but we also put our main focus on fixing remaining and newly reported regressions that affect users who upgraded to 4.4. A few of these issues can be showstoppers for affected users, so we decided to release a 4.4.1 maintenance release as soon as possible.&lt;/p>
&lt;p>See below for a list of the most relevant changes. This release includes fixes to &lt;a href="https://github.com/Mbed-TLS/mbedtls/releases/tag/mbedtls-3.6.3">security vulnerabilities&lt;/a> in the mbedTLS third-party library, so we strongly recommend updating for any game using networking functionality.&lt;/p>
&lt;p>Maintenance releases are expected to be safe for an upgrade, but we recommend to always make backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.&lt;/p>
&lt;p>&lt;a href="/download/">&lt;strong>Download Godot 4.4.1 now&lt;/strong>&lt;/a> or try the &lt;a href="https://editor.godotengine.org/4.4.1.stable/">online version of the Godot editor&lt;/a>.&lt;/p>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4.1-stable">
Download Godot 4.4.1 stable
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/maintenance-release-godot-4-4-1.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-stable/Godot_v4.4.1-stable_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4.1-stable">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;hr />
&lt;p>&lt;em>The illustration picture for this article comes from&lt;/em> &lt;a href="https://store.steampowered.com/app/1907590/Psycho_Patrol_R/?curator_clanid=41324400">&lt;strong>Psycho Patrol R&lt;/strong>&lt;/a>, &lt;em>a FPS/mecha hybrid europolice sim, which was recently released in Early Access &lt;a href="https://store.steampowered.com/app/1907590/Psycho_Patrol_R/?curator_clanid=41324400">on Steam&lt;/a>. It is developed by &lt;a href="https://csoftproducts.life/">Consumer Softproducts&lt;/a>, known for their previous Godot hit &lt;a href="https://store.steampowered.com/app/1388770/Cruelty_Squad/?curator_clanid=41324400">Cruelty Squad&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="changes">Changes&lt;/h2>
&lt;p>&lt;strong>58 contributors&lt;/strong> submitted around &lt;strong>125 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4.1">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the &lt;a href="/releases/4.4/">4.4 release&lt;/a>.&lt;/p>
&lt;p>Below are some of the most notable changes (with critical fixes highlighted in bold):&lt;/p>
&lt;ul>
&lt;li>3D: Fix &lt;code class="language-plaintext highlighter-rouge">RemoteTransform3D&lt;/code> to always use global rotation if &lt;code class="language-plaintext highlighter-rouge">use_global_coordinates&lt;/code> is true (&lt;a href="https://github.com/godotengine/godot/pull/97498">GH-97498&lt;/a>).&lt;/li>
&lt;li>Animation: Fix console errors and crash in cleanup code for PhysicalBoneSimulator3D (&lt;a href="https://github.com/godotengine/godot/pull/103921">GH-103921&lt;/a>).&lt;/li>
&lt;li>Animation: Fix missing &lt;code class="language-plaintext highlighter-rouge">process_state&lt;/code> error in blend spaces (&lt;a href="https://github.com/godotengine/godot/pull/104018">GH-104018&lt;/a>).&lt;/li>
&lt;li>Animation: Fix rest translation space in &lt;code class="language-plaintext highlighter-rouge">LookAtModifier3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104217">GH-104217&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Audio: Set interactive music streams as meta streams (&lt;a href="https://github.com/godotengine/godot/pull/104054">GH-104054&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Audio: Fix AudioEffectPitchShift issues when &lt;code class="language-plaintext highlighter-rouge">pitch_scale&lt;/code> is set to 1 (&lt;a href="https://github.com/godotengine/godot/pull/104090">GH-104090&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Android: Fix build with &lt;code class="language-plaintext highlighter-rouge">disable_3d&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103523">GH-103523&lt;/a>).&lt;/li>
&lt;li>C#: Use &lt;code class="language-plaintext highlighter-rouge">ObjectID&lt;/code> when converting &lt;code class="language-plaintext highlighter-rouge">Variant&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">GodotObject&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/98034">GH-98034&lt;/a>).&lt;/li>
&lt;li>C#: Skip re-saving &lt;code class="language-plaintext highlighter-rouge">.csproj&lt;/code> when TFM is unchanged (&lt;a href="https://github.com/godotengine/godot/pull/103714">GH-103714&lt;/a>).&lt;/li>
&lt;li>Core: Use single RNG instance for &lt;code class="language-plaintext highlighter-rouge">FileAccessEncrypted&lt;/code> IV generation (&lt;a href="https://github.com/godotengine/godot/pull/103415">GH-103415&lt;/a>).&lt;/li>
&lt;li>Core: Fix &lt;code class="language-plaintext highlighter-rouge">Invalid Task ID&lt;/code> errors in &lt;code class="language-plaintext highlighter-rouge">ResourceLoader&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104060">GH-104060&lt;/a>).&lt;/li>
&lt;li>Editor: Fix copying a Node with a signal potentially resulting in an editor crash (&lt;a href="https://github.com/godotengine/godot/pull/96372">GH-96372&lt;/a>).&lt;/li>
&lt;li>Editor: Make &lt;code class="language-plaintext highlighter-rouge">EditorProperty&lt;/code> and its child &lt;code class="language-plaintext highlighter-rouge">EditorProperty&lt;/code> behave like sibling nodes when handling mouse events (&lt;a href="https://github.com/godotengine/godot/pull/103316">GH-103316&lt;/a>).&lt;/li>
&lt;li>Editor: Fix TextEdit scrolls wrong on text selection (&lt;a href="https://github.com/godotengine/godot/pull/103410">GH-103410&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Editor: Update script modified times when saved in EditorNode (&lt;a href="https://github.com/godotengine/godot/pull/103695">GH-103695&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Editor: Fix ownership when pasting non root with child nodes in new scene (&lt;a href="https://github.com/godotengine/godot/pull/103769">GH-103769&lt;/a>).&lt;/li>
&lt;li>Editor: Create .uid files for detected new files (&lt;a href="https://github.com/godotengine/godot/pull/104248">GH-104248&lt;/a>).&lt;/li>
&lt;li>Editor: Fix editor crash when inspecting 2 objects handled by the same plugin (&lt;a href="https://github.com/godotengine/godot/pull/104296">GH-104296&lt;/a>).&lt;/li>
&lt;li>Editor: Change root node transform warning to only show up for position (&lt;a href="https://github.com/godotengine/godot/pull/104331">GH-104331&lt;/a>).&lt;/li>
&lt;li>Export: iOS: Restore one-click deploy device enumeration using Xcode (&lt;a href="https://github.com/godotengine/godot/pull/103590">GH-103590&lt;/a>).&lt;/li>
&lt;li>Export: Android: Convert &lt;code class="language-plaintext highlighter-rouge">compress_native_libraries&lt;/code> to a basic export option (&lt;a href="https://github.com/godotengine/godot/pull/104301">GH-104301&lt;/a>).&lt;/li>
&lt;li>&lt;strong>GDExtension: Correctly register editor-only &lt;code class="language-plaintext highlighter-rouge">OpenXR*&lt;/code> classes &lt;code class="language-plaintext highlighter-rouge">api_type&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103869">GH-103869&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>GDScript: Fix head class range to include &lt;code class="language-plaintext highlighter-rouge">class_name&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104114">GH-104114&lt;/a>).&lt;/li>
&lt;li>GDScript: Add clearing of &lt;code class="language-plaintext highlighter-rouge">static_gdscript_cache&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">GDScriptCache&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104281">GH-104281&lt;/a>).&lt;/li>
&lt;li>GUI: Fix Tree keyboard navigation in RTL direction (&lt;a href="https://github.com/godotengine/godot/pull/102865">GH-102865&lt;/a>).&lt;/li>
&lt;li>GUI: Fix &lt;code class="language-plaintext highlighter-rouge">changed&lt;/code> signal emission in &lt;code class="language-plaintext highlighter-rouge">Curve::set_point_offset&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/96296">GH-96296&lt;/a>).&lt;/li>
&lt;li>GUI: Fix spinbox decimal issues when &lt;code class="language-plaintext highlighter-rouge">update_on_text_changed&lt;/code> = true (&lt;a href="https://github.com/godotengine/godot/pull/100684">GH-100684&lt;/a>).&lt;/li>
&lt;li>GUI: Fix error when embedded popup is closed while resizing (&lt;a href="https://github.com/godotengine/godot/pull/102504">GH-102504&lt;/a>).&lt;/li>
&lt;li>GUI: VideoStreamPlayer: Stop video on exit tree (&lt;a href="https://github.com/godotengine/godot/pull/103396">GH-103396&lt;/a>).&lt;/li>
&lt;li>GUI: Use &lt;code class="language-plaintext highlighter-rouge">Viewport&lt;/code>s default texture filter/repeat in GUI tooltips (&lt;a href="https://github.com/godotengine/godot/pull/103636">GH-103636&lt;/a>).&lt;/li>
&lt;li>GUI: Label: Fix min. size calculation counting extra spacing twice (&lt;a href="https://github.com/godotengine/godot/pull/103728">GH-103728&lt;/a>).&lt;/li>
&lt;li>Import: Fix headless import always emits errors (&lt;a href="https://github.com/godotengine/godot/pull/103403">GH-103403&lt;/a>).&lt;/li>
&lt;li>Import: BasisUniversal: Ensure ASTCs HDR variant is supported when transcoding (&lt;a href="https://github.com/godotengine/godot/pull/103766">GH-103766&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Import: ResourceLoader: Do not wait for the main thread during initial reimport (&lt;a href="https://github.com/godotengine/godot/pull/104013">GH-104013&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>&lt;strong>Import: Force multiple of 4 sizes for Betsy compressor (&lt;a href="https://github.com/godotengine/godot/pull/104275">GH-104275&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Import: Fix crash when reimporting nested gltf scenes (&lt;a href="https://github.com/godotengine/godot/pull/104384">GH-104384&lt;/a>).&lt;/li>
&lt;li>Input: Fix Android mouse capture issues (&lt;a href="https://github.com/godotengine/godot/pull/103413">GH-103413&lt;/a>).&lt;/li>
&lt;li>Input: macOS/iOS: Ensure only one axis change event is produced during single &lt;code class="language-plaintext highlighter-rouge">process_joypads()&lt;/code> call (&lt;a href="https://github.com/godotengine/godot/pull/104314">GH-104314&lt;/a>).&lt;/li>
&lt;li>Navigation: Make NavigationLink3D properly update on visibility change (&lt;a href="https://github.com/godotengine/godot/pull/103588">GH-103588&lt;/a>).&lt;/li>
&lt;li>Particles: Fix particle jitter when scene tree is paused (&lt;a href="https://github.com/godotengine/godot/pull/95912">GH-95912&lt;/a>).&lt;/li>
&lt;li>Particles: Fix GPU particles not emitting at some configured rates when scale curve is zero (&lt;a href="https://github.com/godotengine/godot/pull/103121">GH-103121&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Physics: Fix interpolation in XR (&lt;a href="https://github.com/godotengine/godot/pull/103233">GH-103233&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Physics: Fix broken negative scaling when using Jolt Physics (&lt;a href="https://github.com/godotengine/godot/pull/103440">GH-103440&lt;/a>).&lt;/li>
&lt;li>Physics: Fix &lt;code class="language-plaintext highlighter-rouge">ConcavePolygonShape3D&lt;/code> always enabling &lt;code class="language-plaintext highlighter-rouge">backface_collision&lt;/code> when using Jolt Physics (&lt;a href="https://github.com/godotengine/godot/pull/104310">GH-104310&lt;/a>).&lt;/li>
&lt;li>Physics: Fix &lt;code class="language-plaintext highlighter-rouge">shape&lt;/code> always being zero with &lt;code class="language-plaintext highlighter-rouge">get_rest_info&lt;/code> when using Jolt Physics (&lt;a href="https://github.com/godotengine/godot/pull/104599">GH-104599&lt;/a>).&lt;/li>
&lt;li>Plugin: JavaClassWrapper: Improve handling of typed array arguments (&lt;a href="https://github.com/godotengine/godot/pull/102817">GH-102817&lt;/a>).&lt;/li>
&lt;li>Plugin: JavaClassWrapper: Fix converting returned arrays to Godot types (&lt;a href="https://github.com/godotengine/godot/pull/103375">GH-103375&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Plugin: JavaClassWrapper: Fix conversion to/from &lt;code class="language-plaintext highlighter-rouge">org.godotengine.godot.Dictionary&lt;/code> that regressed (&lt;a href="https://github.com/godotengine/godot/pull/103733">GH-103733&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/104156">GH-104156&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Porting: Linux: X11: Fix check for &lt;code class="language-plaintext highlighter-rouge">is_maximized&lt;/code> to require both horizontal and vertical (&lt;a href="https://github.com/godotengine/godot/pull/103526">GH-103526&lt;/a>).&lt;/li>
&lt;li>Porting: Linux: Offload RenderingDevice creation test to subprocess (&lt;a href="https://github.com/godotengine/godot/pull/103560">GH-103560&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Swap Nintendo face buttons (&lt;a href="https://github.com/godotengine/godot/pull/103661">GH-103661&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Update mouse-entered state when subwindow closes (&lt;a href="https://github.com/godotengine/godot/pull/104328">GH-104328&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Fix &lt;code class="language-plaintext highlighter-rouge">get_modified_time&lt;/code> on locked files (&lt;a href="https://github.com/godotengine/godot/pull/103622">GH-103622&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Use more efficient sleep approach when low-processor mode is enabled (&lt;a href="https://github.com/godotengine/godot/pull/103773">GH-103773&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Add ASTC HDR format variants (&lt;a href="https://github.com/godotengine/godot/pull/102777">GH-102777&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix voxelizer normals (&lt;a href="https://github.com/godotengine/godot/pull/102893">GH-102893&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix 2D quad primitive missing lighting data in GLES3 renderer (&lt;a href="https://github.com/godotengine/godot/pull/102908">GH-102908&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix uninitialized value in Tonemap (&lt;a href="https://github.com/godotengine/godot/pull/103092">GH-103092&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Use separate WorkThreadPool for shader compiler (&lt;a href="https://github.com/godotengine/godot/pull/103506">GH-103506&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix incorrect parameters passed to VMA (&lt;a href="https://github.com/godotengine/godot/pull/103730">GH-103730&lt;/a>).&lt;/li>
&lt;li>Rendering: MetalFX: Change fallback behavior (&lt;a href="https://github.com/godotengine/godot/pull/103792">GH-103792&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix GLES3 &lt;code class="language-plaintext highlighter-rouge">gaussian_blur&lt;/code> mipmap setup (&lt;a href="https://github.com/godotengine/godot/pull/103878">GH-103878&lt;/a>).&lt;/li>
&lt;li>Rendering: CPUParticles2D: Fix physics interpolation after entering tree with &lt;code class="language-plaintext highlighter-rouge">emitting = false&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103966">GH-103966&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Vulkan: Disable layers in editor deemed buggy by RenderDoc (&lt;a href="https://github.com/godotengine/godot/pull/104154">GH-104154&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix Metal handling of cube textures; assert equal dimensions (&lt;a href="https://github.com/godotengine/godot/pull/104341">GH-104341&lt;/a>).&lt;/li>
&lt;li>Rendering: Disable broken Vulkan layers before running RenderingDevice tests (&lt;a href="https://github.com/godotengine/godot/pull/104572">GH-104572&lt;/a>).&lt;/li>
&lt;li>Shaders: Fix 2D instance params crashing using outside of &lt;code class="language-plaintext highlighter-rouge">main()&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103348">GH-103348&lt;/a>).&lt;/li>
&lt;li>Shaders: 2D: Fix light shader accessing &lt;code class="language-plaintext highlighter-rouge">TEXTURE_PIXEL_SIZE&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103617">GH-103617&lt;/a>).&lt;/li>
&lt;li>Thirdparty: Theora: Fix YUV422/444 to RGB conversion (&lt;a href="https://github.com/godotengine/godot/pull/102859">GH-102859&lt;/a>).&lt;/li>
&lt;li>Thirdparty: Update to latest version of Swappy (&lt;a href="https://github.com/godotengine/godot/pull/103409">GH-103409&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Thirdparty: mbedTLS: Update to version 3.6.3 (security fix) (&lt;a href="https://github.com/godotengine/godot/pull/104562">GH-104562&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>XR: Correct occlusion culling viewport location calculation when projection uses asymmetric FOV (&lt;a href="https://github.com/godotengine/godot/pull/104249">GH-104249&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="known-incompatibilities">Known incompatibilities&lt;/h2>
&lt;p>As of now, there are no known incompatibilities with the previous Godot 4.4 release. &lt;strong>We encourage all users to upgrade to 4.4.1.&lt;/strong>&lt;/p>
&lt;p>If you experience any unexpected behavior change in your projects after upgrading to 4.4.1, please &lt;a href="https://github.com/godotengine/godot/issues">file an issue on GitHub&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Rémi Verschelde</name></author><category term="Release"/></entry><entry><title>Release candidate: Godot 4.4.1 RC 2</title><link href="https://godotengine.org/article/release-candidate-godot-4-4-1-rc-2/"/><updated>2025-03-21T17:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-4-1-rc-2/</id><summary>Closing in on the first maintenance release for Godot 4.4, fixing a number of regressions and other significant bugs found in this month's feature release.</summary><content type="html">&lt;p>We released &lt;a href="/releases/4.4/">Godot 4.4&lt;/a> in early March and we are delighted to see the reception, with so many users upgrading to it on day 1 and sharing their favorite new changes on social media! If you havent seen the &lt;a href="/releases/4.4/">&lt;strong>4.4 release page&lt;/strong>&lt;/a>, its well worth a read!&lt;/p>
&lt;p>Since then, weve started the development phase for Godot 4.5 at full speed (with a first &lt;a href="/article/dev-snapshot-godot-4-5-dev-1/">dev snapshot&lt;/a> released yesterday!), but we also put our main focus on fixing remaining and newly reported regressions that affect users who upgraded to 4.4. A few of these issues can be showstoppers for affected users, so we decided to release a 4.4.1 maintenance release as soon as possible.&lt;/p>
&lt;p>After a first &lt;a href="/article/release-candidate-godot-4-4-1-rc-1/">4.4.1-rc1 snapshot&lt;/a> last week, we decided to make a second release candidate as a few more critical bugs had fixes available to backport. Please test it if you can and report any new issue that was not present in 4.4-stable, as we want to ensure we dont introduce new regressions in this hotfix release.&lt;/p>
&lt;p>Maintenance releases are expected to be safe for an upgrade, but we recommend to always make backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.1.rc2/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The illustration picture for this article comes from&lt;/em> &lt;a href="https://store.steampowered.com/app/1254770/Haulin_Oats/?curator_clanid=41324400">&lt;strong>Haulin Oats&lt;/strong>&lt;/a>, &lt;em>a board game about truck driving, the US highways, and oatmeal (?!), which was recently released in version 1.0 &lt;a href="https://store.steampowered.com/app/1254770/Haulin_Oats/?curator_clanid=41324400">on Steam&lt;/a>. It is developed by &lt;a href="https://grampsgarcia.com/">Gramps Garcia&lt;/a>, the tireless maintainer of the popular &lt;a href="https://godotsteam.com/">GodotSteam&lt;/a> integration for the Steamworks SDK.&lt;/em>&lt;/p>
&lt;h2 id="whats-new">Whats new&lt;/h2>
&lt;p>&lt;strong>21 contributors&lt;/strong> submitted around &lt;strong>39 improvements&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4.1-rc2">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the &lt;a href="/article/release-candidate-godot-4-4-1-rc-1/">4.4.1-rc1 snapshot&lt;/a>. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4.1">all changes included in 4.4.1&lt;/a> compared to the 4.4 release.&lt;/p>
&lt;p>Below are the most notable changes in this second release candidate (with critical fixes highlighted in bold):&lt;/p>
&lt;ul>
&lt;li>3D: Fix &lt;code class="language-plaintext highlighter-rouge">RemoteTransform3D&lt;/code> to always use global rotation if &lt;code class="language-plaintext highlighter-rouge">use_global_coordinates&lt;/code> is true (&lt;a href="https://github.com/godotengine/godot/pull/97498">GH-97498&lt;/a>).&lt;/li>
&lt;li>Animation: Fix console errors and crash in cleanup code for PhysicalBoneSimulator3D (&lt;a href="https://github.com/godotengine/godot/pull/103921">GH-103921&lt;/a>).&lt;/li>
&lt;li>Animation: Fix rest translation space in &lt;code class="language-plaintext highlighter-rouge">LookAtModifier3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104217">GH-104217&lt;/a>).&lt;/li>
&lt;li>Core: Use single RNG instance for &lt;code class="language-plaintext highlighter-rouge">FileAccessEncrypted&lt;/code> IV generation (&lt;a href="https://github.com/godotengine/godot/pull/103415">GH-103415&lt;/a>).&lt;/li>
&lt;li>Editor: Make &lt;code class="language-plaintext highlighter-rouge">EditorProperty&lt;/code> and its child &lt;code class="language-plaintext highlighter-rouge">EditorProperty&lt;/code> behave like sibling nodes when handling mouse events (&lt;a href="https://github.com/godotengine/godot/pull/103316">GH-103316&lt;/a>).&lt;/li>
&lt;li>Editor: Create .uid files for detected new files (&lt;a href="https://github.com/godotengine/godot/pull/104248">GH-104248&lt;/a>).&lt;/li>
&lt;li>Editor: Change root node transform warning to only show up for position (&lt;a href="https://github.com/godotengine/godot/pull/104331">GH-104331&lt;/a>).&lt;/li>
&lt;li>Editor: Fix use after free in the editor inspector section cleanup (&lt;a href="https://github.com/godotengine/godot/pull/104362">GH-104362&lt;/a>).&lt;/li>
&lt;li>Export: Android: Convert &lt;code class="language-plaintext highlighter-rouge">compress_native_libraries&lt;/code> to a basic export option (&lt;a href="https://github.com/godotengine/godot/pull/104301">GH-104301&lt;/a>).&lt;/li>
&lt;li>GDScript: Fix head class range to include &lt;code class="language-plaintext highlighter-rouge">class_name&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104114">GH-104114&lt;/a>).&lt;/li>
&lt;li>GDScript: Add clearing of &lt;code class="language-plaintext highlighter-rouge">static_gdscript_cache&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">GDScriptCache&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104281">GH-104281&lt;/a>).&lt;/li>
&lt;li>GUI: Fix error when embedded popup is closed while resizing (&lt;a href="https://github.com/godotengine/godot/pull/102504">GH-102504&lt;/a>).&lt;/li>
&lt;li>GUI: Label: Fix min. size calculation counting extra spacing twice (&lt;a href="https://github.com/godotengine/godot/pull/103728">GH-103728&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Import: Force multiple of 4 sizes for Betsy compressor (&lt;a href="https://github.com/godotengine/godot/pull/104275">GH-104275&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Import: Fix crash when reimporting nested gltf scenes (&lt;a href="https://github.com/godotengine/godot/pull/104384">GH-104384&lt;/a>).&lt;/li>
&lt;li>Input: macOS/iOS: Ensure only one axis change event is produced during single &lt;code class="language-plaintext highlighter-rouge">process_joypads()&lt;/code> call (&lt;a href="https://github.com/godotengine/godot/pull/104314">GH-104314&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Physics: Fix interpolation in XR (&lt;a href="https://github.com/godotengine/godot/pull/103233">GH-103233&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Physics: Fix &lt;code class="language-plaintext highlighter-rouge">ConcavePolygonShape3D&lt;/code> always enabling &lt;code class="language-plaintext highlighter-rouge">backface_collision&lt;/code> when using Jolt Physics (&lt;a href="https://github.com/godotengine/godot/pull/104310">GH-104310&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Plugin: JavaClassWrapper: Fix mistake in last fix for &lt;code class="language-plaintext highlighter-rouge">org.godotengine.godot.Dictionary&lt;/code> conversion (&lt;a href="https://github.com/godotengine/godot/pull/104156">GH-104156&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Porting: macOS: Fix editor loading crash on native menu click (&lt;a href="https://github.com/godotengine/godot/pull/103892">GH-103892&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Update mouse-entered state when subwindow closes (&lt;a href="https://github.com/godotengine/godot/pull/104328">GH-104328&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Vulkan: Disable layers in editor deemed buggy by RenderDoc (&lt;a href="https://github.com/godotengine/godot/pull/104154">GH-104154&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix Metal handling of cube textures; assert equal dimensions (&lt;a href="https://github.com/godotengine/godot/pull/104341">GH-104341&lt;/a>).&lt;/li>
&lt;li>XR: Correct occlusion culling viewport location calculation when projection uses asymmetric FOV (&lt;a href="https://github.com/godotengine/godot/pull/104249">GH-104249&lt;/a>).&lt;/li>
&lt;/ul>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/abef5e0d23a7f031ae7df90ccf49d650444b9685">&lt;code class="language-plaintext highlighter-rouge">abef5e0d2&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4.1-rc2">
Download Godot 4.4.1 rc2
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-4-1-rc-2.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc2/Godot_v4.4.1-rc2_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4.1-rc2">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>There are currently no known issues introduced by this release.&lt;/p>
&lt;p>With every release we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Rémi Verschelde</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.5 dev 1</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-5-dev-1/"/><updated>2025-03-20T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-5-dev-1/</id><summary>The feature freeze has melted away—here comes the flood!</summary><content type="html">&lt;p>Our first development snapshot for 4.5 has arrived! As is often the case following a feature-freeze, several quality
PRs were finally released from the collective backlog, as merging them at the time wouldve been too much of a risk.
In truth, the quantity has been &lt;em>so&lt;/em> great that we couldve gotten away with releasing a snapshot a week ago! However,
we found it worth our time to hold out and get as many contributions integrated as possible, as a way of thanking those
whove been so patient in waiting for their contributions to see the light of day.&lt;/p>
&lt;p>A significant chunk of the changes in this release are bugfixes, the majority of which you will be see backported to
4.4 in a 4.4.1-stable release next week! As such, we encourage testing this build in order to ensure a smooth release for both
versions. Granted, as this &lt;em>is&lt;/em> a pre-release, the bugfixes arent the only additions; the usual safety precautions
that come with such an environment should be taken. Even though we prepare these snapshots such that theyre suitable
for general testing, backups and/or version control are recommended to prevent the loss of data.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.5.dev1/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/3431040/Thats_not_my_Neighbor/?curator_clanid=41324400">&lt;strong>Thats not my Neighbor&lt;/strong>&lt;/a>, &lt;em>where you take the role of a doorman ensuring the safety of your apartment complex from a mysterious surge of doppelgangers. Developed by &lt;a href="https://nachogames.itch.io/">Nachosama Games&lt;/a>, the game was recently released &lt;a href="https://store.steampowered.com/app/3431040/Thats_not_my_Neighbor/?curator_clanid=41324400">on Steam&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;h3 id="mute-game-toggle">“Mute Game” toggle&lt;/h3>
&lt;p>Previously, if a developer wished to mute the audio while testing in the editor, they had to either use the operating
systems builtin tools for sound or outright pause/close their work. &lt;a href="https://github.com/Meorge">Malcolm Anderson&lt;/a> sought
a more streamlined solution, and integrated a new toggle on the Game view (&lt;a href="https://github.com/godotengine/godot/pull/99555">GH-99555&lt;/a>). Now if developers wish to halt/restore audio
output entirely, its just one click away!&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-1/mute-toggle.webm?1" type="video/webm" />
&lt;/video>
&lt;h3 id="drop-preload-resources-as-uid">Drop preload Resources as &lt;code class="language-plaintext highlighter-rouge">UID&lt;/code>&lt;/h3>
&lt;p>With &lt;code class="language-plaintext highlighter-rouge">UID&lt;/code> support being a part of the engine as of 4.4—read more about them &lt;a href="/article/uid-changes-coming-to-godot-4-4/">here&lt;/a>—weve enabled further optimizations via their integration with core components. However, as this is a new change, theres still a few areas that have been lagging behind on support. In particular: preloaded resources lacked the ability to be loaded as &lt;code class="language-plaintext highlighter-rouge">UID&lt;/code> if dragged. &lt;a href="https://github.com/KoBeWi">Tomasz Chabora&lt;/a> has rectified this limitation in &lt;a href="https://github.com/godotengine/godot/pull/99094">GH-99094&lt;/a>, and youll find plenty more like this in our curated selection below.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-1/preload-uid.webm?1" type="video/webm" />
&lt;/video>
&lt;h3 id="allow-selecting-multiple-remote-nodes-at-runtime">Allow selecting multiple remote nodes at runtime&lt;/h3>
&lt;p>A long-awaited QOL addition to the editor experience has finally arrived! Thanks to &lt;a href="https://github.com/YeldhamDev">Michael Alexsander&lt;/a>, developers now have the ability to select multiple nodes in a runtime context! Check out their pull request &lt;a href="https://github.com/godotengine/godot/pull/99680">GH-99680&lt;/a> for more information on how this was integrated.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-1/multiple-nodes.webm?1" type="video/webm" />
&lt;/video>
&lt;h3 id="chunk-tilemap-physics">Chunk tilemap physics&lt;/h3>
&lt;p>The current implementation of &lt;code class="language-plaintext highlighter-rouge">TileMapLayer&lt;/code> uses individual collision bodies for every single cell, which is extremely wasteful and a likely cause of runtime performance issues for 2D scenes relying on physics. &lt;a href="https://github.com/groud">Gilles Roudière&lt;/a> took to entirely reworking this system in &lt;a href="https://github.com/godotengine/godot/pull/102662">GH-102662&lt;/a>, ensuring that cells take every possible opportunity.&lt;/p>
&lt;video autoplay="" loop="" muted="" playsinline="">
&lt;source src="/storage/blog/dev-snapshot-godot-4-5-dev-1/chunk-tilemap.webm?1" type="video/webm" />
&lt;/video>
&lt;h3 id="and-more">And more!&lt;/h3>
&lt;p>There are too many exciting changes to list them all here, but heres a curated selection:&lt;/p>
&lt;ul>
&lt;li>2D: Improve usability of &lt;code class="language-plaintext highlighter-rouge">Camera2D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/101427">GH-101427&lt;/a>).&lt;/li>
&lt;li>3D: Fix &lt;code class="language-plaintext highlighter-rouge">Camera3D&lt;/code> gizmo representation to accurately reflect FOV (&lt;a href="https://github.com/godotengine/godot/pull/101884">GH-101884&lt;/a>).&lt;/li>
&lt;li>3D: Use physical keys for the Q/W/E/R editor shortcuts (&lt;a href="https://github.com/godotengine/godot/pull/103533">GH-103533&lt;/a>).&lt;/li>
&lt;li>Animation: Support hiding functions calls in Method Tracks (&lt;a href="https://github.com/godotengine/godot/pull/96421">GH-96421&lt;/a>).&lt;/li>
&lt;li>Core: Add &lt;code class="language-plaintext highlighter-rouge">scene_changed&lt;/code> signal to &lt;code class="language-plaintext highlighter-rouge">SceneTree&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/102986">GH-102986&lt;/a>).&lt;/li>
&lt;li>Core: Add DDS image load and save functionality (&lt;a href="https://github.com/godotengine/godot/pull/101994">GH-101994&lt;/a>).&lt;/li>
&lt;li>Core: Dont duplicate internal nodes (&lt;a href="https://github.com/godotengine/godot/pull/89442">GH-89442&lt;/a>).&lt;/li>
&lt;li>Core: Implement &lt;code class="language-plaintext highlighter-rouge">get_size&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">get_access_time&lt;/code> methods to &lt;code class="language-plaintext highlighter-rouge">FileAccess&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/83538">GH-83538&lt;/a>).&lt;/li>
&lt;li>Debugger: Allow locating VRAM resource by double-clicking (&lt;a href="https://github.com/godotengine/godot/pull/103949">GH-103949&lt;/a>).&lt;/li>
&lt;li>Documentation: Overhaul &lt;code class="language-plaintext highlighter-rouge">Node3D&lt;/code> documentation (&lt;a href="https://github.com/godotengine/godot/pull/87440">GH-87440&lt;/a>).&lt;/li>
&lt;li>Editor: Add option to copy a files name in the FileSystem dock (&lt;a href="https://github.com/godotengine/godot/pull/96536">GH-96536&lt;/a>).&lt;/li>
&lt;li>Editor: Allow ignoring debugger error breaks (&lt;a href="https://github.com/godotengine/godot/pull/77015">GH-77015&lt;/a>).&lt;/li>
&lt;li>Editor: Dont save unnecessarily with &lt;code class="language-plaintext highlighter-rouge">save_before_running&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/90034">GH-90034&lt;/a>).&lt;/li>
&lt;li>Editor: Improve drag and drop into array property editors (&lt;a href="https://github.com/godotengine/godot/pull/102534">GH-102534&lt;/a>).&lt;/li>
&lt;li>Editor: Replace &lt;code class="language-plaintext highlighter-rouge">UID&lt;/code> and Surface upgrade tools with universal one (&lt;a href="https://github.com/godotengine/godot/pull/103044">GH-103044&lt;/a>).&lt;/li>
&lt;li>Export: Android: Convert &lt;code class="language-plaintext highlighter-rouge">compress_native_libraries&lt;/code> to a basic export option (&lt;a href="https://github.com/godotengine/godot/pull/104301">GH-104301&lt;/a>).&lt;/li>
&lt;li>GDExtension: Include precision in extension_api.json (&lt;a href="https://github.com/godotengine/godot/pull/103137">GH-103137&lt;/a>).&lt;/li>
&lt;li>GDScript: Highlight warning lines in Script editor (&lt;a href="https://github.com/godotengine/godot/pull/102469">GH-102469&lt;/a>).&lt;/li>
&lt;li>GUI: Implement properties that can recursively disable child controls &lt;code class="language-plaintext highlighter-rouge">FocusMode&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">MouseFilter&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/97495">GH-97495&lt;/a>).&lt;/li>
&lt;li>GUI: Improve ColorPicker picker shape keyboard and joypad accessibility (&lt;a href="https://github.com/godotengine/godot/pull/99374">GH-99374&lt;/a>).&lt;/li>
&lt;li>Import: Use &lt;code class="language-plaintext highlighter-rouge">UID&lt;/code> in addition to path for extracted meshes, materials and animations (&lt;a href="https://github.com/godotengine/godot/pull/100786">GH-100786&lt;/a>).&lt;/li>
&lt;li>Particles: Add emission shape gizmos to &lt;code class="language-plaintext highlighter-rouge">Particles2D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/102249">GH-102249&lt;/a>).&lt;/li>
&lt;li>Particles: Fix particle jitter when scene tree is paused (&lt;a href="https://github.com/godotengine/godot/pull/95912">GH-95912&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Add &lt;code class="language-plaintext highlighter-rouge">linux-bionic&lt;/code> RID export option (&lt;a href="https://github.com/godotengine/godot/pull/97908">GH-97908&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Add a &lt;code class="language-plaintext highlighter-rouge">TouchActionsPanel&lt;/code> to editor (&lt;a href="https://github.com/godotengine/godot/pull/100339">GH-100339&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Enable support for volume button events (&lt;a href="https://github.com/godotengine/godot/pull/102984">GH-102984&lt;/a>).&lt;/li>
&lt;li>Porting: Linux: Implement native color picker (&lt;a href="https://github.com/godotengine/godot/pull/101546">GH-101546&lt;/a>).&lt;/li>
&lt;li>Porting: macOS/iOS: Ensure only one axis change event is produced during single &lt;code class="language-plaintext highlighter-rouge">process_joypads()&lt;/code> call (&lt;a href="https://github.com/godotengine/godot/pull/104314">GH-104314&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Remove visible &lt;code class="language-plaintext highlighter-rouge">WINDOW_MODE_FULLSCREEN&lt;/code> border by setting window region (&lt;a href="https://github.com/godotengine/godot/pull/88852">GH-88852&lt;/a>).&lt;/li>
&lt;li>Rendering: Clean up more dynamic allocations in the RD renderers with a focus on 2D (&lt;a href="https://github.com/godotengine/godot/pull/103889">GH-103889&lt;/a>).&lt;/li>
&lt;li>Rendering: Optimize &lt;code class="language-plaintext highlighter-rouge">_fill_instance_data function&lt;/code> in Forward+ renderer (&lt;a href="https://github.com/godotengine/godot/pull/103547">GH-103547&lt;/a>).&lt;/li>
&lt;li>Rendering: Significantly reduce per-frame memory allocations from the heap in the Mobile renderer (&lt;a href="https://github.com/godotengine/godot/pull/103794">GH-103794&lt;/a>).&lt;/li>
&lt;li>Rendering: Update &lt;code class="language-plaintext highlighter-rouge">ViewportTexture&lt;/code> path relative to its local scene instead of the &lt;code class="language-plaintext highlighter-rouge">Viewport&lt;/code> owner (&lt;a href="https://github.com/godotengine/godot/pull/97861">GH-97861&lt;/a>).&lt;/li>
&lt;li>Rendering: Use lower shadow normal bias for distant directional shadow splits (&lt;a href="https://github.com/godotengine/godot/pull/60178">GH-60178&lt;/a>).&lt;/li>
&lt;li>Rendering: Use separate WorkThreadPool for shader compiler (&lt;a href="https://github.com/godotengine/godot/pull/103506">GH-103506&lt;/a>).&lt;/li>
&lt;li>Scripting: Fix script docs not being searchable without manually recompiling scripts (&lt;a href="https://github.com/godotengine/godot/pull/95821">GH-95821&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>121 contributors&lt;/strong> submitted &lt;strong>403 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-dev1">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-stable.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/97241ffea6df579347653a8ce0c75db44e28f0c8">&lt;code class="language-plaintext highlighter-rouge">97241ffea&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.5-dev1">
Download Godot 4.5 dev1
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-5-dev-1.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.5-dev1/Godot_v4.5-dev1_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.5-dev1">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>There are currently no known issues introduced by this release.&lt;/p>
&lt;p>With every release we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Release candidate: Godot 4.4.1 RC 1</title><link href="https://godotengine.org/article/release-candidate-godot-4-4-1-rc-1/"/><updated>2025-03-14T11:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-4-1-rc-1/</id><summary>Godot 4.4 was released 10 days ago, and as is customary with such major feature updates, we have a late harvest of regression fixes to offer!</summary><content type="html">&lt;p>We released &lt;a href="/releases/4.4/">Godot 4.4&lt;/a> last week and we are delighted to see the reception, with so many users upgrading to it on day 1 and sharing their favorite new changes on social media! If you havent seen the &lt;a href="/releases/4.4/">&lt;strong>4.4 release page&lt;/strong>&lt;/a>, its well worth a read!&lt;/p>
&lt;p>Since then, weve started the development phase for Godot 4.5 at full speed, but we also put our main focus on fixing remaining and newly reported regressions that affect users who upgraded to 4.4. A few of these issues can be showstoppers for affected users, so we decided to release a 4.4.1 maintenance release as soon as possible.&lt;/p>
&lt;p>So heres a release candidate to validate this series of fixes and help ensure that Godot 4.4 is fully suitable for everyone. Please test it if you can and report any new issue that was not present in 4.4-stable, as we want to ensure we dont introduce new regressions in this hotfix release.&lt;/p>
&lt;p>Maintenance releases are expected to be safe for an upgrade, but we recommend to always make backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.1.rc1/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The illustration picture for this article comes from&lt;/em> &lt;a href="https://store.steampowered.com/app/3320800/Book_Bound/?curator_clanid=41324400">&lt;strong>Book Bound&lt;/strong>&lt;/a>, &lt;em>a cozy bookshop simulator game by Bit66 Games, which was recently released &lt;a href="https://store.steampowered.com/app/3320800/Book_Bound/?curator_clanid=41324400">on Steam&lt;/a>. You can follow the developer &lt;a href="https://bsky.app/profile/bit66.bsky.social">on Bluesky&lt;/a>, and wishlist their other upcoming game &lt;a href="https://store.steampowered.com/app/2830960/Bots__Mods/?curator_clanid=41324400">Bots &amp;amp; Mods&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="whats-new">Whats new&lt;/h2>
&lt;p>&lt;strong>48 contributors&lt;/strong> submitted around &lt;strong>76 improvements&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4.1-rc1">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-stable release. Below are the most notable changes (with critical fixes highlighted in bold):&lt;/p>
&lt;ul>
&lt;li>2D: Fix wrong canvas camera override panning in the runtime debugger (&lt;a href="https://github.com/godotengine/godot/pull/103489">GH-103489&lt;/a>).&lt;/li>
&lt;li>3D: Unify CSGPolygon3D gizmos with the other geometries (&lt;a href="https://github.com/godotengine/godot/pull/103301">GH-103301&lt;/a>).&lt;/li>
&lt;li>Animation: Fix missing &lt;code class="language-plaintext highlighter-rouge">process_state&lt;/code> error in blend spaces (&lt;a href="https://github.com/godotengine/godot/pull/104018">GH-104018&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Audio: Set interactive music streams as meta streams (&lt;a href="https://github.com/godotengine/godot/pull/104054">GH-104054&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Audio: Fix AudioEffectPitchShift issues when &lt;code class="language-plaintext highlighter-rouge">pitch_scale&lt;/code> is set to 1 (&lt;a href="https://github.com/godotengine/godot/pull/104090">GH-104090&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Android: Fix build with &lt;code class="language-plaintext highlighter-rouge">disable_3d&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103523">GH-103523&lt;/a>).&lt;/li>
&lt;li>C#: Use &lt;code class="language-plaintext highlighter-rouge">ObjectID&lt;/code> when converting &lt;code class="language-plaintext highlighter-rouge">Variant&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">GodotObject&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/98034">GH-98034&lt;/a>).&lt;/li>
&lt;li>C#: Skip re-saving &lt;code class="language-plaintext highlighter-rouge">.csproj&lt;/code> when TFM is unchanged (&lt;a href="https://github.com/godotengine/godot/pull/103714">GH-103714&lt;/a>).&lt;/li>
&lt;li>Core: Fix crash when calling &lt;code class="language-plaintext highlighter-rouge">get_argument_count()&lt;/code> on Callable with freed object (&lt;a href="https://github.com/godotengine/godot/pull/103465">GH-103465&lt;/a>).&lt;/li>
&lt;li>Core: Fix &lt;code class="language-plaintext highlighter-rouge">Invalid Task ID&lt;/code> errors in &lt;code class="language-plaintext highlighter-rouge">ResourceLoader&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104060">GH-104060&lt;/a>).&lt;/li>
&lt;li>Core: Fix missing binding for &lt;code class="language-plaintext highlighter-rouge">NOTIFICATION_WM_POSITION_CHANGED&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/104083">GH-104083&lt;/a>).&lt;/li>
&lt;li>Editor: Fix copying a Node with a signal potentially resulting in an editor crash (&lt;a href="https://github.com/godotengine/godot/pull/96372">GH-96372&lt;/a>).&lt;/li>
&lt;li>Editor: Fix TextEdit scrolls wrong on text selection (&lt;a href="https://github.com/godotengine/godot/pull/103410">GH-103410&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Editor: Update script modified times when saved in EditorNode (&lt;a href="https://github.com/godotengine/godot/pull/103695">GH-103695&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Editor: Fix ownership when pasting non root with child nodes in new scene (&lt;a href="https://github.com/godotengine/godot/pull/103769">GH-103769&lt;/a>).&lt;/li>
&lt;li>Export: iOS: Restore one-click deploy device enumeration using Xcode (&lt;a href="https://github.com/godotengine/godot/pull/103590">GH-103590&lt;/a>).&lt;/li>
&lt;li>&lt;strong>GDExtension: Correctly register editor-only &lt;code class="language-plaintext highlighter-rouge">OpenXR*&lt;/code> classes &lt;code class="language-plaintext highlighter-rouge">api_type&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103869">GH-103869&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>GUI: Fix &lt;code class="language-plaintext highlighter-rouge">changed&lt;/code> signal emission in &lt;code class="language-plaintext highlighter-rouge">Curve::set_point_offset&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/96296">GH-96296&lt;/a>).&lt;/li>
&lt;li>GUI: Fix spinbox decimal issues when &lt;code class="language-plaintext highlighter-rouge">update_on_text_changed&lt;/code> = true (&lt;a href="https://github.com/godotengine/godot/pull/100684">GH-100684&lt;/a>).&lt;/li>
&lt;li>GUI: Fix Tree keyboard navigation in RTL direction (&lt;a href="https://github.com/godotengine/godot/pull/102865">GH-102865&lt;/a>).&lt;/li>
&lt;li>GUI: VideoStreamPlayer: Stop video on exit tree (&lt;a href="https://github.com/godotengine/godot/pull/103396">GH-103396&lt;/a>).&lt;/li>
&lt;li>GUI: Use &lt;code class="language-plaintext highlighter-rouge">Viewport&lt;/code>s default texture filter/repeat in GUI tooltips (&lt;a href="https://github.com/godotengine/godot/pull/103636">GH-103636&lt;/a>).&lt;/li>
&lt;li>Import: Fix headless import always emits errors (&lt;a href="https://github.com/godotengine/godot/pull/103403">GH-103403&lt;/a>).&lt;/li>
&lt;li>Import: BasisUniversal: Ensure ASTCs HDR variant is supported when transcoding (&lt;a href="https://github.com/godotengine/godot/pull/103766">GH-103766&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Import: ResourceLoader: Do not wait for the main thread during initial reimport (&lt;a href="https://github.com/godotengine/godot/pull/104013">GH-104013&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Input: Fix Android mouse capture issues (&lt;a href="https://github.com/godotengine/godot/pull/103413">GH-103413&lt;/a>).&lt;/li>
&lt;li>Navigation: Make NavigationLink3D properly update on visibility change (&lt;a href="https://github.com/godotengine/godot/pull/103588">GH-103588&lt;/a>).&lt;/li>
&lt;li>Particles: Fix particle jitter when scene tree is paused (&lt;a href="https://github.com/godotengine/godot/pull/95912">GH-95912&lt;/a>).&lt;/li>
&lt;li>Particles: Fix GPU particles not emitting at some configured rates when scale curve is zero (&lt;a href="https://github.com/godotengine/godot/pull/103121">GH-103121&lt;/a>).&lt;/li>
&lt;li>Physics: Fix broken negative scaling when using Jolt Physics (&lt;a href="https://github.com/godotengine/godot/pull/103440">GH-103440&lt;/a>).&lt;/li>
&lt;li>Plugin: JavaClassWrapper: Improve handling of typed array arguments (&lt;a href="https://github.com/godotengine/godot/pull/102817">GH-102817&lt;/a>).&lt;/li>
&lt;li>Plugin: JavaClassWrapper: Fix converting returned arrays to Godot types (&lt;a href="https://github.com/godotengine/godot/pull/103375">GH-103375&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Plugin: JavaClassWrapper: Fix conversion to/from &lt;code class="language-plaintext highlighter-rouge">org.godotengine.godot.Dictionary&lt;/code> that regressed (&lt;a href="https://github.com/godotengine/godot/pull/103733">GH-103733&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Porting: Android: Fix editor crash after changing device language (&lt;a href="https://github.com/godotengine/godot/pull/103419">GH-103419&lt;/a>).&lt;/li>
&lt;li>Porting: X11: Fix check for &lt;code class="language-plaintext highlighter-rouge">is_maximized&lt;/code> to require both horizontal and vertical (&lt;a href="https://github.com/godotengine/godot/pull/103526">GH-103526&lt;/a>).&lt;/li>
&lt;li>Porting: Linux: Offload RenderingDevice creation test to subprocess (&lt;a href="https://github.com/godotengine/godot/pull/103560">GH-103560&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Fix &lt;code class="language-plaintext highlighter-rouge">get_modified_time&lt;/code> on locked files (&lt;a href="https://github.com/godotengine/godot/pull/103622">GH-103622&lt;/a>).&lt;/li>
&lt;li>Porting: macOS: Swap Nintendo face buttons (&lt;a href="https://github.com/godotengine/godot/pull/103661">GH-103661&lt;/a>).&lt;/li>
&lt;li>Porting: Windows: Use more efficient sleep approach when low-processor mode is enabled (&lt;a href="https://github.com/godotengine/godot/pull/103773">GH-103773&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Add ASTC HDR format variants (&lt;a href="https://github.com/godotengine/godot/pull/102777">GH-102777&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix voxelizer normals (&lt;a href="https://github.com/godotengine/godot/pull/102893">GH-102893&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix 2D quad primitive missing lighting data in GLES3 renderer (&lt;a href="https://github.com/godotengine/godot/pull/102908">GH-102908&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix uninitialized value in Tonemap (&lt;a href="https://github.com/godotengine/godot/pull/103092">GH-103092&lt;/a>).&lt;/li>
&lt;li>&lt;strong>Rendering: Use separate WorkThreadPool for shader compiler (&lt;a href="https://github.com/godotengine/godot/pull/103506">GH-103506&lt;/a>).&lt;/strong>&lt;/li>
&lt;li>Rendering: Fix incorrect parameters passed to VMA (&lt;a href="https://github.com/godotengine/godot/pull/103730">GH-103730&lt;/a>).&lt;/li>
&lt;li>Rendering: MetalFX: Change fallback behavior (&lt;a href="https://github.com/godotengine/godot/pull/103792">GH-103792&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix GLES3 &lt;code class="language-plaintext highlighter-rouge">gaussian_blur&lt;/code> mipmap setup (&lt;a href="https://github.com/godotengine/godot/pull/103878">GH-103878&lt;/a>).&lt;/li>
&lt;li>Rendering: CPUParticles2D: Fix physics interpolation after entering tree with &lt;code class="language-plaintext highlighter-rouge">emitting = false&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103966">GH-103966&lt;/a>).&lt;/li>
&lt;li>Shaders: Fix 2D instance params crashing using outside of &lt;code class="language-plaintext highlighter-rouge">main()&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103348">GH-103348&lt;/a>).&lt;/li>
&lt;li>Shaders: Fix “unused varying” incorrect warning in shaders (&lt;a href="https://github.com/godotengine/godot/pull/103434">GH-103434&lt;/a>).&lt;/li>
&lt;li>Shaders: 2D: Fix light shader accessing &lt;code class="language-plaintext highlighter-rouge">TEXTURE_PIXEL_SIZE&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103617">GH-103617&lt;/a>).&lt;/li>
&lt;li>Thirdparty: Theora: Fix YUV422/444 to RGB conversion (&lt;a href="https://github.com/godotengine/godot/pull/102859">GH-102859&lt;/a>).&lt;/li>
&lt;li>Thirdparty: Update to latest version of Swappy (&lt;a href="https://github.com/godotengine/godot/pull/103409">GH-103409&lt;/a>).&lt;/li>
&lt;/ul>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/daa4b058ee9272dd4ee9033bb093afb21ad558b7">&lt;code class="language-plaintext highlighter-rouge">daa4b058e&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4.1-rc1">
Download Godot 4.4.1 rc1
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-4-1-rc-1.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4.1-rc1/Godot_v4.4.1-rc1_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4.1-rc1">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>There are currently no known issues introduced by this release.&lt;/p>
&lt;p>With every release we accept that there are going to be various issues, which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Rémi Verschelde</name></author><category term="Pre-release"/></entry><entry><title>Godot XR update - February 2025</title><link href="https://godotengine.org/article/godot-xr-update-feb-2025/"/><updated>2025-03-06T12:00:00+00:00</updated><id>https://godotengine.org/article/godot-xr-update-feb-2025/</id><summary>New plugin releases for Godot XR.</summary><content type="html">&lt;h2 id="announcing-the-meta-toolkit-extension">Announcing the Meta Toolkit extension&lt;/h2>
&lt;p>We are pleased to announce the release of the &lt;a href="https://github.com/godot-sdk-integrations/godot-meta-toolkit">Godot Meta Toolkit&lt;/a>, a GDExtension plugin that exposes Metas &lt;a href="https://developers.meta.com/horizon/documentation/native/ps-platform-intro">Platform SDK&lt;/a> and provides other tools to simplify and accelerate XR development on Metas platform.&lt;/p>
&lt;p>The project is Open Source (MIT license) and maintained by &lt;a href="https://www.w4games.com/">W4 Games&lt;/a> with sponsorship from Meta. Contributions from the community are welcome! 🙂&lt;/p>
&lt;p>You can download version 1.0.2 &lt;a href="https://github.com/godot-sdk-integrations/godot-meta-toolkit/releases/tag/1.0.2-stable">from GitHub&lt;/a> or the &lt;a href="https://godotengine.org/asset-library/asset/3673">Asset Library&lt;/a>.&lt;/p>
&lt;p>Lets take a look at the features available in this release!&lt;/p>
&lt;h3 id="platform-sdk">Platform SDK&lt;/h3>
&lt;p>The Platform SDK allows developers to access features of Metas store and online services, including:&lt;/p>
&lt;ul>
&lt;li>User profiles (including authentication and checking entitlement)&lt;/li>
&lt;li>In-App Purchases (IAP)&lt;/li>
&lt;li>Downloadable Content (DLC)&lt;/li>
&lt;li>Friends, Parties, and Group Presence&lt;/li>
&lt;li>Achievements&lt;/li>
&lt;li>Leaderboards&lt;/li>
&lt;li>… and much more!&lt;/li>
&lt;/ul>
&lt;p>Support of the Platform SDK in the Godot Meta Toolkit is done using code generation, which automatically generates the Godot classes by processing the &lt;a href="https://developers.meta.com/horizon/downloads/package/oculus-platform-sdk/">Platform SDKs official C headers&lt;/a>. This approach simplifies keeping the Godot Meta Toolkit up-to-date with the latest updates to the Platform SDK, and provides Godot APIs that match the Platform SDKs C, Unity, and Unreal APIs.&lt;/p>
&lt;p>As of version 1.0.2, the Godot Meta Toolkit supports v72 of the Platform SDK.&lt;/p>
&lt;p>See &lt;a href="https://godot-sdk-integrations.github.io/godot-meta-toolkit/manual/platform_sdk/getting_started.html">the “Getting Started” guide in the documentation&lt;/a> for more information!&lt;/p>
&lt;h3 id="setup-tool-for-xr-simulator">Setup Tool for XR Simulator&lt;/h3>
&lt;p>The &lt;a href="https://developers.meta.com/horizon/documentation/unity/xrsim-intro">Meta XR Simulator&lt;/a> is the counterpart of the &lt;a href="https://www.meta.com/experiences/godot-game-engine/7713660705416473/">Godot XR Editor&lt;/a> as it allows developers to test XR applications directly on their computer (Windows or macOS), removing the need to constantly put the headset on and off, thus leading to faster iteration.&lt;/p>
&lt;p>The Godot editor can be configured to launch the Meta XR Simulator when you run your game, and the Godot Meta Toolkit includes a tool to help you with that configuration!&lt;/p>
&lt;p>&lt;img alt="Configure XR simulator" src="/storage/blog/godot-xr/xr_simulator_tool.webp" />&lt;/p>
&lt;p>See &lt;a href="https://godot-sdk-integrations.github.io/godot-meta-toolkit/manual/xr_simulator.html">the “XR Simulator” documentation&lt;/a> for more information!&lt;/p>
&lt;h3 id="easily-configure-exports-for-meta-quest-headsets">Easily configure exports for Meta Quest headsets&lt;/h3>
&lt;p>When exporting your game for a Meta Quest headset, in particular, if you want to release on the HorizonOS store, there are a number of specific, required export settings.&lt;/p>
&lt;p>The Godot Meta Toolkit provides a new export option that, if checked, will automatically configure these settings to their required values.&lt;/p>
&lt;p>&lt;img alt="Enable toolkit" src="/storage/blog/godot-xr/enable_toolkit.webp" />&lt;/p>
&lt;h2 id="openxr-vendors-plugin-312-release">OpenXR Vendors plugin 3.1.2 release&lt;/h2>
&lt;p>Here comes another release of the Godot OpenXR Vendors plugin with plenty of features and bug fixes!
This release of the OpenXR vendors plugin is for Godot 4.3 and later only.&lt;/p>
&lt;p>You can download version 3.1.2 from &lt;a href="https://github.com/GodotVR/godot_openxr_vendors/releases/tag/3.1.2-stable">GitHub&lt;/a> or the &lt;a href="https://godotengine.org/asset-library/asset/3076">Asset Library&lt;/a>.&lt;/p>
&lt;p>In addition, the XR sample projects are also available on the &lt;a href="https://github.com/GodotVR/godot_openxr_vendors/releases/tag/3.1.2-stable">GitHub release&lt;/a> and the &lt;a href="https://godotengine.org/asset-library/asset?filter=XR+Sample&amp;amp;category=&amp;amp;godot_version=&amp;amp;cost=&amp;amp;sort=updated">Asset Library&lt;/a>.&lt;/p>
&lt;h3 id="features">Features&lt;/h3>
&lt;ul>
&lt;li>Update OpenXR to Khronos 1.1.41 release&lt;/li>
&lt;li>Add the option to enable hand tracking on Pico devices
&lt;ul>
&lt;li>Add support for toggling the hand tracking frequency on Pico devices between &lt;em>LOW&lt;/em> and &lt;em>HIGH&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Add the &lt;code class="language-plaintext highlighter-rouge">xr/openxr/extensions/automatically_request_runtime_permissions&lt;/code> project setting to enable/disable automatic requests for runtime permissions
&lt;ul>
&lt;li>The project setting is enabled by default, which causes all runtime permissions to be requested at app launch&lt;/li>
&lt;li>Developers can disable that behavior so that application logic can request the permissions in a context-specific manner&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Add export profile for Magic Leap 2 devices&lt;/li>
&lt;/ul>
&lt;h3 id="bug-fixes">Bug fixes&lt;/h3>
&lt;ul>
&lt;li>Update the signal emitted by &lt;code class="language-plaintext highlighter-rouge">OpenXRFbSpatialEntity.erase_from_storage()&lt;/code> from &lt;code class="language-plaintext highlighter-rouge">_on_save_to_storage&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">_on_erase_from_storage&lt;/code>&lt;/li>
&lt;li>Only add the &lt;a href="https://developer.android.com/reference/android/content/Intent#CATEGORY_LAUNCHER">Android LAUNCHER category&lt;/a> to the generated XR binary if the &lt;code class="language-plaintext highlighter-rouge">package/show_in_app_library&lt;/code> export option is enabled&lt;/li>
&lt;li>Fix wall, floor, and ceiling collision shapes with Jolt physics&lt;/li>
&lt;li>Add export option to enable or disable sharing of Metas spatial anchors
&lt;ul>
&lt;li>This adds the &lt;code class="language-plaintext highlighter-rouge">com.oculus.permission.IMPORT_EXPORT_IOT_MAP_DATA&lt;/code> permission when enabled&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Fix a crash that happens when a spatial anchor is created before the OpenXR session has begun&lt;/li>
&lt;li>Reworked geometric algebra used by Meta body tracking extension to address root and shoulder tracking bugs&lt;/li>
&lt;li>Remove deprecated “Contextual” boundary mode on Meta Quest&lt;/li>
&lt;li>Fix &lt;code class="language-plaintext highlighter-rouge">OpenXRFbPassthroughExtensionWrapper&lt;/code> from wiping out the next pointer chain for system properties&lt;/li>
&lt;li>Fix passthrough sample color map display bug&lt;/li>
&lt;li>Fix the issue preventing vendor options in the export preset from being updated&lt;/li>
&lt;/ul>
&lt;h2 id="godot-xr-tools-440-release">Godot XR Tools 4.4.0 release&lt;/h2>
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/xJKQ2ca5zVw" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen="">&lt;/iframe>
&lt;p>This version of XR Tools has been updated to contain &lt;a href="https://godotengine.org/article/godot-4-2-arrives-in-style/#critical-and-breaking-changes">Godot 4.2 mesh formats&lt;/a> and thus &lt;strong>requires Godot 4.2+&lt;/strong>.&lt;/p>
&lt;p>You can download version 4.4.0 from &lt;a href="https://github.com/GodotVR/godot-xr-tools/releases">GitHub&lt;/a> or the &lt;a href="https://godotengine.org/asset-library/asset/1698">Asset Library&lt;/a>.
You can download &lt;a href="https://godot-xr.itch.io/godot-xr-tools-demo">the Godot XR Tools demo on itch.io&lt;/a>.&lt;/p>
&lt;p>The Godot XR Tools repository on GitHub contains a &lt;a href="https://github.com/GodotVR/godot-xr-tools/blob/master/.github/workflows/publish-demo-on-push.yaml">GitHub workflow&lt;/a> that prepares and uploads the demo project to the above itch.io page. This workflow can be used as a template for your own project.&lt;/p>
&lt;h3 id="features-1">Features&lt;/h3>
&lt;ul>
&lt;li>The StartXR startup script has had a cleanup pass, it now:
&lt;ul>
&lt;li>Properly handles the passthrough system changes in Godot 4.3. Godot 4.3 saw changes in basing passthrough on the environment blend mode and moved logic into the vendor plugin to improve platform support for passthrough. XR Tools now makes use of this new system.&lt;/li>
&lt;li>Add proper support for the immersive-ar and immersive-vr webXR modes&lt;/li>
&lt;li>Provides signals to notify when the user enters or exits XR&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://godotvr.github.io/godot-xr-tools/docs/pickable/">Pickable objects&lt;/a> now include an &lt;code class="language-plaintext highlighter-rouge">action_released&lt;/code> signal so additional logic can be written when objects are dropped by the user&lt;/li>
&lt;li>Allow &lt;a href="https://godotvr.github.io/godot-xr-tools/docs/grab_point/">grab-points&lt;/a> and poses to work with different types of hand trackers&lt;/li>
&lt;li>The &lt;a href="https://godotvr.github.io/godot-xr-tools/docs/vignette/">vignette shader&lt;/a> now works properly in Godot 4 including support for reverse-Z depth buffers&lt;/li>
&lt;li>Add &lt;code class="language-plaintext highlighter-rouge">visibility_changed&lt;/code> notifications to &lt;a href="https://godotvr.github.io/godot-xr-tools/docs/pointer/">Viewport2Din3D&lt;/a> hosted scenes&lt;/li>
&lt;li>Add &lt;em>SnapPath&lt;/em>, a new snap object that allows you to snap objects along a path and at fixed intervals&lt;/li>
&lt;/ul>
&lt;h3 id="bug-fixes-1">Bug fixes&lt;/h3>
&lt;ul>
&lt;li>Fix custom hand poses calling legacy &lt;code class="language-plaintext highlighter-rouge">remove_animation&lt;/code>&lt;/li>
&lt;li>Invisible &lt;a href="https://godotvr.github.io/godot-xr-tools/docs/pointer/">Viewport2Din3D&lt;/a> now disable physics and viewport updates&lt;/li>
&lt;li>Improvements to collision hands so collision shapes of picked up objects are added and we no longer have hands collide with dropped objects&lt;/li>
&lt;/ul></content><author><name>Bastiaan Olij</name></author><category term="Progress Report"/></entry><entry><title>Godot 4.4, a unified experience</title><link href="https://godotengine.org/article/godot-4-4-a-unified-experience/"/><updated>2025-03-03T15:45:00+00:00</updated><id>https://godotengine.org/article/godot-4-4-a-unified-experience/</id><summary>Look forward to plenty of quality of life improvements hidden within this release. Faster load speeds, reduced stutter, streamlined processes — spotting all the optimizations that have been applied in the background will take some time.</summary><content type="html"/><author><name>Godot contributors</name></author><category term="Release"/></entry><entry><title>Release candidate: Godot 4.4 RC 3</title><link href="https://godotengine.org/article/release-candidate-godot-4-4-rc-3/"/><updated>2025-02-28T17:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-4-rc-3/</id><summary>We said "final" for the previous release candidate, but good things come in threes, don't they?</summary><content type="html">&lt;p>We are almost ready to release Godot 4.4 officially! As we are in the &lt;a href="https://en.wikipedia.org/wiki/Software_release_life_cycle#Release_candidate">Release Candidate&lt;/a> stage and focus only on critical regression fixes, the pace of merging pull requests has nearly stopped… but a lot of good stuff is already being queued for the next release cycle. In the meantime, the communication team is doing an amazing work to finalize the contents of the release page, so that you can all (re)discover the highlights of Godot 4.4 with an exciting format!&lt;/p>
&lt;p>We managed to get a few more regressions identified and fixed since our RC2 snapshot 2 days ago, so were making a &lt;em>final&lt;/em> final release candidate to round this all up and ensure Godot 4.4 is ready for prime time!&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.rc3/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/2689470/CRUEL/?curator_clanid=41324400">&lt;strong>CRUEL&lt;/strong>&lt;/a>, &lt;em>a fast run and gun horror shooter with roguelike elements. Developed by James Dornan, the game was released &lt;a href="https://store.steampowered.com/app/2689470/CRUEL/?curator_clanid=41324400">on Steam&lt;/a> in January 2025.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>We covered the most important highlights from Godot 4.4 in the previous &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">&lt;strong>4.4 beta 1 blog post&lt;/strong>&lt;/a>, so if you havent read that one, have a look to be introduced to the main new features added in the 4.4 release.&lt;/p>
&lt;p>Especially if youre testing 4.4 for the first time, youll want to get a condensed overview of what new features you might want to make use of.&lt;/p>
&lt;p>This section covers changes made since the previous &lt;a href="/article/dev-snapshot-godot-4-4-rc-2/">RC 2 snapshot&lt;/a>, which are strictly regression fixes:&lt;/p>
&lt;ul>
&lt;li>Buildsystem: Add &lt;code class="language-plaintext highlighter-rouge">(void *)&lt;/code> cast directly to &lt;code class="language-plaintext highlighter-rouge">GetProcAddress&lt;/code> calls (&lt;a href="https://github.com/godotengine/godot/pull/103354">GH-103354&lt;/a>).&lt;/li>
&lt;li>Editor: Replace error to info messages for embedded game (&lt;a href="https://github.com/godotengine/godot/pull/103339">GH-103339&lt;/a>).&lt;/li>
&lt;li>Editor: Add checks to prevent crashes when accessing the GameMenu api (&lt;a href="https://github.com/godotengine/godot/pull/103371">GH-103371&lt;/a>).&lt;/li>
&lt;li>GDScript: Add bound checks to &lt;code class="language-plaintext highlighter-rouge">Array&lt;/code>/&lt;code class="language-plaintext highlighter-rouge">Packed*Array&lt;/code> variant call &lt;code class="language-plaintext highlighter-rouge">get&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">set&lt;/code> methods (&lt;a href="https://github.com/godotengine/godot/pull/103362">GH-103362&lt;/a>).&lt;/li>
&lt;li>Input: Change default deadzone back to 0.5 for &lt;code class="language-plaintext highlighter-rouge">ui_*&lt;/code> actions and axis &lt;code class="language-plaintext highlighter-rouge">pressed&lt;/code> state (&lt;a href="https://github.com/godotengine/godot/pull/103364">GH-103364&lt;/a>).&lt;/li>
&lt;li>Rendering: Shaders: Only convert default value to linear color if type hint is &lt;code class="language-plaintext highlighter-rouge">source_color&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103201">GH-103201&lt;/a>).&lt;/li>
&lt;li>Rendering: Metal: Fix SPIR-V → MSL compilation on iOS targets (&lt;a href="https://github.com/godotengine/godot/pull/103337">GH-103337&lt;/a>).&lt;/li>
&lt;li>XR: OpenXR: Emulated alpha blend mode should override the real blend mode (&lt;a href="https://github.com/godotengine/godot/pull/103338">GH-103338&lt;/a>).&lt;/li>
&lt;li>XR: Inform that Android sensors must be enabled for MobileVR support (&lt;a href="https://github.com/godotengine/godot/pull/103370">GH-103370&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>7 contributors&lt;/strong> submitted &lt;strong>10 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-rc3">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-rc2 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/15ff450680a40391aabbffde0a57ead2cd84db56">&lt;code class="language-plaintext highlighter-rouge">15ff45068&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-rc3">
Download Godot 4.4 rc3
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-4-rc-3.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc3/Godot_v4.4-rc3_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-rc3">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the Release Candidate stage, we focus exclusively on solving showstopping regressions (i.e. something that worked in a previous release is now broken, without workaround). You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new blocking issues after more users start testing the RC snapshots.&lt;/p>
&lt;p>With every release, we are aware that there are going to be various issues which have already been reported but havent been fixed yet, due to limited resources. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Rémi Verschelde</name></author><category term="Pre-release"/></entry><entry><title>Release candidate: Godot 4.4 RC 2</title><link href="https://godotengine.org/article/release-candidate-godot-4-4-rc-2/"/><updated>2025-02-26T12:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-4-rc-2/</id><summary>With a stable release imminent, join us for one final round of testing.</summary><content type="html">&lt;p>Last week, we released the first of our &lt;a href="https://en.wikipedia.org/wiki/Software_release_life_cycle#Release_candidate">Release Candidate&lt;/a> builds, a state suitable for production settings. This is the second entry, and already shaping up to be our last, as all relevant release blockers have been dealt with! While we prepare for the stable release—no more than a weeks time from now—lets enjoy one last roundup of changes.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.rc2/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/2531940/Stray_Path/?curator_clanid=41324400">&lt;strong>Stray Path&lt;/strong>&lt;/a>, &lt;em>a roguelike card game where optimization is key to unraveling the mystery of this stray world. Developed by chx games, the game was just released &lt;a href="https://store.steampowered.com/app/2531940/Stray_Path/?curator_clanid=41324400">on Steam&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>We covered the most important highlights from Godot 4.4 in the previous &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">&lt;strong>4.4 beta 1 blog post&lt;/strong>&lt;/a>, so if you havent read that one, have a look to be introduced to the main new features added in the 4.4 release.&lt;/p>
&lt;p>Especially if youre testing 4.4 for the first time, youll want to get a condensed overview of what new features you might want to make use of.&lt;/p>
&lt;p>This section covers changes made since the previous &lt;a href="/article/dev-snapshot-godot-4-4-rc-1/">RC 1 snapshot&lt;/a>, which are mostly regression fixes, or “safe” fixes to longstanding issues:&lt;/p>
&lt;ul>
&lt;li>Buildsystem: Fix libtheora optimizations causing errors in calling function for x86_64 Windows (&lt;a href="https://github.com/godotengine/godot/pull/103176">GH-103176&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Fix compiling on arm64 Linux with GCC (&lt;a href="https://github.com/godotengine/godot/pull/103303">GH-103303&lt;/a>).&lt;/li>
&lt;li>Core: Use atomic flag to prevent &lt;code class="language-plaintext highlighter-rouge">flush_if_pending&lt;/code> from reading unlocked &lt;code class="language-plaintext highlighter-rouge">command_mem&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103298">GH-103298&lt;/a>).&lt;/li>
&lt;li>Editor: Fix Embedded Game window wrong first startup location and size (&lt;a href="https://github.com/godotengine/godot/pull/103105">GH-103105&lt;/a>).&lt;/li>
&lt;li>Editor: Fix plugin icons not displayed (&lt;a href="https://github.com/godotengine/godot/pull/103143">GH-103143&lt;/a>).&lt;/li>
&lt;li>Editor: Load docks layout after their position is initialized (&lt;a href="https://github.com/godotengine/godot/pull/103266">GH-103266&lt;/a>).&lt;/li>
&lt;li>Export: Fix cross-platform configuration of rendering driver settings (narrower approach) (&lt;a href="https://github.com/godotengine/godot/pull/103197">GH-103197&lt;/a>).&lt;/li>
&lt;li>GDExtension: Bind new core &lt;code class="language-plaintext highlighter-rouge">METHOD_FLAG_VIRTUAL_REQUIRED&lt;/code> bitfield (&lt;a href="https://github.com/godotengine/godot/pull/103302">GH-103302&lt;/a>).&lt;/li>
&lt;li>GUI: Fix Tree hover position with multiple columns (&lt;a href="https://github.com/godotengine/godot/pull/103168">GH-103168&lt;/a>).&lt;/li>
&lt;li>GUI: Fix label clipping when ascent/descent are fractional (&lt;a href="https://github.com/godotengine/godot/pull/103192">GH-103192&lt;/a>).&lt;/li>
&lt;li>GUI: Label: Fix rounding errors with fractional scale (&lt;a href="https://github.com/godotengine/godot/pull/103224">GH-103224&lt;/a>).&lt;/li>
&lt;li>I18n: CSV import: Generate positve UID for .translation and follow renames (&lt;a href="https://github.com/godotengine/godot/pull/103120">GH-103120&lt;/a>).&lt;/li>
&lt;li>Import: bcdec: Fix unnecessary alignment of texture resolution when only one of its dimensions isnt divisible by 4 (&lt;a href="https://github.com/godotengine/godot/pull/103259">GH-103259&lt;/a>).&lt;/li>
&lt;li>Network: mbedTLS: Integrate TLS handshake defragmentation PR (&lt;a href="https://github.com/godotengine/godot/pull/103247">GH-103247&lt;/a>).&lt;/li>
&lt;li>Porting: Fix Embedded Game does not focus when mouse over on Windows (&lt;a href="https://github.com/godotengine/godot/pull/103052">GH-103052&lt;/a>).&lt;/li>
&lt;li>Porting: Android Editor: Fix expand button black bar issue (&lt;a href="https://github.com/godotengine/godot/pull/103117">GH-103117&lt;/a>).&lt;/li>
&lt;li>Porting: Android: Fix excessive &lt;code class="language-plaintext highlighter-rouge">getRotation&lt;/code> calls (&lt;a href="https://github.com/godotengine/godot/pull/103122">GH-103122&lt;/a>).&lt;/li>
&lt;li>Rendering: Metal: Compile &lt;code class="language-plaintext highlighter-rouge">MTLLibrary&lt;/code> on demand when pipeline is created (&lt;a href="https://github.com/godotengine/godot/pull/103185">GH-103185&lt;/a>).&lt;/li>
&lt;li>Rendering: Windows: Offload &lt;code class="language-plaintext highlighter-rouge">RenderingDevice&lt;/code> creation test to subprocess (&lt;a href="https://github.com/godotengine/godot/pull/103245">GH-103245&lt;/a>).&lt;/li>
&lt;li>Rendering: &lt;code class="language-plaintext highlighter-rouge">texture_create_from_native_handle()&lt;/code> should return &lt;code class="language-plaintext highlighter-rouge">RID&lt;/code> for texture from &lt;code class="language-plaintext highlighter-rouge">RenderingServer&lt;/code>, not &lt;code class="language-plaintext highlighter-rouge">RenderingDevice&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103296">GH-103296&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>19 contributors&lt;/strong> submitted &lt;strong>31 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-rc2">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-rc1 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/01545c995b0612c68f9dfce8f6cc67576c298381">&lt;code class="language-plaintext highlighter-rouge">01545c995&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-rc2">
Download Godot 4.4 rc2
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-4-rc-2.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc2/Godot_v4.4-rc2_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-rc2">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the Release Candidate stage, we focus exclusively on solving showstopping regressions (i.e. something that worked in a previous release is now broken, without workaround). You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new blocking issues after more users start testing the RC snapshots.&lt;/p>
&lt;p>With every release, we are aware that there are going to be various issues which have already been reported but havent been fixed yet, due to limited resources. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Godot Showcase - Museum of All Things</title><link href="https://godotengine.org/article/museum-of-all-things/"/><updated>2025-02-25T22:00:00+00:00</updated><id>https://godotengine.org/article/museum-of-all-things/</id><summary>What if Wikipedia was a place you could visit? Thats the idea behind The Museum of All Things, a free and open-source procedurally-generated museum built on Wikipedias vast knowledge base.</summary><content type="html">&lt;p>What if Wikipedia was a place you could visit? Thats the idea behind &lt;a href="https://may.as/moat">The Museum of All Things&lt;/a>, a &lt;a href="https://github.com/m4ym4y/museum-of-all-things">free and open-source&lt;/a> procedurally-generated museum built on Wikipedias vast knowledge base.&lt;/p>
&lt;p>In this interview, we talk to &lt;a href="https://may.as">Maya&lt;/a>, the creator of The Museum of All Things, about the challenges of turning an entire encyclopedia into an walkable space, why she chose Godot for development, and how VR transformed the project into something even more immersive.&lt;/p>
&lt;h2 id="can-you-tell-us-a-little-bit-about-your-project">Can you tell us a little bit about your project?&lt;/h2>
&lt;p>The Museum of All Things (or the MoAT) is a free virtual museum that lets you explore any topic you can imagine! It does this by procedurally generating its exhibits using Wikipedia.&lt;/p>
&lt;p>Every exhibit you enter in the museum corresponds to an article on Wikipedia. Text and images from the Wikipedia article cover the walls of the exhibit, and you can find hallways leading to other related exhibits based on the links in the exhibits Wikipedia article.&lt;/p>
&lt;p>&lt;img src="/storage/blog/moat/peach.webp" alt="A screenshot of the museum (article: Peach)" />&lt;/p>
&lt;p>Ive been making video games for most of my life, but The Museum of All Things is the biggest game Ive made so far. Its also my first real 3D game. I have prototypes of the game going back a few years, but I started really working on this iteration in November 2024.&lt;/p>
&lt;p>Ever since I was a kid Ive loved museums, so being able to make my own museum is so exciting to me. I love that the skills of game development let me create a project like this, even though its outside the traditional genres of video games.&lt;/p>
&lt;h2 id="what-were-some-of-the-biggest-challenges-you-faced-during-the-development-process-and-how-did-you-overcome-them">What were some of the biggest challenges you faced during the development process, and how did you overcome them?&lt;/h2>
&lt;p>The hardest part of this project has been turning something as huge as Wikipedia into a procedurally-generated space that makes sense and is fun to explore.&lt;/p>
&lt;p>The Museum of All Things has about the same square footage as Philadelphia based on my rough calculation. Its different from most procedurally-generated worlds because all the text and images displayed in that whole area are actually unique. But its still really hard to make all of that area interesting to the player.&lt;/p>
&lt;p>Ive worked hard on adding interest to the museum, and on making the museum feel more like a physical space. Im using &lt;a href="https://docs.godotengine.org/en/stable/tutorials/3d/using_gridmaps.html">Godots GridMap feature&lt;/a> to randomly generate a unique floorplan for every exhibit. The exhibit generation is seeded, so everyone is visiting the same version of each exhibit. There are several different interior themes used in the exhibits to add visual variety. Ambient sounds and music create an atmosphere. And in addition to the images and text pulled from Wikipedia to fill the exhibits, the museum also pulls images from &lt;a href="https://commons.wikimedia.org/wiki/Main_Page">Wikimedia Commons&lt;/a> to make exhibits larger and
more interesting to explore.&lt;/p>
&lt;p>&lt;img src="/storage/blog/moat/chongqing.webp" alt="A screenshot of the museum (article: Chongqing)" />&lt;/p>
&lt;h2 id="the-project-is-under-the-mit-license-and-available-for-everyone-at-github-what-made-you-decide-to-make-the-project-free-and-open-source">The project is under the MIT license and available for everyone &lt;a href="https://github.com/m4ym4y/museum-of-all-things">at GitHub&lt;/a>. What made you decide to make the project free and open source?&lt;/h2>
&lt;p>This project would have been totally impossible without the wealth of knowledge compiled by Wikipedias community and the APIs which Wikimedia makes freely available. So I really want my project to pay that goodwill forward as much as I can. And the beauty of this museum being a virtual experience is that theres no space to rent or building to upkeep, so I can afford to make it free!&lt;/p>
&lt;h2 id="how-did-you-discover-godot-what-made-you-pick-it-for-your-project">How did you discover Godot? What made you pick it for your project?&lt;/h2>
&lt;p>I discovered Godot a few years ago when I was looking for an engine to use for a game jam, and I had a good experience with it! Using open-source tools is really important to me, because I dont want to learn skills that could become obsolete if a company decides to change their pricing model. The cross-platform support was a big selling point to me as well!&lt;/p>
&lt;p>Ive used Godot several more times for game jams (most of my &lt;a href="https://ldjam.com/users/maymay/games">Ludum Dare entries&lt;/a> are in Godot). Ive gotten more comfortable with the features and workflow now, so Godot was the first tool I reached for when I started prototyping my museum!&lt;/p>
&lt;h2 id="the-museum-can-be-visited-in-vr-how-was-your-experience-implementing-vr-with-godot">The museum can be visited in VR. How was your experience implementing VR with Godot?&lt;/h2>
&lt;p>I was really intimidated by VR, but I actually found it to be straightforward! I didnt go into this project knowing anything about developing in VR, so the &lt;a href="https://github.com/GodotVR/godot-xr-tools">godot-xr-tools&lt;/a> addon was extremely helpful. All the elements like movement and interaction came out of the box and fit into the game world I had written.&lt;/p>
&lt;p>Im really happy that I took the leap and added VR. For a project like this where the objective is just to explore a world, VR makes a big difference in the experience. I went from thinking “hey I made a cool game” to thinking “wow I created a world that I can actually visit.” And thats kinda the coolest feeling ever for me.&lt;/p>
&lt;p>&lt;img src="/storage/blog/moat/vr-lobby.webp" alt="A screenshot of the museum (The lobby in VR)" />&lt;/p>
&lt;h2 id="how-can-people-visit-the-museum">How can people visit the museum?&lt;/h2>
&lt;p>You can download the Museum of All Things for free on Windows, Linux, or macOS! If you have a headset compatible with OpenXR (the Oculus Quest is not supported currently) you can download the OpenXR release.&lt;/p>
&lt;p>You can visit the projects official homepage at &lt;a href="https://may.as/moat">https://may.as/moat&lt;/a> or download the &lt;a href="https://mayeclair.itch.io/museum-of-all-things">Museum of All Things from Itch.io&lt;/a>.&lt;/p>
&lt;h2 id="do-you-have-any-other-projects-in-mind-for-the-future">Do you have any other projects in mind for the future?&lt;/h2>
&lt;p>Im waiting for another idea to come along that captures my attention. Im working on my art and writing skills, so I think my next game may be something that includes more of a story. Ill probably be participating in game jams too!&lt;/p>
&lt;p>Im going to be taking a break from working on the Musuem of All Things, but I want to return to it and publish updates in the future too. There are big features that Id still like to add for example the ability to visit the museum with others in multiplayer is something many people have requested. Id also like to add more variety to the museums layout, and maybe the ability to pull in more types of content from Wikimedia where available, such as audio and 3D models. Its one of these projects where every time I touch it theres more things I want to add.&lt;/p>
&lt;p>&lt;img src="/storage/blog/moat/geometry.webp" alt="A screenshot of the museum (article: Geometry)" />&lt;/p>
&lt;h3 id="thank-you-for-sharing-your-experience-using-godot-is-there-anything-you-would-like-to-plug">Thank you for sharing your experience using Godot. Is there anything you would like to plug?&lt;/h3>
&lt;p>You can find me and my socials at &lt;a href="https://may.as/">https://may.as/&lt;/a> if youd like to stay up to date on all my future projects! I hired Willow Wolf from &lt;a href="https://neomoon.one/">https://neomoon.one/&lt;/a> to create sound and music for my project. Check out her site if youre looking for game audio services!&lt;/p></content><author><name>Emi</name></author><category term="Showcase"/></entry><entry><title>Release candidate: Godot 4.4 RC 1</title><link href="https://godotengine.org/article/release-candidate-godot-4-4-rc-1/"/><updated>2025-02-21T20:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-4-rc-1/</id><summary>Godot 4.4 is now practically ready for its stable release, so it's time for the last round(s) of testing to make sure it's a smooth upgrade for all users.</summary><content type="html">&lt;p>We are entering the final stage of development for Godot 4.4, which is the &lt;a href="https://en.wikipedia.org/wiki/Software_release_life_cycle#Release_candidate">Release Candidate&lt;/a>: all features are in place, the most critical regressions have been tackled, and so were confident that its now ready for production use.&lt;/p>
&lt;p>But without very extensive testing from the community, we can never be 100% sure that the release is ready to be published as a recommended stable upgrade for all users. With this candidate, Godot 4.4 is now ready for testing to upgrade existing projects (but always make a copy or version control commit before upgrading!), and were eager to hear how it fares and whether any new major issues have been left unnoticed until now.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.rc1/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/3167550/Tiny_Pasture/?curator_clanid=41324400">&lt;strong>Tiny Pasture&lt;/strong>&lt;/a>, &lt;em>an endearing literal desktop pet that has cute pixel art animals grazing at the bottom of your screen while you do other things. Developed by CaveLiquid (&lt;a href="https://bsky.app/profile/caveliquid.bsky.social">Bluesky&lt;/a>, &lt;a href="https://linktr.ee/CaveLiquid">website&lt;/a>), the game was just released &lt;a href="https://store.steampowered.com/app/3167550/Tiny_Pasture/?curator_clanid=41324400">on Steam&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>We covered the most important highlights from Godot 4.4 in the previous &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">&lt;strong>4.4 beta 1 blog post&lt;/strong>&lt;/a>, so if you havent read that one, have a look to be introduced to the main new features added in the 4.4 release.&lt;/p>
&lt;p>Especially if youre testing 4.4 for the first time, youll want to get a condensed overview of what new features you might want to make use of.&lt;/p>
&lt;p>This section covers changes made since the previous &lt;a href="/article/dev-snapshot-godot-4-4-beta-4/">beta 4 snapshot&lt;/a>, which are mostly regression fixes, or “safe” fixes to longstanding issues:&lt;/p>
&lt;ul>
&lt;li>Audio: Web: Fix issue when pausing an non-started sample (&lt;a href="https://github.com/godotengine/godot/pull/102955">GH-102955&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Windows: Configure MinGW LTO with &lt;code class="language-plaintext highlighter-rouge">-fno-use-linker-plugin -fwhole-program&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/103077">GH-103077&lt;/a>).&lt;/li>
&lt;li>Editor: Fix parsing translations in &lt;code class="language-plaintext highlighter-rouge">EditorTranslationParserPlugin&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/99297">GH-99297&lt;/a>).&lt;/li>
&lt;li>Editor: Remove non-existent IPUnix conversion (&lt;a href="https://github.com/godotengine/godot/pull/102922">GH-102922&lt;/a>).&lt;/li>
&lt;li>Editor: Fix Embedded Game over expanded bottom panel, by resetting expanded bottom panel on Play (&lt;a href="https://github.com/godotengine/godot/pull/102978">GH-102978&lt;/a>).&lt;/li>
&lt;li>Editor: Always allow selecting any rendering driver in the settings, add “auto” option (&lt;a href="https://github.com/godotengine/godot/pull/103026">GH-103026&lt;/a>).&lt;/li>
&lt;li>Editor: Dont show &lt;code class="language-plaintext highlighter-rouge">Show in Filesystem&lt;/code> Popup for empty frames in &lt;code class="language-plaintext highlighter-rouge">SpriteFrames&lt;/code> editor (&lt;a href="https://github.com/godotengine/godot/pull/103050">GH-103050&lt;/a>).&lt;/li>
&lt;li>Export: Fix &lt;code class="language-plaintext highlighter-rouge">modified_time&lt;/code> on Android (&lt;a href="https://github.com/godotengine/godot/pull/103080">GH-103080&lt;/a>).&lt;/li>
&lt;li>GUI: IME: Do not redraw and move caret on IME update w/o text/position changes (&lt;a href="https://github.com/godotengine/godot/pull/103059">GH-103059&lt;/a>).&lt;/li>
&lt;li>Input: Remove temporary project conversion (&lt;a href="https://github.com/godotengine/godot/pull/99479">GH-99479&lt;/a>).&lt;/li>
&lt;li>Input: Prevent pending input event callbacks from erasing the window in the middle of a loop (&lt;a href="https://github.com/godotengine/godot/pull/102993">GH-102993&lt;/a>).&lt;/li>
&lt;li>Network: mbedtls: Dont set TLS max version on Mbed TLS &amp;lt; 3.0 (&lt;a href="https://github.com/godotengine/godot/pull/102964">GH-102964&lt;/a>).&lt;/li>
&lt;li>Particles: Fix particle not re-randomizing every emission (&lt;a href="https://github.com/godotengine/godot/pull/103068">GH-103068&lt;/a>).&lt;/li>
&lt;li>Porting: Window: Fix flashing subwindows (&lt;a href="https://github.com/godotengine/godot/pull/102983">GH-102983&lt;/a>).&lt;/li>
&lt;li>Porting: Fix Embedded Game startup location on Windows (&lt;a href="https://github.com/godotengine/godot/pull/103021">GH-103021&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix debug CanvasItem redraw rects in RD renderer (&lt;a href="https://github.com/godotengine/godot/pull/103017">GH-103017&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>As we released 4.4 beta 4 just days ago, and tightened a lot our policy on what kind of changes can be merged leading to the release candidate stage, there arent a lot of changes in this snapshot. &lt;strong>12 contributors&lt;/strong> (at this stage, release heroes!) submitted &lt;strong>18 fixes&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-rc1">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-beta4 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/8ed125b42908d0d46d3b8967e3a3bc03f809b3af">&lt;code class="language-plaintext highlighter-rouge">8ed125b42&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-rc1">
Download Godot 4.4 rc1
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-4-rc-1.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-rc1/Godot_v4.4-rc1_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-rc1">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the Release Candidate stage, we focus exclusively on solving showstopping regressions (i.e. something that worked in a previous release is now broken, without workaround). You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new blocking issues after more users start testing the RC snapshots.&lt;/p>
&lt;p>&lt;em>Edit:&lt;/em> A regression was introduced in this snapshot and will be fixed in RC 2:&lt;/p>
&lt;ul>
&lt;li>The change to the &lt;code class="language-plaintext highlighter-rouge">rendering/rendering_device/driver&lt;/code> project setting and its platform overrides to default to a new &lt;code class="language-plaintext highlighter-rouge">auto&lt;/code> mode in &lt;a href="https://github.com/godotengine/godot/issues/103026">GH-103026&lt;/a> caused a regression in the Android and iOS export process, where some necessary configuration is no longer set properly (&lt;a href="https://github.com/godotengine/godot/issues/103156">GH-103156&lt;/a>). You can work it around by explicitly setting &lt;code class="language-plaintext highlighter-rouge">rendering/rendering_device/driver.android&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">vulkan&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">rendering/rendering_device/driver.ios&lt;/code> to &lt;code class="language-plaintext highlighter-rouge">metal&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>With every release, we are aware that there are going to be various issues which have already been reported but havent been fixed yet, due to limited resources. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Rémi Verschelde</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.4 beta 4</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-4-beta-4/"/><updated>2025-02-17T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-4/</id><summary>The 4.4 beta phase nears its end!</summary><content type="html">&lt;p>We knew from the beginning that aiming for a late-February release was an ambitious timeframe, but the community has risen to the challenge and kept development right on track! As such, you can expect this to be our final beta release of the 4.4 period, with release candidates set to come out shortly after. In practice, this means that all further changes will be &lt;em>strictly&lt;/em> regression fixes, so the content available here will be largely reflective of the 4.4 release. As always, users are strongly encouraged to test this snapshot to catch the remaining few release blockers.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.beta4/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/2308630/Dawnfolk/?curator_clanid=41324400">&lt;strong>Dawnfolk&lt;/strong>&lt;/a>, &lt;em>a charmingly dark and minimalist survival city-builder, developed by Darenn Keller and published by Astra Logical! You can buy the game &lt;a href="https://store.steampowered.com/app/2308630/Dawnfolk/?curator_clanid=41324400">on Steam&lt;/a>, and follow the developer on &lt;a href="https://bsky.app/profile/darenn.bsky.social">Bluesky&lt;/a> and his &lt;a href="https://darenn.github.io/linktree/">website&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>For an overview of whats new overall in Godot 4.4, have a look at the highlights for &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">4.4 beta 1&lt;/a>, which cover a lot of the changes. This blog post only covers the changes between beta 3 and beta 4. This section covers the most relevant changes made since the &lt;a href="/article/dev-snapshot-godot-4-4-beta-3/">beta 3 snapshot&lt;/a>, which are largely regression fixes.&lt;/p>
&lt;ul>
&lt;li>2D: Fix &lt;code class="language-plaintext highlighter-rouge">Camera2D&lt;/code> limits drawing (&lt;a href="https://github.com/godotengine/godot/pull/102868">GH-102868&lt;/a>).&lt;/li>
&lt;li>3D: Add changeable freelook speed in Game Window (&lt;a href="https://github.com/godotengine/godot/pull/102704">GH-102704&lt;/a>).&lt;/li>
&lt;li>3D: Fix collision reposition with &lt;code class="language-plaintext highlighter-rouge">CSGShape3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/102286">GH-102286&lt;/a>).&lt;/li>
&lt;li>3D: Fix stale VoxelGI warnings (&lt;a href="https://github.com/godotengine/godot/pull/102843">GH-102843&lt;/a>).&lt;/li>
&lt;li>Audio: AudioStreamGenerator: Add mixing rate presets, update docs (&lt;a href="https://github.com/godotengine/godot/pull/102691">GH-102691&lt;/a>).&lt;/li>
&lt;li>Audio: Fix Theora video issues (&lt;a href="https://github.com/godotengine/godot/pull/101958">GH-101958&lt;/a>).&lt;/li>
&lt;li>Buildsystem: Separate Android editor artifacts (&lt;a href="https://github.com/godotengine/godot/pull/102543">GH-102543&lt;/a>).&lt;/li>
&lt;li>C#: Disallow &lt;code class="language-plaintext highlighter-rouge">ExportToolButton&lt;/code> on members that may store the Callable (&lt;a href="https://github.com/godotengine/godot/pull/102836">GH-102836&lt;/a>).&lt;/li>
&lt;li>C#: Fix Android mono export with 2 or more CPU architectures fails (&lt;a href="https://github.com/godotengine/godot/pull/98066">GH-98066&lt;/a>).&lt;/li>
&lt;li>C#: Validate project TFM for Android template exports (&lt;a href="https://github.com/godotengine/godot/pull/102627">GH-102627&lt;/a>).&lt;/li>
&lt;li>Documentation: Add parentheses to method links in online class reference (&lt;a href="https://github.com/godotengine/godot/pull/102567">GH-102567&lt;/a>).&lt;/li>
&lt;li>Editor: Fix accessing UID before first scan (&lt;a href="https://github.com/godotengine/godot/pull/102513">GH-102513&lt;/a>).&lt;/li>
&lt;li>Editor: Fix lag when resizing Floating Game Window (&lt;a href="https://github.com/godotengine/godot/pull/102618">GH-102618&lt;/a>).&lt;/li>
&lt;li>Editor: Return fast for built-in class icon (&lt;a href="https://github.com/godotengine/godot/pull/101435">GH-101435&lt;/a>).&lt;/li>
&lt;li>Editor: Show enum property invalid value in inspector (&lt;a href="https://github.com/godotengine/godot/pull/102743">GH-102743&lt;/a>).&lt;/li>
&lt;li>Editor: Tweak Quick Open theming (&lt;a href="https://github.com/godotengine/godot/pull/101598">GH-101598&lt;/a>).&lt;/li>
&lt;li>GDScript: Fix Plugin Scripts load twice on startup (&lt;a href="https://github.com/godotengine/godot/pull/102535">GH-102535&lt;/a>).&lt;/li>
&lt;li>GUI: Android: Add Snackbar UI component (&lt;a href="https://github.com/godotengine/godot/pull/102590">GH-102590&lt;/a>).&lt;/li>
&lt;li>GUI: Fix Tree Mouse hover position (&lt;a href="https://github.com/godotengine/godot/pull/102842">GH-102842&lt;/a>).&lt;/li>
&lt;li>GUI: Optimize &lt;code class="language-plaintext highlighter-rouge">Font&lt;/code> calculations by avoiding unnecessary copy-on-write (&lt;a href="https://github.com/godotengine/godot/pull/102132">GH-102132&lt;/a>).&lt;/li>
&lt;li>Input: Web: Refactor &lt;code class="language-plaintext highlighter-rouge">mouse_mode&lt;/code> setters in display server (&lt;a href="https://github.com/godotengine/godot/pull/102719">GH-102719&lt;/a>).&lt;/li>
&lt;li>Physics: Jolt: Fix ghost collision issue on dense triangle meshes (&lt;a href="https://github.com/godotengine/godot/pull/102614">GH-102614&lt;/a>).&lt;/li>
&lt;li>Physics: Jolt: Improve performance of certain physics queries (&lt;a href="https://github.com/godotengine/godot/pull/101071">GH-101071&lt;/a>).&lt;/li>
&lt;li>Porting: Add support for embedding game process in the Android Editor (&lt;a href="https://github.com/godotengine/godot/pull/102492">GH-102492&lt;/a>).&lt;/li>
&lt;li>Porting: Fix game and editor freeze when clicking on the games title bar (&lt;a href="https://github.com/godotengine/godot/pull/102744">GH-102744&lt;/a>).&lt;/li>
&lt;li>Rendering: Reduce mobile pipeline compilations (&lt;a href="https://github.com/godotengine/godot/pull/102217">GH-102217&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>65 contributors&lt;/strong> submitted &lt;strong>141 improvements&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-beta4">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-beta3 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/93d270693079ea7802c9e1334a2e0ecd8529eeed">&lt;code class="language-plaintext highlighter-rouge">93d270693&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-beta4">
Download Godot 4.4 beta4
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-4-beta-4.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta4/Godot_v4.4-beta4_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-beta4">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.&lt;/p>
&lt;p>With every release, we accept that there are going to be various issues which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;ul>
&lt;li>Changes to scenes are not reflected in APK exports after the initial export in the Android editor. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101007">GH-101007&lt;/a>.&lt;/li>
&lt;/ul>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.4 beta 3</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-4-beta-3/"/><updated>2025-02-07T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-3/</id><summary>Picking up the pace!</summary><content type="html">&lt;p>Woah, another beta build already? Youre not imagining things, its only been a week since our last release. The team is fully in the swing of getting release-blockers merged, so were able to expedite output. Whats more, our community has been on the ball with submitting regression reports; thanks to everyone whos involved themselves!&lt;/p>
&lt;p>While progress has been at a rate were all excited about, its not over yet! Well likely do one more beta release the following week, but after that we hope to be gearing up for release candidates. If you havent already, we encourage users who havent engaged with the beta releases to do so and help us catch the last few stragglers.&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.beta3/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/2667120/Ballionaire/">&lt;strong>Ballionaire&lt;/strong>&lt;/a>, &lt;em>a roguelike pachinko simulator where the laws of physics bend to your will, developed by newobject and published by Raw Fury! You can buy the game &lt;a href="https://store.steampowered.com/app/2667120/Ballionaire/">on Steam&lt;/a>, and follow the developer on &lt;a href="https://bsky.app/profile/newobject.bsky.social">Bluesky&lt;/a> and &lt;a href="https://newobject.itch.io/">itch.io&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>For an overview of whats new overall in Godot 4.4, have a look at the highlights for &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">4.4 beta 1&lt;/a>, which cover a lot of the changes. This blog post only covers the changes between beta 2 and beta 3. This section covers the most relevant changes made since the &lt;a href="/article/dev-snapshot-godot-4-4-beta-2/">beta 2 snapshot&lt;/a>, which are largely regression fixes.&lt;/p>
&lt;h3 id="uid-upgrade-tool">UID upgrade tool&lt;/h3>
&lt;p>The introduction of &lt;code class="language-plaintext highlighter-rouge">.uid&lt;/code> files remains one of the biggest changes to the 4.4 release cycle, so much so that we gave it a &lt;a href="/article/uid-changes-coming-to-godot-4-4/">dedicated article&lt;/a>. However, it hasnt been the most straightforward system, particularly for those that are attempting to upgrade their projects from 4.3. In order to address this, &lt;a href="https://github.com/Meorge">Malcolm Anderson&lt;/a> has put together a UID upgrade tool to automate this process (&lt;a href="https://github.com/godotengine/godot/pull/102071">GH-103071&lt;/a>).&lt;/p>
&lt;h3 id="porting-fixes-to-embeddedfloating-window-mode">Porting fixes to Embedded/Floating Window mode&lt;/h3>
&lt;p>The Embedded/Floating game window option added in 4.4 is proving to be quite popular, but also exposes all kinds of quirks on various systems with how they deal with windows. &lt;a href="https://github.com/Hilderin">Hilderin&lt;/a> did impressive work to track and fix these issues, with pull requests such as &lt;a href="https://github.com/godotengine/godot/pull/102104">GH-102104&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102238">GH-102238&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102251">GH-102251&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102311">GH-102311&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102312">GH-102312&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102470">GH-102470&lt;/a>, and more! The experience should be much better already in beta 3.&lt;/p>
&lt;h3 id="lightmap-baking-improvements">Lightmap baking improvements&lt;/h3>
&lt;p>&lt;a href="https://github.com/clayjohn">Clay John&lt;/a> changed the logic for baking direct lighting in LightmapGI to spread it over multiple frames, avoiding a spike of computation that can lead the OS to trigger &lt;abbr title="Timeout Detection and Recovery">TDR&lt;/abbr>, resulting in a crash of the GPU context (&lt;a href="https://github.com/godotengine/godot/pull/102257">GH-102257&lt;/a>). With some further fixes like &lt;a href="https://github.com/godotengine/godot/pull/102424">GH-102424&lt;/a>, &lt;a href="https://github.com/godotengine/godot/pull/102497">GH-102497&lt;/a>, and &lt;a href="https://github.com/godotengine/godot/pull/102477">GH-102477&lt;/a>, lightmap baking got a nice upgrade in this snapshot.&lt;/p>
&lt;h3 id="and-more">And more!&lt;/h3>
&lt;ul>
&lt;li>Animation: Fix incomplete FPS spinbox display in sprite frames editor (&lt;a href="https://github.com/godotengine/godot/pull/101798">GH-101798&lt;/a>).&lt;/li>
&lt;li>Audio: Web: Fix audio issues with samples and GodotPositionReportingProcessor (&lt;a href="https://github.com/godotengine/godot/pull/102163">GH-102163&lt;/a>).&lt;/li>
&lt;li>Core: Add explicit error messages to Multimesh functions (&lt;a href="https://github.com/godotengine/godot/pull/101109">GH-101109&lt;/a>).&lt;/li>
&lt;li>Core: Fix &lt;code class="language-plaintext highlighter-rouge">Basis::get_euler&lt;/code> incorrectly simplifying rotations in some cases (&lt;a href="https://github.com/godotengine/godot/pull/102144">GH-102144&lt;/a>).&lt;/li>
&lt;li>Core: Fix &lt;code class="language-plaintext highlighter-rouge">is_valid_float&lt;/code>, &lt;code class="language-plaintext highlighter-rouge">Variant&lt;/code> parser, &lt;code class="language-plaintext highlighter-rouge">Expression&lt;/code> parser, script highlighter, and &lt;code class="language-plaintext highlighter-rouge">TextServer&lt;/code> not handing capital E in scientific notation (&lt;a href="https://github.com/godotengine/godot/pull/102396">GH-102396&lt;/a>).&lt;/li>
&lt;li>Editor: Fix resource details will unexpectedly expand (&lt;a href="https://github.com/godotengine/godot/pull/101817">GH-101817&lt;/a>).&lt;/li>
&lt;li>Editor: Improve UID file creation condition (&lt;a href="https://github.com/godotengine/godot/pull/102489">GH-102489&lt;/a>).&lt;/li>
&lt;li>Editor: Optimize classnames enumeration (&lt;a href="https://github.com/godotengine/godot/pull/101489">GH-101489&lt;/a>).&lt;/li>
&lt;li>Editor: Revert “EditorResourcePicker: Replace options to load file with button for QuickOpenDialog” (&lt;a href="https://github.com/godotengine/godot/pull/102196">GH-102196&lt;/a>).&lt;/li>
&lt;li>Editor: Use &lt;code class="language-plaintext highlighter-rouge">FlowContainer&lt;/code> for &lt;code class="language-plaintext highlighter-rouge">Profiler&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">Visual Profiler&lt;/code> bars (&lt;a href="https://github.com/godotengine/godot/pull/102024">GH-102024&lt;/a>).&lt;/li>
&lt;li>Export: Disable Metal and Vulkan renderers in simulator builds. Remove simulator support from editor/exporter (&lt;a href="https://github.com/godotengine/godot/pull/102179">GH-102179&lt;/a>).&lt;/li>
&lt;li>GDExtension: Fix memory leak when &lt;code class="language-plaintext highlighter-rouge">ClassDB::bind_method_custom()&lt;/code> fails (&lt;a href="https://github.com/godotengine/godot/pull/102131">GH-102131&lt;/a>).&lt;/li>
&lt;li>GDScript: Fix uppercase B and X parsing in the integer literals (&lt;a href="https://github.com/godotengine/godot/pull/102400">GH-102400&lt;/a>).&lt;/li>
&lt;li>GUI: Fix TextEdit mouse selection and scroll cancel (&lt;a href="https://github.com/godotengine/godot/pull/91778">GH-91778&lt;/a>).&lt;/li>
&lt;li>GUI: Fix TextEdit visible line count when setting text (&lt;a href="https://github.com/godotengine/godot/pull/102296">GH-102296&lt;/a>).&lt;/li>
&lt;li>GUI: Introduce &lt;code class="language-plaintext highlighter-rouge">Viewport&lt;/code> functions for keeping the mouse over state consistent (&lt;a href="https://github.com/godotengine/godot/pull/99890">GH-99890&lt;/a>).&lt;/li>
&lt;li>GUI: Prevent tooltip from showing when hovering past the end of script line (&lt;a href="https://github.com/godotengine/godot/pull/100913">GH-100913&lt;/a>).&lt;/li>
&lt;li>Network: Fix WebSocket wslay multi-frame message parsing (again) (&lt;a href="https://github.com/godotengine/godot/pull/102128">GH-102128&lt;/a>).&lt;/li>
&lt;li>Porting: FreeDesktop portal: Check for &lt;code class="language-plaintext highlighter-rouge">FileChooser&lt;/code> and &lt;code class="language-plaintext highlighter-rouge">Settings&lt;/code> interface availability instead of assuming its always available (&lt;a href="https://github.com/godotengine/godot/pull/101812">GH-101812&lt;/a>).&lt;/li>
&lt;li>Porting: Implement &lt;code class="language-plaintext highlighter-rouge">get_length()&lt;/code> for pipes (&lt;a href="https://github.com/godotengine/godot/pull/102365">GH-102365&lt;/a>).&lt;/li>
&lt;li>Rendering: 2D: Fix clip children and rendering artefacts (&lt;a href="https://github.com/godotengine/godot/pull/102161">GH-102161&lt;/a>).&lt;/li>
&lt;li>Rendering: Add loop annotations to ubershaders to prevent loop unrolling (&lt;a href="https://github.com/godotengine/godot/pull/102480">GH-102480&lt;/a>).&lt;/li>
&lt;li>Rendering: Fix shadow peter-panning with default spotlight (&lt;a href="https://github.com/godotengine/godot/pull/101952">GH-101952&lt;/a>).&lt;/li>
&lt;li>Rendering: Fully enable HDR2D when the setting is changed (&lt;a href="https://github.com/godotengine/godot/pull/102177">GH-102177&lt;/a>).&lt;/li>
&lt;li>Rendering: Mark pipeline compilation of ubershaders as high priority (&lt;a href="https://github.com/godotengine/godot/pull/102125">GH-102125&lt;/a>).&lt;/li>
&lt;li>Rendering: Metal: Enable GPU buffer address support (&lt;a href="https://github.com/godotengine/godot/pull/101602">GH-101602&lt;/a>).&lt;/li>
&lt;li>Rendering: Use a smaller epsilon for omni and spot attenuation cutoff (&lt;a href="https://github.com/godotengine/godot/pull/102272">GH-102272&lt;/a>).&lt;/li>
&lt;li>Shaders: Fix &lt;code class="language-plaintext highlighter-rouge">source_color&lt;/code> default value (&lt;a href="https://github.com/godotengine/godot/pull/101642">GH-101642&lt;/a>).&lt;/li>
&lt;li>Thirdparty: Harmonize patches to document downstream changes (&lt;a href="https://github.com/godotengine/godot/pull/102242">GH-102242&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>51 contributors&lt;/strong> submitted &lt;strong>116 improvements&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-beta3">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-beta2 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/06acfccf89ad6b900ae694a4d58ceade1967a85f">&lt;code class="language-plaintext highlighter-rouge">06acfccf8&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-beta3">
Download Godot 4.4 beta3
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-4-beta-3.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta3/Godot_v4.4-beta3_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-beta3">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.&lt;/p>
&lt;p>With every release, we accept that there are going to be various issues which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Baking a Lightmap3D is more prone to crash after we added support for transparency. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101391">GH-101391&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Changes to scenes are not reflected in APK exports after the initial export in the Android editor. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101007">GH-101007&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.4 beta 2</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-4-beta-2/"/><updated>2025-01-30T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-4-beta-2/</id><summary>The bugs don't stand a chance!</summary><content type="html">&lt;p>Weve been keeping busy these past two weeks squashing the bugs that cropped up in &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">4.4 beta 1&lt;/a>. Despite how much the previous snapshot added, it bears repeating that we have entered the 4.4 feature freeze, so our energy has been focused on addressing any new &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aopen+is%3Aissue+label%3Aregression+milestone%3A4.4">regressions&lt;/a> or the aforementioned bugs. Were still aiming for a release sometime next month, but that all depends on how effectively new bugs get reported during this period. Users are strongly encouraged to test these beta releases so this process can be as smooth and expedient as possible!&lt;/p>
&lt;p>Please, consider &lt;a href="#support">supporting the project financially&lt;/a>, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.&lt;/p>
&lt;p>&lt;a href="#downloads">Jump to the &lt;strong>Downloads&lt;/strong> section&lt;/a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also &lt;a href="https://editor.godotengine.org/releases/4.4.beta1/">try the &lt;strong>Web editor&lt;/strong>&lt;/a> or the &lt;strong>Android editor&lt;/strong> for this release. If you are interested in the latter, please request to join &lt;a href="https://groups.google.com/g/godot-testers">our testing group&lt;/a> to get access to pre-release builds.&lt;/p>
&lt;hr />
&lt;p>&lt;em>The cover illustration is from&lt;/em> &lt;a href="https://store.steampowered.com/app/2754380/The_Roottrees_are_Dead/">&lt;strong>The Roottrees are Dead&lt;/strong>&lt;/a>, &lt;em>a detective game where you piece together a family trees billion-dollar paper trail through the power of a dial-up modem! You can buy the game &lt;a href="https://store.steampowered.com/app/2754380/The_Roottrees_are_Dead/">on Steam&lt;/a>, and follow the developer on &lt;a href="https://bsky.app/profile/eviltrout.com">Bluesky&lt;/a>.&lt;/em>&lt;/p>
&lt;h2 id="highlights">Highlights&lt;/h2>
&lt;p>For an overview of whats new overall in Godot 4.4, have a look at the highlights for &lt;a href="/article/dev-snapshot-godot-4-4-beta-1/">4.4 beta 1&lt;/a>, which cover a lot of the changes. This blog post only covers the changes between beta 1 and beta 2. This section covers the most relevant changes made since the beta 1 snapshot, which are largely regression fixes:&lt;/p>
&lt;ul>
&lt;li>2D: Add property guards to shape 2Ds (&lt;a href="https://github.com/godotengine/godot/pull/101747">GH-101747&lt;/a>).&lt;/li>
&lt;li>3D: Add flag to enable use of accurate path tangents for polygon rotation in &lt;code class="language-plaintext highlighter-rouge">CSGPolygon3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/94479">GH-94479&lt;/a>).&lt;/li>
&lt;li>Android: Fix &lt;code class="language-plaintext highlighter-rouge">create_instance&lt;/code> in GodotApp so non-editor apps can restart (&lt;a href="https://github.com/godotengine/godot/pull/101050">GH-101050&lt;/a>).&lt;/li>
&lt;li>Animation: Add validation for rotation axis to SpringBoneSimulator3D (&lt;a href="https://github.com/godotengine/godot/pull/101571">GH-101571&lt;/a>).&lt;/li>
&lt;li>Animation: Clarify &lt;code class="language-plaintext highlighter-rouge">SpringBoneSimulator3D&lt;/code>s gravity units and improve documentation (&lt;a href="https://github.com/godotengine/godot/pull/101652">GH-101652&lt;/a>).&lt;/li>
&lt;li>Animation: Fix glitch in &lt;code class="language-plaintext highlighter-rouge">SpringBoneSimulator3D&lt;/code> by storing the previous frames rotation instead of using no rotation when the axis is flipped (&lt;a href="https://github.com/godotengine/godot/pull/101651">GH-101651&lt;/a>).&lt;/li>
&lt;li>Animation: Remove dead variable &lt;code class="language-plaintext highlighter-rouge">end_bone_tip_radius&lt;/code> from &lt;code class="language-plaintext highlighter-rouge">SpringBoneSimulator3D&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/101861">GH-101861&lt;/a>).&lt;/li>
&lt;li>Audio: Fix default &lt;code class="language-plaintext highlighter-rouge">AudioBusLayout&lt;/code> not loading correctly if path is set in Project Settings (&lt;a href="https://github.com/godotengine/godot/pull/100371">GH-100371&lt;/a>).&lt;/li>
&lt;li>Core: Fix “res://” being replaced by resource packs in the editor and on Android (&lt;a href="https://github.com/godotengine/godot/pull/90425">GH-90425&lt;/a>).&lt;/li>
&lt;li>Editor: Add editor setting to globally override project game mode settings (&lt;a href="https://github.com/godotengine/godot/pull/101283">GH-101283&lt;/a>).&lt;/li>
&lt;li>Editor: Dont duplicate .uid files (&lt;a href="https://github.com/godotengine/godot/pull/101683">GH-101683&lt;/a>).&lt;/li>
&lt;li>Editor: Fix center viewport not working horizontally (&lt;a href="https://github.com/godotengine/godot/pull/93792">GH-93792&lt;/a>).&lt;/li>
&lt;li>Editor: Fix crashes when pressing enter on project manager screen (&lt;a href="https://github.com/godotengine/godot/pull/101572">GH-101572&lt;/a>).&lt;/li>
&lt;li>Editor: Fix Embedded Game Size (&lt;a href="https://github.com/godotengine/godot/pull/101807">GH-101807&lt;/a>).&lt;/li>
&lt;li>Editor: Fix Embedded Game Window with user arguments (&lt;a href="https://github.com/godotengine/godot/pull/101739">GH-101739&lt;/a>).&lt;/li>
&lt;li>Editor: Fix flickering in embedded game when paused (&lt;a href="https://github.com/godotengine/godot/pull/102006">GH-102006&lt;/a>).&lt;/li>
&lt;li>GDScript: Fix GDScript editor crash on invalid &lt;code class="language-plaintext highlighter-rouge">tween_property&lt;/code> arguments (&lt;a href="https://github.com/godotengine/godot/pull/101632">GH-101632&lt;/a>).&lt;/li>
&lt;li>Input: Added shortcut for Lookup Symbol action (&lt;a href="https://github.com/godotengine/godot/pull/101565">GH-101565&lt;/a>).&lt;/li>
&lt;li>Input: Delegate handling &lt;code class="language-plaintext highlighter-rouge">mouse_mode&lt;/code> to the &lt;code class="language-plaintext highlighter-rouge">DisplayServer&lt;/code> (&lt;a href="https://github.com/godotengine/godot/pull/101924">GH-101924&lt;/a>).&lt;/li>
&lt;li>Navigation: Make nodes handle their respective navigation source geometry (&lt;a href="https://github.com/godotengine/godot/pull/100882">GH-100882&lt;/a>).&lt;/li>
&lt;li>Network: Fix peer stuck in CLOSING state (&lt;a href="https://github.com/godotengine/godot/pull/101760">GH-101760&lt;/a>).&lt;/li>
&lt;li>Physics: Add debug colours and fills to CollisionPolygon3D (&lt;a href="https://github.com/godotengine/godot/pull/101810">GH-101810&lt;/a>).&lt;/li>
&lt;li>Physics: Refactor post-step operations in Jolt module to be done as needed (&lt;a href="https://github.com/godotengine/godot/pull/101815">GH-101815&lt;/a>).&lt;/li>
&lt;li>Rendering: Bake UV2 emission using half float in the compatibility backend (&lt;a href="https://github.com/godotengine/godot/pull/101730">GH-101730&lt;/a>).&lt;/li>
&lt;li>Rendering: Ensure Voxelizer SDF generation uses the correct cell level (&lt;a href="https://github.com/godotengine/godot/pull/101631">GH-101631&lt;/a>).&lt;/li>
&lt;li>Shaders: Fix space transformations in WorldPositionFromDepth visual shader node generation (&lt;a href="https://github.com/godotengine/godot/pull/100350">GH-100350&lt;/a>).&lt;/li>
&lt;li>Windows: Fix left/right Shift key regression (&lt;a href="https://github.com/godotengine/godot/pull/101763">GH-101763&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="changelog">Changelog&lt;/h2>
&lt;p>&lt;strong>76 contributors&lt;/strong> submitted &lt;strong>142 improvements&lt;/strong> for this release. See our &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4-beta2">&lt;strong>interactive changelog&lt;/strong>&lt;/a> for the complete list of changes since the 4.4-beta1 snapshot. You can also review &lt;a href="https://godotengine.github.io/godot-interactive-changelog/#4.4">all changes included in 4.4&lt;/a> compared to the previous 4.3 feature release.&lt;/p>
&lt;p>This release is built from commit &lt;a href="https://github.com/godotengine/godot/commit/a013481b0911e59cc3f3dea7ebb732450c3e1460">&lt;code class="language-plaintext highlighter-rouge">a013481b0&lt;/code>&lt;/a>.&lt;/p>
&lt;h2 id="downloads">Downloads&lt;/h2>
&lt;div class="card card-download">
&lt;a class="card-download-link" href="/download/archive/4.4-beta2">
Download Godot 4.4 beta2
&lt;/a>
&lt;div class="card-download-details">
&lt;img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-4-beta-2.webp" />
&lt;div class="card-download-platforms">
&lt;div class="download-platform platform-linux">
&lt;img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
Linux
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_linux.x86_64.zip" class="btn btn-download btn-download-primary platform-linux">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_mono_linux_x86_64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-macos">
&lt;img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
macOS
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_macos.universal.zip" class="btn btn-download btn-download-primary platform-macos">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_mono_macos.universal.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;div class="download-platform platform-windows">
&lt;img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
Windows
&lt;/div>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_win64.exe.zip" class="btn btn-download btn-download-primary platform-windows">
&lt;div class="download-title">
Standard
&lt;/div>
&lt;/a>
&lt;a href="https://github.com/godotengine/godot-builds/releases/download/4.4-beta2/Godot_v4.4-beta2_mono_win64.zip" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
&lt;div class="download-title">
.NET
&lt;/div>
&lt;/a>
&lt;/div>
&lt;/div>
&lt;div class="card-download-sublinks">
&lt;a class="card-download-other" href="/download/archive/4.4-beta2">
Export templates and other downloads
&lt;/a>
&lt;a class="card-download-donate" href="https://fund.godotengine.org/">
Make a Donation
&lt;/a>
&lt;/div>
&lt;/div>
&lt;style>
.thankyou-wrapper {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.85);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 10;
}
.thankyou {
background: var(--base-color);
box-shadow: var(--more-shadow);
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
border-radius: 13px;
}
.thankyou-reading {
font-size: 16px;
}
.thankyou-reading-list {
font-size: 16px;
margin: 0;
margin-left: 48px;
padding-left: 0;
}
.thankyou-donate {
margin-bottom: 24px;
text-align: center;
}
.btn.btn-donate {
background-color: var(--primary-color);
color: hsla(0, 0%, 100%, 0.9);
font-size: 22px;
font-weight: 600;
margin-bottom: 26px;
}
.thankyou h2 {
text-shadow: var(--base-shadow);
font-size: 36px;
font-weight: 800;
margin-bottom: 12px;
}
.thankyou h2 .anchored-link {
/* Hiding the anchored text automatically added on blogposts */
display: none !important;
}
.thankyou p {
max-width: 620px;
font-size: 25px;
}
@media (max-width: 768px) {
.thankyou-wrapper {
display: block;
}
.thankyou {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: scroll;
padding: 30px 40px 18px 40px;
}
.thankyou-reading-list {
margin-left: 24px;
}
.btn-close-thankyou-popup {
width: 48px;
height: 48px;
display: flex;
justify-content: center;
align-items: center;
}
}
.btn-close-thankyou-popup {
cursor: pointer;
position: absolute;
top: 12px;
right: 12px;
}
.btn-close-thankyou-popup img {
background: transparent !important; /* for overwriting the style in the blogposts img */
}
@media (prefers-color-scheme: light) {
.btn-close-thankyou-popup img {
filter: invert(1);
opacity: 0.75;
}
}
&lt;/style>
&lt;script>
document.addEventListener('DOMContentLoaded', () => {
const thankYouWrapper = document.getElementById('thank-you');
// Close itself, when clicked outside of the popup area.
thankYouWrapper.addEventListener('click', (e) => {
if (e.target === thankYouWrapper) {
thankYouWrapper.style.display = 'none';
}
});
// Close with a close button.
const thankYouBackButton = document.querySelector('.btn-close-thankyou-popup');
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download, .download-button');
downloadButtons.forEach((it) => {
if (it.dataset?.external === "yes") {
return;
}
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
document.querySelector('.btn.btn-donate').focus();
});
});
// Open from the all downloads list.
const downloadLinks = document.querySelectorAll('.download-link');
downloadLinks.forEach((it) => {
it.addEventListener('click', () => {
thankYouWrapper.style.display = '';
});
});
// Close the dialog when the user presses the escape key.
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
thankYouWrapper.style.display = 'none';
}
});
});
&lt;/script>
&lt;div class="thankyou-wrapper" id="thank-you" style="display: none;">
&lt;div class="thankyou">
&lt;h2>Godot is downloading...&lt;/h2>
&lt;p class="thankyou-donate">
Godot exists thanks to donations from people like you. Help us continue our work:
&lt;/p>
&lt;a href="https://fund.godotengine.org" class="btn btn-donate">
Make a Donation
&lt;/a>
&lt;div class="btn-close-thankyou-popup">
&lt;img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>&lt;strong>Standard build&lt;/strong> includes support for GDScript and GDExtension.&lt;/p>
&lt;p>&lt;strong>.NET build&lt;/strong> (marked as &lt;code class="language-plaintext highlighter-rouge">mono&lt;/code>) includes support for C#, as well as GDScript and GDExtension.&lt;/p>
&lt;ul>
&lt;li>.NET 8.0 or newer is required for this build, changing the minimal supported version from .NET 6 to 8.&lt;/li>
&lt;/ul>
&lt;div class="card card-warning">
&lt;p>
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition &lt;strong>a pre-release piece of software&lt;/strong>. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
&lt;/p>
&lt;/div>
&lt;h2 id="known-issues">Known issues&lt;/h2>
&lt;p>During the beta stage, we focus on solving both regressions (i.e. something that worked in a previous release is now broken) and significant new bugs introduced by new features. You can have a look at our current &lt;a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues&lt;/a> which we aim to address before releasing 4.4. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.&lt;/p>
&lt;p>With every release, we accept that there are going to be various issues which have already been reported but havent been fixed yet. See the GitHub issue tracker for a complete list of &lt;a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs&lt;/a>.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Baking a Lightmap3D is more prone to crash after we added support for transparency. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101391">GH-101391&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Changes to scenes are not reflected in APK exports after the initial export in the Android editor. The issue is tracked in &lt;a href="https://github.com/godotengine/godot/issues/101007">GH-101007&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="bug-reports">Bug reports&lt;/h2>
&lt;p>As a tester, we encourage you to &lt;a href="https://github.com/godotengine/godot/issues">open bug reports&lt;/a> if you experience issues with this release. Please check the &lt;a href="https://github.com/godotengine/godot/issues">existing issues on GitHub&lt;/a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.&lt;/p>
&lt;p>In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).&lt;/p>
&lt;h2 id="support">Support&lt;/h2>
&lt;p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to &lt;a href="https://fund.godotengine.org/">generous donations from the Godot community&lt;/a>. A big thank you to everyone who has contributed &lt;a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time&lt;/a> or &lt;a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support&lt;/a> to the project!&lt;/p>
&lt;p>If youd like to support the project financially and help us secure our future hires, you can do so using the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a>.&lt;/p>
&lt;p>&lt;a class="btn" href="https://fund.godotengine.org/">Donate now&lt;/a>&lt;/p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>2024 Cherry-picks</title><link href="https://godotengine.org/article/2024-cherry-picks/"/><updated>2025-01-28T17:00:00+00:00</updated><id>https://godotengine.org/article/2024-cherry-picks/</id><summary>Over the course of 2024, the Godot project has amassed more new features and community highlights than any one person can keep track of. To ensure you did not miss anything essential, we have selected a few memorable moments and key updates to revisit together.</summary><content type="html">&lt;style>
.year-2024-game {
display: grid;
grid-template-areas:
"img box";
grid-template-columns:
minmax(250px, 1fr) 2fr;
gap: 1em;
margin: 2em 0;
padding: 1em;
background-color: var(--button-card-background-color);
}
@media screen and (max-width: 700px) {
.year-2024-game {
grid-template-areas:
"img"
"box";
grid-template-rows:
auto
auto;
grid-template-columns:
auto;
}
}
.year-2024-game-image {
grid-area: img;
}
.year-2024-game-image .lightbox {
display: inline-block;
height: 100%;
}
.year-2024-game-image img {
height: 100%;
width: 100%;
object-fit: cover;
margin: 0;
}
.year-2024-game-box {
grid-area: box;
display: grid;
grid-template-areas:
"title"
"description";
grid-template-rows:
min-content
1fr;
gap: 0.5em;
font-family: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
.year-2024-game-box-title {
grid-area: title;
font-weight: 700;
}
.year-2024-game-box-description {
grid-area: description;
font-size: 90%;
}
.year-2024-game-box-description p {
margin: 1em 0;
}
.year-2024-game-box-description p:first-of-type {
margin-top: 0;
}
.year-2024-game-box-description p:last-of-type {
margin-bottom: 0;
}
&lt;/style>
&lt;p>And with that, the 2024 season comes to an end. What a year it has been, with the number of Godot submissions in game jams rising to new heights, &lt;a href="https://godotengine.org/article/godot-foundation-update-dec-2024/">more people working for the Godot Foundation than ever before&lt;/a>, and most industry award shows featuring one if not more games made with Godot.&lt;/p>
&lt;p>A busy year inside the project as well. Too much to compile into a single article, unless you want to read pages of meeting notes and technical documentation. So instead, we chose to celebrate the past by looking back at one cherry-pick per month, something you might have missed during the scuffle but is worth learning about even now.&lt;/p>
&lt;p>This could be an event the team attended, a major project milestone being reached, or a fun moment online the Godot community gathered around. Likewise, we looked at the release dates of notable &lt;a href="https://steamdb.info/tech/Engine/Godot/">Godot games on Steam&lt;/a> and decided to introduce you to some favorites alongside our own organizational news. The separate tech highlight section might even introduce you to a feature or two you missed out on so far.&lt;/p>
&lt;p>But before we get started, let us sneak in an announcement: this blog post is part of our newsletter project, premiering this January. &lt;a href="https://godot.news/subscription/form">Subscribe to “The Nodeletter”&lt;/a> to get a regular digest of Godot Engine news directly in your email inbox!&lt;/p>
&lt;h1 id="tech-highlights">Tech Highlights&lt;/h1>
&lt;p>To be frank: there is no good way to summarize the work of hundreds of contributors across the span of an entire year without leaving out something important. The closest we can feasibly get are the &lt;a href="https://godotengine.org/releases/4.3/">Godot 4.3 release page&lt;/a>, and the newly published &lt;a href="https://godotengine.org/article/dev-snapshot-godot-4-4-beta-1/">Godot 4.4 beta 1 release notes&lt;/a>.&lt;/p>
&lt;p>For the purpose of this retrospective, we approached the engine maintainers directly, asking them to point us at one particularly compelling change they witnessed in their area of expertise. How many of these have you not heard about yet?&lt;/p>
&lt;h3 id="general">General&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>2D:&lt;/strong> &lt;a href="https://docs.godotengine.org/en/stable/tutorials/2d/2d_parallax.html">2D parallax&lt;/a>&lt;/li>
&lt;li>&lt;strong>3D:&lt;/strong> &lt;a href="https://github.com/godotengine/godot/pull/92391">3D physics interpolation&lt;/a>&lt;/li>
&lt;li>&lt;strong>Core:&lt;/strong> &lt;a href="https://github.com/godotengine/godot/pull/78656">Typed dictionaries&lt;/a>&lt;/li>
&lt;li>&lt;strong>Editor:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#editor-layout-ux-improvements-project-manager">Project Manager refresh&lt;/a> and &lt;strong>Android Editor:&lt;/strong> &lt;a href="https://github.com/godotengine/godot/pull/93526">Binary export support&lt;/a>&lt;/li>
&lt;li>&lt;strong>Documentation:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#documenation-commenting-enabled-on-the-online-docs">Comment section added&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="platforms">Platforms&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Android:&lt;/strong> &lt;a href="https://github.com/godotengine/godot/pull/98350">Native file picker support&lt;/a>&lt;/li>
&lt;li>&lt;strong>Web:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#editor-layout-ux-improvements-project-manager">Single-threaded exports&lt;/a> and &lt;a href="https://godotengine.org/releases/4.3/#web-web-audio">audio samples&lt;/a>&lt;/li>
&lt;li>&lt;strong>Linux:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#display-wayland-support">Wayland support&lt;/a>&lt;/li>
&lt;li>&lt;strong>macOS/iOS:&lt;/strong> &lt;a href="https://godotengine.org/article/dev-snapshot-godot-4-4-dev-1/#metal-rendering-backend">Metal renderer&lt;/a>&lt;/li>
&lt;li>&lt;strong>Windows:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#display-d3d12-driver">Direct3D 12&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="systems">Systems&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Animation:&lt;/strong> &lt;a href="https://godotengine.org/article/migrating-animations-from-godot-4-0-to-4-3/">Feature migration from Godot 4.0 to 4.3&lt;/a>&lt;/li>
&lt;li>&lt;strong>Audio:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#highlights-interactive-music">Interactive music&lt;/a>&lt;/li>
&lt;li>&lt;strong>Import&lt;/strong>: &lt;a href="https://godotengine.org/article/introducing-the-improved-ufbx-importer-in-godot-4-3/">New ufbx importer&lt;/a>&lt;/li>
&lt;li>&lt;strong>Navigation:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#navigation-splitting-navigation-meshes-into-chunks">Chunk &amp;amp; obstacle baking&lt;/a>&lt;/li>
&lt;li>&lt;strong>Physics:&lt;/strong> &lt;a href="https://github.com/godotengine/godot/pull/99895">Jolt merged&lt;/a>&lt;/li>
&lt;li>&lt;strong>Rendering:&lt;/strong> &lt;a href="https://docs.godotengine.org/en/latest/tutorials/performance/pipeline_compilations.html">Ubershaders&lt;/a>&lt;/li>
&lt;li>&lt;strong>VFX:&lt;/strong> &lt;a href="https://godotengine.org/releases/4.3/#highlights-visual-shader">Visual Shader overhaul&lt;/a>&lt;/li>
&lt;li>&lt;strong>XR:&lt;/strong> &lt;a href="https://godotengine.org/article/godot-editor-horizon-store-early-access-release/">Godot Editor now available on the Meta Horizon Store&lt;/a>&lt;/li>
&lt;/ul>
&lt;h1 id="godot-engine-news">Godot Engine News&lt;/h1>
&lt;h2 id="january">January&lt;/h2>
&lt;p>&lt;img alt="The commit that open-sourced Godot" src="/storage/blog/2024-cherry-picks/commit.webp" />&lt;/p>
&lt;p>Nostalgia became the theme of January, as we compiled a small &lt;a href="https://x.com/godotengine/status/1754601111229497650">game showcase&lt;/a> leading up to Godots 10-year-anniversary (counting from the moment the engine was first open sourced). For every year from 2014 to 2024 we shared two gems found on Steam and itch.io with the community, celebrating an ever growing list of Godot releases since the beginnings of the project.&lt;/p>
&lt;p>Have a look at that &lt;a href="https://github.com/godotengine/godot/commit/0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac">monumental commit&lt;/a> all those years ago!&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="KinitoPET screenshot" src="/storage/blog/2024-cherry-picks/KinitoPET.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2075070/KinitoPET" target="_blank">
&lt;span>KinitoPET&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Desktop pets have risen to new popularity in 2024. &lt;em>KinitoPET&lt;/em> combines this trend with the evergreen horror genre to bring you a unique experience about virtual assistants.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="february">February&lt;/h2>
&lt;p>As part of our social media expansion, we also created an &lt;a href="https://www.twitch.tv/godotengine_official">official Godot Engine account&lt;/a> on the streaming platform Twitch.&lt;/p>
&lt;p>Using it to check on Godot game development streamers resulted in &lt;a href="https://www.youtube.com/watch?v=Ed9xuwtmoUw">this funny compilation&lt;/a> — both the content creators and their viewers expressed happiness that the communities they had built were being recognized by us.&lt;/p>
&lt;p>Logically, the next step was to hand over the reins of the channel to some of these talented developers directly. You can find the &lt;a href="https://youtube.com/playlist?list=PLeG_dAglpVo5vWX06WyYThUOydLVmb1Iu&amp;amp;si=WBi8qIJEaSHh42NN">takeover recordings&lt;/a> on &lt;a href="https://www.youtube.com/@GodotEngineOfficial">our YouTube&lt;/a>.&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Windowkill screenshot" src="/storage/blog/2024-cherry-picks/Windowkill.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2726450/Windowkill/" target="_blank">
&lt;span>Windowkill&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Another twist on “gaming directly on a desktop” came in the form of the action roguelike &lt;em>Windowkill&lt;/em>. The twin-stick shooter requires you to keep track of and fight the ever-closing game windows while evading enemies.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="march">March&lt;/h2>
&lt;p>In March, the Godot Foundation team assembled in San Francisco to meet community members at our biggest event booth yet, in the expo hall of the annual Game Developer Conference (GDC). We shared the space with our sponsor &lt;a href="https://www.w4games.com/">W4 Games&lt;/a> and an amazing lineup of &lt;a href="https://godotengine.org/article/gdc-2024-godot-games/">Godot-powered games&lt;/a> that we had the pleasure of inviting.&lt;/p>
&lt;p>&lt;img alt="Group picture at the GDC booth" src="/storage/blog/2024-cherry-picks/gdc.webp" />&lt;/p>
&lt;p>We had a great time, both on the event grounds and at our own gatherings, and made sure to recount our full experience in a &lt;a href="https://godotengine.org/article/gdc-2024-retrospective/">retrospective blog post&lt;/a> — see you this year?&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Backpack Battles screenshot" src="/storage/blog/2024-cherry-picks/Backpack%20Battles.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2427700/Backpack_Battles/" target="_blank">
&lt;span>Backpack Battles&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
&lt;em>Backpack Battles&lt;/em> decided to make inventory management the main game mechanic. The PvP auto-battler with a medieval fantasy theme has quickly gained popularity with content creators!
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="april">April&lt;/h2>
&lt;p>Towards the end of 2023 we &lt;a href="https://godotengine.org/article/collaboration-with-google-forge-2023/">announced a collaboration with Google and The Forge&lt;/a> to improve the performance of our Vulkan mobile backend. The work concluded in April, with the &lt;a href="https://github.com/godotengine/godot/pull/90284">matching PR&lt;/a> being split into the 4.3 and 4.4 releases.&lt;/p>
&lt;p>A few highlights:&lt;/p>
&lt;ul>
&lt;li>Usage of Unified Memory Architecture (UMA) buffers when available&lt;/li>
&lt;li>Add Android &lt;a href="https://developer.android.com/games/optimize/adpf/thermal">Thermal API&lt;/a> support&lt;/li>
&lt;li>Replace large push constants with dynamic uniform buffers&lt;/li>
&lt;li>Optimize descriptor sets and descriptor set batching&lt;/li>
&lt;li>Optimize swapchain operations&lt;/li>
&lt;li>Integrate &lt;a href="https://developer.android.com/games/sdk/frame-pacing">Swappy frame pacing&lt;/a> from the Google AGDK&lt;/li>
&lt;/ul>
&lt;p>Read more about the changes in our &lt;a href="https://godotengine.org/article/update-on-google-forge-2024/">collaboration update&lt;/a>.&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Of Life and Land screenshot" src="/storage/blog/2024-cherry-picks/Of%20Life%20and%20Land.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/1733110/Of_Life_and_Land/" target="_blank">
&lt;span>Of Life and Land&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Build your own settlements in &lt;em>Of Life and Land&lt;/em> and experience different maps, scenarios, and rich simulations. Strategize with animals and nature in mind!
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="may">May&lt;/h2>
&lt;p>Did you know that we still update Godot 3? Not everyone upgraded their projects when the big codebase refresh happened last year, so by offering two versions alongside each other we aim to accommodate these existing games as well as the lower-end systems used by some developers.&lt;/p>
&lt;p>The feature freeze for 3.6 happened in May, leading up to the most recent &lt;a href="https://godotengine.org/article/godot-3-6-finally-released/">release in September&lt;/a>.&lt;/p>
&lt;p>Look at these shiny highlights:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#2d-physics-interpolation-gh-76252">2D physics interpolation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#2d-hierarchical-culling-gh-68738">2D hierarchical culling&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#mesh-merging-gh-61568">Mesh merging&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#discrete-level-of-detail-lod-gh-85437">Discrete level of detail (LOD)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#orm-materials-gh-76023">ORM materials&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/article/godot-3-6-finally-released/#text-to-speech-support-gh-61316">Text to speech&lt;/a>&lt;/li>
&lt;/ul>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Arctic Eggs screenshot" src="/storage/blog/2024-cherry-picks/Arctic%20Eggs.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2763670/Arctic_Eggs/" target="_blank">
&lt;span>Arctic Eggs&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
This game about cooking eggs in a cold climate found great reception on the internet. There is just something about the frustratingly fun mechanics of &lt;em>Arctic Eggs&lt;/em> that captured quite an audience — who are we to judge your taste?
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="june">June&lt;/h2>
&lt;p>Our annual community poll rolled around in June. We want to know who our users are, so we can learn about common needs and offer the best support possible.&lt;/p>
&lt;p>&lt;a href="https://docs.google.com/forms/d/1eicOppRQG2RFZ8CjIGFf5Kha5yklO854fV8-YFtlWxk/viewanalytics">This years poll&lt;/a> had more responses than ever before, once again proving the incredible growth the Godot community is experiencing.&lt;/p>
&lt;p>&lt;img alt="Poll results: programming languages" src="/storage/blog/2024-cherry-picks/poll1.webp" />
&lt;img alt="Poll results: donations" src="/storage/blog/2024-cherry-picks/poll2.webp" />&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Until Then screenshot" src="/storage/blog/2024-cherry-picks/Until%20Then.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/1574820/Until_Then/" target="_blank">
&lt;span>Until Then&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Nominated for a plethora of awards, the visual novel &lt;em>Until Then&lt;/em> tells the emotional story of the highschooler Mark in polished pixel art. Build relationships, play minigames, use social media, and most importantly: solve the mystery at hand.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="july">July&lt;/h2>
&lt;p>The &lt;a href="https://www.makeship.com/products/godot-robot-plush">Godot robot plushies&lt;/a> took the internet by storm. In a collaboration with Makeship, we finally proved our infamous logos worth. Toothy grin and googly eyes translated adorably into the 3D medium. By the end of the campaign, almost 4,000 cuddly coding companions were headed towards new homes.&lt;/p>
&lt;p>Aside from the profits being funneled into the &lt;a href="https://fund.godotengine.org/">Godot Development Fund&lt;/a> and thereby opening an additional path to supporting the project financially, the plush also became a beloved community icon. Fanart was made, models of the robot were shared, and the character was granted countless cameos in games made with the engine.&lt;/p>
&lt;p>&lt;img alt="3D model of the Godot robot plush" src="/storage/blog/2024-cherry-picks/plush.webp" />
&lt;a href="https://fr3nkd.gumroad.com/l/vhfvy">CC0 model by FR3NKD&lt;/a>&lt;/p>
&lt;p>While the plush is currently sold out, we are working on bringing it back soon!&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Forgotten Mines screenshot" src="/storage/blog/2024-cherry-picks/Forgotten%20Mines.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2238630/Forgotten_Mines/" target="_blank">
&lt;span>Forgotten Mines&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
This tactical roguelite invites you to go on runs in the &lt;em>Forgotten Mines&lt;/em>. Turn-based mechanics and an RPG flavor round off the experience.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="august">August&lt;/h2>
&lt;p>Instead of our usual release blogposts, we tried something new for Godot 4.3: a fully fledged &lt;a href="https://godotengine.org/releases/4.3/">release page&lt;/a> detailing all the juicy features awaiting you.&lt;/p>
&lt;p>Highlights of the biggest release yet:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-interactive-music">Interactive music&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-2d-physics-interpolation">2D physics interpolation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-new-tilemaplayer-node">TileMapLayer nodes&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-visual-shader">Overhauled visual shader editor&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-general-multi-threading-improvements">Multi-threading improvements&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://godotengine.org/releases/4.3/#highlights-single-threaded-web-export">Single-threaded web exports&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>All in all, &lt;strong>3,520 commits from 521 contributors&lt;/strong> came together in this shared effort!&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Megaloot screenshot" src="/storage/blog/2024-cherry-picks/Megaloot.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2440380/Megaloot/" target="_blank">
&lt;span>Megaloot&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
More inventory management mechanics come to you in the form of &lt;em>Megaloot&lt;/em>, a roguelite allowing for diverse and powerful builds each run. Looting strategically is key.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="september">September&lt;/h2>
&lt;p>As an open-source community, the Godot project thrives in matters of community maintained extensions. To ensure that valuable knowledge does not get lost once a creator decides to step down, we opened a new GitHub organization called &lt;a href="https://github.com/godot-sdk-integrations">Godot SDK Integrations&lt;/a> to host such projects.&lt;/p>
&lt;p>Read more in our detailed &lt;a href="https://godotengine.org/article/godot-sdk-integrations/">blogpost on the topic&lt;/a>.&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Halls of Torment screenshot" src="/storage/blog/2024-cherry-picks/Halls%20of%20Torment.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2218750/Halls_of_Torment/" target="_blank">
&lt;span>Halls of Torment&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Survive monster hordes in this bullet hell roguelite set in the underworld. &lt;em>Halls of Torment&lt;/em> is also available on Steam Deck and Android for gaming on the go!
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="october">October&lt;/h2>
&lt;p>We listened to the feedback of last years &lt;a href="https://conference.godotengine.org/past/">GodotCon&lt;/a> attendees and did the unthinkable: doubling the ticket amount once more, allowing 600 people onto the premises.&lt;/p>
&lt;p>On top of that, we introduced a game showcase and activities to the event schedule. Increasing our scope like so, we hoped to invite a wider variety of visitors to enjoy mingling with other community members and facilitate networking.&lt;/p>
&lt;p>Read the full &lt;a href="https://godotengine.org/article/review-godotcon24/">GodotCon 2024 review&lt;/a> to reminisce together with us or (re-)watch the &lt;a href="https://www.youtube.com/watch?v=hKLl03A9Kws&amp;amp;list=PLeG_dAglpVo6TS0q858NajyeglRuvb7hs&amp;amp;index=12">talks on YouTube&lt;/a>.&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Psychopomp GOLD screenshot" src="/storage/blog/2024-cherry-picks/Psychopomp%20GOLD.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/3243190/Psychopomp_GOLD/" target="_blank">
&lt;span>Psychopomp GOLD&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
Atmospheric psychological horror awaits you in the catacombs of &lt;em>Psychopomp&lt;/em>. Solve the secrets of these new levels or mod your own.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="november">November&lt;/h2>
&lt;p>Watch this years &lt;a href="https://www.youtube.com/watch?v=n1Lon_Q2T18">Godot Engine showreel&lt;/a> and join us in awe of the variety of projects being created by this community. Every year our expectations are exceeded all over again!&lt;/p>
&lt;p>Submissions are handled via our own &lt;a href="https://showreel.godotengine.org/about">showreel page&lt;/a> and always &lt;a href="https://godotengine.org/article/submissions-open-godot-2024-showreel/">announced on our blog&lt;/a>, so keep a close eye on those if you are interested in pitching your own game for the next one.&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Unrailed 2: Back on Track screenshot" src="/storage/blog/2024-cherry-picks/Unrailed%202%20Back%20on%20Track.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2211170/Unrailed_2_Back_on_Track/" target="_blank">
&lt;span>Unrailed 2: Back on Track&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
The second installment of this railroad construction game is made in Godot. Enjoy co-op gaming and procedurally generated worlds in &lt;em>Unrailed 2&lt;/em>.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="december">December&lt;/h2>
&lt;p>The &lt;a href="https://github.com/godotengine/godot">Godot Engine GitHub repository&lt;/a> is not only the most popular one in the game development category and has been starred 92,300 times at the time of writing, but we also reached yet another milestone this December: &lt;a href="https://github.com/godotengine/godot/issues/100000">crossing the threshold of 100,000 issues&lt;/a>.&lt;/p>
&lt;p>To celebrate the occasion (and snatch the coveted number) our Release Manager wrote a &lt;a href="https://godotengine.org/article/beyond-100000-you-re-breathtaking/">heartwarming blogpost&lt;/a> that cannot be done justice by summarizing — so go read it for yourself!&lt;/p>
&lt;div class="year-2024-game">
&lt;div class="year-2024-game-image">
&lt;img alt="Ballionaire screenshot" src="/storage/blog/2024-cherry-picks/Ballionaire.webp" />
&lt;/div>
&lt;div class="year-2024-game-box">
&lt;div class="year-2024-game-box-title">
&lt;a href="https://store.steampowered.com/app/2667120/Ballionaire/" target="_blank">
&lt;span>Ballionaire&lt;/span>
&lt;/a>
&lt;/div>
&lt;div class="year-2024-game-box-description">
&lt;p>
The “autobonker” &lt;em>Ballionaire&lt;/em> shows how fun physics can be. Assemble your pachinko boards strategically and watch the effects go wild.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;p>Concluding our walk through memory lane, the only thing left to say is &lt;strong>thank you&lt;/strong>. To those of you who contribute to the engine by code, donations, or growing the community through content creation. To our users, who help promote the project with their own success and battletest new features in real time. We also want to once again thank our &lt;a href="https://fund.godotengine.org/#credits">corporate sponsors&lt;/a> for believing in what we do. Lastly, I want to give a shoutout to my wonderful colleagues, for if they werent so incredibly dedicated to organizing and maintaining a collaboration this big, none of this would be possible either.&lt;/p>
&lt;p>Dont forget to sign up for &lt;a href="https://godot.news/subscription/form">“The Nodeletter”&lt;/a>, to receive more summaries and highlights like these, but up to twice a month!&lt;/p>
&lt;form method="post" action="https://godot.news/subscription/form" class="listmonk-form">
&lt;div>
&lt;input type="hidden" name="nonce" />
&lt;input type="email" name="email" required="" placeholder="E-mail" style="font-size: 18px;padding: 16px 18px;border: 1px solid var(--base-color);box-shadow: 0 4px 9px -3px #0000002e;background: var(--card-footer-color);color: var(--base-color-text);" />
&lt;p style="display:none;">
&lt;input id="a72d8" type="checkbox" name="l" checked="" value="a72d8608-e48e-408d-a19f-d425c2c4ba70" />
&lt;label for="a72d8">Godot Newsletter &lt;/label>
&lt;/p>
&lt;input type="submit" class="btn" value="Subscribe" style="cursor: pointer;border: inherit;" />
&lt;/div>
&lt;/form></content><author><name>Nat</name></author><category term="Showcase"/></entry><entry><title>Our first GodotCon in the US - Save the date!</title><link href="https://godotengine.org/article/godotcon-2025/"/><updated>2025-01-21T18:00:00+00:00</updated><id>https://godotengine.org/article/godotcon-2025/</id><summary>Want to join? Boston 5th - 7th of May. Call for speakers and sponsors open!</summary><content type="html">&lt;p>Up until now, we held all of our annual GodotCon events in Europe, but after the request of many of you and thanks to help from &lt;a href="https://www.meetup.com/bostongamedev/">Boston Game Dev&lt;/a> and the &lt;a href="https://www.meetup.com/bostongamedev/events/298734856/">Boston Godot Users Group&lt;/a>, we are finally able to bring the event to the US for the first time.&lt;/p>
&lt;h3 id="information">Information&lt;/h3>
&lt;table>
&lt;tbody>
&lt;tr>
&lt;td>📅 Dates&lt;/td>
&lt;td>5th, 6th, 7th of May&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>🕑 Time&lt;/td>
&lt;td>8AM - 6PM&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>🇺🇲 Location&lt;/td>
&lt;td>Boston, Massachusetts&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>📍 Venue&lt;/td>
&lt;td>Microsoft NERD. &lt;a href="https://www.google.com/maps/place/Microsoft+New+England+Research+and+Development+Center/@42.3608684,-71.0832216,1122m/data=!3m1!1e3!4m6!3m5!1s0x89e370a423d61825:0x58516248462c99eb!8m2!3d42.3614256!4d-71.0812092!16s%2Fg%2F1tfx5xkv?entry=ttu&amp;amp;g_ep=EgoyMDI1MDExMC4wIKXMDSoASAFQAw%3D%3D">1 Memorial Dr, Cambridge, MA 02142, United States&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>🌐 Website&lt;/td>
&lt;td>&lt;a href="https://conference.godotengine.org/US/2025">https://conference.godotengine.org&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;a class="btn" href="https://tickets.godotengine.org/foundation/godotcon-us-2025/">Buy tickets 🎟️&lt;/a>&lt;/p>
&lt;h3 id="call-for-speakers-and-sponsors">Call for speakers and sponsors&lt;/h3>
&lt;p>If you would like to be a part of the conference by giving a talk or a workshop, please submit your proposals through the link below. We are looking for a diverse range of topics, from beginner to advanced, so dont hesitate to submit your ideas.&lt;/p>
&lt;p>&lt;a href="https://talks.godotengine.org/godotcon-us-2025/cfp">&lt;strong>➡️ Call for submissions&lt;/strong>&lt;/a>, Deadline: 23th of February&lt;/p>
&lt;p>We are also actively looking for sponsors to support GodotCon Boston. If you or your company would be interested in learning more about sponsorship opportunities, feel free to reach out to &lt;a href="mailto:godotcon@godotengine.org">godotcon@godotengine.org&lt;/a>.&lt;/p>
&lt;h3 id="tickets-and-more">Tickets and more&lt;/h3>
&lt;p>Get your tickets &lt;a href="https://tickets.godotengine.org/foundation/godotcon-us-2025/">here&lt;/a> and stay tuned for more information by joining the &lt;a href="https://discord.gg/Jasg9cpjqA">GodotCon Discord&lt;/a> or the mailing list.&lt;/p>
&lt;form method="post" action="https://godot.news/subscription/form" class="listmonk-form">
&lt;style>@media (min-width: 768px) { input[type="submit"] {border-radius: 0px var(--button-border-radius) var(--button-border-radius) 0;}}&lt;/style>
&lt;div>
&lt;input type="hidden" name="nonce" />
&lt;input type="email" name="email" required="" placeholder="E-mail" style="font-size: 18px;padding: 16px 18px;border: 1px solid var(--base-color);box-shadow: 0 4px 9px -3px #0000002e;background: var(--card-footer-color);color: var(--base-color-text);" />
&lt;p style="display:none;">
&lt;input id="6e6e9" type="checkbox" name="l" checked="" value="6e6e9ba4-732b-4528-b4cd-71bbe6850f8d" />
&lt;label for="6e6e9">Godot Conference&lt;/label>
&lt;/p>
&lt;input type="submit" class="btn" value="Subscribe" style="cursor: pointer;border: inherit;" />
&lt;/div>
&lt;/form>
&lt;h3 id="will-there-still-be-a-european-edition-in-2025">Will there still be a European edition in 2025?&lt;/h3>
&lt;p>Absolutely! We are excited to confirm that a European GodotCon is also in the works for later this year. Stay tuned for more updates as we finalize the details.&lt;/p>
&lt;p>See you soon!&lt;/p></content><author><name>Emi</name></author><category term="Events"/></entry></feed>