mirror of
https://github.com/godotengine/godot-website.git
synced 2026-01-04 06:09:55 +03:00
17 lines
33 KiB
HTML
17 lines
33 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="Here be dragons! First development snapshot for the upcoming Godot Engine 4.1 is available to early adopters and adventurous types."><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-1-dev-1/"><meta property="og:type" content="website"><meta property="og:description" content="Here be dragons! First development snapshot for the upcoming Godot Engine 4.1 is available to early adopters and adventurous types."><meta property="og:image" content="https://godotengine.org/storage/blog/covers/dev-snapshot-godot-4-1-dev-1.jpg"><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-1-dev-1/"><meta property="og:title" content="Dev snapshot: Godot 4.1 dev 1 – Godot Engine"><title>Dev snapshot: Godot 4.1 dev 1 – 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?6><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/ data-dropdown=features-dropdown>Features</a><li class=mobile-only><a href=/consoles/>Console support</a><li class=mobile-only><a href=/priorities/>Priorities</a><li><a href=/showcase/>Showcase</a><li><a href=/blog/>Blog</a><li><a href=/community/ data-dropdown=community-dropdown>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://contributing.godotengine.org/en/latest/organization/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><div class=nav-dropdown-menu id=features-dropdown><a href=/features/ class=touch-only>Features</a>
|
||
<a href=/consoles/>Console support</a>
|
||
<a href=/priorities/>Priorities</a></div><div class=nav-dropdown-menu id=community-dropdown><a href=/community/ class=touch-only>Community</a>
|
||
<a href=https://forum.godotengine.org>Forum</a>
|
||
<a href=/events/>Events</a></div><script>document.addEventListener("DOMContentLoaded",function(){const e=document.querySelectorAll("[data-dropdown]");e.forEach(e=>{const n=e.getAttribute("data-dropdown"),t=document.getElementById(n);if(t){let n=-1;const i=()=>{if(n===-1)return;clearTimeout(n),n=-1},a=()=>t.style.display==="block",r=()=>{if(a())return;if(window.innerWidth<1200)return;i();const n=e.getBoundingClientRect();t.style.top=n.bottom+"px",t.style.left=n.left+"px",t.style.display="block",e.classList.add("dropdown-open")},s=({instant:s=!1}={})=>{if(!a())return;const o=()=>{i(),t.style.display="none",e.classList.remove("dropdown-open")};if(s){o();return}n=setTimeout(o,100)},l=e=>{if(window.innerWidth<1200)return;e.preventDefault(),a()?s({instant:!0}):r()},c=e=>t=>{t.pointerType==="touch"&&e(t)},o=e=>t=>{t.pointerType!=="touch"&&e(t)};e.addEventListener("pointerup",c(e=>l(e))),document.documentElement.addEventListener("pointerup",c(n=>{!e.contains(n.target)&&!t.contains(n.target)&&s({instant:!0})})),e.addEventListener("pointerenter",o(e=>r())),e.addEventListener("pointerleave",o(e=>s())),t.addEventListener("pointerenter",o(e=>i())),t.addEventListener("pointerleave",o(e=>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>Aether's Edge</strong>
|
||
<span style=margin-left:.75rem;font-size:90%>A game by Ancient Stone Studios</span></figcaption><img src=/storage/blog/covers/dev-snapshot-godot-4-1-dev-1.jpg title="Aether's Edge" alt="Aether's Edge A game by Ancient Stone Studios" class=rounded-lg style=width:100%;height:auto;background-color:initial></figure><div class=article-info><h1>Dev snapshot: Godot 4.1 dev 1</h1><div class=article-metadata><div class=article-author><span>By: </span><img class=avatar width=25 height=25 src=/assets/images/authors/yuri.jpeg alt="Yuri Sizov" loading=lazy>
|
||
<span class=by>Yuri Sizov</span></div><span class=date data-post-date="2023-04-21 16:00:00 +0000">21 April 2023</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>As we have <a href=/article/release-management-4-1/>announced earlier this week</a> Godot development is ramping up and you can expect Godot Engine 4.1 to be stable before mid-Summer this year. Right now we are in the middle of the feature merging phase, with the main focus being on improving usability, performance, and the feature set of the engine based on <a href=https://github.com/godotengine/godot/issues>your feedback</a> and <a href=/article/rendering-priorities-4-1/>our prioritized plans</a>.<p>Many of you have told us how you enjoyed regular preview builds of the engine during the later stages of the Godot 4.0 development. And we have enjoyed getting quick responses, reports of new issues and regressions, and opinions about recently implemented features. So we are going to continue this practice going forward, and to start things off today we’re releasing the first dev snapshot of Godot 4.1.<p>Unlike our previous release cycles, 4.1-dev builds are an official part of the process, and you will receive new versions regularly leading up to the beginning of the testing phase and the first beta. Beware that these builds are not guaranteed to be stable or bug-free and may contain features that have only been lightly tested. Make sure to back up your work or, better yet, to use a version control system.<p>That’s enough for the introduction! <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 included changes.<p>You can also <a href=https://editor.godotengine.org/releases/4.1.dev1/>try the Web editor</a>.<p><em>The illustration picture for this article is from</em> <strong>Aether’s Edge</strong>, <em>a scenic open world game by <a href=https://twitter.com/AncientStoneSt>Ancient Stone Studios</a> currently being developed with Godot 4. Follow them on <a href=https://twitter.com/AncientStoneSt>Twitter</a> for updates and more beautiful work-in-progress screenshots and clips.</em><h2 id=whats-new>What’s new</h2><p>We now have a great <a href=https://godotengine.github.io/godot-interactive-changelog/#4.1-dev1>interactive changelog</a> you can use to review all 500 or so changes since Godot 4.0 more extensively, with convenient links to the relevant PRs on GitHub.<p>Here are some of the main changes you might be interested in:<ul><li>2D: Fix rendering odd-sized tiles (<a href=https://github.com/godotengine/godot/pull/74814>GH-74814</a>).<li>2D: Fix RemoteTransform2D could fail to update AnimatableBody2D’s position or rotation (<a href=https://github.com/godotengine/godot/pull/75487>GH-75487</a>).<li>2D: Optimize 2D Delaunay and make it more readable (<a href=https://github.com/godotengine/godot/pull/75805>GH-75805</a>).<li>Animation: Improve SpriteFrameEditor frame addition ordering (<a href=https://github.com/godotengine/godot/pull/68091>GH-68091</a>).<li>Animation: Add get_loops_left() function to Tween (<a href=https://github.com/godotengine/godot/pull/74454>GH-74454</a>).<li>Animation: Fix blend_shape (shapekey) empty name import (<a href=https://github.com/godotengine/godot/pull/75990>GH-75990</a>).<li>Audio: Fix AudioStreamPlayer2D crash when PhysicsServer2D runs on thread (<a href=https://github.com/godotengine/godot/pull/75728>GH-75728</a>).<li>Buildsystem: Fix the Python type error when creating the .sln file (<a href=https://github.com/godotengine/godot/pull/75309>GH-75309</a>).<li>Buildsystem: Fix forced optimization in dev_build (<a href=https://github.com/godotengine/godot/pull/75909>GH-75909</a>).<li>C#: Add fine-grained disabling of SourceGenerators (<a href=https://github.com/godotengine/godot/pull/71049>GH-71049</a>).<li>C#: Make include scripts contents an export option (<a href=https://github.com/godotengine/godot/pull/72896>GH-72896</a>).<li>C#: Discontinue <code class="language-plaintext highlighter-rouge">GodotNuGetFallbackFolder</code> (<a href=https://github.com/godotengine/godot/pull/73984>GH-73984</a>).<li>C#: Truncate instead of round in Vector2/3/4 to Vector2I/3I/4I conversion (<a href=https://github.com/godotengine/godot/pull/75477>GH-75477</a>).<li>Core: Complete support of callables of static methods (<a href=https://github.com/godotengine/godot/pull/71644>GH-71644</a>).<li>Core: Add a <code class="language-plaintext highlighter-rouge">String.hex_decode()</code> method to complement <code class="language-plaintext highlighter-rouge">PackedByteArray.hex_encode()</code> (<a href=https://github.com/godotengine/godot/pull/74463>GH-74463</a>).<li>Core: Fix invalid global position when read outside tree (<a href=https://github.com/godotengine/godot/pull/75509>GH-75509</a>).<li>Core: Optimize Node children management (<a href=https://github.com/godotengine/godot/pull/75627>GH-75627</a>).<li>Core: Deprecate NOTIFICATION_MOVED_IN_PARENT for NOTIFICATION_CHILD_ORDER_CHANGED (<a href=https://github.com/godotengine/godot/pull/75701>GH-75701</a>).<li>Core: Optimize Node::add_child validation (<a href=https://github.com/godotengine/godot/pull/75760>GH-75760</a>).<li>Core: Optimize Object::get_class_name (<a href=https://github.com/godotengine/godot/pull/75797>GH-75797</a>).<li>Editor: Make it easier to solve warnings/errors referring to project settings (<a href=https://github.com/godotengine/godot/pull/69324>GH-69324</a>).<li>Editor: Cache classes editor help (a.k.a. faster editor startup) (<a href=https://github.com/godotengine/godot/pull/72855>GH-72855</a>).<li>Editor: Fix typed array export (<a href=https://github.com/godotengine/godot/pull/73256>GH-73256</a>).<li>Editor: Reorganize context menu in FileSystem dock to put more used options higher (<a href=https://github.com/godotengine/godot/pull/73519>GH-73519</a>).<li>Editor: Prevent off-screen controls in editor (<a href=https://github.com/godotengine/godot/pull/73646>GH-73646</a>).<li>Editor: Properly remember snapping options per-project (<a href=https://github.com/godotengine/godot/pull/74682>GH-74682</a>).<li>Editor: Improve file move and copy operations (<a href=https://github.com/godotengine/godot/pull/75330>GH-75330</a>).<li>Editor: Improve editor state initialization (<a href=https://github.com/godotengine/godot/pull/75563>GH-75563</a>).<li>Editor: Add a list of all sub-resources used in the scene (<a href=https://github.com/godotengine/godot/pull/75661>GH-75661</a>).<li>Editor: Fix connect signal dialog not allowing Unicode method name (<a href=https://github.com/godotengine/godot/pull/75814>GH-75814</a>).<li>Editor: Display enum value descriptions in the editor inspector help tooltips (<a href=https://github.com/godotengine/godot/pull/76238>GH-76238</a>).<li>Export: Allow EditorExportPlugins to provide export options (<a href=https://github.com/godotengine/godot/pull/72895>GH-72895</a>).<li>Export: Add readable descriptions and validation warnings to the export options (<a href=https://github.com/godotengine/godot/pull/74644>GH-74644</a>).<li>GDExtension: Improve editor support for icons of custom, scripted, and GDExtension classes (<a href=https://github.com/godotengine/godot/pull/75472>GH-75472</a>).<li>GDScript: Fix access to identifiers that are reserved keywords (<a href=https://github.com/godotengine/godot/pull/62830>GH-62830</a>).<li>GDScript: Fix and improve annotation parsing (<a href=https://github.com/godotengine/godot/pull/72979>GH-72979</a>).<li>GDScript: Fix missing warning for shadowing of built-in types (<a href=https://github.com/godotengine/godot/pull/74842>GH-74842</a>).<li>GDScript: Misc fixes and improvements for signature generation (<a href=https://github.com/godotengine/godot/pull/75691>GH-75691</a>).<li>GDScript: Fix typo in parse function parameters in LSP (<a href=https://github.com/godotengine/godot/pull/76090>GH-76090</a>).<li>GUI: Fix deselecting behavior in Tree (<a href=https://github.com/godotengine/godot/pull/71307>GH-71307</a>, <a href=https://github.com/godotengine/godot/pull/71405>GH-71405</a>).<li>GUI: Fix RichTextLabel wrong selection offsets (<a href=https://github.com/godotengine/godot/pull/71742>GH-71742</a>, <a href=https://github.com/godotengine/godot/pull/71747>GH-71747</a>).<li>GUI: Add a warning when accessing theme prematurely and fix surfaced issues (<a href=https://github.com/godotengine/godot/pull/73475>GH-73475</a>).<li>GUI: Implement screen_get_pixel method for LinuxBSD/X11, macOS and Windows (<a href=https://github.com/godotengine/godot/pull/74087>GH-74087</a>).<li>GUI: Improve translation support in RichTextLabel, MenuButton, and OptionButton (<a href=https://github.com/godotengine/godot/pull/74117>GH-74117</a>, <a href=https://github.com/godotengine/godot/pull/75384>GH-75384</a>).<li>GUI: Fix descriptions not showing for theme properties (<a href=https://github.com/godotengine/godot/pull/75559>GH-75559</a>).<li>GUI: Fix several GraphEdit operations at zoom levels other than 100% (<a href=https://github.com/godotengine/godot/pull/75595>GH-75595</a>).<li>GUI: Allow entering named colors in ColorPicker’s hex field (<a href=https://github.com/godotengine/godot/pull/75905>GH-75905</a>).<li>GUI: Improve BiDi handling in TextServer (<a href=https://github.com/godotengine/godot/pull/75922>GH-75922</a>, <a href=https://github.com/godotengine/godot/pull/75975>GH-75975</a>).<li>GUI: Fix blurry borders on antialiased StyleBoxFlat (<a href=https://github.com/godotengine/godot/pull/76132>GH-76132</a>).<li>Import: Add 16bpp support for BMP File Format (<a href=https://github.com/godotengine/godot/pull/67608>GH-67608</a>).<li>Import: Fix OBJ mesh importer smoothing handling (<a href=https://github.com/godotengine/godot/pull/75315>GH-75315</a>).<li>Import: Expose more compression formats in Image and fix compress check (<a href=https://github.com/godotengine/godot/pull/76014>GH-76014</a>).<li>Input: Fix guide button detection with XInput and Xbox Series controllers (<a href=https://github.com/godotengine/godot/pull/73200>GH-73200</a>).<li>Input: Prevent passing events from CodeEdit to TextEdit when code completion is active (<a href=https://github.com/godotengine/godot/pull/74665>GH-74665</a>).<li>Input: Fix the issue preventing dragging in the 2D editor (<a href=https://github.com/godotengine/godot/pull/75113>GH-75113</a>).<li>Input: Detect host OS and use macOS keys on mac hosts on Web (<a href=https://github.com/godotengine/godot/pull/75451>GH-75451</a>).<li>Navigation: Keep NavigationServer active while SceneTree is paused (<a href=https://github.com/godotengine/godot/pull/73658>GH-73658</a>).<li>Navigation: Expose NavigationAgent path postprocessing and pathfinding algorithm options (<a href=https://github.com/godotengine/godot/pull/75326>GH-75326</a>).<li>Navigation: Fix NavigationMesh baking for HeightMapShape (<a href=https://github.com/godotengine/godot/pull/76212>GH-76212</a>).<li>Network: Poll LSP/DAP clients for connection status updates (<a href=https://github.com/godotengine/godot/pull/75850>GH-75850</a>).<li>Particles: Properly calculate lifetime_split for particles (<a href=https://github.com/godotengine/godot/pull/73313>GH-73313</a>).<li>Particles: Translate inactive <code class="language-plaintext highlighter-rouge">GPUParticles3D</code> particles to -INF (<a href=https://github.com/godotengine/godot/pull/75162>GH-75162</a>).<li>Particles: Fix “error X3708: continue cannot be used in a switch” in HTML export (<a href=https://github.com/godotengine/godot/pull/75795>GH-75795</a>).<li>Physics: Fix various issues with PhysicsDirectBodyState3D contacts (<a href=https://github.com/godotengine/godot/pull/58880>GH-58880</a>).<li>Physics: Add <code class="language-plaintext highlighter-rouge">get_contact_local_velocity_at_position</code> to PhysicsDirectBodyState2D (<a href=https://github.com/godotengine/godot/pull/76051>GH-76051</a>).<li>Porting: Fix clipboard relying on focused window (<a href=https://github.com/godotengine/godot/pull/73878>GH-73878</a>).<li>Porting: Fix queuing utterances in rapid succession in Windows TTS (<a href=https://github.com/godotengine/godot/pull/75880>GH-75880</a>).<li>Porting: Fix the sliding window problem on Linux (<a href=https://github.com/godotengine/godot/pull/76040>GH-76040</a>).<li>Rendering: Add EXPOSURE built in to spatial shaders (<a href=https://github.com/godotengine/godot/pull/71364>GH-71364</a>).<li>Rendering: Fix for OccluderPolygon2D memory leak (<a href=https://github.com/godotengine/godot/pull/74891>GH-74891</a>).<li>Rendering: Fix the limit for interpolation with respect to metallic and calculations in the SSR Fresnel Shlick (<a href=https://github.com/godotengine/godot/pull/75368>GH-75368</a>).<li>Rendering: Use MODELVIEW_MATRIX when on double precision (<a href=https://github.com/godotengine/godot/pull/75462>GH-75462</a>).<li>Rendering: Move sky luminance scaling to before fog is applied (<a href=https://github.com/godotengine/godot/pull/75812>GH-75812</a>).<li>Rendering: Clamp normal when calculating 2D lighting to avoid artifacts (<a href=https://github.com/godotengine/godot/pull/76240>GH-76240</a>).<li>Shaders: Fix crashes caused due to missing type specifier on visual shader editor (<a href=https://github.com/godotengine/godot/pull/75809>GH-75809</a>).<li>Shaders: Fix completion of <code class="language-plaintext highlighter-rouge">source_color</code> hint for texture arrays in shaders (<a href=https://github.com/godotengine/godot/pull/75831>GH-75831</a>).<li>XR: Add support for getting and setting display refresh rate in WebXR (<a href=https://github.com/godotengine/godot/pull/72938>GH-72938</a>).<li>XR: Add a get_system_info method to XRInterface (<a href=https://github.com/godotengine/godot/pull/74848>GH-74848</a>).<li>Thirdparty: HarfBuzz 7.1.0, thorvg 0.8.4, mbedtls 2.28.3<li>Documentation and translation updates.</ul><p>This release is built from commit <a href=https://github.com/godotengine/godot/commit/db1302637023168f7becceb1c4ce13228e1b2a43>db1302637</a>.<h2 id=downloads>Downloads</h2><p>The downloads for this dev snapshot can be found directly on our repository:<ul><li><a href=https://github.com/godotengine/godot-builds/releases/4.1/dev1>Standard build</a> (GDScript, GDExtension).<li><a href=https://github.com/godotengine/godot-builds/releases/4.1/dev1>.NET 6 build</a> (C#, GDScript, GDExtension).<ul><li>Requires <a href=https://dotnet.microsoft.com/en-us/download/dotnet/6.0>.NET SDK 6.0</a> or <a href=https://dotnet.microsoft.com/en-us/download/dotnet/7.0>7.0</a> installed in a standard location.</ul></ul><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 4.0.x, but no longer works in 4.1 dev 1).<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 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>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 on <a href=https://www.patreon.com/godotengine>Patreon</a> or <a href=/donate>PayPal</a>.</div></div></article><div class=blog-navigation><div class=previous><span>Previous</span>
|
||
<a rel=prev href=/article/release-management-4-1/>Release Management Post Godot 4.0</a></div><div class=next><span>Next</span>
|
||
<a rel=next href=/article/godot-showcase-cassette-beasts/>Godot Showcase - Cassette Beasts</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><li><a href=/consoles/>Console support</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-2026 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?7></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:not(.manual) 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> |