mirror of
https://github.com/godotengine/godot-website.git
synced 2026-01-05 10:10:00 +03:00
20 lines
39 KiB
HTML
20 lines
39 KiB
HTML
<!doctype html><html lang=en><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=author content="Godot Engine"><meta name=description content="The cool chill of the feature freeze approaches…"><script defer data-domain=godotengine.org src=https://plausible.godot.foundation/js/script.file-downloads.outbound-links.js></script><meta property="og:site_name" content="Godot Engine"><meta property="og:url" content="https://godotengine.org/article/dev-snapshot-godot-4-5-dev-5/"><meta property="og:type" content="website"><meta property="og:description" content="The cool chill of the feature freeze approaches…"><meta property="og:image" content="https://godotengine.org/storage/blog/covers/dev-snapshot-godot-4-5-dev-5.webp"><meta name=twitter:card content="summary_large_image"><meta property="twitter:domain" content="godotengine.org"><meta property="twitter:url" content="https://godotengine.org/article/dev-snapshot-godot-4-5-dev-5/"><meta property="og:title" content="Dev snapshot: Godot 4.5 dev 5 – Godot Engine"><title>Dev snapshot: Godot 4.5 dev 5 – Godot Engine</title>
|
||
<link rel=alternate type=application/rss+xml title="Godot News" href=/rss.xml><link rel=alternate type=application/json title="Godot News" href=/rss.json><link rel=alternate type=application/atom+xml title="Godot News" href=/atom.xml><link rel=icon href=/assets/favicon.png sizes=any><link rel=icon href=/assets/favicon.svg type=image/svg+xml><link rel=stylesheet href=/assets/css/main.css?121><link rel=stylesheet href=/assets/css/header.css?1><link rel=stylesheet href=/assets/css/tobii.min.css><link rel=preload as=font href=/assets/fonts/Montserrat-Italic-VariableFont_wght.woff2 crossorigin><link rel=preload as=font href=/assets/fonts/Montserrat-VariableFont_wght.woff2 crossorigin><link rel=me href=https://mastodon.gamedev.place/@godotengine><input type=checkbox id=nav_toggle_cb><header class="flex column"><div class="container flex align-center"><div id=nav_head><a href=/ id=logo-link><img class=nav-logo src=/assets/logo.svg width=136 height=48 alt="Godot Engine">
|
||
<img class="nav-logo dark-logo" src=/assets/logo_dark.svg width=136 height=48 alt="Godot Engine"></a><div class=mobile-links><span class="fund mobile"><a href=https://fund.godotengine.org><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width:13px;fill:#fff;margin-right:4px"><path d="M47.6 300.4 228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6.0 115.2.0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg> Donate</a></span>
|
||
<label for=nav_toggle_cb id=nav_toggle_btn><img src=/assets/icons/hamburger.svg width=24 height=24 alt="Main menu"></label></div></div><nav id=nav><ul class=left><li><a href=/features/>Features</a><li><a href=/showcase/>Showcase</a><li><a href=/blog/>Blog</a><li><a href=/community/>Community</a><li><a href=https://godotengine.org/asset-library/asset>Assets</a></ul><ul class=right><li><a href=/download/windows/ class=set-os-download-url>Download</a><li><a href=https://docs.godotengine.org>Docs</a><li><a href=https://docs.godotengine.org/en/stable/contributing/how_to_contribute.html>Contribute</a><li class="fund desktop"><a href=https://fund.godotengine.org><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width:13px;fill:#fff;margin-right:4px;top:1px;position:relative"><path d="M47.6 300.4 228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6.0 115.2.0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/></svg> Donate</a></ul></nav></div></header><script>document.addEventListener("click",function(e){const t=document.querySelector(".language-selector");if(!t)return;t.contains(e.target)||t.classList.remove("open")});function setLanguagePreference(e,t){e.preventDefault();const s=t.getAttribute("data-lang-path"),o=t.getAttribute("data-lang"),n=new Date;n.setDate(n.getDate()+365),document.cookie=`preferred_language=${o}; expires=${n.toUTCString()}; path=/; SameSite=Lax`,window.location.href=s}</script><main><style>body{background-color:var(--background-color)}h1{margin-bottom:8px;margin-top:32px}:not(pre)>code{background:var(--code-background-color);padding:1px 4px;font-size:.95em;border-radius:3px}pre{background:var(--codeblock-background-color);color:var(--codeblock-color)}pre code{display:block;overflow-x:auto;padding:.5em}.date-big{line-height:2;margin-left:32px}article{background-color:var(--base-color);box-shadow:0 3px 2px rgba(0,0,0,.15)}figure{margin:0}figure img{margin:0}article img,article video{max-width:100%;height:auto;display:block;margin:auto;margin-top:16px;margin-bottom:16px}article h1{margin-top:64px}article h2,article h3,article h4{margin-top:42px}.article-info{display:flex;flex-direction:column;gap:8px}.article-metadata{display:flex;gap:24px;align-items:center;font-family:var(--header-font-family);margin-bottom:12px}@media(max-width:900px){.article-metadata{flex-direction:column;align-items:flex-start;gap:16px}}.article-author{color:var(--base-color-text-subtitle-date);font-weight:700;font-size:18px;flex-grow:1;display:flex;gap:12px;align-items:center}.article-author .avatar{border-radius:100%;margin:0;background:0 0}.article-author .by{color:var(--base-color-text-subtitle)}.article-metadata .date{color:var(--base-color-text-subtitle-date)}.article-metadata .date.post-recent-highlight{color:var(--post-recent-highlight-color);opacity:.8}.article-metadata .date.post-recent-highlight::after{font-size:80%;content:"NEW";border:2px solid var(--post-recent-highlight-color);padding:2px 3px;margin-left:8px}.tag.active{filter:saturate(.75)}@media screen and (min-width:900px){article .content{width:70%;margin:auto}}@media(max-width:900px){body{background-color:var(--base-color)}article{background-color:initial;box-shadow:none}article img:first-child,article video:first-child{max-width:100%}}.blog-navigation{display:grid;grid-template-columns:1fr 1fr;padding-top:30px;padding-bottom:60px}.blog-navigation .next{text-align:right}@media(max-width:900px){.blog-navigation{grid-template-columns:1fr;gap:20px;border-top:1px solid var(--code-background-color)}.blog-navigation .next{text-align:left}}.blog-navigation span{opacity:.6;font-weight:700;margin-bottom:5px;display:block}.blog-navigation a{display:inline-block;text-decoration:none;color:inherit;opacity:.6;transition:opacity .2s}.blog-navigation a:hover{opacity:1}</style><link rel=stylesheet href=/assets/css/highlight.obsidian.min.css><div class=container><article class=padded><div class="content article-container"><figure class=article-cover><figcaption><strong>Replicube</strong>
|
||
<span style=margin-left:.75rem;font-size:90%>A game by Walaber Entertainment LLC</span></figcaption><img src=/storage/blog/covers/dev-snapshot-godot-4-5-dev-5.webp title=Replicube alt="Replicube A game by Walaber Entertainment LLC" class=rounded-lg style=width:100%;height:auto;background-color:initial></figure><div class=article-info><h1>Dev snapshot: Godot 4.5 dev 5</h1><div class=article-metadata><div class=article-author><span>By: </span><img class=avatar width=25 height=25 src=/assets/images/authors/repiteo.jpg alt="Thaddeus Crews" loading=lazy>
|
||
<span class=by>Thaddeus Crews</span></div><span class=date data-post-date="2025-06-02 12:00:00 +0000">2 June 2025</span></div><div class=tags><a href=/blog/pre-release><div class="tag active">Pre-release</div></a></div></div><div class=article-body><p>Brrr… Do you feel that? That’s the cold front of the feature freeze just around the corner. It’s not upon us <em>just</em> yet, but this is likely to be our final development snapshot of the 4.5 release cycle. As we enter the home stretch of new features, bugs are naturally going to follow suit, meaning bug reports and feedback will be especially important for a smooth beta timeframe.<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 <a href=https://editor.godotengine.org/releases/4.5.dev5/>try the <strong>Web editor</strong></a> or the <strong>Android editor</strong> 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.<hr><p><em>The cover illustration is from</em> <a href=https://www.walaber.com/replicube><strong>Replicube</strong></a>, <em>a programming puzzle game where you write code to recreate voxelized objects. It is developed by <a href=https://www.walaber.com/>Walaber Entertainment LLC</a> (<a href=https://bsky.app/profile/walaber.com>Bluesky</a>, <a href=https://twitter.com/walaber>Twitter</a>). You can get the game on <a href="https://store.steampowered.com/app/3401490/Replicube/?curator_clanid=41324400">Steam</a>.</em><h2 id=highlights>Highlights</h2><p>In case you missed them, see the <a href=/article/dev-snapshot-godot-4-5-dev-1/>4.5 dev 1</a>, <a href=/article/dev-snapshot-godot-4-5-dev-2/>4.5 dev 2</a>, <a href=/article/dev-snapshot-godot-4-5-dev-3/>4.5 dev 3</a>, and <a href=/article/dev-snapshot-godot-4-5-dev-4/>4.5 dev 4</a> release notes for an overview of some key features which were already in those snapshots, and are therefore still available for testing in dev 5.<h3 id=native-visionos-support>Native visionOS support</h3><p>Normally, our featured highlights in these development blogs come from long-time contributors. This makes sense of course, as it’s generally those users that have the familiarity necessary for major changes or additions that are commonly used for these highlights. That’s why it might surprise you to hear that visionOS support comes to us from <a href=https://github.com/rsanchezsaez>Ricardo Sanchez-Saez</a>, whose pull request <a href=https://github.com/godotengine/godot/pull/105628>GH-105628</a> is his <em>very first</em> contribution to the engine! It might <em>not</em> surprise you to hear that Ricardo is part of the visionOS engineering team at Apple, which certainly helps get his foot in the door, but that still makes visionOS the first officially-supported platform integration in about a decade.<p>For those unfamiliar, visionOS is Apple’s XR environment. We’re no strangers to XR as a concept (see our recent <a href=/article/godot-xr-update-mar-2025/>XR blogpost</a> highlighting the latest <a href=https://itch.io/jam/godot-xr-game-jam-feb-2025>Godot XR Game Jam</a>), but XR platforms are as distinct from one another as traditional platforms. visionOS users have expressed a strong interest in integrating with our ever-growing XR community, and now we can make that happen. See you all in the next XR Game Jam!<h3 id=gdscript-abstract-classes>GDScript: Abstract classes</h3><p>While the Godot Engine utilizes abstract classes—a class that cannot be directly instantiated—frequently, this was only ever supported internally. Thanks to the efforts of <a href=https://github.com/aaronfranke>Aaron Franke</a>, this paradigm is now available to GDScript users (<a href=https://github.com/godotengine/godot/pull/67777>GH-67777</a>). Now if a user wants to introduce their own abstract class, they merely need to declare it via the new <code class="language-plaintext highlighter-rouge">abstract</code> keyword:<div class="language-gdscript highlighter-rouge"><div class=highlight><pre class=highlight><code><span class=n>abstract</span> <span class=k>class_name</span> <span class=n>MyAbstract</span> <span class=k>extends</span> <span class=n>Node</span>
|
||
</code></pre></div></div><p><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/abstract-error.webp alt="Abstract error"><p>The purpose of an abstract class is to create a baseline for other classes to derive from:<div class="language-gdscript highlighter-rouge"><div class=highlight><pre class=highlight><code><span class=k>class_name</span> <span class=n>ExtendsMyAbstract</span> <span class=k>extends</span> <span class=n>MyAbstract</span>
|
||
</code></pre></div></div><p><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/abstract-derived.webp alt="Abstract derived"><h3 id=shader-baker>Shader baker</h3><p>From the technical gurus behind implementing <a href=/article/dev-snapshot-godot-4-4-dev-4/#ubershaders-and-pipeline-pre-compilation-and-dedicated-transfer-queues>ubershaders</a>, <a href=https://github.com/DarioSamo>Darío Samo</a> and <a href=https://github.com/RandomShaper>Pedro J. Estébanez</a> bring us another miracle of rendering via <a href=https://github.com/godotengine/godot/pull/102552>GH-102552</a>: shader baker exporting. This is an optional feature that can be enabled at export time to speed up shader compilation massively. This feature works with ubershaders automatically without any work from the user. Using shader baking is strongly recommended when targeting Apple devices or D3D12 since it makes the biggest difference there (over <strong>20× decrease</strong> in load times in the TPS demo)!<p><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/shader-baker.webp alt="Shader baker"><p><strong>Before:</strong></p><video autoplay loop muted playsinline>
|
||
<source src=/storage/blog/dev-snapshot-godot-4-5-dev-5/shader-baker-before.webm?1 type=video/webm></video><p><strong>After:</strong></p><video autoplay loop muted playsinline>
|
||
<source src=/storage/blog/dev-snapshot-godot-4-5-dev-5/shader-baker-after.webm?1 type=video/webm></video><p>However, it comes with tradeoffs:<ol><li>Export time will be much longer.<li>Build size will be much larger since the baked shaders can take up a lot of space.<li>We have removed several MoltenVK bug workarounds from the Forward+ shader, therefore we no longer guarantee support for the Forward+ renderer on Intel Macs. If you are targeting Intel Macs, you should use the Mobile or Compatibility renderers.<li>Baking for Vulkan can be done from any device, but baking for D3D12 needs to be done from a Windows device and baking for Apple <code class="language-plaintext highlighter-rouge">.metallib</code> requires a Metal compiler (macOS with Xcode / Command Line Tools installed).</ol><h3 id=web-webassembly-simd-support>Web: WebAssembly SIMD support</h3><p>As you might recall, Godot 4.0 initially released under the assumption that multi-threaded web support would become the standard, and only supported that format for web builds. This assumption unfortunately proved to be wishful thinking, and was <a href=/article/dev-snapshot-godot-4-3-dev-3/#single-threaded-web-exports>reverted in 4.3</a> by allowing for single-threaded builds once more. However, this doesn’t mean that these single-threaded environments are inherently incapable of parallel processing; it just requires alternative implementations. One such implementation, <abbr title="Single instruction, multiple data"><a href=https://en.wikipedia.org/wiki/Single_instruction,_multiple_data>SIMD</a></abbr>, is a perfect candidate thanks to its support across <a href=https://caniuse.com/wasm-simd>all major browsers</a>. To that end, web-wiz <a href=https://github.com/adamscott>Adam Scott</a> has taken to integrating this implementation for our web builds by default (<a href=https://github.com/godotengine/godot/pull/106319>GH-106319</a>).<h3 id=inline-color-pickers>Inline color pickers</h3><p>While it’s always been possible to see what kind of variable is assigned to an exported color in the inspector, some users have expressed a keen interest in allowing for this functionality within the script editor itself. This is because it would mean seeing what kind of color is represented by a variable without it needing to be exposed, as well as making it more intuitive at a glance as to what color a name or code corresponds to. <a href=https://github.com/dugramen>Koliur Rahman</a> has blessed us with this quality-of-life goodness, which adds an inline color picker <a href=https://github.com/godotengine/godot/pull/105724>GH-105724</a>. Now no matter where the color is declared, users will be able to immediately and intuitively know what is actually represented in a non-intrusive manner.<p><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/inline-color-picker.webp alt="Inline color picker"><h3 id=rendering-goodies>Rendering goodies</h3><p>The renderer got a fair amount of love this snapshot; not from any one PR, but rather a multitude of community members bringing some long-awaited features to light. <a href=https://github.com/RGDTAB>Raymond DiDonato</a> helped SMAA 1x make its transition from addon to fully-fledged engine feature (<a href=https://github.com/godotengine/godot/pull/102330>GH-102330</a>). <a href=https://github.com/LunaCapra>Capry</a> brings bent normal maps to further enhance specular occlusion and indirect lighting (<a href=https://github.com/godotengine/godot/pull/89988>GH-89988</a>). Our very own <a href=https://github.com/clayjohn>Clay John</a> converted our Compatibility backend to use a fragment shader copy instead of a blit copy, working around common sample rate issues on mobile devices (<a href=https://github.com/godotengine/godot/pull/106267>GH-106267</a>). More technical information on these rendering changes can be found in their associated PRs.<p><strong>SMAA comparison:</strong><table><thead><tr><th style=text-align:center>Off<th style=text-align:center>On<tbody><tr><td style=text-align:center><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/smaa-off-1.webp alt="SMAA off 1" width=350><td style=text-align:center><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/smaa-on-1.webp alt="SMAA on 1" width=350><tr><td style=text-align:center><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/smaa-off-2.webp alt="SMAA off 2" width=350><td style=text-align:center><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/smaa-on-2.webp alt="SMAA on 2" width=350></table><p><strong>Bent normal map comparison:</strong><table><thead><tr><th style=text-align:center>Before<th style=text-align:center>After<tbody><tr><td style=text-align:center><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-before-1.webp alt="Bent normals before 1" width=350><td style=text-align:center><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-after-1.webp alt="Bent normals after 1" width=350><tr><td style=text-align:center><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-before-2.webp alt="Bent normals before 2" width=350><td style=text-align:center><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-after-2.webp alt="Bent normals after 2" width=350><tr><td style=text-align:center><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-before-3.webp alt="Bent normals before 3" width=350><td style=text-align:center><img src=/storage/blog/dev-snapshot-godot-4-5-dev-5/bent-normals-after-3.webp alt="Bent normals after 3" width=350></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:<ul><li>Animation: Add alphabetical sorting to Animation Player (<a href=https://github.com/godotengine/godot/pull/103584>GH-103584</a>).<li>Animation: Add animation filtering to animation editor (<a href=https://github.com/godotengine/godot/pull/103130>GH-103130</a>).<li>Audio: Implement seek operation for Theora video files, improve multi-channel audio resampling (<a href=https://github.com/godotengine/godot/pull/102360>GH-102360</a>).<li>Core: Add <code class="language-plaintext highlighter-rouge">--scene</code> command line argument (<a href=https://github.com/godotengine/godot/pull/105302>GH-105302</a>).<li>Core: Overhaul resource duplication (<a href=https://github.com/godotengine/godot/pull/100673>GH-100673</a>).<li>Core: Use Grisu2 algorithm in <code class="language-plaintext highlighter-rouge">String::num_scientific</code> to fix serializing (<a href=https://github.com/godotengine/godot/pull/98750>GH-98750</a>).<li>Editor: Add “Quick Load” button to <code class="language-plaintext highlighter-rouge">EditorResourcePicker</code> (<a href=https://github.com/godotengine/godot/pull/104490>GH-104490</a>).<li>Editor: Add <code class="language-plaintext highlighter-rouge">PROPERTY_HINT_INPUT_NAME</code> for use with <code class="language-plaintext highlighter-rouge">@export_custom</code> to allow using input actions (<a href=https://github.com/godotengine/godot/pull/96611>GH-96611</a>).<li>Editor: Add named <code class="language-plaintext highlighter-rouge">EditorScript</code>s to the command palette (<a href=https://github.com/godotengine/godot/pull/99318>GH-99318</a>).<li>GUI: Add file sort to FileDialog (<a href=https://github.com/godotengine/godot/pull/105723>GH-105723</a>).<li>I18n: Add translation preview in editor (<a href=https://github.com/godotengine/godot/pull/96921>GH-96921</a>).<li>Import: Add Channel Remap settings to <code class="language-plaintext highlighter-rouge">ResourceImporterTexture</code> (<a href=https://github.com/godotengine/godot/pull/99676>GH-99676</a>).<li>Physics: Improve performance with non-monitoring areas when using Jolt Physics (<a href=https://github.com/godotengine/godot/pull/106490>GH-106490</a>).<li>Porting: Android: Add export option for custom theme attributes (<a href=https://github.com/godotengine/godot/pull/106724>GH-106724</a>).<li>Porting: Android: Add support for 16 KB page sizes, update to NDK r28b (<a href=https://github.com/godotengine/godot/pull/106358>GH-106358</a>).<li>Porting: Android: Remove the <code class="language-plaintext highlighter-rouge">gradle_build/compress_native_libraries</code> export option (<a href=https://github.com/godotengine/godot/pull/106359>GH-106359</a>).<li>Porting: Web: Use actual <code class="language-plaintext highlighter-rouge">PThread</code> pool size for <code class="language-plaintext highlighter-rouge">get_default_thread_pool_size()</code> (<a href=https://github.com/godotengine/godot/pull/104458>GH-104458</a>).<li>Porting: Windows/macOS/Linux: Use SSE 4.2 as a baseline when compiling Godot (<a href=https://github.com/godotengine/godot/pull/59595>GH-59595</a>).<li>Rendering: Add new StandardMaterial properties to allow users to control FPS-style objects (hands, weapons, tools close to the camera) (<a href=https://github.com/godotengine/godot/pull/93142>GH-93142</a>).<li>Rendering: FTI - Optimize <code class="language-plaintext highlighter-rouge">SceneTree</code> traversal (<a href=https://github.com/godotengine/godot/pull/106244>GH-106244</a>).</ul><h2 id=changelog>Changelog</h2><p><strong>109 contributors</strong> submitted <strong>252 fixes</strong> for this release. See our <a href=https://godotengine.github.io/godot-interactive-changelog/#4.5-dev5><strong>interactive changelog</strong></a> for the complete list of changes since the previous 4.5-dev4 snapshot.<p>This release is built from commit <a href=https://github.com/godotengine/godot/commit/64b09905c7b2877f8aef99d8b63e73e5d31acfb9><code class="language-plaintext highlighter-rouge">64b09905c</code></a>.<h2 id=downloads>Downloads</h2><div class="card card-download"><a class=card-download-link href=/download/archive/4.5-dev5>Download Godot 4.5 dev5</a><div class=card-download-details><img class=lightbox-ignore src=/storage/blog/covers/dev-snapshot-godot-4-5-dev-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://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_linux.x86_64.zip class="btn btn-download btn-download-primary platform-linux"><div class=download-title>Standard</div></a><a href=https://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_mono_linux_x86_64.zip class="btn btn-download btn-download-primary btn-download-primary--mono platform-linux"><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://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_macos.universal.zip class="btn btn-download btn-download-primary platform-macos"><div class=download-title>Standard</div></a><a href=https://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_mono_macos.universal.zip class="btn btn-download btn-download-primary btn-download-primary--mono platform-macos"><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://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_win64.exe.zip class="btn btn-download btn-download-primary platform-windows"><div class=download-title>Standard</div></a><a href=https://github.com/godotengine/godot-builds/releases/download/4.5-dev5/Godot_v4.5-dev5_mono_win64.zip class="btn btn-download btn-download-primary btn-download-primary--mono platform-windows"><div class=download-title>.NET</div></a></div></div><div class=card-download-sublinks><a class=card-download-other href=/download/archive/4.5-dev5>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,.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%,.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{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}.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:0 0!important}@media(prefers-color-scheme:light){.btn-close-thankyou-popup img{filter:invert(1);opacity:.75}}</style><script>document.addEventListener("DOMContentLoaded",()=>{const e=document.getElementById("thank-you");e.addEventListener("click",t=>{t.target===e&&(e.style.display="none")});const t=document.querySelector(".btn-close-thankyou-popup");t.addEventListener("click",()=>{e.style.display="none"});const n=document.querySelectorAll(".btn-download, .download-button");n.forEach(t=>{if(t.dataset?.external==="yes")return;t.addEventListener("click",()=>{e.style.display="",document.querySelector(".btn.btn-donate").focus()})});const s=document.querySelectorAll(".download-link");s.forEach(t=>{t.addEventListener("click",()=>{e.style.display=""})}),document.addEventListener("keydown",t=>{t.key==="Escape"&&(e.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><strong>.NET build</strong> (marked as <code class="language-plaintext highlighter-rouge">mono</code>) includes support for C#, as well as GDScript and GDExtension.<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.</div><h2 id=known-issues>Known issues</h2><ul><li>Windows executables (both the editor and export templates) have been signed with an expired certificate. You may see warnings from Windows Defender’s SmartScreen when running this version, or outright be prevented from running the executables with a double-click (<a href=https://github.com/godotengine/godot/issues/106373>GH-106373</a>). Running Godot from the command line can circumvent this. We will soon have a renewed certificate which will be used for future builds.</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>.<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>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).<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>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><a class=btn href=https://fund.godotengine.org/>Donate now</a></div></div></article><div class=blog-navigation><div class=previous><span>Previous</span>
|
||
<a rel=prev href=/article/dev-snapshot-godot-4-5-dev-4/>Dev snapshot: Godot 4.5 dev 4</a></div></div></div><link rel=stylesheet href=/assets/css/anchor-link.css?1><link rel=stylesheet href=/assets/css/article-cards.css?3><script src=/assets/js/anchor-link.js></script><script>document.addEventListener("DOMContentLoaded",()=>{window.applyAnchorLinks(".article-body"),document.querySelectorAll(".article-cover img, .article-body img").forEach(e=>{if(e.classList.contains("lightbox-ignore"))return;const t=document.createElement("a");t.href=e.src,t.classList.add("lightbox"),t.dataset.group="article",e.parentNode.appendChild(t),t.appendChild(e)})})</script></main><footer class=footer-global><div class=wrapper><div class=columns><div class=col><h2>Godot Engine</h2><ul><li><a class=set-os-download-url href=/download>Download</a><li><a href=https://docs.godotengine.org>Documentation</a><li><a href=/features/>Features</a><li><a href=https://editor.godotengine.org/releases/latest/>Web editor</a><li><a href=/download/archive/>Release archive</a><li><a href=https://github.com/godotengine>Source code</a></ul></div><div class=col><h2>Project</h2><ul><li><a href=/blog/>Blog</a><li><a href=/code-of-conduct/>Code of conduct</a><li><a href=/governance/>Governance</a><li><a href=/teams/>Teams</a><li><a href=/priorities/>Priorities</a><li><a href=/community/>Communities</a></ul></div><div class=col><h2>Resources</h2><ul><li><a href=https://godotengine.org/asset-library/asset>Asset library</a><li><a href=/press/>Press kit</a><li><a href=/showcase/>Showcase</a><li><a href=/education/>Education</a></ul></div><div class=col><h2>Foundation</h2><ul><li><a href=https://godot.foundation/>About</a><li><a href=https://fund.godotengine.org>Donate</a><li><a href=/license/>License</a><li><a href=/privacy-policy/>Privacy policy</a><li><a href=/contact/>Contact us</a></ul></div></div><hr><div class=credits-and-socials><p>© 2007-2025 Juan Linietsky, Ariel Manzur and <a href=https://github.com/godotengine/godot/blob/master/AUTHORS.md target=_blank rel=noopener>contributors</a>. Hosted by the <a href=https://godot.foundation/ target=_blank rel=noopener>Godot Foundation</a>. Website <a href=https://github.com/godotengine/godot-website target=_blank rel=noopener>source code on GitHub</a>.<div class=social><a href=https://github.com/godotengine target=_blank rel=noopener title=GitHub><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6.0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6.0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3.0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1.0-6.2-.3-40.4-.3-61.4.0.0-70 15-84.7-29.8.0.0-11.4-29.1-27.8-36.6.0.0-22.9-15.7 1.6-15.4.0.0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5.0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9.0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4.0 33.7-.3 75.4-.3 83.6.0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6.0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9.0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
|
||
</a><a href=https://bsky.app/profile/godotengine.org target=_blank rel=noopener title=Bluesky><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M407.8 294.7c-3.3-.4-6.7-.8-10-1.3 3.4.4 6.7.9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3 61.6-9.4 37.5-1.7 21.6 5.5 3.3 13.8.0 41.9.0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7 3.3-.5 6.6-.9 10-1.4-3.3.5-6.6 1-10 1.4-93.9 14-177.3 48.2-67.9 169.9C220.6 589.1 265.1 437.8 288 361.1c22.9 76.7 49.2 222.5 185.6 103.4 102.4-103.4 28.1-156-65.8-169.9-3.3-.4-6.7-.8-10-1.3 3.4.4 6.7.9 10 1.3 64.1 7.1 133.6-15.1 153.2-80.7C566.9 194 576 75 576 58.4s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8C385.1 81.9 314.1 176.4 288 227.1z"/></svg>
|
||
</a><a href=https://mastodon.gamedev.place/@godotengine target=_blank rel=noopener title=Mastodon><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M433 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.6-28.4-290.5.0.0.0-63.7 28.5-63.7 125.7.0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54a102.5 102.5.0 01-.9-13.9c85.6 20.9 158.7 9.1 178.8 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5H201V197c0-58.5-64-56.6-64-6.9v114.2H90.2c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"/></svg>
|
||
</a><a href=https://discord.gg/godotengine target=_blank rel=noopener title=Discord><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M524.5 69.8a1.5 1.5.0 00-.8-.7A485.1 485.1.0 00404.1 32a1.8 1.8.0 00-1.9.9 337.5 337.5.0 00-14.9 30.6 447.8 447.8.0 00-134.4.0 309.5 309.5.0 00-15.1-30.6 1.9 1.9.0 00-1.9-.9A483.7 483.7.0 00116.1 69.1a1.7 1.7.0 00-.8.7C39.1 183.7 18.2 294.7 28.4 404.4a2 2 0 00.8 1.4A487.7 487.7.0 00176 479.9a1.9 1.9.0 002.1-.7 348.2 348.2.0 0030-48.8 1.9 1.9.0 00-1-2.6 321.2 321.2.0 01-45.9-21.9 1.9 1.9.0 01-.2-3.1c3.1-2.3 6.2-4.7 9.1-7.1a1.8 1.8.0 011.9-.3c96.2 43.9 200.4 43.9 295.5.0a1.8 1.8.0 011.9.2c2.9 2.4 6 4.9 9.1 7.2a1.9 1.9.0 01-.2 3.1 301.4 301.4.0 01-45.9 21.8 1.9 1.9.0 00-1 2.6 391.1 391.1.0 0030 48.8 1.9 1.9.0 002.1.7 486 486 0 00147.2-74.1 1.9 1.9.0 00.8-1.4c12.2-126.7-20.6-236.8-87-334.5zm-302 267.8c-29 0-52.8-26.6-52.8-59.2s23.4-59.3 52.8-59.3c29.7.0 53.3 26.8 52.8 59.2.0 32.7-23.4 59.3-52.8 59.3zm195.4.0c-29 0-52.8-26.6-52.8-59.2s23.3-59.3 52.8-59.3c29.7.0 53.3 26.8 52.8 59.2.0 32.7-23.2 59.3-52.8 59.3z"/></svg>
|
||
</a><a href=https://www.reddit.com/r/godot title=Reddit target=_blank rel=noopener><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 256C0 114.6 114.6.0 256 0S512 114.6 512 256 397.4 512 256 512H37.1c-13.7.0-20.5-16.5-10.9-26.2L75 437C28.7 390.7.0 326.7.0 256zM349.6 153.6c23.6.0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6.0-37.8 14.6-41.8 34-34.5 3.7-61.4 33-61.4 68.4v.2c-37.5 1.6-71.8 12.3-99 29.1-10.1-7.8-22.8-12.5-36.5-12.5-33 0-59.8 26.8-59.8 59.8.0 24 14.1 44.6 34.4 54.1 2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54 0-33-26.8-59.8-59.8-59.8-13.7.0-26.3 4.6-36.4 12.4-27.4-17-62.1-27.7-1e2-29.1v-.2c0-25.4 18.9-46.5 43.4-49.9 4.4 18.8 21.3 32.8 41.5 32.8zM177.1 246.9c16.7.0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6-31.4-8.8-30.4-30.5S160.3 247 177 247zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6c-1-21.7 11.8-39.3 28.5-39.3s31.2 16.6 32.1 38.3zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9.8-6.2 3.9-6.5 18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1.3 5.1 3.6 3.9 6.5z"/></svg>
|
||
</a><a href=/rss.xml title=RSS target=_blank rel=noopener><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M64 32C28.7 32 0 60.7.0 96V416c0 35.3 28.7 64 64 64h320c35.3.0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24 137 0 248 111 248 248 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-2e2-2e2-2e2-13.3.0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24 83.9.0 152 68.1 152 152 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104-13.3.0-24-10.7-24-24zm0 120a32 32 0 1164 0 32 32 0 11-64 0z"/></svg></a></div></div></div></footer><script defer src=/assets/js/localize.js?5></script><script defer src=/assets/js/tobii.min.js></script><script defer src=/assets/js/highlight.min.js?1></script><script defer src=/assets/js/highlight.gdscript.min.js?1></script><script>document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll("pre code").forEach(e=>{hljs.highlightBlock(e)}),document.querySelectorAll("[data-post-date]").forEach(e=>{Date.parse(e.dataset.postDate)>Date.now()-1e3*60*60*48&&e.classList.add("post-recent-highlight")}),new Tobii({zoom:!1});const e=document.querySelectorAll(".set-os-download-url");for(let n=0;n<e.length;n++){const s=e[n];let o="download";"version"in s.dataset&&s.dataset.version==="3"&&(o="download/3.x");let t="windows";navigator.platform.indexOf("Mac")!==-1?t="macos":navigator.userAgent.indexOf("Android")!==-1?t="android":navigator.platform.indexOf("Linux")!==-1&&(t="linux"),s.href=`/${o}/${t}/`}})</script> |