Skip to content

Commit 70347b5

Browse files
committed
Add 3.7 alpha 1 blog post
1 parent 1416851 commit 70347b5

File tree

1 file changed

+218
-0
lines changed

1 file changed

+218
-0
lines changed
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
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

Comments
 (0)