mirror of
https://github.com/godotengine/godot-website.git
synced 2025-12-31 09:48:43 +03:00
4586 lines
355 KiB
XML
4586 lines
355 KiB
XML
<?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-11-14T18:50:33+00:00</updated><id>https://godotengine.org/</id><entry><title>Dev snapshot: Godot 4.6 dev 4</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-6-dev-4/"/><updated>2025-11-14T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-4/</id><summary>Powering through the post-GodotFest blues</summary><content type="html"><p>With <a href="https://godotfest.com/">GodotFest</a> now behind us, it’s only natural that some users would be left with a sense of longing. Well we have just the thing: our most recent Godot 4.6 development snapshot! It’s not even been two weeks since the last one, but we couldn’t just leave y’all hanging for more Godot content. As always, these snapshots feature big changes, meaning they’re likely accompanied by big regressions and bugs; get those tests and reports in as early as possible to ensure an expedient release cycle!</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.6.dev3/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/3yJ7i8kop"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/2005870/House_of_Necrosis/?curator_clanid=41324400"><strong>House of Necrosis</strong></a>, <em>a turn-based, horror PRG where you must survive the horrors of a mansion that changes every time it’s entered. You can get the game or try the demo on <a href="https://store.steampowered.com/app/2005870/House_of_Necrosis/?curator_clanid=41324400">Steam</a>, and follow the developer on <a href="https://www.youtube.com/@Warrrkus">YouTube</a>, <a href="https://bsky.app/profile/mycard.utustudios.com">Bluesky</a>, or <a href="https://warrrkus.itch.io/">itch.io</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<h3 id="animation-add-skeletonmodifier3d-iks-as-ikmodifier3d">Animation: Add <code class="language-plaintext highlighter-rouge">SkeletonModifier3D</code> IKs as <code class="language-plaintext highlighter-rouge">IKModifier3D</code></h3>
|
||
<p>For those that aren’t already aware, <code class="language-plaintext highlighter-rouge">SkeletonModificationStack3D</code> was removed in the transition from 3.x to 4.0, as it was deemed wildly unstable and unsalvageable. Since then, <a href="https://github.com/TokageItLab">Tokage</a> has been on a journey to reincorporate the functionality such that it lives up to the standards the rest of the engine aims for. This started early last year with the incorporation of <code class="language-plaintext highlighter-rouge">SkeletonModifier3D</code> (<a href="https://github.com/godotengine/godot/pull/87888">GH-87888</a>), which restored the majority of baseline functionality. However, there was one area which didn’t make the transiton: <abbr title="Inverse kinematics">IKs</abbr>.</p>
|
||
<p>The process of supporting IKs proved to be far more involved, as it too needed to be incorporated in a way that matched the engine’s standards and expectations. Consequently, that meant a solution that naturally expands off our <code class="language-plaintext highlighter-rouge">Node</code> paradigm; a tall order for how many use-cases and scenarios one must consider and account for when dealing with IKs. This resulted in <code class="language-plaintext highlighter-rouge">SkeletonModifier3D</code> receiving <strong>8 new subclasses</strong>, which are as follows:</p>
|
||
<ul>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_ikmodifier3d.html"><code class="language-plaintext highlighter-rouge">IKModifier3D</code></a>
|
||
<ul>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_chainik3d.html"><code class="language-plaintext highlighter-rouge">ChainIK3D</code></a></li>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_iterateik3d.html"><code class="language-plaintext highlighter-rouge">IterateIK3D</code></a>
|
||
<ul>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_ccdik3d.html#class-ccdik3d"><code class="language-plaintext highlighter-rouge">CCDIK3D</code></a></li>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_fabrik3d.html#class-fabrik3d"><code class="language-plaintext highlighter-rouge">FABRIK3D</code></a></li>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_jacobianik3d.html#class-jacobianik3d"><code class="language-plaintext highlighter-rouge">JacobianIK3D</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_splineik3d.html#class-splineik3d"><code class="language-plaintext highlighter-rouge">SplineIK3D</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://docs.godotengine.org/en/latest/classes/class_twoboneik3d.html#class-twoboneik3d"><code class="language-plaintext highlighter-rouge">TwoBoneIK3D</code></a></li>
|
||
</ul>
|
||
<p>Attempting to go over all of these is well beyond the scope of this blog post, so readers wanting more information should check out the pull request for more details. Instead, we’ll show off one of the bugfixes to this new system in (<a href="https://github.com/godotengine/godot/pull/112573">GH-112573</a>), as it provides an easily digestable visualization of that this system is capable of.</p>
|
||
<h4 id="before">Before</h4>
|
||
<p><img src="/storage/blog/dev-snapshot-godot-4-6-dev-4/haha-funny-wiggle.webp" alt="gmod-ragdoll.mp3" /></p>
|
||
<h4 id="after">After</h4>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Still funny, but functional!">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-4/haha-funny-stretch.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<h3 id="project-manager-various-improvements">Project manager: Various improvements</h3>
|
||
<p>The editor recieved a <strong>lot</strong> of love this development snapshot, with many features well worth a look in the curated highlights. However, for this blog post, we’ll be focusing on an oft-overlooked element of our editor: the project manager. While technically separate from the editor in the traditional sense, it’s editor-exclusive functionality which exists to launch project editors, so they’re invariably intertwined. With the project manager getting an uncharacteristic amount of attention this cycle, here’s a quick lightning-round of changes:</p>
|
||
<p><a href="https://github.com/Rindbee">Rindbee</a> is starting things off with an improved UI navigation (<a href="https://github.com/godotengine/godot/pull/101129">GH-101129</a>). The previous implementation clashed with our recent AccessKit integration, as it didn’t lend itself to keyboard navigation. Now a newly procided focus style makes navigation easier than ever:</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Project manager navigation">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-4/project-manager-nagivation.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<p>Next is <a href="https://github.com/Meorge">Malcolm Anderson</a>, who implemented functionality for opening the project in the file explorer as a “Show in File Manager” button (<a href="https://github.com/godotengine/godot/pull/111624">GH-111624</a>). Unfortunately, while a highly-requested feature, it proved to be too cluttered and was slated for a revert. Not being one to throw out the baby with the bathwater, <a href="https://github.com/KoBeWi">Tomasz Chabora</a> saved the functionality by reimplementing it in the form of a newly-added right-click menu:</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Project manager navigation">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-4/project-manager-right-click.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<p>Speaking of Tomasz, he’s here to round things off with yet another highly-requested feature: the ability to modify editor settings within the project manager (<a href="https://github.com/godotengine/godot/pull/82212">GH-82212</a>). Now opening a project just to make general adjustments is no longer necessary, as it can all be handled in the much more lightweight context of the project manager:</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Project manager navigation">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-4/project-manager-editor-settings.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<h3 id="buildsystem-support-dedicated-profilers">Buildsystem: Support dedicated profilers</h3>
|
||
<div class="card card-warning">
|
||
<p>This is unapologetically super-nerd territory, and strictly targeting those who already know what this is talking about. Everyone else, feel free to jump to the curated highlights instead.</p>
|
||
</div>
|
||
<p>It’s rare for our blog posts to mention the buildsystem in any capacity — let alone as a featured highlight — but this is a very special exception: Godot can now natively support dedicated profilers <a href="https://github.com/godotengine/godot/pull/104851">GH-104851</a>! Note that this is separate from <a href="https://docs.godotengine.org/en/latest/tutorials/scripting/debug/the_profiler.html">Godot’s built-in profiler</a>, as that’s suited for projects running <em>in</em> the engine, rather than the engine <em>itself</em>. Godot’s built-in profiler is still very useful, but these dedicated profilers are a great option for people who are very serious about optimizing Godot or their games.</p>
|
||
<p>Thanks to the efforts of <a href="https://github.com/Ivorforce">Lukas Tenbrink</a>, engine developers will no longer need to manually integrate (and constantly re-integrate) profiling logic to the engine. Instead, they merely need to pass the appropriate path to <code class="language-plaintext highlighter-rouge">profiler_path</code>, and our buildsystem will automatically detect and integrate the given profiler. Currently, the buildsystem supports <a href="https://github.com/wolfpld/tracy">Tracy</a> and <a href="https://perfetto.dev/">Perfetto</a>, but the groundwork exists for additional tools to be integrated down the road.</p>
|
||
<h3 id="and-more">And more!</h3>
|
||
<p>There are too many exciting changes to list them all here, but here’s a curated selection:</p>
|
||
<ul>
|
||
<li>2D: Fix smart snapping lines to disappear after using the pivot tool (<a href="https://github.com/godotengine/godot/pull/105203">GH-105203</a>).</li>
|
||
<li>3D: Add Bresenham Line Algorithm to GridMap Drawing (<a href="https://github.com/godotengine/godot/pull/105292">GH-105292</a>).</li>
|
||
<li>Core: Add ability to get list of Project Settings changed, similar to Editor Settings functionality (<a href="https://github.com/godotengine/godot/pull/110748">GH-110748</a>).</li>
|
||
<li>Editor: Add indicator to linked resources (<a href="https://github.com/godotengine/godot/pull/109458">GH-109458</a>).</li>
|
||
<li>Editor: Allow concurrent unbinding and binding of signal arguments in editor (<a href="https://github.com/godotengine/godot/pull/108741">GH-108741</a>).</li>
|
||
<li>Editor: Autoloads with UIDs (<a href="https://github.com/godotengine/godot/pull/112193">GH-112193</a>).</li>
|
||
<li>Editor: Automatically open newly created script (<a href="https://github.com/godotengine/godot/pull/108342">GH-108342</a>).</li>
|
||
<li>Editor: Fix edit resource on inspector when inside array or dictionary (<a href="https://github.com/godotengine/godot/pull/106099">GH-106099</a>).</li>
|
||
<li>Editor: Open source code errors in external editor (<a href="https://github.com/godotengine/godot/pull/111805">GH-111805</a>).</li>
|
||
<li>Editor: Persist fullscreen setting on Android Editor (<a href="https://github.com/godotengine/godot/pull/112246">GH-112246</a>).</li>
|
||
<li>GUI: PopupMenu: Add theme option for merging icon and checkbox gutters (<a href="https://github.com/godotengine/godot/pull/112545">GH-112545</a>).</li>
|
||
<li>I18n: Add CSV translation template generation (<a href="https://github.com/godotengine/godot/pull/112149">GH-112149</a>).</li>
|
||
<li>I18n: Make editor language setting default to Auto (<a href="https://github.com/godotengine/godot/pull/112317">GH-112317</a>).</li>
|
||
<li>Input: Add support for setting a joypad’s LED light color (<a href="https://github.com/godotengine/godot/pull/111681">GH-111681</a>).</li>
|
||
<li>Rendering: Apply viewport oversampling to Polygon2D (<a href="https://github.com/godotengine/godot/pull/112352">GH-112352</a>).</li>
|
||
<li>XR: OpenXR: Add support for frame synthesis (<a href="https://github.com/godotengine/godot/pull/109803">GH-109803</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>83 contributors</strong> submitted <strong>168 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6-dev4"><strong>interactive changelog</strong></a> for the complete list of changes since <a href="/article/dev-snapshot-godot-4-6-dev-3/">4.6-dev3</a>. You can also review <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6">all changes included in 4.6</a> compared to the previous <a href="/releases/4.5/">4.5 feature release</a>.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/bd2ca13c6f3a5198eac035c855dcd1759e077313"><code class="language-plaintext highlighter-rouge">bd2ca13c6</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.6-dev3">
|
||
Download Godot 4.6 dev3
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-6-dev-3.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.6-dev3">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<p>With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<ul>
|
||
<li>The newly released <a href="https://learn.microsoft.com/en-us/visualstudio/releases/2026/release-notes">Visual Studio 2026</a> isn’t detected, instead falling back to VS2022/VS2019 <a href="https://github.com/godotengine/godot/issues/112675">GH-112675</a>. There already exist a couple of <a href="https://github.com/godotengine/godot/pull/110851">potential</a> <a href="https://github.com/godotengine/godot/pull/112677">solutions</a>, so this will likely be resolved next update.</li>
|
||
</ul>
|
||
<p>Additionally, SCons fails to detect/utilize Visual Studio 2026 when attempting a build. While not technically an engine issue, a number of contributors have expressed confusion over the lack of support, so it’s worth an explicit mention. This issue has since been <a href="https://github.com/SCons/scons/pull/4780">resolved upstream</a>, and will be incorporated in the next official release; anyone requiring the fix immediately should build SCons from the <a href="https://github.com/SCons/scons">source repository</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<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 <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 3.7 dev 1</title><link href="https://godotengine.org/article/dev-snapshot-godot-3-7-dev-1/"/><updated>2025-11-13T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-3-7-dev-1/</id><summary>Since Godot 3.6's release in September 2024, we have been working hard on the new feature branch: 3.7.</summary><content type="html"><p>Although the vast majority of contributors are busily working on Godot 4, a small problematic group refuse to stop improving Godot 3. Since <a href="/article/godot-3-6-finally-released">Godot 3.6</a>’s release in September 2024, we have been working hard on the new feature branch, 3.7.</p>
|
||
<p>Although a number of features are still in preparation, there have already been a number of improvements since 3.6, so consider this a sneak peek at some of the advances that will be available.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/3.7.dev1/"><strong>Web editor</strong></a> for this release.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/2134980/Soul_Dier__Part_1/?curator_clanid=41324400"><strong>Soul Dier - Part 1</strong></a>, <em>a turn-based JRPG where you embark on a story-driven journey in a mysterious, hand-crafted world. You can buy the game or try out the demo on <a href="https://store.steampowered.com/app/2134980/Soul_Dier__Part_1/?curator_clanid=41324400">Steam</a> and follow the developers on their <a href="https://80.lv/author/ponpoppocpok-software">website</a>, <a href="https://www.youtube.com/@soul_dier_dev">YouTube</a>, or <a href="https://discord.com/invite/QzUfHUHDu6">Discord</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<h3 id="core">Core</h3>
|
||
<p>Thanks to work particularly by <a href="https://github.com/lawnjelly">lawnjelly</a> and <a href="https://github.com/Ivorforce">Lukas Tenbrink</a>, much of core has been heavily optimized, including faster access to <code class="language-plaintext highlighter-rouge">ProjectSettings</code>, faster object casting, move semantics, and use of faster data structures benefiting 2D and 3D.</p>
|
||
<h3 id="3d-physics-interpolation">3D physics interpolation</h3>
|
||
<p>In tandem with work on Godot 4.5, the 3D physics interpolation has been rewritten from the ground up (<a href="https://github.com/godotengine/godot/pull/103685">GH-103685</a>).</p>
|
||
<p>This has enabled us to fix a number of longstanding bugs and usability issues (particularly with non-interpolated tree branches), as well as more accurately representing pivot relationships which should give a smoother result.</p>
|
||
<p>Luckily we have already worked through a lot of the bugs in 4.5 betas, but let us know if you spot any!</p>
|
||
<h3 id="blob-shadows">Blob shadows</h3>
|
||
<p>As an alternative to traditional shadow mapping, Godot 3.7 introduces support for analytical sphere and capsule soft shadows. While this requires some setup of blob shadow caster nodes, the results can look great, and can perform better than shadow mapping in many situations, and are an attractive option especially on mobile.</p>
|
||
<p><img src="/storage/blog/dev-snapshot-godot-3-7-dev-1/blob_shadow.webp" alt="BlobShadow illustration" /></p>
|
||
<p>Blob shadows are typically only used on moving objects (as only a limited number of blobs can be used at one time), and are ideally used in conjunction with lightmaps for static geometry.</p>
|
||
<p>See (<a href="https://github.com/godotengine/godot/pull/84804">GH-84804</a>) for full details.</p>
|
||
<h3 id="mutable-audio-drivers">Mutable audio drivers</h3>
|
||
<p>While most of you will be making games with constant audio, those making applications (as well as users of the Editor itself) can now benefit from experimental “mutable audio” via hotswapping the audio driver (<a href="https://github.com/godotengine/godot/pull/63458">GH-63458</a>). This can dramatically reduce CPU usage. Audio is surprisingly one of the biggest CPU hogs in the Editor, despite it rarely playing any sounds!</p>
|
||
<p>This is good news especially for those of you using low-power PCs, or developing on battery-powered devices.</p>
|
||
<p><strong>Note</strong> that we are <em>expecting</em> regressions on some platforms / systems if hotswapping is not supported, this release is experimental and we are using it to identify problem platforms. You can help us by testing this in the editor, by checking that sound effects play correctly. If you encounter problems playing sounds, please report it on GitHub so we can investigate, and temporarily clear the muting flags in the editor in <code class="language-plaintext highlighter-rouge">editor_settings/interface/audio/</code> until we have it fixed.</p>
|
||
<h3 id="bug-fixes-and-backports">Bug fixes and backports</h3>
|
||
<p>As always, in addition to feature work, there have been a number of bugs fixed, and backports from Godot 4.x. These are detailed in the notes below. Of course the flow is two-way. Godot 4.x has also benefited from a number of new features forward ported from 3.x.</p>
|
||
<h3 id="and-more">And more!</h3>
|
||
<p>There are too many exciting changes to list them all here, but here’s a curated selection:</p>
|
||
<ul>
|
||
<li>2D: Make selected tile in <code class="language-plaintext highlighter-rouge">TileSet</code> more visible through red outline (<a href="https://github.com/godotengine/godot/pull/105439">GH-105439</a>).</li>
|
||
<li>3D: FTI - <code class="language-plaintext highlighter-rouge">global_transform_interpolated()</code> on demand for invisible nodes (<a href="https://github.com/godotengine/godot/pull/107307">GH-107307</a>).</li>
|
||
<li>3D: Pre-calculate <code class="language-plaintext highlighter-rouge">is_visible_in_tree()</code> (<a href="https://github.com/godotengine/godot/pull/107324">GH-107324</a>).</li>
|
||
<li>Audio: Add ability to mute AudioServer (<a href="https://github.com/godotengine/godot/pull/63458">GH-63458</a>).</li>
|
||
<li>Codestyle: Simplify <code class="language-plaintext highlighter-rouge">ObjectDB::get_instance()</code> casting (<a href="https://github.com/godotengine/godot/pull/100603">GH-100603</a>).</li>
|
||
<li>Core: Allow constructing Quat from two Vector3s (<a href="https://github.com/godotengine/godot/pull/90464">GH-90464</a>).</li>
|
||
<li>Core: <code class="language-plaintext highlighter-rouge">Object::call()</code> prevent debug lock accessing dangling pointer (<a href="https://github.com/godotengine/godot/pull/96862">GH-96862</a>).</li>
|
||
<li>Core: Add move semantics to core containers (<a href="https://github.com/godotengine/godot/pull/100995">GH-100995</a>).</li>
|
||
<li>Core: Add <code class="language-plaintext highlighter-rouge">GLOBAL_GET</code> cached macros (<a href="https://github.com/godotengine/godot/pull/103763">GH-103763</a>).</li>
|
||
<li>Editor: Cancel tooltips when the mouse leaves the window (<a href="https://github.com/godotengine/godot/pull/95978">GH-95978</a>).</li>
|
||
<li>Editor: Improve Class display in Create dialog (<a href="https://github.com/godotengine/godot/pull/105459">GH-105459</a>).</li>
|
||
<li>Editor: Add an editor option to copy system info to clipboard (<a href="https://github.com/godotengine/godot/pull/105674">GH-105674</a>).</li>
|
||
<li>GDScript: Backport “Cleanup function state connections when destroying instance” for Godot 3 (<a href="https://github.com/godotengine/godot/pull/97464">GH-97464</a>).</li>
|
||
<li>GUI: Expose some helper methods on Viewport (<a href="https://github.com/godotengine/godot/pull/92573">GH-92573</a>).</li>
|
||
<li>Input: Fix Xbox Controller on Android (<a href="https://github.com/godotengine/godot/pull/106021">GH-106021</a>).</li>
|
||
<li>Physics: Fix physics platform behaviour regression (<a href="https://github.com/godotengine/godot/pull/97316">GH-97316</a>).</li>
|
||
<li>Plugin: Backport “[Editor] Add <code class="language-plaintext highlighter-rouge">EditorPlugin::scene_saved</code> signal” (<a href="https://github.com/godotengine/godot/pull/99857">GH-99857</a>).</li>
|
||
<li>Rendering: Implement glow map effect (<a href="https://github.com/godotengine/godot/pull/93133">GH-93133</a>).</li>
|
||
<li>Rendering: Physics Interpolation - Move 3D FTI to <code class="language-plaintext highlighter-rouge">SceneTree</code> (<a href="https://github.com/godotengine/godot/pull/103685">GH-103685</a>).</li>
|
||
<li>Rendering: FTI - Add custom interpolation for wheels (<a href="https://github.com/godotengine/godot/pull/105816">GH-105816</a>).</li>
|
||
<li>Rendering: Blob shadows (<a href="https://github.com/godotengine/godot/pull/84804">GH-84804</a>).</li>
|
||
<li>VisualScript: Bind Array and Pool*Array get and set functions (<a href="https://github.com/godotengine/godot/pull/96135">GH-96135</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>44 contributors</strong> submitted <strong>130 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#3.7-dev1"><strong>interactive changelog</strong></a> for the complete list of changes since <a href="/article/godot-3-6-finally-released">3.6-stable</a>.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/a117d512b00f1646db174e703e7e888519b64608"><code class="language-plaintext highlighter-rouge">a117d512b</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/3.7-dev1">
|
||
Download Godot 3.7 dev1
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-3-7-dev-1.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=x11.64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=mono_x11_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=osx.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=mono_osx.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.7&amp;flavor=dev1&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/3.7-dev1">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript, GDNative, and VisualScript.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript, GDNative, and VisualScript.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<p>There are currently no known issues introduced by this release.</p>
|
||
<p>With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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 3.x releases, but no longer works in this snapshot).</p>
|
||
<h2 id="support">Support</h2>
|
||
<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 <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></content><author><name>lawnjelly</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.6 dev 3</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-6-dev-3/"/><updated>2025-11-04T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-3/</id><summary>Rocking a new look!</summary><content type="html"><p>Our third development snapshot of the 4.6 release cycle is upon us, and now the floodgates are well and truly open. The enhancements are bigger than ever, with several of them overhauling the look of the editor itself entirely! Big features necessitate big changes, which means the potential for big bugs and regressions; early reports and tests remain crucial to catch these issues as soon as possible.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.6.dev3/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/3yJ7i8kop"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/3617620/My_Card_Is_Better_Than_Your_Card/?curator_clanid=41324400"><strong>My Card Is Better Than Your Card!</strong></a>, <em>a roguelike deckbuilder where you stick stickers to become the coolest kid on the playground. You can get the game or try the demo on <a href="https://store.steampowered.com/app/3617620/My_Card_Is_Better_Than_Your_Card/?curator_clanid=41324400">Steam</a>, and follow the developers on <a href="https://www.youtube.com/@UtuStudios">YouTube</a> or <a href="https://bsky.app/profile/mycard.utustudios.com">Bluesky</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<h3 id="new-editor-theme">New editor theme</h3>
|
||
<p>Longtime users of the Godot Editor are likely familiar with one of its most popular custom themes: the <a href="https://github.com/passivestar/godot-minimal-theme">Godot Minimal Theme</a>. Created by <a href="https://github.com/passivestar">passivestar</a>, and showcased in the <a href="/article/dev-snapshot-godot-4-6-dev-1/">first dev snapshot</a>, this skin has become a favorite for many users thanks to a focus on its namesake: minimalism. One of the most frequent suggestions from the community has been an official integration of this theme in some capacity, to make the barrier of entry that much shorter. We’ll do you one better: it’s now the default theme for the editor!</p>
|
||
<p><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/new-editor-theme.jpg" alt="New editor theme" /></p>
|
||
<p><a href="https://github.com/YeldhamDev">Michael Alexsander</a> was tasked with helming the official implementation of this theme (<a href="https://github.com/godotengine/godot/pull/111118">GH-111118</a>), receiving help from passivestar directly to ensure a smooth and streamlined transition. Through his efforts, as well as several accompanying theme-related PRs from many other contributors such as <a href="https://github.com/DeeJayLSP">Douglas Leão</a>, we’re excited to (re)-introduce the newly dubbed “Modern Theme”!</p>
|
||
<div class="card card-info" style="margin-top: 1em;">
|
||
<p>We still love our original theme, henceforth known as the “Classic Theme,” and will continue to support it in tandem. It can be accessed through the <code class="language-plaintext highlighter-rouge">interface/theme/style</code> and <code class="language-plaintext highlighter-rouge">interface/theme/preset</code> settings.</p>
|
||
</div>
|
||
<p>It may surprise some that we chose to set the default color to a dark grey instead of the classic blue that makes our editor stand out at first glance. It is primarily due to the fact that it caused some issues with the perceived white balance. Removing hue from the equation resolves most of these problems.</p>
|
||
<p>While originally implemented as a 1-to-1 port of the Minimal Theme, we’ve already been making adjustments to better suit the design philosophies of the Godot Foundation itself. Namely: prioritizing accessibility options and retaining readability. As such, this implementation should <strong>not</strong> be taken as a final representation of this theme; the team fully welcomes and encourages early feedback in order to flush out any lingering blind spots. Nonetheless, we’re excited with the amount of progress made already, and hope you enjoy this new theme firsthand!</p>
|
||
<div class="card card-info" style="margin-top: 1em;">
|
||
<p>The project showcased in the new theme exhibit is <a href="https://codeberg.org/Librerama/librerama">Librerama</a>, by Michael Alexsander.</p>
|
||
</div>
|
||
<h3 id="condense-inspector-layout-for-arrays">Condense inspector layout for arrays</h3>
|
||
<p>In a similar vein to the previous point, we’ve applied a similar minimal-style overhaul to the array inspector. This change is inherent to the inspector itself, so the benefits will be shown regardless of which theme is chosen. <a href="https://github.com/dugramen">Koliur Rahman</a> has brought us this revamped implementation, trimming away wasted space by consolidating information and logic to their essential elements (<a href="https://github.com/godotengine/godot/pull/103257">GH-103257</a>).</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Old</th>
|
||
<th>New</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/array-old.jpg" alt="Array old" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/array-new.jpg" alt="Array new" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="rendering-overhaul-screen-space-reflections">Rendering: Overhaul screen space reflections</h3>
|
||
<p>The editor has gotten a lot of love in this blog post, so let’s shake things up with some rendering news! <a href="https://github.com/blueskythlikesclouds">Skyth</a> has been hard at work overhauling our current screen space reflection logic, and their efforts in <a href="https://github.com/godotengine/godot/pull/111210">GH-111210</a> have resulted in better performance <strong>and</strong> higher quality! The PR is readily available for those seeking a more technical deep-dive on the “how”, but we’re here to showcase the end results; they should speak for themselves:</p>
|
||
<h4 id="64-max-steps">64 Max Steps</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Old</th>
|
||
<th>New (half)</th>
|
||
<th>New (full)</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/64-max-steps-old.jpg" alt="64 max steps old" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/64-max-steps-new-half.jpg" alt="64 max steps new (half)" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/64-max-steps-new-full.jpg" alt="64 max steps new (full)" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h4 id="256-max-steps">256 Max Steps</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Old</th>
|
||
<th>New (half)</th>
|
||
<th>New (full)</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/256-max-steps-old.jpg" alt="256 max steps old" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/256-max-steps-new-half.jpg" alt="256 max steps new (half)" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/256-max-steps-new-full.jpg" alt="256 max steps new (full)" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h4 id="roughness">Roughness</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Old</th>
|
||
<th>New</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/roughness-old.jpg" alt="Roughness old" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/roughness-new.jpg" alt="Roughness new" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h4 id="metallic-surface">Metallic Surface</h4>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Old</th>
|
||
<th>New (half)</th>
|
||
<th>New (full)</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/metallic-surface-old.jpg" alt="Metallic surface old" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/metallic-surface-new-half.jpg" alt="Metallic surface new (half)" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-3/metallic-surface-new-full.jpg" alt="Metallic surface new (full)" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="and-more">And more!</h3>
|
||
<p>There are too many exciting changes to list them all here, but here’s a curated selection:</p>
|
||
<ul>
|
||
<li>Animation: Remove default skeleton path in <code class="language-plaintext highlighter-rouge">MeshInstance3D</code> (<a href="https://github.com/godotengine/godot/pull/112267">GH-112267</a>).
|
||
<ul>
|
||
<li>If relying on the default <code class="language-plaintext highlighter-rouge">skeleton_path</code> in some scenes, users should manually re-specify the parent node as the <code class="language-plaintext highlighter-rouge">NodePath</code>, or they can enable the <code class="language-plaintext highlighter-rouge">animation/compatibility/default_parent_skeleton_in_mesh_instance_3d</code> project setting to restore the pre-4.6 behavior.</li>
|
||
</ul>
|
||
</li>
|
||
<li>Editor: Add Create Resource Hotkey (<a href="https://github.com/godotengine/godot/pull/110641">GH-110641</a>).</li>
|
||
<li>Editor: Add splitter to “Create New Node” dialog (<a href="https://github.com/godotengine/godot/pull/111017">GH-111017</a>).</li>
|
||
<li>Editor: Android Editor: Add game speed control options in game menu bar (<a href="https://github.com/godotengine/godot/pull/111296">GH-111296</a>).</li>
|
||
<li>Editor: FindInFiles: Allow replacing individual results (<a href="https://github.com/godotengine/godot/pull/109727">GH-109727</a>).</li>
|
||
<li>Editor: Speed up deletion via the Scene Tree Dock in large trees (<a href="https://github.com/godotengine/godot/pull/109511">GH-109511</a>).</li>
|
||
<li>Editor: Use Inter as the default editor font, features enabled (<a href="https://github.com/godotengine/godot/pull/111140">GH-111140</a>).</li>
|
||
<li>Export: Android: Add export option to use <a href="https://github.com/Genymobile/scrcpy">scrcpy</a> to run project from editor (<a href="https://github.com/godotengine/godot/pull/108737">GH-108737</a>).</li>
|
||
<li>Export: Fix custom icon in Android export (<a href="https://github.com/godotengine/godot/pull/111688">GH-111688</a>).</li>
|
||
<li>Import: Betsy: Convert RGB to RGBA on the GPU for faster compression (<a href="https://github.com/godotengine/godot/pull/110060">GH-110060</a>).</li>
|
||
<li>Navigation: Make <code class="language-plaintext highlighter-rouge">NavigationServer</code> backend engine selectable (<a href="https://github.com/godotengine/godot/pull/106290">GH-106290</a>).</li>
|
||
<li>Rendering: Add Persistent Buffers utilizing UMA (<a href="https://github.com/godotengine/godot/pull/111183">GH-111183</a>).</li>
|
||
<li>Rendering: D3D12: Greatly reduce shader conversion time &amp; fix spec constant bitmasking (<a href="https://github.com/godotengine/godot/pull/111762">GH-111762</a>).</li>
|
||
<li>Rendering: Implement a very simple SSAO in GLES3 (<a href="https://github.com/godotengine/godot/pull/109447">GH-109447</a>).</li>
|
||
<li>Rendering: Overhaul and optimize Glow in the mobile renderer (<a href="https://github.com/godotengine/godot/pull/110077">GH-110077</a>).</li>
|
||
<li>Rendering: Use half float precision buffer for 3D when HDR2D is enabled (<a href="https://github.com/godotengine/godot/pull/109971">GH-109971</a>).</li>
|
||
<li>Tests: Add Android instrumented tests to the <code class="language-plaintext highlighter-rouge">app</code> module (<a href="https://github.com/godotengine/godot/pull/110829">GH-110829</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>101 contributors</strong> submitted <strong>239 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6-dev3"><strong>interactive changelog</strong></a> for the complete list of changes since <a href="/article/dev-snapshot-godot-4-6-dev-2/">4.6-dev2</a>. You can also review <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6">all changes included in 4.6</a> compared to the previous <a href="/releases/4.5/">4.5 feature release</a>.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/9d84f3d135d4a53ee8c42f32d4df7cc66b2e3684"><code class="language-plaintext highlighter-rouge">9d84f3d13</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.6-dev3">
|
||
Download Godot 4.6 dev3
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-6-dev-3.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev3&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.6-dev3">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<p>There are currently no known issues introduced by this release.</p>
|
||
<p>With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<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 <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Maintenance release: Godot 3.6.2</title><link href="https://godotengine.org/article/maintenance-release-godot-3-6-2/"/><updated>2025-10-23T11:00:00+00:00</updated><id>https://godotengine.org/article/maintenance-release-godot-3-6-2/</id><summary>Although we fixed many of the major 3.6 bugs in Godot 3.6.1 in June, we have decided to make a new 3.6 point release in order to keep up to date with platform requirements.</summary><content type="html"><p><strong>Edit 2025-10-25 @ 21:30 UTC:</strong> The original release had a regression affecting the Windows binaries (at least the editor) which lead to crashes (<a href="https://github.com/godotengine/godot/issues/111979">GH-111979</a>, <a href="https://github.com/godotengine/godot/issues/112021">GH-112021</a>). This was caused by the update to MinGW-GCC 14.2.1 for official build containers. We’ve temporarily reverted that change and rebuilt the Windows binaries today. If you downloaded this release for Windows or the export templates before 2025-10-25 21:30 UTC, please redownload it as the binaries have been replaced.</p>
|
||
<hr />
|
||
<p>Although we fixed many of the major 3.6 bugs in <a href="/article/godot-3-6-finally-released">Godot 3.6.1</a> in June, we have decided to make a new 3.6 point release in order to keep up to date with platform requirements.</p>
|
||
<p><a href="https://support.google.com/googleplay/android-developer/answer/11926878?hl=en">Google announced</a> that from August 31, 2025 (with possible extension to November 1, 2025), apps and updates submitted to the Play Store must target Android 15 (API level 35) and support 16 KiB page size. As a result we have updated Godot Android APIs and made compatibility changes to ensure users can update their Godot 3 games on Play Store with 3.6.2.</p>
|
||
<p>Since we had to rebuild Mono for Android with a 16 KiB page size, we took the opportunity to update our build containers to provide more <a href="https://github.com/godotengine/build-containers/tree/3.6?tab=readme-ov-file#toolchains">recent toolchains</a> for official builds. Like for 3.6.1, UWP export templates are no longer provided in this build (but can be compiled from source if needed).</p>
|
||
<p><strong>This is a safe and recommended update for all Godot 3.6.x users.</strong> It should have no major impact on your projects, even complex ones in production, if you’re already using 3.6.1-stable.</p>
|
||
<p><a href="/download/3.x/"><strong>Download Godot 3.6.2 now</strong></a> or try the <a href="https://editor.godotengine.org/3.6.2.stable/">online version of the Godot editor</a>.</p>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/3.6.2-stable">
|
||
Download Godot 3.6.2 stable
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/maintenance-release-godot-3-6-2.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=x11.64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=mono_x11_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=osx.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=mono_osx.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=3.6.2&amp;flavor=stable&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/3.6.2-stable">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<hr />
|
||
<p><em>The illustration picture for this article comes from</em> <a href="https://store.steampowered.com/app/2005870/House_of_Necrosis/?curator_clanid=41324400"><strong>House of Necrosis</strong></a>, <em>a turn-based horror RPG with retro 32-bit 3D graphics. It is developed by <a href="https://warkus-productions.com/">Warkus</a> with Godot 3.6 Mono. You can get the game on <a href="https://store.steampowered.com/app/2005870/House_of_Necrosis/?curator_clanid=41324400">Steam</a>, and follow the developer on <a href="https://bsky.app/profile/warkus.bsky.social">Bluesky</a>.</em></p>
|
||
<h2 id="changed">Changed</h2>
|
||
<ul>
|
||
<li>Buildsystem: Update toolchains for official builds (Fedora 42 base, Mono 6.12.0.206, <del>MinGW-GCC 14.2.1,</del> Xcode 16.2) (<a href="https://github.com/godotengine/build-containers/pull/156">build-containers#156</a>).
|
||
<ul>
|
||
<li>The update of the Windows toolchains to MinGW-GCC 14.2.1 was temporarily reverted as it introduced crashes with LTO. 3.6.2-stable Windows binaries (editor and export templates) were rebuilt with the previous MinGW-GCC version on 2025-10-25 at 21:30 UTC.</li>
|
||
</ul>
|
||
</li>
|
||
<li>Network: mbedTLS: Update to mbedTLS 3.6.5 (<a href="https://github.com/godotengine/godot/pull/108382">GH-108382</a>, <a href="https://github.com/godotengine/godot/pull/111845">GH-111845</a>).</li>
|
||
<li>Porting: Android: Update to target API 35, NDK r28, 16kb page size (<a href="https://github.com/godotengine/godot/pull/108433">GH-108433</a>).</li>
|
||
<li>Porting: Android: Address API 35 UI changes (<a href="https://github.com/godotengine/godot/pull/110255">GH-110255</a>).</li>
|
||
<li>Porting: Android: Set minsdk to 21, workaround <code class="language-plaintext highlighter-rouge">fseeko</code> error in Opus (<a href="https://github.com/godotengine/godot/pull/111061">GH-111061</a>).</li>
|
||
<li>Porting: iOS: Switch window creation to UIScene (<a href="https://github.com/godotengine/godot/pull/111103">GH-111103</a>).</li>
|
||
<li>Thirdparty: Enable builds with miniupnpc API 18 (<a href="https://github.com/godotengine/godot/pull/100389">GH-100389</a>).</li>
|
||
</ul>
|
||
<h2 id="fixed">Fixed</h2>
|
||
<ul>
|
||
<li>Buildsystem: Fix build on macOS 26 by removing AGL framework link (<a href="https://github.com/godotengine/godot/pull/110898">GH-110898</a>).</li>
|
||
<li>Editor: Fix inability to assign script after clearing (<a href="https://github.com/godotengine/godot/pull/108171">GH-108171</a>).</li>
|
||
<li>Editor: Fix Open Editor Data/Settings Folder menu in self-contained mode (<a href="https://github.com/godotengine/godot/pull/110414">GH-110414</a>).</li>
|
||
<li>Export: Fix order of operations for macOS template check (<a href="https://github.com/godotengine/godot/pull/108930">GH-108930</a>).</li>
|
||
<li>GUI: Fix Line breaking may not work correctly when using color tags with specific font (<a href="https://github.com/godotengine/godot/pull/109695">GH-109695</a>).</li>
|
||
<li>Rendering: Batching: Fix <code class="language-plaintext highlighter-rouge">MultiRect</code> casting to wrong type (<a href="https://github.com/godotengine/godot/pull/109111">GH-109111</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>14 contributors</strong> submitted <strong>19 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#3.6.2"><strong>interactive changelog</strong></a> for the complete list of changes since the 3.6.1 release.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/3cd3caab6779a7f3ec3bbeb9f200db50c735cfc8"><code class="language-plaintext highlighter-rouge">3cd3caab6</code></a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, you are encouraged to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with 3.6.2. Please check first the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a>, using the search function with relevant keywords, to ensure that the bug you experience is not known already.</p>
|
||
<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 3.6.1 or earlier 3.x releases no longer works in 3.6.2).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, and a handful of part or full-time developers, hired thanks to <a href="/donate">donations from the Godot community</a>. A big thankyou to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so with the <a href="https://fund.godotengine.org">development fund</a>.</p></content><author><name>lawnjelly</name></author><category term="Release"/></entry><entry><title>Dev snapshot: Godot 4.6 dev 2</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-6-dev-2/"/><updated>2025-10-20T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-2/</id><summary>Open the floodgates!</summary><content type="html"><p>With our <a href="/article/dev-snapshot-godot-4-6-dev-1/">first dev snapshot</a> out of the way, the 4.6 development cycle is no longer constraining itself to the territory of bugfixes. Many long-awaited features and enhancements are seeing the light of day at long last, as this behemoth of a snapshot boasts <strong>over 300</strong> improvements in all! This blog post will aim to highlight the heavy-hitters to the best of its ability, but the sheer number of changes may warrant users to check the <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6-dev2">interactive changelog</a> for a more thorough dive. With new features comes the potential of new bugs, so early testing and reporting will be essential to catching regressions as quickly as possible.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.6.dev2/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/3yJ7i8kop"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/3606890/Upload_Labs/?curator_clanid=41324400"><strong>Upload Labs</strong></a>, <em>an idle game where you build and optimize your computer’s system from the ground up. You can get the game for free on <a href="https://store.steampowered.com/app/3606890/Upload_Labs/?curator_clanid=41324400">Steam</a>, and follow the developers on <a href="https://www.youtube.com/@enigmadevstudios">YouTube</a> or <a href="https://discord.com/invite/enigmadev">Discord</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<h3 id="build-godot-engine-as-a-library">Build Godot Engine as a library</h3>
|
||
<p>A very common request we’ve seen regarding Godot is the ability to build the engine as a standalone library. In the past, it’s not something we’ve actively pursued, as the engine paradigm is so central to many of our design philosophies. However, as time has gone on, we’ve encountered more and more scenarios where simply having the ability to access Godot in an isolated context is absolutely necessary for certain workflows. So while a fully-fledged integration of this concept isn’t something we fully support at this time, <a href="https://github.com/kisg">Gergely Kis</a> has put in the work to allow for a functional baseline (<a href="https://github.com/godotengine/godot/pull/110863">GH-110863</a>). Currently dubbed <code class="language-plaintext highlighter-rouge">LibGodot</code> internally, there’s now a basic support for a <code class="language-plaintext highlighter-rouge">GodotInstance</code> to function as an entry point for these specialized workflows.</p>
|
||
<h3 id="objectdb-profiling-tool"><code class="language-plaintext highlighter-rouge">ObjectDB</code> profiling tool</h3>
|
||
<p>Another common request from more technically-minded users has been a proper means of profiling <code class="language-plaintext highlighter-rouge">ObjectDB</code>, which can be considered the heart of our entire <code class="language-plaintext highlighter-rouge">Object</code> structure. First-time contributor <a href="https://github.com/AleksLitynski">Aleksander Litynski</a> took to this daunting task, bringing us the <code class="language-plaintext highlighter-rouge">ObjectDB Profiler</code> tool (<a href="https://github.com/godotengine/godot/pull/97210">GH-97210</a>). With this, users will be able to take snapshots of the current <code class="language-plaintext highlighter-rouge">ObjectDB</code> state during debug sessions, and compare that to other snapshots at a given point in time. These snapshots can also be viewed in a variety of contexts detailed in the PR’s original post, but the short version is finding or exporting a diff between states has never been easier or more accessible!</p>
|
||
<p><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/objectdb-profiler.jpg" alt="ObjectDB Profiler" /></p>
|
||
<h3 id="improved-automatic-mesh-lod-using-component-pruning">Improved automatic mesh LOD using component pruning</h3>
|
||
<p>Our mesh simplifier currently supports the ability to collapse edges, but lacked functionality for simplifying the components themselves. <a href="https://github.com/zeux">Arseny Kapoulkine</a> has addressed this shortcoming, enabling topologically complex sections of a larger mesh to more easily reach the desired <abbr title="Level of Detail">LOD</abbr> target (<a href="https://github.com/godotengine/godot/pull/110028">GH-110028</a>).</p>
|
||
<p><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/mesh-component-prune.jpg" alt="Pruned components in simplified mesh" /></p>
|
||
<h3 id="rotation-visualization-and-snapping">Rotation visualization and snapping</h3>
|
||
<p>The way that we present and handle our 3D space has already seen a fair number of improvements in the 4.6 cycle, but these two warrant particular mention for implementing popular features that are found in many 3D modelling programs today. Firstly, <a href="https://github.com/ryevdokimov">Robert Yevdokimov</a> has expanded the 3D Transform gizmo to visualize the current delta angle of a rotation operation (<a href="https://github.com/godotengine/godot/pull/108576">GH-108576</a>). This process is non-accumulating, meaning rotations beyond 360° are reset.</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Rotation accumulation">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-2/rotation-accumulation.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<p>The second comes to us from <a href="https://github.com/passivestar">passivestar</a>, who integrated orbit snapping to the 3D Viewport (<a href="https://github.com/godotengine/godot/pull/111509">GH-111509</a>). While holding <code class="language-plaintext highlighter-rouge">Alt</code>, exiting an orbit pan will cause the resulting view to be snapped to a static, 45° offset. This is similar to directly swapping to an orthographic view, but from the convenience of orbitting and allowing for more granular 45° midpoints.</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Rotation snapping">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-2/rotation-snapping.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<h3 id="rendering-blend-glow-before-tonemapping-and-change-default-to-screen">Rendering: Blend glow before tonemapping and change default to screen</h3>
|
||
<p><abbr title="High dynamic range"><a href="https://en.wikipedia.org/wiki/High_dynamic_range">HDR</a></abbr> has been growing in prevalence as a feature in modern displays, but actual support of the feature is lagging behind somewhat. This is largely because most existing programs were designed with <abbr title="Standard RGB"><a href="https://en.wikipedia.org/wiki/SRGB">sRGB</a></abbr> in mind, and necessitate retrofitting themselves to handle HDR. This process is much easier said than done, and sometimes the effects can be invisible to the average user, meaning such advancements are rarely given a proper highlight. <a href="https://github.com/allenwp">Allen Pestaluky</a> has broken this convention, with a PR that improves visual quality for all users <strong>and</strong> sets the stage for HDR output support (<a href="https://github.com/godotengine/godot/pull/110671">GH-110671</a>).</p>
|
||
<p>The first change was to blend glow before tonemapping for all rendering methods and blend modes (except soft light). While this was always the case in the Compatibility renderer, the functionality has been expanded to the Mobile and Forward+ renderers as well. Blending beforehand results in the glow effect blending in a more realistic fashion, sidestepping the hard edges and hue shifts if blended after.</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Original scene</th>
|
||
<th>Before tonemapping (screen, AgX, 16.29 white)</th>
|
||
<th>After tonemapping (screen, AgX, 16.29 white)</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/glow-original.jpg" alt="Original Scene" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/glow-before.jpg" alt="Before tonemapping (screen, AgX, 16.29 white)" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/glow-after.jpg" alt="After tonemapping (screen, AgX, 16.29 white)" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>The second change was adjusting the default blend mode from soft light to screen for all renderers. This too was already the case for the Compatibility renderer, though that default was set with the behavior of blend glow before tonemapping in mind. As such, a change in the other renderers to match the new behavior is to be expected.</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Renderer</th>
|
||
<th>Soft light blend mode</th>
|
||
<th>Screen blend mode</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Mobile</td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/soft-light-blend-mobile.jpg" alt="Mobile renderer, soft light blend mode" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/screen-blend-mobile.jpg" alt="Mobile renderer, screen blend mode" /></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Forward+</td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/soft-light-blend-forward.jpg" alt="Forward+ renderer, soft light blend mode" /></td>
|
||
<td><img src="/storage/blog/dev-snapshot-godot-4-6-dev-2/screen-blend-forward.jpg" alt="Forward+ renderer, screen blend mode" /></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="card card-warning">
|
||
<p>This change technically breaks compatibility since it will result in a noticeable visual change, and the previous behavior cannot be restored by simply adjusting settings. In most cases we are confident that this change in behavior will be a direct upgrade. But this change is something to be aware of if your game is using Glow at all.</p>
|
||
</div>
|
||
<h3 id="and-more">And more!</h3>
|
||
<p>There are too many exciting changes to list them all here, but here’s a curated selection:</p>
|
||
<ul>
|
||
<li>Core: Add <code class="language-plaintext highlighter-rouge">reserve_exact</code> to <code class="language-plaintext highlighter-rouge">CowData</code>, and change growth factor to 1.5x (<a href="https://github.com/godotengine/godot/pull/106039">GH-106039</a>).</li>
|
||
<li>Core: Add <code class="language-plaintext highlighter-rouge">reserve</code> function to <code class="language-plaintext highlighter-rouge">Array</code>, <code class="language-plaintext highlighter-rouge">Vector</code>, and <code class="language-plaintext highlighter-rouge">String</code> (<a href="https://github.com/godotengine/godot/pull/105928">GH-105928</a>).</li>
|
||
<li>Core: Add unique Node IDs to support base and instantiated scene refactorings (<a href="https://github.com/godotengine/godot/pull/106837">GH-106837</a>).</li>
|
||
<li>Documentation: Drop the experimental label for the Jolt Physics integration (<a href="https://github.com/godotengine/godot/pull/111115">GH-111115</a>).</li>
|
||
<li>Editor: Add game speed controls to the embedded game window (<a href="https://github.com/godotengine/godot/pull/107273">GH-107273</a>).</li>
|
||
<li>Editor: Add source lines to file locations on POT generation (<a href="https://github.com/godotengine/godot/pull/111419">GH-111419</a>).</li>
|
||
<li>Editor: Make file part of errors/warnings clickable in Output panel (<a href="https://github.com/godotengine/godot/pull/108473">GH-108473</a>).</li>
|
||
<li>Editor: Rework editor docks (<a href="https://github.com/godotengine/godot/pull/106503">GH-106503</a>).</li>
|
||
<li>Editor: Store script states for built-in scripts (<a href="https://github.com/godotengine/godot/pull/93713">GH-93713</a>).</li>
|
||
<li>GDScript: Add opt-in GDScript warning for when calling coroutine without <code class="language-plaintext highlighter-rouge">await</code> (<a href="https://github.com/godotengine/godot/pull/107936">GH-107936</a>).</li>
|
||
<li>GUI: Add <code class="language-plaintext highlighter-rouge">pivot_offset_ratio</code> property to Control (<a href="https://github.com/godotengine/godot/pull/70646">GH-70646</a>).</li>
|
||
<li>GUI: Add auto-scroll behavior when selecting text outside the visible area in RichTextLabel (<a href="https://github.com/godotengine/godot/pull/104715">GH-104715</a>).</li>
|
||
<li>GUI: Visualize MarginContainer margins when selected (<a href="https://github.com/godotengine/godot/pull/111095">GH-111095</a>).</li>
|
||
<li>Import: OBJ: Support bump multiplier (normal scale) (<a href="https://github.com/godotengine/godot/pull/110925">GH-110925</a>).</li>
|
||
<li>Network: Add Core UNIX domain socket support (<a href="https://github.com/godotengine/godot/pull/107954">GH-107954</a>).</li>
|
||
<li>Physics: Add MeshInstance3D primitive conversion options (<a href="https://github.com/godotengine/godot/pull/101521">GH-101521</a>).</li>
|
||
<li>Physics: Add MultiMesh physics interpolation for 2D transforms (MultiMeshInstance2D) (<a href="https://github.com/godotengine/godot/pull/107666">GH-107666</a>).</li>
|
||
<li>Rendering: Add material debanding for use in Mobile rendering method (<a href="https://github.com/godotengine/godot/pull/109084">GH-109084</a>).</li>
|
||
<li>Rendering: Implement motion vectors in compatibility renderer (<a href="https://github.com/godotengine/godot/pull/97151">GH-97151</a>).</li>
|
||
<li>Rendering: Make <code class="language-plaintext highlighter-rouge">OpenXRCompositionLayer</code> and its children safe for multithreaded rendering (<a href="https://github.com/godotengine/godot/pull/109431">GH-109431</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>114 contributors</strong> submitted <strong>323 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6-dev2"><strong>interactive changelog</strong></a> for the complete list of changes since <a href="/article/dev-snapshot-godot-4-6-dev-1/">4.6-dev1</a>. You can also review <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6">all changes included in 4.6</a> compared to the previous <a href="/releases/4.5/">4.5 feature release</a>.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/7864ac80192e9e91bf56176af9f04cc013b580aa"><code class="language-plaintext highlighter-rouge">7864ac801</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.6-dev2">
|
||
Download Godot 4.6 dev2
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-6-dev-2.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev2&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.6-dev2">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<ul>
|
||
<li><strong>The “Replace in Files…” function is currently broken, and will clear the contents of all files with matches when used.</strong> This issue will be fixed in the next snapshot via <a href="https://github.com/godotengine/godot/pull/112033">GH-112033</a>.</li>
|
||
</ul>
|
||
<p>With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<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 <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Maintenance release: Godot 4.5.1</title><link href="https://godotengine.org/article/maintenance-release-godot-4-5-1/"/><updated>2025-10-15T12:00:00+00:00</updated><id>https://godotengine.org/article/maintenance-release-godot-4-5-1/</id><summary>4.5's first maintenance release arrives!</summary><content type="html"><p>We saw the release of <a href="/releases/4.5/">Godot 4.5</a> less than a month ago, and have already been absolutely overwhelmed with the positive reception. Since then, our team has been hard at work on the development phase of Godot 4.6 (and subsequently its <a href="/article/dev-snapshot-godot-4-6-dev-1/">first snapshot</a>), and ensuring that any new regressions/bugs reported after the release of 4.5 are dealt with swiftly. The community has done an absolutely fantastic job at helping our team find and squash all of those aforementioned issues, and paved the way for us to deliver 4.5.1-stable for you today!</p>
|
||
<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.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</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.</p>
|
||
<p><a href="/download/"><strong>Download Godot 4.5.1 now</strong></a> or try the <a href="https://editor.godotengine.org/4.5.1.stable/">online version of the Godot editor</a>.</p>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5.1-stable">
|
||
Download Godot 4.5.1 stable
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/maintenance-release-godot-4-5-1.jpg" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=stable&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5.1-stable">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<hr />
|
||
<p><em>The illustration picture for this article comes from</em> <a href="https://store.steampowered.com/app/3245640/Starfinder_Afterlight/?curator_clanid=41324400"><strong>Starfinder: Afterlight</strong></a>, <em>a party-based RPG set in the science-fantasy universe of <a href="https://paizo.com/starfinder">Paizo’s Starfinder</a>. You can support the title on <a href="https://www.kickstarter.com/projects/epictellers/starfinder-afterlight">Kickstarter</a> and pre-order the game on <a href="https://store.steampowered.com/app/3245640/Starfinder_Afterlight/?curator_clanid=41324400">Steam</a>. You can follow the developers on <a href="https://bsky.app/profile/epictellers.bsky.social">Bluesky</a> or <a href="https://www.youtube.com/@epictellers-entertainment">YouTube</a>.</em></p>
|
||
<h2 id="changes">Changes</h2>
|
||
<p><strong>50 contributors</strong> submitted around <strong>92 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5.1"><strong>interactive changelog</strong></a> for the complete list of changes since the <a href="/releases/4.5/">4.5-stable release</a>.</p>
|
||
<ul>
|
||
<li>2D: Fix redundant calls of <code class="language-plaintext highlighter-rouge">CanvasItemEditor::_update_lock_and_group_button</code> on <code class="language-plaintext highlighter-rouge">SceneTreeEditor</code> node selection (<a href="https://github.com/godotengine/godot/pull/110320">GH-110320</a>).</li>
|
||
<li>3D: GridMap: Fix cell scale not applying to the cursor mesh (<a href="https://github.com/godotengine/godot/pull/104510">GH-104510</a>).</li>
|
||
<li>Animation: Fix Reset on Save corrupt poses if scene has multiple Skeletons (<a href="https://github.com/godotengine/godot/pull/110506">GH-110506</a>).</li>
|
||
<li>Animation: Make extended SkeletonModifiers retrieve interpolated global transform (<a href="https://github.com/godotengine/godot/pull/110987">GH-110987</a>).</li>
|
||
<li>Audio: Add one padding frame to QOA buffer for short streams (<a href="https://github.com/godotengine/godot/pull/110515">GH-110515</a>).</li>
|
||
<li>Core: Change “reserve called with a capacity smaller than the current size” error message to a verbose message (<a href="https://github.com/godotengine/godot/pull/110826">GH-110826</a>).</li>
|
||
<li>Core: Check for <code class="language-plaintext highlighter-rouge">NUL</code> characters in string parsing functions (<a href="https://github.com/godotengine/godot/pull/110556">GH-110556</a>).</li>
|
||
<li>Core: X11 input: prevent non-printable keys from producing empty strings (<a href="https://github.com/godotengine/godot/pull/110635">GH-110635</a>).</li>
|
||
<li>Documentation: Document typed dictionaries and arrays in the class reference (<a href="https://github.com/godotengine/godot/pull/107071">GH-107071</a>).</li>
|
||
<li>Editor: Add column boundary check in the autocompletion (<a href="https://github.com/godotengine/godot/pull/110017">GH-110017</a>).</li>
|
||
<li>Editor: Fix selection of remote tree using the keyboard (<a href="https://github.com/godotengine/godot/pull/110738">GH-110738</a>).</li>
|
||
<li>Editor: Set correct saved history after clearing (<a href="https://github.com/godotengine/godot/pull/111136">GH-111136</a>).</li>
|
||
<li>Export: Android: Ensure proper cleanup of the fragment (<a href="https://github.com/godotengine/godot/pull/109764">GH-109764</a>).</li>
|
||
<li>Export: Metal: Fix Metal compiler version inspection (<a href="https://github.com/godotengine/godot/pull/110873">GH-110873</a>).</li>
|
||
<li>Export: Windows: Fix application manifest in exported projects with modified resources (<a href="https://github.com/godotengine/godot/pull/111316">GH-111316</a>).</li>
|
||
<li>GDExtension: Fix <code class="language-plaintext highlighter-rouge">--dump-extension-api-with-docs</code> indentation (<a href="https://github.com/godotengine/godot/pull/110557">GH-110557</a>).</li>
|
||
<li>GDExtension: Prevent breaking compatibility for unexposed classes that can only be created once (<a href="https://github.com/godotengine/godot/pull/111090">GH-111090</a>).</li>
|
||
<li>GDScript: LSP: Fix repeated restart attempts (<a href="https://github.com/godotengine/godot/pull/111290">GH-111290</a>).</li>
|
||
<li>GUI: Editor font: do not embolden the Main Font if it’s variable (<a href="https://github.com/godotengine/godot/pull/110737">GH-110737</a>).</li>
|
||
<li>GUI: Enforce zero width spaces and joiners with missing font. Do not warn about missing non-visual characters (<a href="https://github.com/godotengine/godot/pull/111355">GH-111355</a>).</li>
|
||
<li>GUI: Fix bottom panel being unintentionally draggable (<a href="https://github.com/godotengine/godot/pull/111121">GH-111121</a>).</li>
|
||
<li>GUI: Fix text servers build with disabled FreeType (<a href="https://github.com/godotengine/godot/pull/111001">GH-111001</a>).</li>
|
||
<li>GUI: TextServer: Enforce zero width spaces and joiners to actually be zero width and not fallback to regular space (<a href="https://github.com/godotengine/godot/pull/111014">GH-111014</a>).</li>
|
||
<li>Import: Material Conversion Error Handling (<a href="https://github.com/godotengine/godot/pull/109369">GH-109369</a>).</li>
|
||
<li>Import: OBJ importer: Support bump multiplier (normal scale) (<a href="https://github.com/godotengine/godot/pull/110925">GH-110925</a>).</li>
|
||
<li>Input: Fix invalid reported joypad presses (<a href="https://github.com/godotengine/godot/pull/111192">GH-111192</a>).</li>
|
||
<li>Input: Fix weak and strong joypad vibration being swapped (<a href="https://github.com/godotengine/godot/pull/111191">GH-111191</a>).</li>
|
||
<li>Navigation: [Navigation 2D] Fix sign of cross product (<a href="https://github.com/godotengine/godot/pull/110815">GH-110815</a>).</li>
|
||
<li>Navigation: Make navmesh rasterization errors more lenient (<a href="https://github.com/godotengine/godot/pull/110841">GH-110841</a>).</li>
|
||
<li>Physics: Fix bug in ManifoldBetweenTwoFaces (<a href="https://github.com/godotengine/godot/pull/110507">GH-110507</a>).</li>
|
||
<li>Physics: Fix CCD bodies adding multiple contact manifolds when using Jolt (<a href="https://github.com/godotengine/godot/pull/110914">GH-110914</a>).</li>
|
||
<li>Physics: Fix crash when calling <code class="language-plaintext highlighter-rouge">move_and_collide</code> with a null <code class="language-plaintext highlighter-rouge">jolt_body</code> (<a href="https://github.com/godotengine/godot/pull/110964">GH-110964</a>).</li>
|
||
<li>Physics: JoltPhysics: Fix Generic6DOFJoint3D not respecting angular limits (<a href="https://github.com/godotengine/godot/pull/111087">GH-111087</a>).</li>
|
||
<li>Porting: Change <code class="language-plaintext highlighter-rouge">macos.permission.RECORD_SCREEN</code> version check from 10.15 to 11.0 (<a href="https://github.com/godotengine/godot/pull/110936">GH-110936</a>).</li>
|
||
<li>Porting: macOS: Always use “Regular” activation policy for GUI, and headless main loop for command line only tools (<a href="https://github.com/godotengine/godot/pull/109795">GH-109795</a>).</li>
|
||
<li>Porting: Unix: Fix retrieval of PID exit code (<a href="https://github.com/godotengine/godot/pull/111058">GH-111058</a>).</li>
|
||
<li>Porting: Wayland: Emulate frame event for old <code class="language-plaintext highlighter-rouge">wl_seat</code> versions (<a href="https://github.com/godotengine/godot/pull/105587">GH-105587</a>).</li>
|
||
<li>Porting: Workaround X11 crash issue (<a href="https://github.com/godotengine/godot/pull/106798">GH-106798</a>).</li>
|
||
<li>Rendering: Compatibility: Fix backface culling gets ignored when double-sided shadows are used (<a href="https://github.com/godotengine/godot/pull/109793">GH-109793</a>).</li>
|
||
<li>Rendering: DirectX DescriptorsHeap pooling on CPU (<a href="https://github.com/godotengine/godot/pull/106809">GH-106809</a>).</li>
|
||
<li>Rendering: Disable unsupported SSR, SSS, DoF on transparent viewports (<a href="https://github.com/godotengine/godot/pull/108206">GH-108206</a>).</li>
|
||
<li>Rendering: Divide screen texture by luminance multiplier in compatibility (<a href="https://github.com/godotengine/godot/pull/110004">GH-110004</a>).</li>
|
||
<li>Rendering: Fix D3D12 stencil buffer not clearing (<a href="https://github.com/godotengine/godot/pull/111032">GH-111032</a>).</li>
|
||
<li>Rendering: Fix glow intensity not showing in compatibility renderer (<a href="https://github.com/godotengine/godot/pull/110843">GH-110843</a>).</li>
|
||
<li>Rendering: Fix LightmapGI not being correctly applied to objects (<a href="https://github.com/godotengine/godot/pull/111125">GH-111125</a>).</li>
|
||
<li>Rendering: Fix OpenXR with D3D12 using the wrong clip space projection matrix (<a href="https://github.com/godotengine/godot/pull/110865">GH-110865</a>).</li>
|
||
<li>Rendering: Increase precision of SpotLight attenuation calculation to avoid driver bug on Intel devices (<a href="https://github.com/godotengine/godot/pull/110363">GH-110363</a>).</li>
|
||
<li>Rendering: Move check for sky cubemap array back into the SkyRD initializer (<a href="https://github.com/godotengine/godot/pull/110627">GH-110627</a>).</li>
|
||
<li>Rendering: OpenXR: Fix ViewportTextures not displaying correct texture (OpenGL) (<a href="https://github.com/godotengine/godot/pull/110002">GH-110002</a>).</li>
|
||
<li>Rendering: Sort render list correctly in RD renderers (<a href="https://github.com/godotengine/godot/pull/111054">GH-111054</a>).</li>
|
||
<li>Rendering: Windows: Try reading GPU driver information directly from registry (<a href="https://github.com/godotengine/godot/pull/109346">GH-109346</a>).</li>
|
||
<li>XR: Fix late destruction access violation with OpenXRAPIExtension object (<a href="https://github.com/godotengine/godot/pull/110868">GH-110868</a>).</li>
|
||
</ul>
|
||
<h2 id="known-incompatibilities">Known incompatibilities</h2>
|
||
<p>As of now, there are no known incompatibilities with the previous Godot 4.5 release. <strong>We encourage all users to upgrade to 4.5.1.</strong></p>
|
||
<p>If you experience any unexpected behavior change in your projects after upgrading to 4.5.1, please <a href="https://github.com/godotengine/godot/issues">file an issue on GitHub</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<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 <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a>.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></content><author><name>Thaddeus Crews</name></author><category term="Release"/></entry><entry><title>Godot Showcase - Material Maker</title><link href="https://godotengine.org/article/godot-showcase-material-maker/"/><updated>2025-10-14T14:00:00+00:00</updated><id>https://godotengine.org/article/godot-showcase-material-maker/</id><summary>RodZilla talks about his experience developing Material Maker, a procedural PBR material creation tool made with Godot.</summary><content type="html"><p>Today, we want to showcase <a href="https://www.materialmaker.org/">Material Maker</a>, which is an open-source application made with Godot. Material Maker is designed to create materials and textures for use in physically-based rendering (PBR). As a reminder, Godot is more than just a game engine; using its <a href="https://docs.godotengine.org/en/stable/tutorials/ui/index.html">UI building blocks</a>, it is possible to create full-featured applications for desktop, mobile and web platforms. In fact, the Godot editor is made with Godot itself!</p>
|
||
<p>Material Maker had its 1.4 release in early October. This marks a significant milestone in the project, as this is the first version to be running on Godot 4. We interviewed its author, RodZilla, about how this project came to fruition and what its future might look like.</p>
|
||
<iframe width="560" height="315" src="https://www.youtube.com/embed/MOZU1MKn6zU" title="Materials created using Material Maker" frameborder="0" allowfullscreen="" style="width: 100%; aspect-ratio: 16 / 9; height: auto;"></iframe>
|
||
<h2 id="can-you-tell-us-a-little-bit-about-yourself-and-your-project">Can you tell us a little bit about yourself and your project?</h2>
|
||
<p>Hello, I’m Rodolphe Suescun, also known as RodZilla. I am 53, I live in Grenoble, France, and work as a senior software developer in the microelectronics industry, mostly on electronic design automation tools and embedded software.</p>
|
||
<p>I’ve been into game development as a hobby for 25 years, mostly learning, experimenting, and creating prototypes.</p>
|
||
<p>I started Material Maker back in 2018 because I wanted to create 3D games but was not very good at drawing textures. I put the project on GitHub and itch.io without much of a plan, and didn’t really communicate about it. Then one day, GameFromScratch made a video about my project, downloads started rising, and a community began forming, first on Reddit, then later on Discord.</p>
|
||
<p>When Material Maker reached 10,000 downloads, GameFromScratch encouraged me to apply for an Epic MegaGrant, which allowed me to spend a bit more time developing the project for a few months.</p>
|
||
<p>Although it is perceived as a procedural texture authoring tool, Material Maker is mainly about generating shaders which is why it has a few uncommon features, such as exporting shaders for Shadertoy, or animated or even raymarching materials for game engines. This is also what makes it so much fun to develop.</p>
|
||
<p>Material Maker now has almost 250 nodes and can export to Godot, Unity, and Unreal. It is also possible to create new nodes (either by assembling existing nodes or by writing their code using <a href="https://docs.godotengine.org/en/stable/tutorials/shaders/shader_reference/shading_language.html">Godot shading language</a>) and new export targets.</p>
|
||
<p>Another key part of the project is the website, where artists can share the amazing materials and nodes they create. It is the best showcase of what the tool can do, and a nice source of examples for new users.</p>
|
||
<p>Finally, I’m no longer alone and Material Maker has a few active contributors such as williamchange, Jowan-Spooner, and NotArme who helped a lot on the 1.4 release.</p>
|
||
<h2 id="can-you-give-us-some-examples-of-games-developed-with-the-help-of-material-maker">Can you give us some examples of games developed with the help of Material Maker?</h2>
|
||
<p>The first two games that come to mind are <a href="https://store.steampowered.com/app/2447980/Crown_Gambit/?curator_clanid=41324400">Crown Gambit</a> and <a href="https://store.steampowered.com/app/1344990/Zefyr_A_Thiefs_Melody/">Zefyr: A Thief’s Melody</a>, which were both released on Steam in June.</p>
|
||
<p><em>Crown Gambit</em> is a narrative dark fantasy deck-building game (made with Godot!). Rachel Dufossé, who worked as a 2D/3D artist on the project, joined our Discord server two years ago, asking questions and showing her work from time to time, while actively promoting Material Maker in the studio she works for, Wild Wits Games. She ended up giving a talk about her work with Material Maker to Atlangames, the network of video game companies in her region.</p>
|
||
<p><em>Zefyr: A Thief’s Melody</em> is an action-adventure game with nice Wind Waker and Beyond Good and Evil vibes. Mathias Fontmarty, the solo developer of this project, did not interact as much with the community, but gave a few talks about Material Maker at conferences (such as Capitole du Libre in Toulouse).</p>
|
||
<p>Those are beautiful projects, and it is always a real pleasure to see users carry the Material Maker flag in their own way, whether by creating amazing games or by sharing their experiences.</p>
|
||
<p>I can mention a few others, released or soon-to-come, such as <a href="https://store.steampowered.com/app/2053370/Chrono_Weaver/">Chrono Weaver</a>, <a href="https://store.steampowered.com/app/3697370/Beyond_The_Space_Wall/">Beyond the Space Wall</a>, <a href="https://store.steampowered.com/app/1343040/Blocky_Ball/">Blocky Ball</a>, <a href="https://store.steampowered.com/app/1839060/Polylithic/">Polylithic</a>, <a href="https://store.steampowered.com/app/2329690/KOOK/?curator_clanid=41324400">KOOK</a>, and <a href="https://store.steampowered.com/app/1171980/Neverlooted_Dungeon/">Neverlooted Dungeon</a>.</p>
|
||
<p>Note to readers: the 1.4 release has a new splash screen that shows games, shaders, and materials created with Material Maker, so please feel free to contact me on Discord if you used it for your game.</p>
|
||
<p><img src="/assets/showcase/material-maker/material-maker-4.webp" alt="Material Maker splash screen featuring Crown Gambit" /></p>
|
||
<blockquote>
|
||
<p>One of Material Maker’s many splash screens; some of them are even animated!</p>
|
||
</blockquote>
|
||
<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?</h2>
|
||
<p>At the very beginning of the project, nodes were nearly hardcoded in GDScript and I soon realized it was a huge mistake. So I had to take a step back and come up with a generic way of describing the shader code used by nodes and assembling them. Then I added an editor for those shader nodes, which made node creation really easy.</p>
|
||
<p>I am not sure it was that big of a challenge, but it took a few weeks of not touching the code, and thinking about use cases and code generation to come up with the right solution. Although shader code generation has been improved and extended since then, it has not changed that much.</p>
|
||
<p>Exporting to other game engines was a bit challenging. I had to understand how they handle materials and come up with a convenient export workflow. Unreal needs a material graph and I didn’t find an easy-to-generate file format for it, so Material Maker generates a Python script that creates the graph when executed in Unreal (I know it is an ugly solution).</p>
|
||
<p>This challenge is not completely solved, though. When exporting dynamic materials to Unreal and Unity, Material Maker “translates” the generated GLSL shader code to HLSL. This part will need to be rewritten at some point, based on a proper GLSL parser.</p>
|
||
<p>Of course, there is optimization, mainly to decrease rendering time for generated textures. And there is still a lot more to be done.</p>
|
||
<p>On the non-technical challenges side, I would say that evolving from a “lone wolf working on personal projects” mindset to interacting with a very nice community of users and contributors was not without glitches. But I guess it was a well-needed evolution.</p>
|
||
<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 <a href="https://github.com/RodZill4/material-maker">at GitHub</a>. What made you decide to make the project free and open source?</h2>
|
||
<p>I have been an open-source software user (and advocate) for quite some time. I think I installed Linux for the first time back in 1993. If I remember correctly, that was about 30 floppy disks.</p>
|
||
<p>When I started Material Maker, it was just an experiment I intended to use to create textures, so I shared it under the MIT license, just like all prototypes you can find on my GitHub.</p>
|
||
<p>And for me it is a hobby anyway, so it was never meant to be paid software.</p>
|
||
<p>That said, donations pay for the domain name, the <abbr title="Virtual Private Server">VPS</abbr>, the “Apple tax”, and whatever hardware I needed to develop Material Maker and port it to all supported platforms, and I’m pretty happy with that. Huge thanks to everyone who supports this project!</p>
|
||
<p><img src="/assets/showcase/material-maker/material-maker-2.webp" alt="Beehive material graph and preview" /></p>
|
||
<blockquote>
|
||
<p>Material showcased: <em>Beehive</em> by RodZilla (included in the <code class="language-plaintext highlighter-rouge">examples/</code> folder with Material Maker)</p>
|
||
</blockquote>
|
||
<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?</h2>
|
||
<p>It is really funny that I discovered Godot just like Material Maker gained its current visibility. I discovered this game engine while watching a video from GameFromScratch covering Godot around the time it went open-source.</p>
|
||
<p>I tried it for a few very small game prototypes (including one featuring a silly mouse for my very first game jam) and I must admit it immediately clicked for me. Godot was far from what it would become, but I already loved the nodes approach and how natural the overall design felt.</p>
|
||
<p>I’ve been using Godot for all my game development projects and prototypes ever since, and it consistently proves easy and efficient to work with.</p>
|
||
<h2 id="material-maker-14-is-the-first-version-to-be-running-on-godot-4-what-upgrades-does-godot-4-bring-to-your-project">Material Maker 1.4 is the first version to be running on Godot 4. What upgrades does Godot 4 bring to your project?</h2>
|
||
<p>The main change that Godot 4 brings is compute shaders which give a lot more flexibility for shader generation and help improve performance. I also used them to introduce new generated meshes (rounded cube and cylinder) to replace the default ones.</p>
|
||
<p>Support for multiple windows made it possible for me to add flexible layout with undockable panels, and I will probably expose this part as a Godot addon so other application developers can reuse it.</p>
|
||
<p>I also started using the new GDScript features (mainly typed arrays and dictionaries), but it will take a long time before all of Material Maker’s code is updated.</p>
|
||
<p><img src="/assets/showcase/material-maker/material-maker-3.webp" alt="Pavement Generator material preview" /></p>
|
||
<blockquote>
|
||
<p>Material showcased: <a href="https://www.materialmaker.org/material?id=548"><em>Pavement Generator</em> by Tarox</a></p>
|
||
</blockquote>
|
||
<h2 id="what-challenges-have-you-encountered-while-upgrading-the-project-to-godot-4-what-would-you-like-to-see-implemented">What challenges have you encountered while upgrading the project to Godot 4? What would you like to see implemented?</h2>
|
||
<p>The main challenge for me was learning the new <a href="https://docs.godotengine.org/en/stable/classes/class_renderingserver.html">RenderingServer</a> and <a href="https://docs.godotengine.org/en/stable/classes/class_renderingdevice.html">RenderingDevice</a> and finding out how to best use compute shaders for Material Maker’s use cases. Also, API changes between releases have been a bit annoying, but that’s the price to pay when using bleeding edge releases.</p>
|
||
<p>The only thing I’m missing for Material Maker is support for saving EXR files in the release templates. I currently have to use custom-built templates for Material Maker. This is not much of an annoyance since I only have to recompile Godot whenever I use a new release.</p>
|
||
<p>But speaking of possible improvements for Godot, while doing game jams with my team, we noticed Godot makes it hard for audio designers to do their job without diving into the whole Godot project (since sounds are triggered wherever there is an AudioStreamPlayer node). I wrote a small addon (called TRAudio and <a href="https://github.com/RodZill4/TRAudio">available on my GitHub</a>) that tries to bridge the gap between the audio designer and the software developer, but I think Godot would benefit from supporting this natively. The addon is OK in most use cases, but triggering sounds in animations is not as convenient as it could be.</p>
|
||
<h2 id="do-you-have-any-new-features-or-improvements-in-mind-for-material-maker-in-the-future">Do you have any new features or improvements in mind for Material Maker in the future?</h2>
|
||
<p>Of course, Material Maker has a roadmap, but I generally do not communicate much about it so I do not promise anything my limited free time does not allow.</p>
|
||
<p>That said, Material Maker 1.0 (and all previous releases) were about delivering a nice toolkit for creating seamlessly tileable materials. And 2.0 will focus on texturing 3D models (and 1.4 is a step in that direction with the new Mesh Map node).</p>
|
||
<p>The painting tool in Material Maker is a nice prototype and can do quite a few impressive things (brushes are completely procedural and described by connecting nodes), and in 1.4, all PBR channels can be painted by a single compute shader. But it becomes way too slow with complex brushes, and the end result of each stroke is stored in the final textures of the painted layer. So we start with a procedural brush, and lose the procedural aspect while painting (which defeats the purpose of the approach).</p>
|
||
<p>So instead of improving the current painting tool, I’m thinking of introducing very basic painting features in the material authoring tool. By “very basic”, I mean painting simple masks that can be applied to parts of the graph, or UV maps that will help place a procedural shape or pattern using a CustomUV node. Thus painting would become a guide for procedural generation, which would allow an interactive yet nearly non-destructive workflow for texturing models.</p>
|
||
<p>And in the short term, the <a href="https://rodzill4.github.io/material-maker/doc/node_simple_easy_sdf.html">EasySDF node and its corresponding dialog</a> (that is used to edit 2D and 3D Signed Distance Functions) will get an update, on both UI and code generation sides.</p>
|
||
<p><img src="/assets/showcase/material-maker/material-maker-1.webp" alt="Broken Floor material graph and preview" /></p>
|
||
<blockquote>
|
||
<p>Material showcased: <a href="https://www.materialmaker.org/material?id=975"><em>Broken Floor</em> by Tarox</a></p>
|
||
</blockquote>
|
||
<h2 id="how-can-one-learn-to-use-material-maker">How can one learn to use Material Maker?</h2>
|
||
<p>This is probably the weakest point of this project. There are <a href="https://www.youtube.com/watch?v=mSuyrsJSZ_o&amp;list=PLI2XkW0E3DLhYDu30nxSiUsdBS-ziIbbo">nice video tutorials made by Kasper Arnklit Frandsen</a> and <a href="https://www.youtube.com/watch?v=yKQRfrxJRLM">a few more advanced ones by Pavel Oliva</a>, but they are a bit old. It is also possible to follow Substance Designer tutorials; the nodes are different, but the concepts are the same.</p>
|
||
<p>Another great way to learn is to <a href="https://www.materialmaker.org/materials">grab materials from the website</a> and study their graph.</p>
|
||
<p>In any case, you probably want to <a href="https://discord.gg/RnHgQS9Nqq">join our Discord server</a>. Material Maker has a very nice and welcoming community.</p>
|
||
<p>Material Maker definitely needs a few good-quality “official” video tutorials and I really need to make sure they happen.</p>
|
||
<h2 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?</h2>
|
||
<p>Although I mainly mentioned Material Maker, I recently participated in six <a href="https://godotwildjam.com/">Godot Wild Jams</a>, followed by a <a href="https://itch.io/jam/godot-xr-game-jam-sep-2025">Godot XR Game Jam</a>, with a truly awesome team (now named Cularo Games). We’re now planning to push one of those projects further. The lone wolf in me will soon be gone for good.</p>
|
||
<hr />
|
||
<p>Thank you RodZilla for taking the time to answer our questions! We look forward to the future of Material Maker.</p>
|
||
<p><a href="https://www.materialmaker.org/">Material Maker</a> is free and open-source. It can be downloaded for Windows, macOS, and Linux on <a href="https://rodzilla.itch.io/material-maker">itch.io</a>. Along with the <a href="https://github.com/RodZill4/material-maker">GitHub repository</a>, there is also a <a href="https://www.reddit.com/r/MaterialMaker/">subreddit</a> and <a href="https://discord.gg/RnHgQS9Nqq">Discord server</a> you can join to interact with its community.</p></content><author><name>Hugo Locurcio</name></author><category term="Showcase"/></entry><entry><title>Release candidate: Godot 4.5.1 RC 2</title><link href="https://godotengine.org/article/release-candidate-godot-4-5-1-rc-2/"/><updated>2025-10-08T12:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-5-1-rc-2/</id><summary>Hotfixes so nice, we added 'em twice!</summary><content type="html"><p>Last week saw our first <a href="https://en.wikipedia.org/wiki/Software_release_life_cycle#Release_candidate">Release Candidate</a> snapshot for <a href="/article/release-candidate-godot-4-5-1-rc-1/">4.5.1</a>, and in that time there have been even more critical bugfixes suitable for backporting. As such, we’re doing one more pass for good measure: 4.5.1-rc2 has arrived! Our top priority is ensuring the hotfix release is as stable as possible, so be sure to test and report any issues that aren’t present in 4.5-stable.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.5.1.rc2/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/6Ls6Bfa34"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The illustration picture for this article comes from</em> <a href="https://store.steampowered.com/app/3208560/Trainatic/?curator_clanid=41324400"><strong>Trainatic</strong></a>, <em>a cozy(?) game where you guide your train through a procedurally-generated world, unlocking powerful synergies and skilltrees to aid your unyielding destruction. You can buy the game on <a href="https://store.steampowered.com/app/3208560/Trainatic/?curator_clanid=41324400">Steam</a>, and follow the developer on <a href="https://bsky.app/profile/ryanforrester.bsky.social">Bluesky</a> or <a href="https://www.youtube.com/@RyanForresterDev">YouTube</a>.</em></p>
|
||
<h2 id="whats-new">What’s new</h2>
|
||
<p><strong>31 contributors</strong> submitted <strong>45 improvements</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5.1-rc2"><strong>interactive changelog</strong></a> for the complete list of changes since the 4.5.1-rc1 release. You can also review <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5.1">all changes included in 4.5.1</a> compared to the previous 4.5 feature release.</p>
|
||
<ul>
|
||
<li>2D: Fix redundant calls of <code class="language-plaintext highlighter-rouge">CanvasItemEditor::_update_lock_and_group_button</code> on <code class="language-plaintext highlighter-rouge">SceneTreeEditor</code> node selection (<a href="https://github.com/godotengine/godot/pull/110320">GH-110320</a>).</li>
|
||
<li>3D: GridMap: Fix cell scale not applying to the cursor mesh (<a href="https://github.com/godotengine/godot/pull/104510">GH-104510</a>).</li>
|
||
<li>Animation: Fix backward/pingpong root motion in AnimationTree (<a href="https://github.com/godotengine/godot/pull/110982">GH-110982</a>).</li>
|
||
<li>Animation: Fix Reset on Save corrupt poses if scene has multiple Skeletons (<a href="https://github.com/godotengine/godot/pull/110506">GH-110506</a>).</li>
|
||
<li>Animation: Make extended SkeletonModifiers retrieve interpolated global transform (<a href="https://github.com/godotengine/godot/pull/110987">GH-110987</a>).</li>
|
||
<li>Core: Change “reserve called with a capacity smaller than the current size” error message to a verbose message (<a href="https://github.com/godotengine/godot/pull/110826">GH-110826</a>).</li>
|
||
<li>Documentation: Fix and improve <code class="language-plaintext highlighter-rouge">Node2D.move_local_{x,y}()</code> description (<a href="https://github.com/godotengine/godot/pull/110878">GH-110878</a>).</li>
|
||
<li>Editor: Add column boundary check in the autocompletion (<a href="https://github.com/godotengine/godot/pull/110017">GH-110017</a>).</li>
|
||
<li>Editor: Fix <code class="language-plaintext highlighter-rouge">DPITexture</code> editor icon name (<a href="https://github.com/godotengine/godot/pull/110661">GH-110661</a>).</li>
|
||
<li>Editor: Fix Quick Open history (<a href="https://github.com/godotengine/godot/pull/111068">GH-111068</a>).</li>
|
||
<li>Editor: Fix selection of remote tree using the keyboard (<a href="https://github.com/godotengine/godot/pull/110738">GH-110738</a>).</li>
|
||
<li>Editor: Fix the project file was not updated when some files were removed (<a href="https://github.com/godotengine/godot/pull/110576">GH-110576</a>).</li>
|
||
<li>Editor: Set correct saved history after clearing (<a href="https://github.com/godotengine/godot/pull/111136">GH-111136</a>).</li>
|
||
<li>Editor: Tweak macOS notarization export message in the editor (<a href="https://github.com/godotengine/godot/pull/110793">GH-110793</a>).</li>
|
||
<li>Export: Windows: Fix application manifest in exported projects with modified resources (<a href="https://github.com/godotengine/godot/pull/111316">GH-111316</a>).</li>
|
||
<li>GDExtension: Prevent breaking compatibility for unexposed classes that can only be created once (<a href="https://github.com/godotengine/godot/pull/111090">GH-111090</a>).</li>
|
||
<li>GDScript: LSP: Fix repeated restart attempts (<a href="https://github.com/godotengine/godot/pull/111290">GH-111290</a>).</li>
|
||
<li>GUI: Editor font: do not embolden the Main Font if it’s variable (<a href="https://github.com/godotengine/godot/pull/110737">GH-110737</a>).</li>
|
||
<li>GUI: Enforce zero width spaces and joiners with missing font. Do not warn about missing non-visual characters (<a href="https://github.com/godotengine/godot/pull/111355">GH-111355</a>).</li>
|
||
<li>GUI: Fix bottom panel being unintentionally draggable (<a href="https://github.com/godotengine/godot/pull/111121">GH-111121</a>).</li>
|
||
<li>GUI: Fix LineEdit’s placeholder text being selected when double clicking (<a href="https://github.com/godotengine/godot/pull/110886">GH-110886</a>).</li>
|
||
<li>GUI: Fix text servers build with disabled FreeType (<a href="https://github.com/godotengine/godot/pull/111001">GH-111001</a>).</li>
|
||
<li>GUI: TextServer: Enforce zero width spaces and joiners to actually be zero width and not fallback to regular space (<a href="https://github.com/godotengine/godot/pull/111014">GH-111014</a>).</li>
|
||
<li>Import: OBJ importer: Support bump multiplier (normal scale) (<a href="https://github.com/godotengine/godot/pull/110925">GH-110925</a>).</li>
|
||
<li>Input: Fix invalid reported joypad presses (<a href="https://github.com/godotengine/godot/pull/111192">GH-111192</a>).</li>
|
||
<li>Input: Fix weak and strong joypad vibration being swapped (<a href="https://github.com/godotengine/godot/pull/111191">GH-111191</a>).</li>
|
||
<li>Physics: Fix crash when calling <code class="language-plaintext highlighter-rouge">move_and_collide</code> with a null <code class="language-plaintext highlighter-rouge">jolt_body</code> (<a href="https://github.com/godotengine/godot/pull/110964">GH-110964</a>).</li>
|
||
<li>Physics: JoltPhysics: Fix Generic6DOFJoint3D not respecting angular limits (<a href="https://github.com/godotengine/godot/pull/111087">GH-111087</a>).</li>
|
||
<li>Porting: Change <code class="language-plaintext highlighter-rouge">macos.permission.RECORD_SCREEN</code> version check from 10.15 to 11.0 (<a href="https://github.com/godotengine/godot/pull/110936">GH-110936</a>).</li>
|
||
<li>Porting: macOS: Always use “Regular” activation policy for GUI, and headless main loop for command line only tools (<a href="https://github.com/godotengine/godot/pull/109795">GH-109795</a>).</li>
|
||
<li>Porting: Unix: Fix retrieval of PID exit code (<a href="https://github.com/godotengine/godot/pull/111058">GH-111058</a>).</li>
|
||
<li>Porting: Wayland: Emulate frame event for old <code class="language-plaintext highlighter-rouge">wl_seat</code> versions (<a href="https://github.com/godotengine/godot/pull/105587">GH-105587</a>).</li>
|
||
<li>Porting: Wayland: Inhibit idle in DisplayServerWayland::screen_set_keep_on (<a href="https://github.com/godotengine/godot/pull/110875">GH-110875</a>).</li>
|
||
<li>Rendering: Divide screen texture by luminance multiplier in compatibility (<a href="https://github.com/godotengine/godot/pull/110004">GH-110004</a>).</li>
|
||
<li>Rendering: Fix glow intensity not showing in compatibility renderer (<a href="https://github.com/godotengine/godot/pull/110843">GH-110843</a>).</li>
|
||
<li>Rendering: Fix LightmapGI not being correctly applied to objects (<a href="https://github.com/godotengine/godot/pull/111125">GH-111125</a>).</li>
|
||
</ul>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/69796bf7d67599b21308fb54723ed53a84e2e335"><code class="language-plaintext highlighter-rouge">69796bf7d</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5.1-rc2">
|
||
Download Godot 4.5.1 rc2
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-5-1-rc-2.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc2&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5.1-rc2">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<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 <a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues</a> which we aim to address before releasing 4.5.1. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the RC snapshots.</p>
|
||
<p>With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<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 <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a>.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Release candidate: Godot 4.5.1 RC 1</title><link href="https://godotengine.org/article/release-candidate-godot-4-5-1-rc-1/"/><updated>2025-10-02T12:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-5-1-rc-1/</id><summary>Regression fixes coming in hot!</summary><content type="html"><p>It’s been just over two weeks since the release of <a href="/releases/4.5/">Godot 4.5</a>, and the overwhelmingly positive community response has been an absolute treat to behold! Our hard-working contributors have taken this energy to kick-start the development phase of Godot 4.6, resulting in our <a href="/article/dev-snapshot-godot-4-6-dev-1/">first snapshot</a> coming out earlier this week.</p>
|
||
<p>In saying that, the main focus was always going to be hammering out newly reported regressions encountered in the 4.5 release, and integrating any fixes deemed too risky to merge at the time. As such, we’ve already prepared a healthy number of regression fixes for a 4.5.1 maintenance release. This release candidate is intended to validate the fixes in an environment isolated from the new enhancements and features that 4.6 is already boasting. Your testing is crucial to detect and squash any new issues that weren’t present in 4.5-stable, in order to ensure that this hotfix is as clean of an upgrade as possible.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.5.1.rc1/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/6Ls6Bfa34"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The illustration picture for this article comes from</em> <a href="https://store.steampowered.com/app/3361510/Coal_LLC/?curator_clanid=41324400"><strong>Coal LLC</strong></a>, <em>a capitalism simulator where you fulfill increasingly absurd quotas through increasingly dubious methods. You can buy the game or try out the demo on <a href="https://store.steampowered.com/app/3361510/Coal_LLC/?curator_clanid=41324400">Steam</a>, and follow the developers on their <a href="https://www.byebyeocean.net/">website</a>.</em></p>
|
||
<h2 id="whats-new">What’s new</h2>
|
||
<p><strong>31 contributors</strong> submitted <strong>33 improvements</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5.1-rc1"><strong>interactive changelog</strong></a> for the complete list of changes since the 4.5-stable release.</p>
|
||
<ul>
|
||
<li>Audio: Add one padding frame to QOA buffer for short streams (<a href="https://github.com/godotengine/godot/pull/110515">GH-110515</a>).</li>
|
||
<li>Buildsystem: Windows: Migrate <code class="language-plaintext highlighter-rouge">godot.manifest</code> to <code class="language-plaintext highlighter-rouge">platform/windows</code>, include as dependency (<a href="https://github.com/godotengine/godot/pull/110897">GH-110897</a>).</li>
|
||
<li>Core: Avoid repeated <code class="language-plaintext highlighter-rouge">_copy_on_write()</code> calls in <code class="language-plaintext highlighter-rouge">Array::resize()</code> (<a href="https://github.com/godotengine/godot/pull/110535">GH-110535</a>).</li>
|
||
<li>Core: Check for <code class="language-plaintext highlighter-rouge">NUL</code> characters in string parsing functions (<a href="https://github.com/godotengine/godot/pull/110556">GH-110556</a>).</li>
|
||
<li>Core: X11 input: prevent non-printable keys from producing empty strings (<a href="https://github.com/godotengine/godot/pull/110635">GH-110635</a>).</li>
|
||
<li>Documentation: Clarify that velocity doesn’t need delta multiplication in CharacterBody documentation (<a href="https://github.com/godotengine/godot/pull/109925">GH-109925</a>).</li>
|
||
<li>Documentation: Document the interaction between Light3D cull mask and GI/volumetric fog (<a href="https://github.com/godotengine/godot/pull/110423">GH-110423</a>).</li>
|
||
<li>Documentation: Document typed dictionaries and arrays in the class reference (<a href="https://github.com/godotengine/godot/pull/107071">GH-107071</a>).</li>
|
||
<li>Documentation: Fix Basis.determinant() doc: uniform scale determinant is scale^3 (<a href="https://github.com/godotengine/godot/pull/110424">GH-110424</a>).</li>
|
||
<li>Editor: Correct the order of Diagonal Mode in Add Property (<a href="https://github.com/godotengine/godot/pull/109214">GH-109214</a>).</li>
|
||
<li>Editor: Fix typos in BlendSpace2D editor’s axis labels’ accessibility names (<a href="https://github.com/godotengine/godot/pull/109847">GH-109847</a>).</li>
|
||
<li>Export: Android: Ensure proper cleanup of the fragment (<a href="https://github.com/godotengine/godot/pull/109764">GH-109764</a>).</li>
|
||
<li>Export: Metal: Fix Metal compiler version inspection (<a href="https://github.com/godotengine/godot/pull/110873">GH-110873</a>).</li>
|
||
<li>GDExtension: Fix <code class="language-plaintext highlighter-rouge">--dump-extension-api-with-docs</code> indentation (<a href="https://github.com/godotengine/godot/pull/110557">GH-110557</a>).</li>
|
||
<li>GUI: Fix LineEdit icon positon in right-to-left layout (<a href="https://github.com/godotengine/godot/pull/109363">GH-109363</a>).</li>
|
||
<li>Import: Material Conversion Error Handling (<a href="https://github.com/godotengine/godot/pull/109369">GH-109369</a>).</li>
|
||
<li>Navigation: [Navigation 2D] Fix sign of cross product (<a href="https://github.com/godotengine/godot/pull/110815">GH-110815</a>).</li>
|
||
<li>Navigation: Make navmesh rasterization errors more lenient (<a href="https://github.com/godotengine/godot/pull/110841">GH-110841</a>).</li>
|
||
<li>Physics: Fix bug in ManifoldBetweenTwoFaces (<a href="https://github.com/godotengine/godot/pull/110507">GH-110507</a>).</li>
|
||
<li>Physics: Fix CCD bodies adding multiple contact manifolds when using Jolt (<a href="https://github.com/godotengine/godot/pull/110914">GH-110914</a>).</li>
|
||
<li>Porting: Workaround X11 crash issue (<a href="https://github.com/godotengine/godot/pull/106798">GH-106798</a>).</li>
|
||
<li>Rendering: Compatibility: Fix backface culling gets ignored when double-sided shadows are used (<a href="https://github.com/godotengine/godot/pull/109793">GH-109793</a>).</li>
|
||
<li>Rendering: DirectX DescriptorsHeap pooling on CPU (<a href="https://github.com/godotengine/godot/pull/106809">GH-106809</a>).</li>
|
||
<li>Rendering: Disable unsupported SSR, SSS, DoF on transparent viewports (<a href="https://github.com/godotengine/godot/pull/108206">GH-108206</a>).</li>
|
||
<li>Rendering: Fix d3d12 stencil buffer not clearing (<a href="https://github.com/godotengine/godot/pull/111032">GH-111032</a>).</li>
|
||
<li>Rendering: Fix OpenXR with D3D12 using the wrong clip space projection matrix (<a href="https://github.com/godotengine/godot/pull/110865">GH-110865</a>).</li>
|
||
<li>Rendering: Increase precision of SpotLight attenuation calculation to avoid driver bug on Intel devices (<a href="https://github.com/godotengine/godot/pull/110363">GH-110363</a>).</li>
|
||
<li>Rendering: Move check for sky cubemap array back into the SkyRD initializer (<a href="https://github.com/godotengine/godot/pull/110627">GH-110627</a>).</li>
|
||
<li>Rendering: OpenXR: Fix ViewportTextures not displaying correct texture (OpenGL) (<a href="https://github.com/godotengine/godot/pull/110002">GH-110002</a>).</li>
|
||
<li>Rendering: Sort render list correctly in RD renderers (<a href="https://github.com/godotengine/godot/pull/111054">GH-111054</a>).</li>
|
||
<li>Rendering: Windows: Try reading GPU driver information directly from registry (<a href="https://github.com/godotengine/godot/pull/109346">GH-109346</a>).</li>
|
||
<li>XR: Fix late destruction access violation with OpenXRAPIExtension object (<a href="https://github.com/godotengine/godot/pull/110868">GH-110868</a>).</li>
|
||
</ul>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/c834443ef1fa3516e30124d8afaf448353d31010"><code class="language-plaintext highlighter-rouge">c834443ef</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5.1-rc1">
|
||
Download Godot 4.5.1 rc1
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-5-1-rc-1.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5.1&amp;flavor=rc1&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5.1-rc1">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<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 <a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues</a> which we aim to address before releasing 4.5.1. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the RC snapshots.</p>
|
||
<p>With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<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 <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a>.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Looking back at GodotCon US 2025</title><link href="https://godotengine.org/article/godotcon-us-2025-wrapup/"/><updated>2025-10-01T14:00:00+00:00</updated><id>https://godotengine.org/article/godotcon-us-2025-wrapup/</id><summary>It's time for a summary of GodotCon Boston now that all talks are available on Youtube.</summary><content type="html"><p>As you might know, this year we hosted our first US-based GodotCon in Boston. Taking place at the tail end of spring, this was three solid days focused solely on making games with the Godot Engine. Our first day had hands-on workshops followed by two days of talks. For our inaugural event we had:</p>
|
||
<ul>
|
||
<li>Over 300 attendees.</li>
|
||
<li>Over 100 proposals.</li>
|
||
<li>38 talks.</li>
|
||
<li>14 showcases.</li>
|
||
<li>3 great days.</li>
|
||
</ul>
|
||
<p>GodotCon was run by members of the Boston Godot User Group and Boston Game Dev in co-ordination with the Godot Foundation during <a href="https://gamedev.boston/">Boston Gamedev Week</a>. From May 5th to May 7th we had three days of Godot-focused content at the Microsoft New England Research and Development Center (NERD Center!). A huge thanks to Microsoft for generously donating the space. This would not have been possible without them and their commitment to supporting non-profits and open-source software.</p>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd110020250506091817.webp" alt="Emi giving the opening keynote at the Microsoft NERD Center." /></p>
|
||
<p>And while we’re at it, a huge thanks to all of our sponsors: <a href="https://www.arm.com/">Arm Technology</a>, <a href="https://www.endlessglobal.com/the-endless-foundation">Endless Foundation</a>, <a href="https://www.w4games.com/">W4 Games</a>, <a href="https://mikeklubnika.com/">Mike Klubnika</a>, <a href="https://xogot.com/">Xogot</a>, <a href="https://www.binarysolo.com/">Binary Solo</a>, and <a href="https://dislamedia.com/">Disla Media</a>. Without them a conference like this would not be possible.</p>
|
||
<h2 id="the-format">The format</h2>
|
||
<p>For our first US-based GodotCon, we committed to three days of programming. The first day we had five different workshops that covered a host of interesting topics. <a href="https://www.youtube.com/watch?v=tK2ACXUGcrY">Travis Hunter</a> walked folks through their first multiplayer experience with an incredibly fun grand finale where everyone got to play their game together. <a href="https://www.youtube.com/watch?v=JqL_oZ9SG7Q">Scott Doxey</a> showed us how to make a gdextension, end-to-end. <a href="https://www.youtube.com/watch?v=wWD7OCx7tNs">Simon</a> taught us way more than we ever needed to know about how Markov Chains work and how we can apply that to our projects. <a href="https://www.youtube.com/watch?v=k1GvvrkIq-8">Jesse (CoderNunk)</a> gave us a method for doing anime-style 3D characters using Blender. <a href="https://www.youtube.com/watch?v=f0CsbuHDr44">Nicholas O’Brien</a> went into incredible depth on narrative design.</p>
|
||
<p>On days 2 and 3, we got an amazing batch of talks and updates. You may have heard <a href="https://www.youtube.com/watch?v=u_WMJG0menc">Adam</a> talk about how the team got C# web exports working. <a href="https://www.youtube.com/watch?v=fiyf4XPanf4">Acerola</a> took us super in-depth with Compositor Effects. We got a inside look at converting <a href="https://www.youtube.com/watch?v=MEZoKKAoUAU">Domekeeper to multiplayer</a>. And some dufus even talked about <a href="https://www.youtube.com/watch?v=qoCWp_oP9Ng">making games on your phone</a>. All in all, there was a wide berth of topics from folks from the entire Godot community.</p>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd11001234567891233.webp" alt="Julian, AKA StayAtHomeDev, talking about growing a YouTube audience." /></p>
|
||
<p>We’re happy to say that we have finally released all of the videos from GodotCon for free on YouTube; everything from lightning talks to workshops!</p>
|
||
<p><a href="https://www.youtube.com/watch?v=fiyf4XPanf4&amp;list=PLeG_dAglpVo5oOrjQqDTMQadVDqe1Zsom">🔗 Watch them all here</a></p>
|
||
<h2 id="the-showcase">The showcase</h2>
|
||
<p>In addition to the talks and workshops, we were able to put on a small games showcase.</p>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd1100171748217.jpg" alt="Shot of the Garage, our showcase venue, filled with people playing games." /></p>
|
||
<p>In no particular order:</p>
|
||
<ul>
|
||
<li><a href="https://store.steampowered.com/app/1941420/Burrito_Bear/">Burrito Bear by SpaceOrca</a>: Eat burritos, avoid garbage in three bold, beautiful, shiny dimensions.</li>
|
||
<li><a href="https://store.steampowered.com/app/3660860/Turnip_Boy_Steals_the_Mail/">Turnip Boy Steals the Mail by Snoozy Kanoo</a>: A free new Turnip Boy adventure.</li>
|
||
<li><a href="https://store.steampowered.com/app/1712700/Memori/">Memori by PracticalNPC</a>: A precision pixel platformer with challenging puzzles.</li>
|
||
<li><a href="https://store.steampowered.com/app/2477750/Dunderbeck/">Dunderbeck by RUST LTD</a>: Fight, build, and eat your way across the mythical land of Cincinatti.</li>
|
||
<li><a href="https://store.steampowered.com/app/2840590/no_signal/">no signal by exodrifter</a>: An emotional point-and-click hard sci-fi adventure.</li>
|
||
<li><a href="https://store.steampowered.com/app/3293350/Dantes_9/">Dante’s 9 by John D</a>: A roguelite action-platformer fused with a deckbuilder.</li>
|
||
<li><a href="https://store.steampowered.com/app/3186280/Dukkido/">Dukkido by MariSuCho</a>: A physics-based action-RTS, featuring large handcrafted levels and dungeons.</li>
|
||
<li><a href="https://store.steampowered.com/app/3211750/Neongarten/">Neongarten by Moonroof Studios</a>: A minimalist cyberpunk city builder.</li>
|
||
<li><a href="https://www.comfymitten.games/devlog/turntide-tales">TurnTide Tales by Comfy Mitten</a>: An epic swashbuckling adventure across the high seas with a daring crew.</li>
|
||
</ul>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd11005214.webp" alt="Someone playing on a controller at the Turnip Boy Steals the Mail table." /></p>
|
||
<p>We also had some other cool stuff on display!</p>
|
||
<ul>
|
||
<li><a href="https://xogot.com/">Xogot</a>: The Godot editor on an iPad native interface.</li>
|
||
<li><a href="https://www.youtube.com/watch?v=b-NQg4g9o0Q">Sweet Spot</a>: An interactive art exhibit by Michael Berthaud.</li>
|
||
<li><a href="https://migeran.com/">Godot Beyond Games</a>: Migeran showed their AR / VR / XR / Mobile / Web / Robotics uses of Godot Engine for non-game work.</li>
|
||
<li><a href="https://www.endlessglobal.com/foundation/access">Endless Access</a>: An education platform with lots of neat Godot integrations.</li>
|
||
</ul>
|
||
<p>Many thanks go to our small group of volunteers who helped everything run smoothly. Volunteers who did tons of design work. Volunteers who helped talks run smoothly. Volunteers who basically lived at the badge and merch tables and helped us pack our awesome swag bags.</p>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd110020250508221757.webp" alt="A table of goods collected at GodotCon. Godot branded tote, Buckshot Roulette sticker packs, cards and stickers from the showcase games, badge, pins, and the GodotCon Anthology Mixtape" /><img src="/storage/blog/godotcon-us-2025/56bdd11005193.webp" alt="A close-up shot of the GodotCon T-shirt that was for sale." /></p>
|
||
<p>(Speaking of swag bags, how cool was our awesome Anthology “cassette” that included games, demos, and experiments by our speakers and showcasers!?)</p>
|
||
<p><img src="/storage/blog/godotcon-us-2025/56bdd110020250506231922551.webp" alt="A glamour shot of the GodotCon Anthology Mixtape." /></p>
|
||
<h1 id="the-future">The future</h1>
|
||
<p>When we first mentioned GodotCon Boston, folks were disappointed at the thought of missing a Godot event in Europe. Well, let that thought drift away. Although the name might be different, we’ve got Europe’s Godot Engine event, <a href="https://godotfest.com/">GodotFest happening in November</a>, and the Godot Foundation has already started organizing the GodotCon EU 2026. Get your tickets for GodotFest now! The prices were just lowered, but they go up starting in October.</p>
|
||
<p><em>But what about GodotCon in the US!?</em></p>
|
||
<p>You’re hearing it here first. GodotCon US will take place in <strong>Boston</strong> again next year. Putting on GodotCon to this level takes a large effort. The Boston Godot User Group put on a well-organized event. This time they have an entire year to prepare for something even bigger and better.</p>
|
||
<p><em>Do you want to put on the next GodotCon in your city?</em> Let’s make it happen! Reach out and get a conversation started. GodotCon loves to travel, but there are a few things we’d prefer to see from a potential GodotCon site:</p>
|
||
<ul>
|
||
<li>An experienced, dedicated game development group. It’s hard to trust a group that hasn’t been around for a year to stick together for another. (Besides, you need a large pool of volunteers!)</li>
|
||
<li>Some organizing experience.</li>
|
||
<li>Somewhere easy to travel to.</li>
|
||
</ul>
|
||
<p>Our GodotCon organizers would love to work with you and get you to successfully host an event.</p>
|
||
<h1 id="the-support">The support</h1>
|
||
<p>If you’d like to help keep GodotCon running, please consider <a href="https://fund.godotengine.org/">supporting the Godot Foundation</a>. Our goal for these events is always to try and keep the cost low so that more of the community can participate. Financial support from the Godot Foundation and sponsorships helps us to do so.</p></content><author><name>Chad Stewart</name></author><category term="Events"/></entry><entry><title>Dev snapshot: Godot 4.6 dev 1</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-6-dev-1/"/><updated>2025-09-30T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-6-dev-1/</id><summary>The calm before the storm…</summary><content type="html"><p>The first development snapshot for 4.6 has arrived! As is often the case for our first development snapshot, a significant portion of quality PRs from our backlog are finally able to see the light of day, as they were either locked out from the 4.5 feature freeze or deemed too risky to merge for the stable release. In saying that though, this is <em>by far</em> the biggest our backlog has ever been, so getting it all in for an initial snapshot was unrealistic. As such, while this may mean a slower trickle of PRs initially, you can expect future development snapshots to further expand on the foundation that this release sets.</p>
|
||
<p>The overwhelming majority of changes this time around are bugfixes, with most already slated to be backported to 4.5.1-stable in the very near future! In a sense, this release is serving not only as a foundation for 4.6, but for 4.5.1 as well; meaning, testing this build is crucial to ensure a smooth release for both. However, we’ve already got quite a few enhancements and features integrated that will remain exclusive to 4.6, so those wishing to stick with 4.5 may want to hold out for 4.5.1-rc1 coming later this week.</p>
|
||
<p>As usual, safety precautions should be taken with any pre-release environment. While we prepare these snapshots with the intent to be suitable for general testing, there will always be a non-zero risk of data loss/corruption. Creating backups before hand and/or utilizing version control are strongly recommended!</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.6.dev1/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/3yJ7i8kop"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/2256450/RAM_Random_Access_Mayhem/?curator_clanid=41324400"><strong>RAM: Random Access Mayhem</strong></a>, <em>a rougelike where you play as the enemies. You can buy the game or try out the demo on <a href="https://store.steampowered.com/app/2256450/RAM_Random_Access_Mayhem/?curator_clanid=41324400">Steam</a>, and follow the developers on <a href="https://twitter.com/Xylem_Studios">Twitter</a> or <a href="https://www.youtube.com/@xylemstudios">YouTube</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<h3 id="drag-and-drop-export-variables">Drag-and-drop <code class="language-plaintext highlighter-rouge">@export</code> variables</h3>
|
||
<p>Part of starting out slow with enhancements in the development cycle means that you can expect quite a lot of QOL additions in the near future. One such addition that we’re excited to showcase comes from <a href="https://github.com/fkeyzuwu">fkeyz</a>: the ability to drag-and-drop objects to the script editor to automatically create an exported variable! (<a href="https://github.com/godotengine/godot/pull/106341">GH-106341</a>)</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Drag-and-drop demonstration">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-1/drag-and-drop-export.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<h3 id="openxr-add-support-for-spatial-entities-extensions">OpenXR: Add support for Spatial Entities Extensions</h3>
|
||
<p>As <a href="https://github.com/BastiaanOlij">Bastiaan Olij</a> notes in his PR <a href="https://github.com/godotengine/godot/pull/107391">GH-107391</a>, the <a href="https://www.khronos.org/blog/openxr-spatial-entities-extensions-released-for-developer-feedback">OpenXR Spatial Entities Extensions</a> was introduced to standardize obtaining and interacting with information about the user’s real world environment. This is an absolute goliath of a specification, and is reflected in the implementation seeing over <strong>75 hundred lines of code</strong> changed. If you’re interested in seeing the changes firsthand (and have the necessary equipment for it), be sure to check out Bastiaan’s accompanying <a href="https://github.com/BastiaanOlij/spatial-entities-demo">demo project</a>.</p>
|
||
<h3 id="hide-control-focus-when-given-via-mouse-input">Hide <code class="language-plaintext highlighter-rouge">Control</code> focus when given via mouse input</h3>
|
||
<p>Courtesy of <a href="https://github.com/YeldhamDev">Michael Alexsander</a>, the focus state logic for mouse and touch is now decoupled from keyboard and joypad (<a href="https://github.com/godotengine/godot/pull/110250">GH-110250</a>). While it’s common for programs to have significant overlap between registering inputs of these types, it’s not uncommon for systems to deliberately stylize the two types separately, often handling their inputs in entirely separate ways. This change enables that granular control for toolmakers and UI designers. Included in the PR is a comprehensive ruleset for when focus is shown, which we’ve included below:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Situation</th>
|
||
<th> </th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Clicking a <code class="language-plaintext highlighter-rouge">Control</code> with the mouse, giving it focus.</td>
|
||
<td>❌</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Successfully switching focus via keyboard/joypad actions.</td>
|
||
<td>✔️</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Attempting to switch focus via keyboard/joypad actions but still remaining on the same <code class="language-plaintext highlighter-rouge">Control</code>.</td>
|
||
<td>✔️</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Clicking somewhere with the mouse while having a <code class="language-plaintext highlighter-rouge">Control</code> with visible focus.</td>
|
||
<td>❌</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Clicking with the mouse a visibly focused <code class="language-plaintext highlighter-rouge">Control</code> (deviates from how it works in browsers).</td>
|
||
<td>❌</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Using <code class="language-plaintext highlighter-rouge">Control.grab_focus(true)</code>.</td>
|
||
<td>❌</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="card card-info" style="margin-top: 1em;">
|
||
<p>The previous behavior can be achieved by enabling <code class="language-plaintext highlighter-rouge">gui/common/always_show_focus_state</code>.</p>
|
||
</div>
|
||
<h3 id="remove-prompt-to-restart-editor-after-changing-custom-theme">Remove prompt to restart editor after changing custom theme</h3>
|
||
<p>A common pain-point we’ve heard from creators attempting to integrate custom themes for the Godot editor itself is how pace-breaking the process can feel. This was a direct result of swapping between themes requiring a hard reset of the entire editor instance, making incremental tests tedious and realtime comparison virtually impossible. This makes sense, of course, as an editor’s theme is surely baked into the editor itself such that any change of the sort would need to jump through countless hurdles to make this feature possible. After all, you can’t just flip a switch and have everything “just work”.</p>
|
||
<p>Anyway, <a href="https://github.com/ryevdokimov">Robert Yevdokimov</a> flipped a switch and everything “just worked”. (<a href="https://github.com/godotengine/godot/pull/100876">GH-100876</a>)</p>
|
||
<video autoplay="" loop="" muted="" playsinline="" title="Swapping themes without a reset">
|
||
<source src="/storage/blog/dev-snapshot-godot-4-6-dev-1/theme-swap-no-reset.mp4?1" type="video/mp4" />
|
||
</video>
|
||
<p>Oops.</p>
|
||
<p>To clarify: once-upon-a-time this reset was almost certainly necessary. Our internal logic for theming and customization is unrecognizable compared to their humble beginnings, and this is far from the first setting that was elevated to real-time support. It’s common for settings that become real-time to have a PR that explicitly targets the feature in question, but it’s rare for such features to have their changes exist in a vacuum. Perhaps there are other features out there, just like this, that have pre-conceived restrictions long-addressed without anyone realizing it. Until someone shows up to challenge those restrictions, we may never know.</p>
|
||
<div class="card card-info" style="margin-top: 1em;">
|
||
<p>The theme showcased for comparison is the <a href="https://github.com/passivestar/godot-minimal-theme">Godot Minimal Theme</a> by <a href="https://github.com/passivestar">passivestar</a>.</p>
|
||
</div>
|
||
<h3 id="and-more">And more!</h3>
|
||
<p>There are too many exciting changes to list them all here, but here’s a curated selection:</p>
|
||
<ul>
|
||
<li>2D: Avoid unnecessary updates in <code class="language-plaintext highlighter-rouge">TileMapLayer</code> (<a href="https://github.com/godotengine/godot/pull/109243">GH-109243</a>).</li>
|
||
<li>3D: Do not require editor restart when changing manipulator gizmo opacity setting (<a href="https://github.com/godotengine/godot/pull/108549">GH-108549</a>).</li>
|
||
<li>C#: Add C# translation parser support (<a href="https://github.com/godotengine/godot/pull/99195">GH-99195</a>).</li>
|
||
<li>Core: Add ‘Find Sequence’ to <code class="language-plaintext highlighter-rouge">Span</code>s, and consolidate negative indexing behavior (<a href="https://github.com/godotengine/godot/pull/104332">GH-104332</a>).</li>
|
||
<li>Editor: Allow to use sliders for integers in <code class="language-plaintext highlighter-rouge">EditorSpinSlider</code> (<a href="https://github.com/godotengine/godot/pull/110459">GH-110459</a>).</li>
|
||
<li>Editor: FindInFiles: Show the number of matches for each file (<a href="https://github.com/godotengine/godot/pull/110770">GH-110770</a>).</li>
|
||
<li>Editor: Fix vertical alignment of Inspector category titles (<a href="https://github.com/godotengine/godot/pull/110303">GH-110303</a>).</li>
|
||
<li>Editor: Show “No Translations Configured” message for empty translation preview menu (<a href="https://github.com/godotengine/godot/pull/107649">GH-107649</a>).</li>
|
||
<li>Editor: Speed up large selections in the editor (<a href="https://github.com/godotengine/godot/pull/109515">GH-109515</a>).</li>
|
||
<li>Editor: Use a fixed-width font for the expression evaluator (<a href="https://github.com/godotengine/godot/pull/109166">GH-109166</a>).</li>
|
||
<li>Export: Add “Show Encryption Key” toggle (<a href="https://github.com/godotengine/godot/pull/106146">GH-106146</a>).</li>
|
||
<li>GDScript: Elide unnecessary copies in <code class="language-plaintext highlighter-rouge">CONSTRUCT_TYPED_*</code> opcodes (<a href="https://github.com/godotengine/godot/pull/110717">GH-110717</a>).</li>
|
||
<li>Import: Switch LOD generation to use iterative simplification (<a href="https://github.com/godotengine/godot/pull/110027">GH-110027</a>).</li>
|
||
<li>Porting: Wayland: Implement the xdg-toplevel-icon-v1 protocol (<a href="https://github.com/godotengine/godot/pull/107096">GH-107096</a>).</li>
|
||
<li>Rendering: Add methods to draw ellipses (<a href="https://github.com/godotengine/godot/pull/85080">GH-85080</a>).</li>
|
||
<li>Rendering: Add ubershader support to material and SDF variants in Forward+ (<a href="https://github.com/godotengine/godot/pull/109401">GH-109401</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>98 contributors</strong> submitted <strong>220 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.6-dev1"><strong>interactive changelog</strong></a> for the complete list of changes since the 4.5-stable.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/8d8041bd4dab30e51ecf5be21dc7bf1f6a26c039"><code class="language-plaintext highlighter-rouge">8d8041bd4</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.6-dev1">
|
||
Download Godot 4.6 dev1
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-6-dev-1.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.6&amp;flavor=dev1&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.6-dev1">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<p>There are currently no known issues introduced by this release.</p>
|
||
<p>With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<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 <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p>
|
||
<p><a class="btn" href="https://fund.godotengine.org/">Donate now</a></p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Ensuring quality in the Godot documentation, a continuous process</title><link href="https://godotengine.org/article/ensuring-quality-godot-documentation/"/><updated>2025-09-18T14:00:00+00:00</updated><id>https://godotengine.org/article/ensuring-quality-godot-documentation/</id><summary>The Godot documentation is the fruits of the labor of hundreds of people working together. How do we ensure the highest possible level of quality, while making it easy for anyone to contribute? Find out in this article.</summary><content type="html"><p>What makes up the quality and usability of an open-source project is not just about its code. A big part of what makes a project useful to the community is its documentation.</p>
|
||
<p>Over the years, Godot contributors have developed many tools and processes to ensure the highest possible level of quality for the <a href="https://docs.godotengine.org/">documentation</a>. Read on if you’re curious about how the documentation is made.</p>
|
||
<h2 id="documentation-repository-organization">Documentation repository organization</h2>
|
||
<p>Godot’s documentation is hosted on <a href="https://about.readthedocs.com/">Read the Docs</a>. This service provides hosting for projects using <a href="https://www.sphinx-doc.org/">Sphinx</a>, which is a static site generator targeted at building documentation.</p>
|
||
<p>The documentation’s source files are hosted <a href="https://github.com/godotengine/godot-docs">on GitHub</a>. Several customizations have been made to improve readability, such as <a href="https://github.com/godotengine/godot-docs/blob/master/_static/css/custom.css">adding a dark theme</a> (used according to browser/OS preferences) and <a href="https://github.com/godotengine/godot-docs/blob/master/_extensions/gdscript.py">GDScript syntax highlighting</a>.</p>
|
||
<p>There is a continuous integration system in place, which performs several automated tasks:</p>
|
||
<ul>
|
||
<li><a href="https://github.com/godotengine/godot-docs/blob/master/.github/workflows/ci.yml">General continuous integration</a>
|
||
<ul>
|
||
<li>Runs pre-commit hooks and builds the website to ensure no errors occur. The pre-commit hooks are configured to check for typos using <a href="https://github.com/codespell-project/codespell">codespell</a>.</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://github.com/godotengine/godot-docs/blob/master/.github/workflows/sync_class_ref.yml">Synchronize the class reference</a>
|
||
<ul>
|
||
<li>Automatically synchronizes the generated class reference with the <a href="https://github.com/godotengine/godot/tree/master/doc/classes">class reference XML</a> from the main Godot repository.</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://github.com/godotengine/godot-docs/blob/master/.github/workflows/build_offline_docs.yml">Build offline documentation in HTML and ePub formats</a>
|
||
<ul>
|
||
<li>Creates downloads of the documentation in offline-friendly formats.</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://github.com/godotengine/godot-docs/blob/master/.github/workflows/check_urls.yml">Check URLs for dead links</a>
|
||
<ul>
|
||
<li>URLs can stop working over time for several reasons. This check makes it possible to be informed of link rot and replace links with archived versions when needed.</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="https://github.com/godotengine/godot-docs/blob/master/.github/workflows/cherrypick.yml">Automatically cherry-pick relevant pull requests to stable branches</a>
|
||
<ul>
|
||
<li>The documentation is split into several branches (one for <code class="language-plaintext highlighter-rouge">master</code>, one for the latest <code class="language-plaintext highlighter-rouge">stable</code> version, one for <code class="language-plaintext highlighter-rouge">4.3</code> and so on). Pull requests that make changes relevant for stable versions are assigned a label such as <code class="language-plaintext highlighter-rouge">cherrypick:4.3</code>. When the pull request is merged, the commit is automatically cherry-picked to the corresponding stable branch.</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<h2 id="internationalizing-the-documentation">Internationalizing the documentation</h2>
|
||
<p>As the Godot community is worldwide, we want the ability to provide not only the Godot editor in users’ native languages, but also the documentation.</p>
|
||
<p>To internationalize content that gets continuously updated, we use dedicated tooling to keep the translations in sync with the source material. Sphinx can extract content from each page to put in translation catalogs in the <a href="https://en.wikipedia.org/wiki/Gettext">Gettext</a> format (POT/PO files, <a href="https://docs.godotengine.org/en/stable/tutorials/i18n/localization_using_gettext.html">also supported by Godot!</a>). We merge these 500 POT files into a monolithic “Godot Documentation” component (500,000 words).</p>
|
||
<p>The class reference is handled separately as its source material is not Sphinx’s reStructuredText files, but XML files in the engine repository. For this, we use <a href="https://github.com/godotengine/godot-editor-l10n/blob/main/scripts/extract_classes.py">a script</a> to extract the descriptions from the XML files and generate a Gettext POT file (600,000 words).</p>
|
||
<p>So we’re currently at 1,100,000 words of documentation to translate! To put this into perspective, the Godot editor’s translation has a bit more than 40,000 words.</p>
|
||
<p>Godot uses <a href="https://hosted.weblate.org">Hosted Weblate</a> as a collaborative translation platform. This greatly simplifies the barrier to entry for editing Gettext files without merge conflicts, and provides a number of additional features such as suggestions, translation memory, or the ability to cross-compare translations.</p>
|
||
<ul>
|
||
<li><a href="https://hosted.weblate.org/projects/godot-engine/godot-docs/"><strong>Godot Documentation</strong></a> and <a href="https://hosted.weblate.org/projects/godot-engine/godot-class-reference/"><strong>Class Reference</strong></a> components on Hosted Weblate</li>
|
||
<li>Localized documentation websites: <a href="https://docs.godotengine.org/cs/4.x/">cs</a>, <a href="https://docs.godotengine.org/de/4.x/">de</a>, <a href="https://docs.godotengine.org/es/4.x/">es</a>, <a href="https://docs.godotengine.org/fr/4.x/">fr</a>, <a href="https://docs.godotengine.org/it/4.x/">it</a>, <a href="https://docs.godotengine.org/ja/4.x/">ja</a>, <a href="https://docs.godotengine.org/ko/4.x/">ko</a>, <a href="https://docs.godotengine.org/pl/4.x/">pl</a>, <a href="https://docs.godotengine.org/pt-br/4.x/">pt-br</a>, <a href="https://docs.godotengine.org/ru/4.x/">ru</a>, <a href="https://docs.godotengine.org/uk/4.x/">uk</a>, <a href="https://docs.godotengine.org/zh-cn/4.x/">zh-cn</a>, <a href="https://docs.godotengine.org/zh-tw/4.x/">zh-tw</a></li>
|
||
<li><a href="https://contributing.godotengine.org/en/latest/documentation/translation/index.html">Documentation on contributing translations</a></li>
|
||
<li><a href="https://chat.godotengine.org/channel/translation"><code class="language-plaintext highlighter-rouge">#translation</code> channel on the Godot Contributors Chat</a></li>
|
||
</ul>
|
||
<p><img alt="Hosted Weblate Godot documentation website screenshot" src="/storage/blog/ensuring-quality-godot-documentation/hosted-weblate.webp" /></p>
|
||
<h2 id="splitting-the-contributor-documentation-to-its-own-website">Splitting the contributor documentation to its own website</h2>
|
||
<p>Since September 2025, documentation for new and returning engine contributors has been split to its own website, <a href="https://contributing.godotengine.org">contributing.godotengine.org</a>. This website is powered by Sphinx, just like the main documentation. This split was motivated by several factors:</p>
|
||
<ul>
|
||
<li>The documentation is split by minor version, but the contributing documentation generally does not need a version split. Feature development always happens on the <code class="language-plaintext highlighter-rouge">master</code> branch, with cherry-picking towards the previous stable branch. In practice, it’s easier to maintain only one version of the documentation.</li>
|
||
<li>Contributing to the engine requires English reading comprehension. The existing documentation had some translations available, but they were not always complete or up-to-date. Focusing on English for contribution guides reduces the burden on translators, which can then better focus on other sections of the manual.</li>
|
||
</ul>
|
||
<p>Note that some of the pages that were previously in the Contributing section of the documentation were moved to a new section called <a href="https://docs.godotengine.org/en/latest/engine_details/architecture/index.html">Engine details</a>. These pages are not just useful for engine contributors, but also for people looking to compile their own builds and write custom modules in C++.</p>
|
||
<p>As an aside, splitting this website allows it to build much faster, which is useful when testing changes locally. The main documentation website now also builds slightly faster, but is still slow due to containing the class reference. The GitHub repository for the new website can be found at <a href="https://github.com/godotengine/godot-contributing-docs">godotengine/godot-contributing-docs</a>.</p>
|
||
<h2 id="class-reference-progress-tracker">Class reference progress tracker</h2>
|
||
<p>The Godot documentation is more than just a manual. It also contains an hosted mirror of the <em>class reference</em>, which documents every class that’s exposed to the scripting API in the engine. This class reference can be read directly offline in the editor, but the hosted version can be linked to on a website.</p>
|
||
<p>Since the class reference represents a massive amount of items to document, we built a website to track the documentation progress for each class:</p>
|
||
<ul>
|
||
<li><a href="https://godotengine.github.io/doc-status/"><strong>Godot class reference status</strong></a></li>
|
||
</ul>
|
||
<p>This website relies on the <a href="https://github.com/godotengine/godot/blob/master/doc/tools/doc_status.py"><code class="language-plaintext highlighter-rouge">doc_status.py</code></a> script from the main Godot repository, which detects the completion percentage and outputs a Markdown table with the results.</p>
|
||
<p>Being aware of the overall and per-class completion percentages at all times made it a lot easier to improve the documentation coverage. As of writing, the overall completion percentage is <strong>97%</strong>. With additional efforts from <a href="https://contributing.godotengine.org/en/latest/documentation/class_reference.html">contributors like you</a>, we can perhaps reach 100% completion in the future.</p>
|
||
<p><img alt="Godot class reference status website screenshot" src="/storage/blog/ensuring-quality-godot-documentation/doc-status.webp" /></p>
|
||
<h2 id="team-reports-for-class-reference-pull-requests">Team reports for class reference pull requests</h2>
|
||
<p>Another way for contributors to organize pull requests and work through the backlog is to use the <em>team reports</em> website. This website was built for contributors to check all open pull requests in a more convenient fashion than using GitHub’s web interface. Using this website, it’s easier to see when pull requets were last active and whether they are in a mergeable state (which may not be the case due to merge conflicts).</p>
|
||
<p>This website only tracks the main Godot repository on GitHub, not the documentation repository. With that said, in the context of the documentation, this is still relevant since all contributions to the class reference are sent to the main Godot repository. (The documentation repository only hosts a generated copy of the class reference from the XML source files.)</p>
|
||
<ul>
|
||
<li><a href="https://godotengine.github.io/godot-team-reports/#documentation"><strong>Godot Team Reports</strong></a></li>
|
||
</ul>
|
||
<p><img alt="Godot team reports website screenshot" src="/storage/blog/ensuring-quality-godot-documentation/team-reports.webp" /></p>
|
||
<h2 id="user-notes-system">User notes system</h2>
|
||
<p>In 2024, the Godot documentation got an integration for user notes using <a href="https://giscus.app/">Giscus</a>. This allows users to share additional information relevant for documentation readers. This integration is currently present on the <code class="language-plaintext highlighter-rouge">4.4</code>, <code class="language-plaintext highlighter-rouge">4.5</code>, <code class="language-plaintext highlighter-rouge">stable</code>, and <code class="language-plaintext highlighter-rouge">latest</code> branches of the documentation.</p>
|
||
<p>As an example, you can see it in action at the bottom of the <a href="https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html#godot-giscus">GDScript reference</a> manual page.</p>
|
||
<p><img alt="Godot documentation user notes screenshot" src="/storage/blog/ensuring-quality-godot-documentation/user-notes.webp" /></p>
|
||
<h3 id="why-have-user-notes-on-the-documentation">Why have user notes on the documentation?</h3>
|
||
<p>The Godot documentation is an essential learning resource for new and returning users alike. However, the content can sometimes benefit from additional clarification not found on the page itself. Since it’s an officially-maintained resource, it also tries to limit the number of third-party resources it links to.</p>
|
||
<p>To resolve this problem, we’ve decided to introduce a <em>user note system</em> in the Godot documentation. Inspired by user-provided comment systems such as <a href="https://www.php.net/docs.php">PHP’s</a>, this allows the community to make the documentation more useful for everyone: not just for users, but also for engine developers.</p>
|
||
<p><strong>It should be noted that <em>user notes</em> are different from the usual comments you’d find on a blog post.</strong> As described by the <a href="https://github.com/godotengine/godot-docs-user-notes/discussions/1">user-contributed notes policy</a>, they are intended to be used to provide additional context for the documentation or link to community resources. They are not designed to report bugs or suggest features. When the documentation is incorrect or outdated, please open an issue on the <a href="https://github.com/godotengine/godot-docs">godot-docs</a> repository instead of leaving a user note.</p>
|
||
<h3 id="how-user-notes-are-implemented">How user notes are implemented</h3>
|
||
<p>The user notes integration is powered by <a href="https://giscus.app/">Giscus</a>, an open-source script that allows integrating a GitHub Discussions thread on a web page. To do so, it automatically creates a discussion in a <a href="https://github.com/godotengine/godot-docs-user-notes">repository</a> when the first comment on a page is posted. On the Godot documentation, pages are matched based on their file name, but several page matching modes are provided by Giscus depending on the website’s needs.</p>
|
||
<p>Being hosted on GitHub Discussions allows anyone with a GitHub account to comment. On the organizational side, this also reduces system administration overhead as no separate backend or database for hosting comments is required. Spam protection (a traditionally difficult topic with comment platforms) is handled on GitHub’s end, which has historically been quite effective at avoiding spam.</p>
|
||
<p>As a bonus, you can also watch the <a href="https://github.com/godotengine/godot-docs-user-notes">godot-docs-user-notes</a> repository on GitHub to be informed of new user notes being added to documentation pages. Replying to user notes left by others is a good way to get started with documentation improvements, as many user notes bring new information that can be incorporated into the main page.</p>
|
||
<h2 id="conclusion">Conclusion</h2>
|
||
<p>This organization allows more people to contribute in various ways, even with limited technical know-how. Not only does the documentation benefit from those opening <a href="https://github.com/godotengine/godot-docs/pulls">pull requests</a>, it’s also continuously improved every day by those posting user notes at the bottom of documentation pages. These user notes bring further clarifications and context to the manual pages, as well as linking to useful resources.</p>
|
||
<p>A massive <strong>thank you</strong> to <a href="https://github.com/godotengine/godot-docs/graphs/contributors">all contributors to the documentation</a>! As always, we welcome contributions to the documentation. <a href="https://contributing.godotengine.org/en/latest/documentation/overview.html">The contribution process is well-documented</a>, but you’re welcome to hop on the <a href="https://chat.godotengine.org/channel/documentation"><code class="language-plaintext highlighter-rouge">#documentation</code> channel on the Godot Contributors Chat</a> if you have any questions.</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>If you would like to help with the development of these features, please consider <a href="https://fund.godotengine.org/">supporting the project financially</a>! More funding allows us to sponsor volunteer contributors and better respond to technical demands of project users.</p></content><author><name>Hugo Locurcio</name></author><category term="News"/></entry><entry><title>Godot 4.5, making dreams accessible</title><link href="https://godotengine.org/article/godot-4-5-making-dreams-accessible/"/><updated>2025-09-15T20:00:00+00:00</updated><id>https://godotengine.org/article/godot-4-5-making-dreams-accessible/</id><summary>From mind-blowing effects now made possible by the stencil buffer to accessibilty descriptions of your GUI elements that opens up the possibility for some with disabilities to play your game — we are proud to present to you Godot 4.5.</summary><content type="html"/><author><name>Godot contributors</name></author><category term="Release"/></entry><entry><title>Release candidate: Godot 4.5 RC 2</title><link href="https://godotengine.org/article/release-candidate-godot-4-5-rc-2/"/><updated>2025-09-10T12:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-5-rc-2/</id><summary>One more for the road, again!</summary><content type="html"><p>On Friday of last week, we dropped our first <a href="https://en.wikipedia.org/wiki/Software_release_life_cycle#Release_candidate">Release Candidate</a> build. As a reminder, we release RC builds once we <em>think</em> the engine has stabilized and is ready for release. It is your last chance to report critical regressions before we release the stable version. Now, not even a full week later, we’re ready with our second snapshot. This RC2 fixes the last of the critical regressions that we are aware of. Unless someone reports a new regression coming from the changes made in RC1 or RC2, we should be on track to release 4.5 stable soon.</p>
|
||
<p>At this point in the process you will see the activity on GitHub slow down as we avoid merging work for 4.5. Our focus in the coming days will be on preparing the release, and queuing up all the changes we would like to merge early in the 4.6 release cycle.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.5.rc2/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/h9JcJGHfg"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/3410180/Overlooting/?curator_clanid=41324400"><strong>Overlooting</strong></a>, <em>a dungeon crawler where inventory management is crucial, as you must adapt your strategy to a skill tree that changes every run! You can buy the game on <a href="https://store.steampowered.com/app/3410180/Overlooting/?curator_clanid=41324400">Steam</a>, and follow the developers on <a href="https://bsky.app/profile/posingpossums.bsky.social">Bluesky</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<p>For an overview of what’s new overall in Godot 4.5, have a look at the highlights for <a href="/article/dev-snapshot-godot-4-5-beta-1/">4.5 beta 1</a>, which cover a lot of the changes. This blog post only covers the changes between RC 1 and RC 2. This section covers all changes made since the <a href="/article/release-candidate-godot-4-5-rc-1/">RC 1 snapshot</a>, which are largely regression fixes:</p>
|
||
<ul>
|
||
<li>Animation: Move Skeleton3D init process (for dirty flags) into <code class="language-plaintext highlighter-rouge">POST_ENTER_TREE</code> from <code class="language-plaintext highlighter-rouge">ENTER_TREE</code> (<a href="https://github.com/godotengine/godot/pull/110145">GH-110145</a>).</li>
|
||
<li>Buildsystem: Bump version to 4.5-rc (<a href="https://github.com/godotengine/godot/pull/110285">GH-110285</a>).</li>
|
||
<li>Buildsystem: Fix Wayland build with OpenGL disabled (<a href="https://github.com/godotengine/godot/pull/110294">GH-110294</a>).</li>
|
||
<li>C#: Fix the issue preventing installing C# binaries on Android devices with api &lt;= 29 (<a href="https://github.com/godotengine/godot/pull/110260">GH-110260</a>).</li>
|
||
<li>C#: Require <code class="language-plaintext highlighter-rouge">net9.0</code> for Android exports (<a href="https://github.com/godotengine/godot/pull/110263">GH-110263</a>).</li>
|
||
<li>Core: Fix Resource duplicate calls <code class="language-plaintext highlighter-rouge">ImageTexture::set_image</code> with an invalid image (<a href="https://github.com/godotengine/godot/pull/110215">GH-110215</a>).</li>
|
||
<li>Editor: Fix “SpriteFrames” editor not fully hidding the bottom panel (<a href="https://github.com/godotengine/godot/pull/110280">GH-110280</a>).</li>
|
||
<li>GDExtension: Fix <code class="language-plaintext highlighter-rouge">WindowUtils::copy_and_rename_pdb</code> regression (<a href="https://github.com/godotengine/godot/pull/110033">GH-110033</a>).</li>
|
||
<li>Rendering: Metal: Ensure baked Metal binaries can be loaded on the minimum target OS (<a href="https://github.com/godotengine/godot/pull/110264">GH-110264</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>10 contributors</strong> submitted <strong>9 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-rc2"><strong>interactive changelog</strong></a> for the complete list of changes since the previous 4.5-rc1 snapshot. You can also review <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5">all changes included in 4.5</a> compared to the previous 4.4 feature release.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/2dd26a027a99633231184616d4dd287bbdd1c0a3"><code class="language-plaintext highlighter-rouge">2dd26a027</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5-rc2">
|
||
Download Godot 4.5 rc2
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-5-rc-2.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc2&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc2&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc2&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc2&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc2&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc2&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5-rc2">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<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 <a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues</a> which we aim to address before releasing 4.5. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the RC snapshots.</p>
|
||
<p>With every release, we accept that there are going to be various issues which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part or full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Release candidate: Godot 4.5 RC 1</title><link href="https://godotengine.org/article/release-candidate-godot-4-5-rc-1/"/><updated>2025-09-05T12:00:00+00:00</updated><id>https://godotengine.org/article/release-candidate-godot-4-5-rc-1/</id><summary>Godot 4.5 stable release is imminent; let the last round(s) of testing begin!</summary><content type="html"><p>The final stage of development for Godot 4.5 has arrived: the <a href="https://en.wikipedia.org/wiki/Software_release_life_cycle#Release_candidate">Release Candidate</a>. This means that all of our planned features are in place and the most critical regressions have been tackled, so we’re confident that it’s now ready for production use.</p>
|
||
<p>However, we can never be 100% sure that the release is ready to be published without very extensive testing from the community. So while Godot 4.5 is now ready for testing on existing projects (always make a copy/backup before upgrading, preferably with version control), we’re eager to hear how it fares and whether any new major issues have gone unnoticed until now.</p>
|
||
<p>While we are confident that we are <em>nearly</em> ready to release. There will be at least one more RC release after this one containing bug fixes for exporting C# projects to certain, older, Android devices and for shipping baked shaders on iOS devices. We have fixes in the queue already and anticipate merging them promptly and releasing an RC2 early next week. If no major regressions are reported with RC1/RC2, we anticipate releasing 4.5 stable shortly after.</p>
|
||
<p>Please consider <a href="#support">supporting the project financially</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.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.5.rc1/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/h9JcJGHfg"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/3064030/Whimside/?curator_clanid=41324400"><strong>Whimside</strong></a>, <em>a creature collector where your pixel art companions keep you company at the bottom of your screen. You can buy the game on <a href="https://store.steampowered.com/app/3064030/Whimside/?curator_clanid=41324400">Steam</a>, and follow the developer on <a href="https://bsky.app/profile/toadzillart.itch.io">Bluesky</a> or <a href="https://www.youtube.com/@Toadzillart">YouTube</a>.</em></p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<p>We covered the most important highlights from Godot 4.5 in the previous <a href="/article/dev-snapshot-godot-4-5-beta-1/"><strong>4.5 beta 1 blog post</strong></a>, so if you haven’t read that one, have a look to be introduced to the main new features added in the 4.5 release.</p>
|
||
<p>Especially if you’re testing 4.5 for the first time, you’ll want to get a condensed overview of what new features you might want to make use of.</p>
|
||
<p>This section covers the most relevant changes made since the <a href="/article/dev-snapshot-godot-4-5-beta-7/">beta 7 snapshot</a>, which are largely regression fixes:</p>
|
||
<ul>
|
||
<li>Core: Fix regression in mechanism to hold objects while emitting (<a href="https://github.com/godotengine/godot/pull/109770">GH-109770</a>).</li>
|
||
<li>Core: Make <code class="language-plaintext highlighter-rouge">SceneTree</code> not crash when receiving a notification without a root being set (<a href="https://github.com/godotengine/godot/pull/110041">GH-110041</a>).</li>
|
||
<li>Editor: Add single-object inspect command backwards compatible API for potential regression (<a href="https://github.com/godotengine/godot/pull/110043">GH-110043</a>).</li>
|
||
<li>Editor: Fix Range scale overflow (<a href="https://github.com/godotengine/godot/pull/110107">GH-110107</a>).</li>
|
||
<li>Export: Fix editor export plugins always causing resources to be edited (<a href="https://github.com/godotengine/godot/pull/110057">GH-110057</a>).</li>
|
||
<li>GUI: Do not set flags when <code class="language-plaintext highlighter-rouge">PopupMenu::set_visible</code> is called to hide popup (<a href="https://github.com/godotengine/godot/pull/110049">GH-110049</a>).</li>
|
||
<li>Input: Fix <code class="language-plaintext highlighter-rouge">Input.get_joy_info()</code> regression after the SDL input driver PR (<a href="https://github.com/godotengine/godot/pull/108214">GH-108214</a>).</li>
|
||
<li>Porting: macOS: Process joypad input directly in the embedded process (<a href="https://github.com/godotengine/godot/pull/109603">GH-109603</a>).</li>
|
||
<li>Rendering: Add GENERAL resource usage to the render graph and fix mutable texture initialization in D3D12 (<a href="https://github.com/godotengine/godot/pull/110204">GH-110204</a>).</li>
|
||
<li>Rendering: MSDF: Fix outline bleed out at small sizes (<a href="https://github.com/godotengine/godot/pull/110148">GH-110148</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p>As we’ve tightened our policy on what kind of changes can be merged leading to the release candidate stage, there aren’t a lot of changes in this snapshot. <strong>18 contributors</strong> submitted <strong>24 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-rc1"><strong>interactive changelog</strong></a> for the complete list of changes since the previous 4.5-beta7 snapshot.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/6c9aa4c7d3b9b91cd50714c40eeb234874df7075"><code class="language-plaintext highlighter-rouge">6c9aa4c7d</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5-rc1">
|
||
Download Godot 4.5 rc1
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/release-candidate-godot-4-5-rc-1.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc1&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc1&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc1&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc1&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc1&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=rc1&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5-rc1">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<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 <a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues</a> which we aim to address before releasing 4.5. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the RC snapshots.</p>
|
||
<p>With every release, we accept that there are going to be various issues which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part or full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Godot XR update - August 2025</title><link href="https://godotengine.org/article/godot-xr-update-aug-2025/"/><updated>2025-09-02T12:00:00+00:00</updated><id>https://godotengine.org/article/godot-xr-update-aug-2025/</id><summary>Upcoming XR game jam, using the XR editor, new release channels and the new Render Models API</summary><content type="html"><h2 id="godot-xr-community-game-jam">Godot XR Community Game Jam</h2>
|
||
<p>Starting on 8 September 2025 the Godot XR Community is hosting its <a href="https://itch.io/jam/godot-xr-game-jam-sep-2025">fourth Godot XR game jam</a>.</p>
|
||
<p>Participants have a week to put together a small XR game using the Godot Game Engine. In addition, special consideration will be given to participants using the <a href="https://www.meta.com/experiences/godot-game-engine/7713660705416473/">Godot XR editor</a> to create their entry!</p>
|
||
<p>This is a great way to try out some XR development and hone your game design skills, as well as provide feedback to help improve the XR editor.</p>
|
||
<p>We invite you to take this opportunity to try out Godot as an XR platform! The XR channel on the <a href="https://discord.gg/godotengine">official Godot Discord</a> is a great place to get help.</p>
|
||
<h2 id="creating-a-game-entirely-in-the-xr-editor">Creating a game entirely in the XR editor</h2>
|
||
<p>And on the topic of using the XR editor to create an XR game, during the Godot Wild Jam in May, David and Logan challenged themselves to create their entry entirely in VR - without using their PCs at all!</p>
|
||
<p>In this devlog video by Logan, they explain how it went:</p>
|
||
<iframe width="560" height="315" style="width: 100%; height: 100%; aspect-ratio: 16/9;" src="https://www.youtube.com/embed/6RE8KuCspqw" title="Can we make a Godot VR Game... in VR?" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
|
||
<p>Were they successful? Watch to find out!</p>
|
||
<h2 id="pre-release-channels-on-horizonos">Pre-release channels on HorizonOS</h2>
|
||
<p>To improve development and testing of the XR editor, we have set up <strong>DEV</strong>, <strong>BETA</strong>, and <strong>RC</strong> (release candidate) pre-release channels in the Horizon store to provide the community with pre-release builds of the XR editor.</p>
|
||
<p>Interested users can self-subscribe to the pre-release channels using the following links:</p>
|
||
<ul>
|
||
<li><a href="https://www.meta.com/s/3yJ7i8kop">DEV channel</a></li>
|
||
<li><a href="https://www.meta.com/s/h9JcJGHfg">BETA channel</a></li>
|
||
<li><a href="https://www.meta.com/s/6Ls6Bfa34">RC channel</a></li>
|
||
</ul>
|
||
<p>After joining the pre-release channels, users can change the XR editor active channel by visiting the app’s “Settings” page in-headset, or via the “Version” dropdown in the <a href="https://www.meta.com/experiences/godot-game-engine/7713660705416473/">app’s store page</a>.</p>
|
||
<h2 id="render-models-support-coming-in-godot-45">Render models support coming in Godot 4.5</h2>
|
||
<p>Render models is a new API added to OpenXR 1.1.49 that provides access to various 3D assets accessible in the runtime.</p>
|
||
<p>Its main focus is to provide accurate render models for the physical controllers the player is using and accurately placing those in the virtual world. These models come with metadata and tracking data that result in full animation of these assets. Thus they react properly to button presses and other interactions the player is performing.</p>
|
||
<p>The <a href="https://github.com/godotengine/godot/pull/107388">implementation in Godot</a> was made possible thanks to the Godot Integration Project that Khronos is currently funding and allowed Godot to implement this logic early. In doing so, runtime implementations could be tested and this provided feedback that allowed this API to be published.</p>
|
||
<ul>
|
||
<li>SteamVR added support for this API in their 2.12 release.</li>
|
||
<li>PICO has added support for this API in their 5.14.0 release, currently supporting PICO 4 Ultra devices.</li>
|
||
<li>Other vendors are expected to provide support in the near future.</li>
|
||
</ul>
|
||
<iframe width="560" height="995" style="width: 100%; height: 100%; aspect-ratio: 9/16;" src="https://www.youtube.com/embed/DfOW6tj0Pk4" title="Godot OpenXR Render Models demo" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe></content><author><name>Bastiaan Olij</name></author><category term="Progress Report"/></entry><entry><title>Dev snapshot: Godot 4.5 beta 7</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-5-beta-7/"/><updated>2025-08-29T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-5-beta-7/</id><summary>Two more for the road!</summary><content type="html"><p>While we initially anticipated our next snapshot to begin release candidate phase, we left open the possibility of another beta pass if any significant blockers persisted. And while the overwhelming majority have since been handled, this extra pass is to ensure debug symbols are supported for Android platforms. While this was always something that could be done when building from source, a long-term goal is official access to debug symbols, making this something we want to get right out of the gate.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.5.beta7/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/h9JcJGHfg"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/2702170/Strange_Jigsaws/?curator_clanid=41324400"><strong>Strange Jigsaws</strong></a>, a game of strange jigsaws! You can buy the game on <a href="https://store.steampowered.com/app/2702170/Strange_Jigsaws/?curator_clanid=41324400">Steam</a>, and follow the developer on <a href="https://www.youtube.com/@FLEBpuzzles">YouTube</a> or <a href="https://bsky.app/profile/flebpuzzles.bsky.social">Bluesky</a>.</p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<p>For an overview of what’s new overall in Godot 4.5, have a look at the highlights for <a href="/article/dev-snapshot-godot-4-5-beta-1/">4.5 beta 1</a>, which cover a lot of the changes. This blog post only covers the changes between beta 6 and beta 7. This section covers the most relevant changes made since the beta 6 snapshot, which are largely regression fixes:</p>
|
||
<ul>
|
||
<li>3D: Create an undo/redo action when pinning a SoftBody3D point in the editor (<a href="https://github.com/godotengine/godot/pull/109828">GH-109828</a>).</li>
|
||
<li>Audio: Web: Fix <code class="language-plaintext highlighter-rouge">AudioStreamPlayer.get_playback_position()</code> returning incorrect values for samples (<a href="https://github.com/godotengine/godot/pull/109790">GH-109790</a>).</li>
|
||
<li>Core: Revert “Prevent crashing if <code class="language-plaintext highlighter-rouge">max_threads</code> is zero.” (<a href="https://github.com/godotengine/godot/pull/110003">GH-110003</a>).</li>
|
||
<li>Documentation: Document ClassDB not storing information on user-defined classes (<a href="https://github.com/godotengine/godot/pull/109747">GH-109747</a>).</li>
|
||
<li>Editor: Allow extending previously-non-abstract scripts that became abstract (<a href="https://github.com/godotengine/godot/pull/109903">GH-109903</a>).</li>
|
||
<li>Editor: Don’t start editor as unsaved (<a href="https://github.com/godotengine/godot/pull/109825">GH-109825</a>).</li>
|
||
<li>Input: Revert “[Web] Disregard touch events in pointer callbacks” (<a href="https://github.com/godotengine/godot/pull/109936">GH-109936</a>).</li>
|
||
<li>Porting: Android: Fix safe area regression on older Android versions (<a href="https://github.com/godotengine/godot/pull/109818">GH-109818</a>).</li>
|
||
<li>Rendering: Treat missing variants as normal cache misses during shader cache lookup (<a href="https://github.com/godotengine/godot/pull/109882">GH-109882</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>29 contributors</strong> submitted <strong>47 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-beta7"><strong>interactive changelog</strong></a> for the complete list of changes since the previous 4.5-beta6 snapshot.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/4ebf67c12dcdffcb69242569c118a371a654b6ae"><code class="language-plaintext highlighter-rouge">4ebf67c12</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5-beta7">
|
||
Download Godot 4.5 beta7
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-5-beta-7.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta7&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta7&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta7&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta7&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta7&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta7&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5-beta7">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<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 <a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues</a> which we aim to address before releasing 4.5. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.</p>
|
||
<p>With every release, we accept that there are going to be various issues which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part or full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Dev snapshot: Godot 4.5 beta 6</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-5-beta-6/"/><updated>2025-08-21T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-5-beta-6/</id><summary>One more for the road!</summary><content type="html"><p>It’s been a long journey, but we’re at the tail-end of 4.5’s beta cycle at last; thank you to everyone who contributed during this stage! As such, you can expect this to be our final beta release for 4.5 (probably), with release candidates just around the corner. Should this indeed be our final beta snapshot, all further changes will be <em>strictly</em> regression fixes; the content available here will be largely reflective of the 4.5 release. As always, users are strongly encouraged to test this snapshot to catch the remaining few release blockers.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.5.beta6/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/h9JcJGHfg"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/2471970/Planetary_Life/?curator_clanid=41324400"><strong>Planetary Life</strong></a>, an evolution simulator where you guide custom creations from single-celled organisms to a modern civilization! You can buy the early-access title on <a href="https://store.steampowered.com/app/2471970/Planetary_Life/?curator_clanid=41324400">Steam</a>, and follow the developer on <a href="https://www.youtube.com/@sotenbox">YouTube</a> or <a href="https://twitter.com/sotenbox">Twitter</a>.</p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<p>For an overview of what’s new overall in Godot 4.5, have a look at the highlights for <a href="/article/dev-snapshot-godot-4-5-beta-1/">4.5 beta 1</a>, which cover a lot of the changes. This blog post only covers the changes between beta 5 and beta 6. This section covers the most relevant changes made since the beta 5 snapshot, which are largely regression fixes:</p>
|
||
<h3 id="rename-svgtexture-to-dpitexture-mark-as-experimental">Rename <code class="language-plaintext highlighter-rouge">SVGTexture</code> to <code class="language-plaintext highlighter-rouge">DPITexture</code>, mark as “experimental”</h3>
|
||
<p>We generally don’t highlight reversions/renames in these blogposts, but this is a major exception that warrants added context. The original intent of <code class="language-plaintext highlighter-rouge">SVGTexture</code> was to handle icons that respect the font oversampling in the editor. That’s literally it.</p>
|
||
<p><img src="/storage/blog/dev-snapshot-godot-4-5-beta-6/dpi-compare.webp" alt="DPI Compare" /></p>
|
||
<p>This is part of the reason we never gave the feature its own dedicated section, beyond a bullet-point in its introductory blog. However, the reception to what should’ve been a fringe feature was far larger than we intended. Many users, understandably, took the feature to mean full-blown support for <a href="https://en.wikipedia.org/wiki/Adobe_Flash">Flash-like</a> graphics and realtime rasterization. The name and description ended up overselling our niche utility as a general-purpose solution; one which it was woefully underequipped to handle. Despite the original author, <a href="https://github.com/bruvzg">bruvzg</a>, making excellent strides towards refining and expanding functionality, it was ultimately akin to applying a bandage on a broken leg. Turning this implementation into something general purpose would be beyond the scope of <strong>4.6</strong>, let alone 4.5! The rebranding and experimental designation are our ninth-inning resolution.</p>
|
||
<p>This feature has a limited use-case, and will not be extended beyond that.</p>
|
||
<p><em>Having said that</em>: this is <strong>not</strong> us saying “no” to the prospect of realtime support for SVG/rasterized visuals. On the contrary: that’s exactly why we’re making this designation in the first place! The support for this functionality is very obvious, but it needs to be done right. So while that might be out-of-scope for 4.5, it’s not out-of-scope for Godot.</p>
|
||
<p>(<a href="https://github.com/godotengine/godot/pull/109811">GH-109811</a>, <a href="https://github.com/godotengine/godot/pull/109805">GH-109805</a>)</p>
|
||
<h3 id="and-more">And more!</h3>
|
||
<ul>
|
||
<li>Export: Android: Revert the removal of the <code class="language-plaintext highlighter-rouge">gradle_build/compress_native_libraries</code> export option (<a href="https://github.com/godotengine/godot/pull/107681">GH-107681</a>).</li>
|
||
<li>GDScript: Autocompletion: Don’t call const functions (<a href="https://github.com/godotengine/godot/pull/109297">GH-109297</a>).</li>
|
||
<li>XR: Add <code class="language-plaintext highlighter-rouge">CameraServer</code> <code class="language-plaintext highlighter-rouge">feeds_updated</code> signal, and document async behavior (<a href="https://github.com/godotengine/godot/pull/108165">GH-108165</a>).</li>
|
||
<li>GUI: Use MSDF instead of MTSDF for font rendering (<a href="https://github.com/godotengine/godot/pull/109437">GH-109437</a>).</li>
|
||
<li>Input: Add methods to check which event first triggered “just pressed/released” state (<a href="https://github.com/godotengine/godot/pull/109540">GH-109540</a>).</li>
|
||
<li>Shaders: Improve shader overloaded function error reporting (<a href="https://github.com/godotengine/godot/pull/109548">GH-109548</a>).</li>
|
||
<li>Documentation: Update <code class="language-plaintext highlighter-rouge">_physics_process</code> and <code class="language-plaintext highlighter-rouge">_process</code> docs to reflect implementation (<a href="https://github.com/godotengine/godot/pull/109320">GH-109320</a>).</li>
|
||
<li>Editor: Fix snapping logic in Range (<a href="https://github.com/godotengine/godot/pull/109100">GH-109100</a>).</li>
|
||
<li>Documentation: Document <code class="language-plaintext highlighter-rouge">Tree.item_collapsed</code> also being emitted when the item is expanded (<a href="https://github.com/godotengine/godot/pull/109242">GH-109242</a>).</li>
|
||
<li>Rendering: Fix material removal clearing all instances of shared texture arrays (<a href="https://github.com/godotengine/godot/pull/109644">GH-109644</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>55 contributors</strong> submitted <strong>111 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-beta6"><strong>interactive changelog</strong></a> for the complete list of changes since the previous 4.5-beta5 snapshot.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/d5ad0556a2c04c50694b5c04dc1b3bf03ecd7113"><code class="language-plaintext highlighter-rouge">d5ad0556a</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5-beta6">
|
||
Download Godot 4.5 beta6
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-5-beta-6.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta6&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta6&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta6&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta6&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta6&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta6&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5-beta6">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<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 <a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues</a> which we aim to address before releasing 4.5. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.</p>
|
||
<p>With every release, we accept that there are going to be various issues which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part or full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Submissions open for Godot 2025 showreel</title><link href="https://godotengine.org/article/submissions-open-godot-2025-showreel/"/><updated>2025-08-15T13:00:00+00:00</updated><id>https://godotengine.org/article/submissions-open-godot-2025-showreel/</id><summary>Showcase your Godot creations in 2025! We're inviting submissions of short videos featuring your published or in-progress Godot games or tools. Don't miss this chance to be a part of it!</summary><content type="html"><p>Showcase your Godot Engine 2025 creations! We invite you to submit videos featuring your published or in-progress games or tools so we can make the Godot 2025 Showreel.</p>
|
||
<p>Our annual showreels are informative and celebratory showcases, to highlight the wide array of projects developed using the Godot Engine. If you want to participate this year and share your Godot-made game, app, or tool, submit your entry starting today.</p>
|
||
<h2 id="whats-new-this-year">What’s new this year?</h2>
|
||
<p>This year, we want to invite more people to participate in the voting phase. So, if you are a member of the <a href="https://fund.godotengine.org/">Development Fund</a>, you will be able to cast your votes alongside the Godot maintainers! To be eligible to vote, you need to have a recurrent donation active.</p>
|
||
<h2 id="how-to-submit">How to submit</h2>
|
||
<p>You can submit your entry in our <a href="https://showreel.godotengine.org/">Godot Showreel website</a>. Before submitting, please read the <a href="https://showreel.godotengine.org/about">submission guidelines</a>.</p>
|
||
<ul>
|
||
<li>📅 <strong>Submissions close on October 1st 2025</strong></li>
|
||
<li>📅 <strong>Voting starts on October 6th 2025</strong></li>
|
||
</ul>
|
||
<h2 id="need-inspiration">Need inspiration?</h2>
|
||
<p>Check out our <a href="https://www.youtube.com/watch?v=n1Lon_Q2T18&amp;list=PLeG_dAglpVo6EpaO9A1nkwJZOwrfiLdQ8&amp;index=1">showreel playlist</a> for some creative sparks and see what makes a great submission! Here is last year’s showreel:</p>
|
||
<iframe width="560" height="315" src="https://www.youtube.com/embed/n1Lon_Q2T18" frameborder="0" allowfullscreen="" style="width: 100%; aspect-ratio: 16 / 9; height: auto;"></iframe>
|
||
<p>Good luck! We can’t wait to see your creations!</p></content><author><name>Emi</name></author><category term="News"/></entry><entry><title>Dev snapshot: Godot 4.5 beta 5</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-5-beta-5/"/><updated>2025-08-06T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-5-beta-5/</id><summary>Back to our regularly scheduled schedule!</summary><content type="html"><p>The weekly pace of beta snapshots returns with a bang! While the overall number of changes might be smaller, that’s simply a logical consequence of a much tighter scope on what can be integrated at this stage, with even generic bugfixes given a higher scrutiny. Regression fixes are our number one priority as we grow closer to the end of the beta period, and our contributors have been putting in the work to make that happen; shoutouts to everyone who’s lent a hand!</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.5.beta5/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/h9JcJGHfg"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/3385370/Maze_Mice/?curator_clanid=41324400"><strong>Maze Mice</strong></a>, a bullet heaven roguelite where time only moves when you move! You can buy the game on <a href="https://store.steampowered.com/app/3385370/Maze_Mice/?curator_clanid=41324400">Steam</a> or <a href="https://trampolinetales.itch.io/maze-mice">itch.io</a>, and follow the developers on <a href="https://bsky.app/profile/TrampolineTales.com">Bluesky</a>.</p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<p>For an overview of what’s new overall in Godot 4.5, have a look at the highlights for <a href="/article/dev-snapshot-godot-4-5-beta-1/">4.5 beta 1</a>, which cover a lot of the changes. This blog post only covers the changes between beta 4 and beta 5. This section covers the most relevant changes made since the beta 4 snapshot, which are largely regression fixes:</p>
|
||
<ul>
|
||
<li>2D: Rename Camera2D <code class="language-plaintext highlighter-rouge">set_position_smoothing_enabled</code> parameter (<a href="https://github.com/godotengine/godot/pull/109147">GH-109147</a>).</li>
|
||
<li>3D: Fix missing 3D gizmos (<a href="https://github.com/godotengine/godot/pull/109029">GH-109029</a>).</li>
|
||
<li>Audio: Fix <code class="language-plaintext highlighter-rouge">AudioListener3D</code> not tracking velocity for doppler (<a href="https://github.com/godotengine/godot/pull/108051">GH-108051</a>).</li>
|
||
<li>C#: Fix <code class="language-plaintext highlighter-rouge">Quaternion(Vector3, Vector3)</code> constructor when vectors are the same (<a href="https://github.com/godotengine/godot/pull/109281">GH-109281</a>).</li>
|
||
<li>Core: Ensure that threads only process one pump task (<a href="https://github.com/godotengine/godot/pull/108697">GH-108697</a>).</li>
|
||
<li>Core: Fix translation remaps incorrectly falling back (<a href="https://github.com/godotengine/godot/pull/103838">GH-103838</a>).</li>
|
||
<li>Documentation: Add search keywords for CheckButton and ButtonGroup (<a href="https://github.com/godotengine/godot/pull/109089">GH-109089</a>).</li>
|
||
<li>Editor: Fix inconsistent thumbnail width (<a href="https://github.com/godotengine/godot/pull/109199">GH-109199</a>).</li>
|
||
<li>GUI: Deactivate orientation gizmo on window exit (<a href="https://github.com/godotengine/godot/pull/108374">GH-108374</a>).</li>
|
||
<li>GUI: Fix ColorPicker linear mode sliders color (<a href="https://github.com/godotengine/godot/pull/108328">GH-108328</a>).</li>
|
||
<li>I18n: Disable auto translation of flag names in the inspector (<a href="https://github.com/godotengine/godot/pull/109294">GH-109294</a>).</li>
|
||
<li>Import: Prevent generating Editor 3D scene preview in headless mode (<a href="https://github.com/godotengine/godot/pull/109116">GH-109116</a>).</li>
|
||
<li>Input: Fix the usage of udev and dbus with SDL joystick input driver (<a href="https://github.com/godotengine/godot/pull/108373">GH-108373</a>).</li>
|
||
<li>Navigation: Fix path post-processing edgecentered (<a href="https://github.com/godotengine/godot/pull/109196">GH-109196</a>).</li>
|
||
<li>Physics: Revert “SoftBody3D: Support physics Interpolation” (<a href="https://github.com/godotengine/godot/pull/109265">GH-109265</a>).</li>
|
||
<li>Rendering: D3D12: Fix shader model check, initialization error handling (<a href="https://github.com/godotengine/godot/pull/108919">GH-108919</a>).</li>
|
||
<li>Rendering: OpenGL: Fix crash at startup with “Thread Model” set to “Separate” (<a href="https://github.com/godotengine/godot/pull/109057">GH-109057</a>).</li>
|
||
<li>Thirdparty: Update access-kit to 0.17.0 (<a href="https://github.com/godotengine/godot/pull/108924">GH-108924</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>43 contributors</strong> submitted <strong>66 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-beta5"><strong>interactive changelog</strong></a> for the complete list of changes since the previous 4.5-beta4 snapshot.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/c81fd6c51233a727da528cf7f74137d56b5d6efe"><code class="language-plaintext highlighter-rouge">c81fd6c51</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5-beta5">
|
||
Download Godot 4.5 beta5
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-5-beta-5.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta5&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta5&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta5&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta5&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta5&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta5&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5-beta5">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<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 <a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues</a> which we aim to address before releasing 4.5. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.</p>
|
||
<p>With every release, we accept that there are going to be various issues which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part or full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Godot Foundation welcomes JetBrains as Platinum Sponsor</title><link href="https://godotengine.org/article/jetbrains-joins-dev-fund-supports-godot/"/><updated>2025-08-05T12:00:00+00:00</updated><id>https://godotengine.org/article/jetbrains-joins-dev-fund-supports-godot/</id><summary>The Godot Foundation is thrilled to welcome JetBrains as a Platinum Sponsor! We’re very grateful for the support, and hope you’ll give them a warm welcome too.</summary><content type="html"><p>We would like to welcome JetBrains as a Platinum Sponsor of the Godot Foundation. The support from JetBrains means a lot to us, so we would love to thank them for enabling us to keep improving the engine for everyone.</p>
|
||
<p>If you’re not already familiar with JetBrains, they build great developer tools, with some very helpful game development-facing features. JetBrains Rider is a must-have IDE and code editor for GDScript, C#, and C++, with specific support for various different game engines, including Godot. As well as rich editing and <kbd>Ctrl + Click</kbd> navigation, there are smart features like Find Usages, Rename (no more find/replace!) and specific inspections and quick fixes to help with best practices while writing, debugging or testing code for your game. Check out <a href="https://www.jetbrains.com/lp/rider-godot/?utm_source=google&amp;utm_medium=referral&amp;utm_campaign=rider&amp;utm_content=godot-page-blog">their page for more details</a>.</p>
|
||
<h3 id="free-for-non-commercial-use">Free for non-commercial use</h3>
|
||
<p>While JetBrains Rider is known as a professional tool, it recently became available for free for non-commercial use. That means if you’re just getting started with Godot, then it’s free for learning. It’s also free for open source, so you can use it to contribute to the engine, and it’s free for content creation, so you can make cool videos of your learning journey too. Other options for <a href="https://www.jetbrains.com/rider/buy/?utm_source=google&amp;utm_medium=referral&amp;utm_campaign=rider&amp;utm_content=godot-licensing&amp;section=commercial&amp;billing=yearly">licensing</a> and <a href="https://www.jetbrains.com/store/?utm_source=google&amp;utm_medium=referral&amp;utm_campaign=rider&amp;utm_content=godot-post-discounts&amp;section=discounts&amp;billing=yearly">discounts</a> are also available.</p>
|
||
<h3 id="a-message-from-jetbrains">A message from JetBrains:</h3>
|
||
<p>At JetBrains, we value the diversity of thought and experience in the software industry, such as the many different programming languages and related ecosystems. We can see that there is ample scope for multiple game engines, especially so for a not-for-profit, open-source game engine. Development happens thanks to the dedication of contributors and paid volunteers, and we welcome the chance to support passionate people making a difference with a successful community project.</p>
|
||
<p>We’d like to encourage you to visit the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by the <a href="https://godot.foundation/">Godot Foundation</a>, or to check <a href="https://godotengine.org/donate">out the alternative ways to donate</a>, and join us in supporting such a fantastic project.</p></content><author><name>Godot Foundation</name></author><category term="News"/></entry><entry><title>Dev snapshot: Godot 4.5 beta 4</title><link href="https://godotengine.org/article/dev-snapshot-godot-4-5-beta-4/"/><updated>2025-07-29T12:00:00+00:00</updated><id>https://godotengine.org/article/dev-snapshot-godot-4-5-beta-4/</id><summary>More critical fixes coming your way!</summary><content type="html"><p>It’s been a while since our last snapshot, as our team has been quite busy knocking out some critical release-blocker and immediate-blocker issues. Thankfully, we’re back at the point where we can comfortably deliver our latest 4.5 pre-release candidate. As a refresher: the beta period means that the project has entered feature freeze, so the only changes you’ll be seeing are bugfixes and addressing regressions.</p>
|
||
<p><a href="#downloads">Jump to the <strong>Downloads</strong> section</a>, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the <a href="https://editor.godotengine.org/releases/4.5.beta4/"><strong>Web editor</strong></a>, the <a href="https://www.meta.com/s/h9JcJGHfg"><strong>XR editor</strong></a>, or the <a href="https://play.google.com/store/apps/details?id=org.godotengine.editor.v4"><strong>Android editor</strong></a> for this release. If you are interested in the latter, please request to join <a href="https://groups.google.com/g/godot-testers">our testing group</a> to get access to pre-release builds.</p>
|
||
<hr />
|
||
<p><em>The cover illustration is from</em> <a href="https://store.steampowered.com/app/3775050/DOGWALK/?curator_clanid=41324400"><strong>DOGWALK</strong></a>, a title we had the pleasure of showcasing in a <a href="https://godotengine.org/article/godot-showcase-dogwalk/">dedicated article</a>. You can download the game for free on <a href="https://store.steampowered.com/app/3775050/DOGWALK/?curator_clanid=41324400">Steam</a>, <a href="https://blenderstudio.itch.io/dogwalk">itch.io</a>, and the <a href="https://studio.blender.org/projects/dogwalk/">Blender Studio website</a>.</p>
|
||
<h2 id="highlights">Highlights</h2>
|
||
<p>For an overview of what’s new overall in Godot 4.5, have a look at the highlights for <a href="/article/dev-snapshot-godot-4-5-beta-1/">4.5 beta 1</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 beta 3 snapshot, which are largely regression fixes:</p>
|
||
<ul>
|
||
<li>Animation: Remove PropertyTweener start warning (<a href="https://github.com/godotengine/godot/pull/108410">GH-108410</a>).</li>
|
||
<li>Buildsystem: Android: Update the maven publishing configuration following the deprecation of the OSSHR service (<a href="https://github.com/godotengine/godot/pull/108393">GH-108393</a>).</li>
|
||
<li>Buildsystem: Web: Fix Emscripten for WebXR and update minimum version (<a href="https://github.com/godotengine/godot/pull/107460">GH-107460</a>).</li>
|
||
<li>C#: Fix thread deadlock when using a worker thread to load a script with a generic base class (<a href="https://github.com/godotengine/godot/pull/99798">GH-99798</a>).</li>
|
||
<li>Editor: Fix main editor title after changing language (<a href="https://github.com/godotengine/godot/pull/108396">GH-108396</a>).</li>
|
||
<li>Editor: Fix ScriptEditor inline colors float handling (<a href="https://github.com/godotengine/godot/pull/107904">GH-107904</a>).</li>
|
||
<li>GDScript: Fix autocompletion issues with nested types (<a href="https://github.com/godotengine/godot/pull/94996">GH-94996</a>).</li>
|
||
<li>GDScript: Fix lookup symbol for <code class="language-plaintext highlighter-rouge">super()</code> (<a href="https://github.com/godotengine/godot/pull/108306">GH-108306</a>).</li>
|
||
<li>GUI: Code Editor: Fix “Pick Color” menu option replacing multiple color items (<a href="https://github.com/godotengine/godot/pull/108431">GH-108431</a>).</li>
|
||
<li>GUI: RTL: Add method to get visible content bounding box (<a href="https://github.com/godotengine/godot/pull/108466">GH-108466</a>).</li>
|
||
<li>GUI: RTL: Add option to scroll follow visible characters (<a href="https://github.com/godotengine/godot/pull/108399">GH-108399</a>).</li>
|
||
<li>GUI: TextEdit: Draw guidelines under the text and caret (<a href="https://github.com/godotengine/godot/pull/108599">GH-108599</a>).</li>
|
||
<li>Multiplayer: Fix node cache errors on nested MultiplayerSpawners (<a href="https://github.com/godotengine/godot/pull/101416">GH-101416</a>).</li>
|
||
<li>Porting: Windows: Add SSE4.2 support runtime check (<a href="https://github.com/godotengine/godot/pull/108561">GH-108561</a>).</li>
|
||
<li>Rendering: Always perform color correction and debanding on nonlinear sRGB values (<a href="https://github.com/godotengine/godot/pull/107782">GH-107782</a>).</li>
|
||
<li>Rendering: Fix crash when creating voxel GI data (<a href="https://github.com/godotengine/godot/pull/108397">GH-108397</a>).</li>
|
||
<li>Rendering: Fix underculling of occulusion culling (<a href="https://github.com/godotengine/godot/pull/108347">GH-108347</a>).</li>
|
||
</ul>
|
||
<h2 id="changelog">Changelog</h2>
|
||
<p><strong>79 contributors</strong> submitted <strong>168 fixes</strong> for this release. See our <a href="https://godotengine.github.io/godot-interactive-changelog/#4.5-beta4"><strong>interactive changelog</strong></a> for the complete list of changes since the previous 4.5-beta3 snapshot.</p>
|
||
<p>This release is built from commit <a href="https://github.com/godotengine/godot/commit/2d113cc224cb9be07866d003819fcef2226a52ea"><code class="language-plaintext highlighter-rouge">2d113cc22</code></a>.</p>
|
||
<h2 id="downloads">Downloads</h2>
|
||
<div class="card card-download">
|
||
<a class="card-download-link" href="/download/archive/4.5-beta4">
|
||
Download Godot 4.5 beta4
|
||
</a>
|
||
<div class="card-download-details">
|
||
<img class="lightbox-ignore" src="/storage/blog/covers/dev-snapshot-godot-4-5-beta-4.webp" />
|
||
<div class="card-download-platforms">
|
||
<div class="download-platform platform-linux">
|
||
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" class="lightbox-ignore" />
|
||
Linux
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta4&amp;slug=linux.x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary platform-linux">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta4&amp;slug=mono_linux_x86_64.zip&amp;platform=linux.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-macos">
|
||
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" class="lightbox-ignore" />
|
||
macOS
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta4&amp;slug=macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary platform-macos">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta4&amp;slug=mono_macos.universal.zip&amp;platform=macos.universal" class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
<div class="download-platform platform-windows">
|
||
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" class="lightbox-ignore" />
|
||
Windows
|
||
</div>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta4&amp;slug=win64.exe.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary platform-windows">
|
||
<div class="download-title">
|
||
Standard
|
||
</div>
|
||
</a>
|
||
<a href="https://downloads.godotengine.org/?version=4.5&amp;flavor=beta4&amp;slug=mono_win64.zip&amp;platform=windows.64" class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows">
|
||
<div class="download-title">
|
||
.NET
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-download-sublinks">
|
||
<a class="card-download-other" href="/download/archive/4.5-beta4">
|
||
Export templates and other downloads
|
||
</a>
|
||
<a class="card-download-donate" href="https://fund.godotengine.org/">
|
||
Make a Donation
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<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;
|
||
}
|
||
}
|
||
</style>
|
||
<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';
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
<div class="thankyou-wrapper" id="thank-you" style="display: none;">
|
||
<div class="thankyou">
|
||
<h2>Godot is downloading...</h2>
|
||
<p class="thankyou-donate">
|
||
Godot exists thanks to donations from people like you. Help us continue our work:
|
||
</p>
|
||
<a href="https://fund.godotengine.org" class="btn btn-donate">
|
||
Make a Donation
|
||
</a>
|
||
<div class="btn-close-thankyou-popup">
|
||
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup" class="lightbox-ignore" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p><strong>Standard build</strong> includes support for GDScript and GDExtension.</p>
|
||
<p><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.</p>
|
||
<div class="card card-warning">
|
||
<p>
|
||
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition <strong>a pre-release piece of software</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.
|
||
</p>
|
||
</div>
|
||
<h2 id="known-issues">Known issues</h2>
|
||
<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 <a href="https://github.com/orgs/godotengine/projects/61">list of regressions and significant issues</a> which we aim to address before releasing 4.5. This list is dynamic and will be updated if we discover new showstopping issues after more users start testing the beta snapshots.</p>
|
||
<p>With every release, we accept that there are going to be various issues which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of <a href="https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug">known bugs</a>.</p>
|
||
<h2 id="bug-reports">Bug reports</h2>
|
||
<p>As a tester, we encourage you to <a href="https://github.com/godotengine/godot/issues">open bug reports</a> if you experience issues with this release. Please check the <a href="https://github.com/godotengine/godot/issues">existing issues on GitHub</a> first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.</p>
|
||
<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).</p>
|
||
<h2 id="support">Support</h2>
|
||
<p>Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part or full-time developers hired thanks to <a href="https://fund.godotengine.org/">generous donations from the Godot community</a>. A big thank you to everyone who has contributed <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md">their time</a> or <a href="https://github.com/godotengine/godot/blob/master/DONORS.md">their financial support</a> to the project!</p>
|
||
<p>If you’d like to support the project financially and help us secure our future hires, you can do so using the <a href="https://fund.godotengine.org/">Godot Development Fund</a> platform managed by <a href="https://godot.foundation/">Godot Foundation</a>. There are also several <a href="/donate">alternative ways to donate</a> which you may find more suitable.</p></content><author><name>Thaddeus Crews</name></author><category term="Pre-release"/></entry><entry><title>Godot OpenXR Vendors Plugin v4</title><link href="https://godotengine.org/article/godot-openxr-vendors-plugin-400/"/><updated>2025-07-22T12:00:00+00:00</updated><id>https://godotengine.org/article/godot-openxr-vendors-plugin-400/</id><summary>What's new in the latest release of the Godot OpenXR Vendors plugin?</summary><content type="html"><p>OpenXR support has been built into Godot since the release of Godot 4.0. However, the <a href="https://github.com/GodotVR/godot_openxr_vendors">OpenXR Vendors plugin</a> (maintained by Godot’s XR team) includes extensions to OpenXR created by hardware vendors (e.g. Meta, Pico, HTC, etc.), which we’ve chosen to keep outside of Godot itself.</p>
|
||
<p>We are happy to announce a new major release of the OpenXR Vendors plugin, which includes some exciting new features!</p>
|
||
<h2 id="version-400">Version 4.0.0</h2>
|
||
<p>The <a href="https://github.com/GodotVR/godot_openxr_vendors/releases/tag/4.0.0-stable">4.0.0 version</a> was actually released right before GodotCon Boston, but with all the excitement around the event (including our <a href="https://godotengine.org/article/godotcon-2025-xr-android-recap/">GodotCon presentation</a>), we never managed to find a time to properly announce it.</p>
|
||
<p>Here’s some of the key features in the transition from v3 to v4!</p>
|
||
<h3 id="switch-to-khronos-loader">Switch to Khronos loader</h3>
|
||
<p>Aside from OpenXR vendor extensions, the plugin has historically also included vendor-specific OpenXR loaders for Android. While OpenXR now has a standard loader for Android (which we call “the Khronos loader”), this wasn’t the case when standalone Android headsets first hit the market, and so a number of vendors created their own proprietary loaders.</p>
|
||
<p>However, starting with version 4.0.0, we are only including the Khronos loader, which is supported on all the Android headsets supported by the plugin.</p>
|
||
<p>This is a step towards eventually including support for the Khronos loader in Godot itself, which will make it possible to export to Android without requiring the plugin at all! That is something that Bastiaan Olij has <a href="https://github.com/godotengine/godot/pull/106891">started working on</a>, and we hope to merge for Godot 4.6.</p>
|
||
<h3 id="dynamic-resolution">Dynamic Resolution</h3>
|
||
<p>While hitting your FPS target is important for flat screen games, it’s <em>critically</em> important in VR and AR, where drops in frame rate can cause discomfort or nausea.</p>
|
||
<p>Version 4.0.0 adds support for Meta’s Dynamic Resolution feature, which will dynamically scale down the render resolution in response to system load. So, rather than getting lower FPS, the graphics will look somewhat pixelated until system load improves.</p>
|
||
<p><img alt="Side-by-side screenshot of normal resolution and dynamic resolution when load is high" src="/storage/blog/godot-openxr-vendors-400/meta-xr-dynamic-resolution.webp" /></p>
|
||
<p>This feature is enabled by default, and so requires no setup to use — just download the new version of the plugin!</p>
|
||
<p>See <a href="https://godotvr.github.io/godot_openxr_vendors/manual/meta/dynamic_resolution.html">the documentation</a> for more information.</p>
|
||
<h3 id="hybrid-apps">Hybrid Apps</h3>
|
||
<p>Hybrid Apps are applications that can dynamically switch between fully immersive and floating 2D panels. The Godot <a href="https://godotengine.org/article/godot-editor-horizon-store-early-access-release/">XR editor</a> is itself a Hybrid App.</p>
|
||
<p>Starting with version 4.0.0, developers can make their own Hybrid Apps for Meta headsets! Support for other vendors is in the works.</p>
|
||
<p>See this <a href="https://godotengine.org/article/godotcon-2025-xr-android-recap/">earlier blog</a> post where we discussed this feature in more detail, and <a href="https://godotvr.github.io/godot_openxr_vendors/manual/hybrid_apps.html">the documentation</a> on creating your own Hybrid App.</p>
|
||
<h3 id="only-enable-requested-extensions">Only enable requested extensions</h3>
|
||
<p>In previous versions of the plugin, we’d enable any OpenXR extensions that the plugin supported, if they were available on the headset. This may have been OK when we only supported a handful of extensions, but that number has really started to balloon, and some extensions may have unwanted side effects, including a potential impact on performance.</p>
|
||
<p>That’s why in version 4.0.0 and beyond, there are now project settings to enable or disable any of the OpenXR extensions supported by this plugin, so you can enable only the features that your application needs.</p>
|
||
<p><img alt="Project settings dialog with the OpenXR extensions added by this plugin" src="/storage/blog/godot-openxr-vendors-400/godot-openxr-vendors-extension-settings.webp" /></p>
|
||
<h2 id="version-410">Version 4.1.0</h2>
|
||
<p>Nothing ever stands still in the world of Godot!</p>
|
||
<p>We just released <a href="https://github.com/GodotVR/godot_openxr_vendors/releases/tag/4.1.1-stable">version 4.1.1</a> which includes even more exciting features.</p>
|
||
<h3 id="full-body-tracking">Full Body Tracking</h3>
|
||
<p>We’ve supported Meta’s original OpenXR body tracking extension since version 3.0.0, but it only addresses the player’s upper body.</p>
|
||
<p>In this release, we’ve added support for Meta’s full body tracking extension, which includes tracking data for the player’s legs, as well as support for the height calibration extension, and fidelity extension, which allows controlling the tracking data’s level of detail.</p>
|
||
<video autoplay="" loop="" muted="" playsinline="">
|
||
<source src="/storage/releases/4.3/video/body-face-tracking.webm" type="video/webm" />
|
||
</video>
|
||
<h3 id="application-spacewarp">Application SpaceWarp</h3>
|
||
<p>Meta’s Application SpaceWarp is a technology that allows your game to render at half framerate (for example, 36 FPS) and the OpenXR runtime will generate an in-between frames, so that the user will experience full framerate (72 FPS, in this example). This has been shown to increase an application’s frame budget by about ~70%, which can allow rendering higher fidelity graphics than would otherwise be possible on standalone VR hardware.</p>
|
||
<p>This technology helped deliver AAA graphics in <strong>Assassin’s Creed Nexus VR</strong>, and now VR games built with Godot can use it too!</p>
|
||
<p>The SpaceWarp extension is supported on headsets from Meta and Pico, and with the recent release of the multi-vendor <a href="https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XR_EXT_frame_synthesis">Frame Synthesis extension</a>, it’s expected to be supported on headsets from more vendors in the future.</p>
|
||
<p>See <a href="https://godotvr.github.io/godot_openxr_vendors/manual/meta/application_space_warp.html">the documentation</a> for more information.</p>
|
||
<h4 id="only-godot-45-and-the-vulkan-mobile-renderer">Only Godot 4.5+ and the Vulkan Mobile renderer</h4>
|
||
<p>While version 4.1.0 of the OpenXR Vendors Plugin is compatible with both Godot 4.4 and the forthcoming 4.5, Application SpaceWarp will only work when used with Godot 4.5 or later.</p>
|
||
<p>Also, this currently only works with the Vulkan Mobile renderer, but there is an <a href="https://github.com/godotengine/godot/pull/97151">open PR</a> to add support for Godot’s Compatibility renderer (OpenGL) as well.</p>
|
||
<h3 id="environment-depth">Environment Depth</h3>
|
||
<p>In an Augmented Reality (AR) or Mixed Reality (MR) application, by default, all virtual objects rendered by Godot will appear on top of any real world objects.</p>
|
||
<p>Meta’s Environment Depth extension provides a realtime depth map of the world in front of the player, which can be used to allow real world objects to occlude — that is, to appear on top of — virtual objects.</p>
|
||
<video autoplay="" loop="" muted="" playsinline="">
|
||
<source src="/storage/blog/godot-openxr-vendors-400/meta-xr-environment-depth.webm" type="video/webm" />
|
||
</video>
|
||
<p>Similar to Application SpaceWarp, this feature will only work when used with Godot 4.5 or later.</p>
|
||
<h2 id="and-more">And more!</h2>
|
||
<p>There are numerous other smaller changes, including:</p>
|
||
<ul>
|
||
<li><strong>Smaller build size!</strong> The overall package (which includes all platforms) is now 23.3 MB, whereas the last v3 release was 194 MB. That’s almost a 10x improvement!</li>
|
||
<li><strong>Support for the <code class="language-plaintext highlighter-rouge">XR_FB_composition_layer_image_layout</code> extension,</strong> which is useful with OpenXRCompositionLayers using Android surfaces.</li>
|
||
<li><strong>Support for the <code class="language-plaintext highlighter-rouge">XR_FB_composition_layer_depth_test</code> extension</strong>.</li>
|
||
<li><strong>Support for the <code class="language-plaintext highlighter-rouge">XR_FB_android_surface_swapchain_create</code> extension</strong>.</li>
|
||
<li><strong>Support for the <code class="language-plaintext highlighter-rouge">XR_META_boundary_visibility</code> extension</strong>.</li>
|
||
<li><strong>Support for the <code class="language-plaintext highlighter-rouge">XR_FB_color_space</code> extension</strong>.</li>
|
||
<li><strong>Add HorizonOS camera permissions when Android CAMERA permission is enabled</strong>.</li>
|
||
<li><strong>Instant splash screen configuration for Meta headsets</strong>.</li>
|
||
<li><strong>Several bug fixes</strong>.</li>
|
||
</ul>
|
||
<p>And there will be more exciting features to come in the future 🙂</p></content><author><name>David Snopek</name></author><category term="Progress Report"/></entry><entry><title>Godot Showcase - Dogwalk</title><link href="https://godotengine.org/article/godot-showcase-dogwalk/"/><updated>2025-07-15T02:00:00+00:00</updated><id>https://godotengine.org/article/godot-showcase-dogwalk/</id><summary>Julien and Simon from Blender Studio tell us about their experience working on Dogwalk.</summary><content type="html"><style>
|
||
.julien {
|
||
color: #aa77e2;
|
||
}
|
||
.simon {
|
||
color: #40b99f;
|
||
}
|
||
</style>
|
||
<p>Today we want to showcase a very special project. Most of you already know about it since it is really hard to go around any Godot space without finding people excited about Dogwalk. So if somehow you didn’t know about the project or you still haven’t been captivated by their <a href="https://www.youtube.com/watch?v=c4zP1sUgt6I&amp;list=PLav47HAVZMjkxzzLDqYpTCosbsWjosUN0">video blogs</a> over at YouTube, you are in for a treat! <strong class="julien">Julien Kaspar</strong> and <strong class="simon">Simon Thommes</strong> from the <a href="https://studio.blender.org">Blender Studio</a> team tell us about their experience developing their first Godot game: Dogwalk.</p>
|
||
<p>The game is already out on <a href="https://store.steampowered.com/app/3775050/DOGWALK/">Steam</a>, <a href="https://blenderstudio.itch.io/dogwalk">Itch.io</a>, and you can also get the project files with tons of extras from <a href="https://studio.blender.org/projects/dogwalk/">their website</a>.</p>
|
||
<iframe width="560" height="315" src="https://www.youtube.com/embed/gPENs56vfYk" frameborder="0" allowfullscreen="" style="width: 100%; aspect-ratio: 16 / 9; height: auto;"></iframe>
|
||
<h2 id="can-you-tell-us-a-little-bit-about-your-project">Can you tell us a little bit about your project?</h2>
|
||
<p><strong class="julien">Julien:</strong>
|
||
For this year the Blender Studio, which is the in-house art department of the Blender project, decided to focus on smaller short-term projects. We aimed for four months for each of them so I saw the unique chance to pitch a tiny game project. And the scope really had to be tiny to be able to pull off a game for the first time.</p>
|
||
<p>Dogwalk is a short, wholesome interactive story about a dog and a kid decorating a snowman together. One big focus was on wordless storytelling through reactive gameplay.
|
||
It’s not strictly about fun or overcoming challenges. It’s about allowing the player to shape and experience the relationship between the two characters, simply by constraining the player to a small set of mechanics and have the game react to what they do with that.</p>
|
||
<p><img src="/assets/showcase/dogwalk/dogwalk-1.jpg" alt="" /></p>
|
||
<h2 id="why-did-you-pick-godot-to-develop-this-project">Why did you pick Godot to develop this project?</h2>
|
||
<p><strong class="julien">Julien:</strong>
|
||
One of our primary missions (and constraints) is that we demonstrate how people can make entire movies by only using free open-source software. We call these “Open Projects” since we also licence them as open source and make the sources available.
|
||
So for a game project it seemed natural to use Godot for it. Personally I’m a fan of the engine and project, and was quite excited to be able to use it for a professional project in a team.</p>
|
||
<p>Every one of our projects also comes with some Blender-specific development targets. In this case we took a closer look at the export and import of glTF animations and assets. We created a pipeline for ourselves to stress-test the interoperability between Blender and Godot as much as our production scope allowed us.</p>
|
||
<p><img src="/assets/showcase/dogwalk/dogwalk-7.jpg" alt="" /></p>
|
||
<h2 id="how-did-the-project-compare-with-your-past-experiences-as-a-studio-who-usually-does-animation-movies-rather-than-games">How did the project compare with your past experiences as a studio who usually does animation movies rather than games?</h2>
|
||
<p><strong class="julien">Julien:</strong>
|
||
Pretty different. One big change is the shift from storyboarding/editorial to game prototyping/playtesting. In our film productions the story artists and animators would typically helm the project, but in this case I was doing it with an emphasis on development and design. It put us in very different shoes.</p>
|
||
<p>The animation and rigging workflow is also very different. Animators don’t have the usual fine level of control and instead need to playtest the game to see the animations applied in action. We were also not used to rigging for export and game engines in mind, so we made some mistakes on that side that needed creative problem solving later on.</p>
|
||
<p>But the biggest hurdle was to have the entire art team use Git LFS for version control. That was … quite a journey.</p>
|
||
<h2 id="how-did-you-find-the-current-export-pipeline-from-blender-to-godot">How did you find the current export pipeline from Blender to Godot?</h2>
|
||
<p><strong class="simon">Simon:</strong>
|
||
We were quite impressed immediately with how seamless the base level compatibility was. As an initial test we had built a demo environment in Blender and exported it as one big glTF to throw it in Godot. Everything just worked. That’s definitely nothing to scoff at.
|
||
Of course, we had a more refined pipeline setup in mind that would allow us to collaborate and iterate on assets and sets from within Blender.
|
||
But the extensible ecosystem of Godot and using glTF made it possible for us to hook up anywhere in the process and inject our own functionality. Coming in from outside, I was really quite surprised how powerful our available options are without a core understanding of how the engine works.</p>
|
||
<h2 id="were-there-any-quirks-with-the-way-the-material-rendering-and-animations-were-converted-from-blender-to-godot">Were there any quirks with the way the material rendering and animations were converted from Blender to Godot?</h2>
|
||
<p><strong class="simon">Simon:</strong>
|
||
We actually ran into a couple of issues with our stop motion animation style, which apparently seems to not be very common for game animation. So both on the export and the import level there were some parts that made assumptions over keyframe interpolation causing some obscure issues that took quite some investigation. But now those are all resolved.
|
||
Since Godot was always our target for rendering, there were some shader features that we didn’t replicate for the preview that we had in Blender. That’s mainly the fake paper thickness, for which we had two separate effects. But since the effects are so subtle, it wasn’t really required for the asset creation process.
|
||
We’re also not used to having to make drastic cuts due to performance, coming from usually doing offline rendering. So there were some rendering features that we had to disable and replace with some clever lighting cheats to save the frames.</p>
|
||
<p><img src="/assets/showcase/dogwalk/dogwalk-8.jpg" alt="" /></p>
|
||
<h2 id="are-there-suggestions-for-improvement-in-this-context">Are there suggestions for improvement in this context?</h2>
|
||
<p><strong class="simon">Simon:</strong>
|
||
Most of the things we ran into, we reported right away and they have already been fixed. It’s been great to see how actively the Godot community has been responding to the issues we found.
|
||
There have been some other more big-picture issues that we ran into when collaborating as a team and using versioning. This mainly relates to UIDs and caching going out of sync.
|
||
Since these issues are usually complex and relate to our pipeline and people’s individual systems, these were a bit more tricky to identify and report. Especially with the additional burden of our art team using git for the first time, it wasn’t always clear what were issues that were actually caused by Godot.
|
||
I really hope that we can find the time to sit together with some Blender and Godot developers to see what we can collectively take away from these issues and potentially change to make sure collaborating as a team using Blender and Godot is a smooth process.</p>
|
||
<h2 id="while-making-your-game-were-there-any-features-that-were-sorely-missing-in-blender-or-in-godot">While making your game, were there any features that were sorely missing in Blender or in Godot?</h2>
|
||
<p><strong class="julien">Julien:</strong>
|
||
Nothing that couldn’t be added manually or fixed with workarounds.
|
||
With one of the main gameplay and visual elements being the leash, sadly there was no Line3D node. But luckily the community had a <a href="https://github.com/CozyCubeGames/godot-lines-and-trails-3d">handy plugin</a> to immediately fill in that gap.
|
||
We also ran into some limitations with our animation system, but that <a href="https://github.com/godotengine/godot/pull/102398#issuecomment-2949711987">will be fixed in the upcoming 4.5 release</a>.</p>
|
||
<p><img src="/assets/showcase/dogwalk/dogwalk-4.jpg" alt="" /></p>
|
||
<hr />
|
||
<p>Thank you very much Julien and Simon for taking the time to answer our questions, and we look forward to see what you do next with Godot!</p>
|
||
<p>If you want to play Dogwalk, it is free and already out on <a href="https://store.steampowered.com/app/3775050/DOGWALK/">Steam</a>, and <a href="https://blenderstudio.itch.io/dogwalk">Itch.io</a>. Make sure to get the supporter DLC on Steam, donate via Itch, or subscribe to Blender Studio if you are interested in seeing more projects like this in the future.</p></content><author><name>Emi</name></author><category term="Showcase"/></entry></feed> |