|
| 1 | +--- |
| 2 | +title: "Dev snapshot: Godot 3.7 alpha 1" |
| 3 | +excerpt: "Since Godot 3.6's release in September 2024, we have been working hard on the new feature branch, 3.7." |
| 4 | +categories: ["release"] |
| 5 | +author: lawnjelly |
| 6 | +image: /storage/app/uploads/public/631/1d7/7cc/6311d77cc7f5f571027656.jpg |
| 7 | +date: 2025-06-25 12:00:00 |
| 8 | +--- |
| 9 | + |
| 10 | +Although the vast majority of contributors are busily working on Godot 4, a small problematic group refuse to stop improving Godot 3. Since [Godot 3.6](/article/godot-3-6-finally-released)'s release in September 2024, we have been working hard on the new feature branch, 3.7. |
| 11 | + |
| 12 | +[Jump to the **Downloads** section.](#downloads) |
| 13 | + |
| 14 | +As usual, you can try it live with the [**online version of the Godot editor**](https://editor.godotengine.org/releases/3.7.alpha1/) updated for this release. |
| 15 | + |
| 16 | +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 peak at some of the advances that will be available. |
| 17 | + |
| 18 | +### 3D physics interpolation |
| 19 | + |
| 20 | +In tandem with work on Godot 4.5, the 3D physics interpolation has been rewritten from the ground up. |
| 21 | + |
| 22 | +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. |
| 23 | + |
| 24 | +### Mutable audio drivers |
| 25 | + |
| 26 | +While most of you will be making games (with near constant audio), those making applications (as well as the Editor itself) can now benefit from mutable audio via hotswapping the audio driver. This can dramatically reduce CPU (audio is one of the biggest CPU demands in the Editor, despite it rarely playing any sounds!). |
| 27 | + |
| 28 | +This is good news especially for those of you using low power PCs, mobile, or developing using a device with a battery such as a laptop. The CPU use in the Editor (in conjunction with "vital updates only" mode) is now approximately 50x less than Godot 4. |
| 29 | + |
| 30 | +Muting behaviour is fully customizable both for the Editor and the Project, with muting on pause, focus loss and when a period of silence is detected (which automatically switches back on when playing a sound). This is also hoped to help with some longstanding bugs preventing laptops from sleeping. |
| 31 | + |
| 32 | +This is a very experimental feature and will definitely benefit from your feedback on different platforms. |
| 33 | + |
| 34 | +### Core |
| 35 | + |
| 36 | +Thanks to work particularly by [lawnjelly](https://github.com/lawnjelly) and [Lukas Tenbrink](https://github.com/Ivorforce), much of core has been heavily optimized, including faster access to `ProjectSettings`, faster object casting, move semantics, and use of faster data structures benefiting 2D and 3D. |
| 37 | + |
| 38 | +### Bug fixes and backports |
| 39 | + |
| 40 | +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 benefitted from a number of new features forward ported from 3.x. |
| 41 | + |
| 42 | +## Changes |
| 43 | + |
| 44 | +Here are the main changes since 3.6-stable: |
| 45 | + |
| 46 | +#### 2D |
| 47 | + |
| 48 | +- Make selected tile in `TileSet` more visible through red outline ([GH-105439](https://github.com/godotengine/godot/pull/105439)). |
| 49 | +- `Spatial` and `CanvasItem` children change to `LocalVector` ([GH-107480](https://github.com/godotengine/godot/pull/107480)). |
| 50 | + |
| 51 | +#### 3D |
| 52 | + |
| 53 | +- Physics Interpolation - fix client interpolation pump ([GH-102184](https://github.com/godotengine/godot/pull/102184)). |
| 54 | +- FTI - `global_transform_interpolated()` on demand for invisible nodes ([GH-107307](https://github.com/godotengine/godot/pull/107307)). |
| 55 | +- Pre-calculate `is_visible_in_tree()` ([GH-107324](https://github.com/godotengine/godot/pull/107324)). |
| 56 | +- Remove `vi_visible` flag from `Spatial` ([GH-107493](https://github.com/godotengine/godot/pull/107493)). |
| 57 | + |
| 58 | +#### Audio |
| 59 | + |
| 60 | +- Add ability to mute AudioServer ([GH-63458](https://github.com/godotengine/godot/pull/63458)). |
| 61 | +- Fix random multithreaded crash that happens when setting the audio stream on a AudioStreamRandomPitch stream ([GH-96261](https://github.com/godotengine/godot/pull/96261)). |
| 62 | +- Initialize `pa_buffer_attr.maxlength` to -1 ([GH-102069](https://github.com/godotengine/godot/pull/102069)). |
| 63 | +- ResourceImporterWAV: Detect if data chunk size is larger than the actual size ([GH-107694](https://github.com/godotengine/godot/pull/107694)). |
| 64 | + |
| 65 | +#### Buildsystem |
| 66 | + |
| 67 | +- Fix VS project generation with SCons 4.8.0+ ([GH-94117](https://github.com/godotengine/godot/pull/94117)). |
| 68 | +- Fix MSBuild logger exception thrown when processing a warning or an error with no associated file ([GH-96127](https://github.com/godotengine/godot/pull/96127)). |
| 69 | +- CI: Update Linux runners to Ubuntu 24.04, but keep 22.04 for Linux builds ([GH-98896](https://github.com/godotengine/godot/pull/98896)). |
| 70 | +- Improve cache handling ([GH-98992](https://github.com/godotengine/godot/pull/98992)). |
| 71 | +- Windows: Rename `PKEY_Device_FriendlyName` to avoid duplicate symbols with newer MinGW SDKs ([GH-99036](https://github.com/godotengine/godot/pull/99036)). |
| 72 | +- embree: Fix invalid output operators raising errors with GCC 15 ([GH-102023](https://github.com/godotengine/godot/pull/102023)). |
| 73 | + |
| 74 | +#### C# |
| 75 | + |
| 76 | +- Mono: Move MonoGCHandle into gdmono namespace ([GH-106578](https://github.com/godotengine/godot/pull/106578)). |
| 77 | + |
| 78 | +#### Codestyle |
| 79 | + |
| 80 | +- Fix double `TOOLS_ENABLED` checks from `NO_EDITOR_SPLASH` ([GH-92950](https://github.com/godotengine/godot/pull/92950)). |
| 81 | +- Simplify `ObjectDB::get_instance()` casting ([GH-100603](https://github.com/godotengine/godot/pull/100603)). |
| 82 | + |
| 83 | +#### Core |
| 84 | + |
| 85 | +- Allow constructing Quat from two Vector3s ([GH-90464](https://github.com/godotengine/godot/pull/90464)). |
| 86 | +- Fix `split_floats` behavior when spaces are used as separators ([GH-95791](https://github.com/godotengine/godot/pull/95791)). |
| 87 | +- `Object::call()` prevent debug lock accessing dangling pointer ([GH-96862](https://github.com/godotengine/godot/pull/96862)). |
| 88 | +- Fix parsing of `4.` in Expression ([GH-96891](https://github.com/godotengine/godot/pull/96891)). |
| 89 | +- Do not auto add default script and country codes to the locale ([GH-98109](https://github.com/godotengine/godot/pull/98109)). |
| 90 | +- Cache results for `TranslationServer.compare_locales()` ([GH-98234](https://github.com/godotengine/godot/pull/98234)). |
| 91 | +- Fix error when non-ASCII characters in resource pack path ([GH-98843](https://github.com/godotengine/godot/pull/98843)). |
| 92 | +- JavaScript: Don't cache emsdk ([GH-99037](https://github.com/godotengine/godot/pull/99037)). |
| 93 | +- Add move semantics to core containers ([GH-100995](https://github.com/godotengine/godot/pull/100995)). |
| 94 | +- Prevent inlining error printing functions ([GH-103621](https://github.com/godotengine/godot/pull/103621)). |
| 95 | +- Add `GLOBAL_GET` cached macros ([GH-103763](https://github.com/godotengine/godot/pull/103763)). |
| 96 | +- Make changes for simplified ObjectDB::get_instance() casting ([GH-104823](https://github.com/godotengine/godot/pull/104823)). |
| 97 | +- Use the in-built casting instead of `dynamic_cast` on all platforms ([GH-104825](https://github.com/godotengine/godot/pull/104825)). |
| 98 | +- Improve `GLOBAL_GET_CACHED` to use `SpinLock` ([GH-105948](https://github.com/godotengine/godot/pull/105948)). |
| 99 | +- Provide quick access to `Object` ancestry ([GH-107462](https://github.com/godotengine/godot/pull/107462)). |
| 100 | +- Remove implicit conversion from `LocalVector` to `Vector` ([GH-107543](https://github.com/godotengine/godot/pull/107543)). |
| 101 | +- Change `Node` children to use `LocalVector` ([GH-107544](https://github.com/godotengine/godot/pull/107544)). |
| 102 | +- Remove implicit conversion from `LocalVector` to `PoolVector` ([GH-107545](https://github.com/godotengine/godot/pull/107545)). |
| 103 | +- Optimize `Object::cast_to` with ancestral classes when possible ([GH-107844](https://github.com/godotengine/godot/pull/107844)). |
| 104 | +- Optimize hotspots with `Object::is_reference()` ([GH-107877](https://github.com/godotengine/godot/pull/107877)). |
| 105 | +- Optimize hotspots with `Object::derives_from` ([GH-107881](https://github.com/godotengine/godot/pull/107881)). |
| 106 | + |
| 107 | +#### Documentation |
| 108 | + |
| 109 | +- Doctool: Remove version attribute from XML header ([GH-79092](https://github.com/godotengine/godot/pull/79092)). |
| 110 | +- Document Timer autostart in tool scripts ([GH-99048](https://github.com/godotengine/godot/pull/99048)). |
| 111 | +- Document `radial_center_offset` bounds for `TextureProgress` ([GH-99869](https://github.com/godotengine/godot/pull/99869)). |
| 112 | +- Docs: Add description for `BitMap.opaque_to_polygons` method ([GH-102684](https://github.com/godotengine/godot/pull/102684)). |
| 113 | + |
| 114 | +#### Editor |
| 115 | + |
| 116 | +- Cancel tooltips when the mouse leaves the window ([GH-95978](https://github.com/godotengine/godot/pull/95978)). |
| 117 | +- Improve Class display in Create dialog ([GH-105459](https://github.com/godotengine/godot/pull/105459)). |
| 118 | +- Add an editor option to copy system info to clipboard ([GH-105674](https://github.com/godotengine/godot/pull/105674)). |
| 119 | + |
| 120 | +#### GDScript |
| 121 | + |
| 122 | +- Backport "Cleanup function state connections when destroying instance" for Godot 3 ([GH-97464](https://github.com/godotengine/godot/pull/97464)). |
| 123 | + |
| 124 | +#### GUI |
| 125 | + |
| 126 | +- Expose some helper methods on Viewport ([GH-92573](https://github.com/godotengine/godot/pull/92573)). |
| 127 | +- Fix button click detection when `Tree` is rotated ([GH-98300](https://github.com/godotengine/godot/pull/98300)). |
| 128 | +- Fix `PopupMenu` margin and separation calculations ([GH-98452](https://github.com/godotengine/godot/pull/98452)). |
| 129 | +- Fix `Button` not listing `hover_pressed` stylebox ([GH-98511](https://github.com/godotengine/godot/pull/98511)). |
| 130 | +- Improve `TextureProgress.set_radial_initial_angle()` by removing loops ([GH-99434](https://github.com/godotengine/godot/pull/99434)). |
| 131 | +- Show `TextureProgress` radial center cross only when editing the scene ([GH-99870](https://github.com/godotengine/godot/pull/99870)). |
| 132 | +- Revert changes to `Range::set_value` #65101 ([GH-100459](https://github.com/godotengine/godot/pull/100459)). |
| 133 | +- [3.x, RTL] Track external changes in the custom fonts set by BBCode / `push_font` ([GH-105266](https://github.com/godotengine/godot/pull/105266)). |
| 134 | +- Revert "Fix Button not listing `hover_pressed` stylebox" ([GH-107696](https://github.com/godotengine/godot/pull/107696)). |
| 135 | + |
| 136 | +#### Input |
| 137 | + |
| 138 | +- Document that `Input.is_action` should not be used during input-handling ([GH-97574](https://github.com/godotengine/godot/pull/97574)). |
| 139 | +- Add warning when calling `is_action_just_pressed()` from `_input()` ([GH-97575](https://github.com/godotengine/godot/pull/97575)). |
| 140 | +- Fix Xbox Controller on Android ([GH-106021](https://github.com/godotengine/godot/pull/106021)). |
| 141 | + |
| 142 | +#### Physics |
| 143 | + |
| 144 | +- Fix physics platform behaviour regression ([GH-97316](https://github.com/godotengine/godot/pull/97316)). |
| 145 | +- Change ARVR Nodes default interpolation to off ([GH-104947](https://github.com/godotengine/godot/pull/104947)). |
| 146 | + |
| 147 | +#### Plugin |
| 148 | + |
| 149 | +- Backport "[Editor] Add `EditorPlugin::scene_saved` signal" ([GH-99857](https://github.com/godotengine/godot/pull/99857)). |
| 150 | + |
| 151 | +#### Porting |
| 152 | + |
| 153 | +- Improve error message when `OS.execute()` fails on Windows ([GH-97171](https://github.com/godotengine/godot/pull/97171)). |
| 154 | +- Disable Nahimic code injection ([GH-99388](https://github.com/godotengine/godot/pull/99388)). |
| 155 | + |
| 156 | +#### Rendering |
| 157 | + |
| 158 | +- Implement glow map effect ([GH-93133](https://github.com/godotengine/godot/pull/93133)). |
| 159 | +- Ameliorate performance regression due to directional shadow `fade_start` ([GH-99536](https://github.com/godotengine/godot/pull/99536)). |
| 160 | +- Hide last DirectionalLight shadow split distance property when using PSSM 3 Splits ([GH-99554](https://github.com/godotengine/godot/pull/99554)). |
| 161 | +- Physics Interpolation - Auto-reset on `set_physics_interpolation_mode()` ([GH-101218](https://github.com/godotengine/godot/pull/101218)). |
| 162 | +- Physics Interpolation - Add editor warning for non-interpolated `PhysicsBody` ([GH-103355](https://github.com/godotengine/godot/pull/103355)). |
| 163 | +- Physics Interpolation - Move 3D FTI to `SceneTree` ([GH-103685](https://github.com/godotengine/godot/pull/103685)). |
| 164 | +- Physics Interpolation - Reduce unnecessary `VisualServer` updates ([GH-104854](https://github.com/godotengine/godot/pull/104854)). |
| 165 | +- Physics Interpolation - Fix `CPUParticles` to work with `SceneTreeFTI` ([GH-104888](https://github.com/godotengine/godot/pull/104888)). |
| 166 | +- Physics Interpolation - Add `InterpolatedProperty` ([GH-104920](https://github.com/godotengine/godot/pull/104920)). |
| 167 | +- Physics Interpolation - Fix non-interpolated resting xforms ([GH-105141](https://github.com/godotengine/godot/pull/105141)). |
| 168 | +- Physics Interpolation - Fix `disable_scale` bug in 3D ([GH-105407](https://github.com/godotengine/godot/pull/105407)). |
| 169 | +- FTI - Fix 3D auto-resets ([GH-105463](https://github.com/godotengine/godot/pull/105463)). |
| 170 | +- FTI - Optimize `SceneTree` traversal ([GH-105728](https://github.com/godotengine/godot/pull/105728)). |
| 171 | +- FTI - Add custom interpolation for wheels ([GH-105816](https://github.com/godotengine/godot/pull/105816)). |
| 172 | +- FTI - Fix `SceneTreeFTI` behaviour on exit tree ([GH-105977](https://github.com/godotengine/godot/pull/105977)). |
| 173 | +- SceneTreeFTI: - fix identity_xform flag getting out of sync ([GH-107043](https://github.com/godotengine/godot/pull/107043)). |
| 174 | +- SceneTreeFTI: - Fix `force_update` flag for invisible nodes ([GH-107178](https://github.com/godotengine/godot/pull/107178)). |
| 175 | + |
| 176 | +#### Thirdparty |
| 177 | + |
| 178 | +- certs: Sync with Mozilla bundle as of Oct 19, 2024 ([GH-98855](https://github.com/godotengine/godot/pull/98855)). |
| 179 | +- Update the `Thirdparty` section of `CHANGELOG.md` ([GH-99692](https://github.com/godotengine/godot/pull/99692)). |
| 180 | +- mbedtls: Update to upstream version 2.28.9 ([GH-100013](https://github.com/godotengine/godot/pull/100013)). |
| 181 | +- Enable builds with miniupnpc API 18 ([GH-100389](https://github.com/godotengine/godot/pull/100389)). |
| 182 | +- mbedTLS: Update to version 2.28.10 ([GH-104580](https://github.com/godotengine/godot/pull/104580)). |
| 183 | +- certs: Sync with upstream as of Apr 8 2025 ([GH-106615](https://github.com/godotengine/godot/pull/106615)). |
| 184 | +- Fix `unzSeekCurrentFile` not resetting `total_out_64` ([GH-106872](https://github.com/godotengine/godot/pull/106872)). |
| 185 | +- libwebm: Fix double free in mkvparser ContentEncoding ([GH-107781](https://github.com/godotengine/godot/pull/107781)). |
| 186 | + |
| 187 | +#### VisualScript |
| 188 | + |
| 189 | +- Bind Array and Pool*Array get and set functions ([GH-96135](https://github.com/godotengine/godot/pull/96135)). |
| 190 | + |
| 191 | +#### XR |
| 192 | + |
| 193 | +- FTI: - Change `SceneTree` global setting to static ([GH-107889](https://github.com/godotengine/godot/pull/107889)). |
| 194 | + |
| 195 | + |
| 196 | +See the full changelog since 3.6-stable [on GitHub](https://github.com/godotengine/godot/compare/3.6-stable...), or in text form (sorted [by authors](https://github.com/godotengine/godot-builds/releases/) or [chronologically](https://downloads.tuxfamily.org/godotengine/)). |
| 197 | + |
| 198 | +This release is built from commit [``](https://github.com/godotengine/godot/commit/) (see [README](https://github.com/godotengine/godot-builds/releases/3.6.1-README.txt)). |
| 199 | + |
| 200 | +<a id="downloads"></a> |
| 201 | +## Downloads |
| 202 | + |
| 203 | +The downloads for this dev snapshot can be found directly on our repository: |
| 204 | + |
| 205 | +- [Standard build](https://github.com/godotengine/godot-builds/releases/3.6.1) (GDScript, GDNative, VisualScript). |
| 206 | +- [Mono build](https://github.com/godotengine/godot-builds/releases/3.6.1) (C# support + all the above). You need to have dotnet CLI or MSBuild installed to use the Mono build. Relevant parts of Mono **6.12.0.182** are included in this build. |
| 207 | + |
| 208 | +## Bug reports |
| 209 | + |
| 210 | +As a tester, you are encouraged to [open bug reports](https://github.com/godotengine/godot/issues) if you experience issues with 3.7 alpha 1. Please check first the [existing issues on GitHub](https://github.com/godotengine/godot/issues), using the search function with relevant keywords, to ensure that the bug you experience is not known already. |
| 211 | + |
| 212 | +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 or earlier 3.5.x releases no longer works in 3.7 alpha 1). |
| 213 | + |
| 214 | +## Support |
| 215 | + |
| 216 | +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 [donations from the Godot community](/donate). A big thankyou to everyone who has contributed [their time](https://github.com/godotengine/godot/blob/master/AUTHORS.md) or [financial support](https://github.com/godotengine/godot/blob/master/DONORS.md) to the project! |
| 217 | + |
| 218 | +If you'd like to support the project financially and help us secure our future hires, you can do so with the [development fund](https://fund.godotengine.org). |
0 commit comments