Godot 3.2.4 is going to be incredibly feature-packed, and we’re taking the time necessary to ensure that it will also be stable. That’s why we’re releasing a fourth Release Candidate now, focused mostly on fixing issues reported against the previous RC 3. Thanks to all pre-release testers who help us find and debug regressions!
Things should now be in a pretty good shape and we hope to be able to release 3.2.4 stable soon™.
For macOS, both the standard and Mono editor builds are now signed and notarized! Thanks to Prehensile Tales for the certificate and the work on the infrastructure.
You can try it live with the online version of the Godot editor updated for this release.
Highlights
The main changes coming in Godot 3.2.4 and included in this Release Candidate are:
- Android App Bundle and subview embedding support.
- 2D batching for GLES3 (it was implemented for GLES2 in 3.2.2), and improvements to GLES2’s batching.
- A new software skinning for MeshInstance to replace the slow GPU skinning on devices that don’t support the fast GPU skinning (especially mobile).
- Rewritten and greatly improved FBX importer.
- Improved Web editor and AudioWorklet support for multithreaded HTML5 builds.
New option to snap 2D transforms to whole coordinates, helps prevent jitter on pixel art camera motions.- After a lot of testing and additional work, we decided that the new 2D snapping features weren’t working as we want them to yet, so they has been reverted in 3.2.4 RC 4. We’re working on providing equivalent functionality through an addon so that we can iterate faster, and see if we can find solutions which satisfy most common use cases. Stay tuned for more info!
- Note that the project settings from the
rendering/quality/2d
section have now been moved to rendering/2d
, so if you used any of those, you will need to re-enable them under the new section in 3.2.4.
- Configurable amount of lights per object, now defaulting to 32 instead of 8.
- macOS ARM64 support in official binaries for Apple M1 chip (only standard build for now).
- Optional GDNative support for HTML5.
- MP3 loading and playback support.
- WebXR support for VR games.
- Minimap support in GraphEdit.
- Fixes to Mono on WebAssembly.
- New CPU lightmapper.
- New dynamic BVH for rendering and the GodotPhysics backends.
- If you experience a regression in either physics or rendering, you can try these Project Settings to revert back to the previous Octree-based approach and possibly fix the issue. In either case, be sure to report the problem on GitHub.
- iOS plugins support, with a similar interface to Android plugins.
- Multiple fixes to one-way collisions.
- New
AspectRatioContainer
Control node. - Implement pause-aware physics picking.
- Optimize transform propagation for hidden 3D objects.
- Improved Inspector sub-resource editing.
- Detect external modification of scenes.
- Add support for copy-pasting nodes.
- Modernization of the multi-threading APIs.
- New editor to configure default import presets.
All these need to be thoroughly tested to ensure that they work as intended in the upcoming 3.2.4-stable.
Changes
The main new features are highlighted in bold. Refer to the linked pull requests for details.
- Android: Add support for the Android App Bundle format (GH-42185).
- Android: Add support for embedding Godot as a subview in Android applications (GH-42186).
- Android: Fix splash screen loading (GH-42389).
- Android: Add notch cutout support for Android P and later (GH-43104).
- Android: Add support for mouse events (GH-42360).
- Android: Add support for keyboard modifiers and arrow keys (GH-40398).
- Android: Fix screen orientation settings and API (GH-43022, GH-43248), GH-43511).
- Android: Update logic to sign prebuilt APKs with
apksigner
instead of jarsigner
, as required for Android API 30 (GH-44645). - Audio: Add MP3 loading and playback support (GH-43007).
- Audio: Fix pops in
play()
for spatial audio players (GH-46151). - Audio: Add
AudioEffectCapture
to access the microphone in real-time (GH-45593). - Buildsystem: Add
production=yes
option to set optimal options for production builds (GH-45679).- Users making custom builds should use this option which is equivalent to
use_lto=yes debug_symbols=no use_static_cpp=yes
. - Note for Linux builds:
use_static_cpp=yes
and udev=yes
are now the default values, so you need libudev
and libstdc++-static
development packages to build in optimal conditions.
- C#: Official builds now use Mono 6.12.0.114.
- C#: Re-work solution build output panel (GH-42547).
- C#: Godot.NET.Sdk/3.2.4 - Fix targeting .NETFramework with .NET 5 (GH-44135).
- C#: Fixes to WebAssembly support (GH-44105, GH-44374).
- C#: Fix System.Collections.Generic.List marshalling (GH-45029).
- C#: Fix support for Unicode identifiers (GH-45310).
- C#: Add generic support to
PackedScene.Instance
(GH-42588). - Camera2D: Fix frame delay and smoothing processing issues (GH-46697, GH-46717).
- Core: Optimize octree and fix leak (GH-41123).
- Core: Modernization of the multi-threading APIs (GH-45618).
- This was a late addition in 3.2.4 RC 3, please report any
Thread
, Mutex
or Semaphore
-related issue that you might encounter.
- Core: Disable decayment of freed Objects to null in debug builds (GH-41866).
- Core: More fixes to Variant and Reference pointers (GH-43049).
- Core: Add
append_array
method to Array
class (GH-43398). - Core: Add ability to restore
RandomNumberGenerator
state (GH-45019). - CSG: Various bug fixes.
- Editor: Improved Inspector sub-resource editing (GH-45907).
- Editor: Detect external modification of scenes (GH-31747).
- Editor: Add support for copy-pasting nodes (GH-34892).
- Editor: Fixed renaming/moving of nodes with exported NodePaths in the editor (GH-42314).
- Editor: Improve 3D rotation gizmo (GH-43016).
- Editor: Add a dynamic infinite grid to the 3D editor (GH-43206).
- Editor: Use 75% editor scale on small displays automatically (GH-43611).
- Editor: Require Ctrl for switching between editors, bind F2 to Rename Node (GH-38201).
- Editor: 3D editor grid improvements (GH-45594).
- Editor: Adjust auto-scale on 4K monitors to 150% (GH-45910).
- FBX: Rewritten and improved importer (GH-42941).
- Font: Load dynamic fonts to memory on all platforms to avoid locked files (GH-44117).
- Font: Fix fallback emoji font color (GH-44212).
- GDScript: Fix leaks due to cyclic references (GH-41931).
- GLES2/GLES3: Fix buffer orphaning on desktop (GH-42734).
- GLES2/GLES3: Fix flipped normal mapping in 2D with batching and nvidia workaround (GH-41323, GH-41254).
- GLES2: Various improvements to 2D batching (GH-42119).
- See GH-42899 for instructions on how to test the improved 2D batching and report your results.
- GLES2: Fix glow on devices with only 8 texture slots (GH-42446).
- GLES2: Use separate texture unit for
light_texture
(GH-42538). - GLES2: Fix PanoramaSky artifacts on Android (GH-44489).
- GLES2: Fix reflection probes for WebGL 1.0 (GH-45465).
- GLES2: Add support for anisotropic filtering (GH-45654).
- GLES2: Improve PCF13 shadow rendering by using a soft PCF filter (GH-46301).
- GLES3: Add 2D batching support, unified architecture with GLES2 (GH-42119).
- See GH-42899 for instructions on how to test the new GLES3 2D batching and report your results.
- GLES3: Fixes to Screen Space Reflections (GH-38954, GH-41892).
- GLES3: Ensure that color values in Reinhard tonemapping are positive (GH-42056).
- glTF: Use vertex colors by default (GH-41007).
- glTF: Fix parsing base64-encoded buffer and image data (GH-42501, GH-42504).
- glTF: Fix handling of
normalized
accessor property (GH-44746). - GraphEdit: Add minimap support, enabled by default (GH-43416).
- GUI: Add
AspectRatioContainer
class (GH-45129). - HTML5: Synchronous main, better persistence, handlers fixes, optional full screen (GH-42266).
- HTML5: Move audio processing to thread when threads are enabled (GH-42510).
- HTML5: Merged code for web editor prototype (GH-42790).
- HTML5: Add AudioWorklet support in multithreaded builds (GH-43454).
- HTML5: Add optional GDNative support (GH-44076).
- HTML5: Use internal implementation of the Gamepad API (GH-45078).
- HTML5: Tons of fixes all around to better support the Web editor :)
- HTML5: Refactored and simplified HTML page template (GH-46200).
- HTML5: Add PWA support to the editor page (GH-46796).
- Import: New editor to configure default import presets (GH-46354).
- Import: Fixed
lossy_quality
setting for ETC import (GH-44682).- See the linked PR for details, high
lossy_quality
values will now incur significantly longer import times (but correspondingly higher quality).
- Input: Add mouse event pass-through support for the game window (GH-40205).
- Input: Add support for buttons and D-pads mapped to half axes (GH-42800).
- Input: Add driving joystick type to windows joystick handling (GH-44082).
- Input: Add support for new SDL gamecontroller keywords (used e.g. by PS5 controller) (GH-45798).
- iOS: Add support for iOS plugins, with a similar interface to Android plugins (GH-41340).
- You can read the updated documentation on godot-docs#4213, until it’s merged and included in the
3.2
documentation. - Previously built-in iOS features like ARKit, camera support, GameCenter, ICloud and InAppStore modules are now first-party plugins which can be installed from godot-ios-plugins. The relevant documentation will soon be updated to be clarify their usage with 3.2.4-stable.
- iOS: Fix multiple issues with PVRTC import, disable ETC1 (GH-38076).
- iOS: Add touch delay value to project settings (GH-42457).
- iOS: Fixes to keyboard input, including better IME support (GH-43560).
- iOS: Native loading screen implementation (GH-45693).
- Lighting: New CPU lightmapper (GH-44628).
- Linux: Fix issues related to delay when processing events (GH-42341).
- Linux: Implement
--no-window
mode (GH-42276). - Linux: Prevent audio corruption in the ALSA driver (GH-43928).
- macOS: ARM64 support in official binaries.
- Currently only for standard builds, Mono ARM64 builds are still a work in progress.
- macOS: Editor binary is now signed and notarized!
- It is signed by Prehensile Tales B.V. like the Windows binaries.
- In 3.2.4 RC 2, the Mono flavor is not signed yet, but this should be fixed before stable (see GH-43768).
- Linux: Dynamically load
libpulse.so.0
, libasound.so.1
and libudev.so.1
(GH-46107, GH-46117). - Linux: Fix PRIME detection on Steam (GH-46792).
- macOS: Fix mouse position in captured mode (GH-42328).
- macOS: Fix
get_screen_dpi
for non-fractional display scales (GH-42478). - macOS: Implement
--no-window
mode (GH-42276). - macOS: Improve Mono distribution in .app bundle to allow codesigning exported binaries (GH-43768).
- macOS: Add entitlements config and export template
dylib
signing to the export (GH-46618). - MeshInstance: Add option for software skinning (GH-40313).
- Node: Fix Editable Children issues with node renaming, moving, duplicating and instancing (GH-39533).
- Particles: Fix impact of
lifetime_randomness
on properties using a curve (GH-45496). - Physics: New dynamic BVH for GodotPhysics backends (GH-44901).
- Physics: Various bug fixes for 2D and 3D.
- Physics: Fix multiple issues with one-way collisions (GH-42574).
- Physics: Implement pause-aware picking (GH-39421).
- This breaks compat but is not enabled by default for existing projects (see project setting
physics/common/enable_pause_aware_picking
). It will be enabled by default for new projects created with 3.2.4.
- Physics: Implement
CollisionPolygon
margin
property for Bullet (GH-45855). - Physics: Implement Cylinder support in GodotPhysics3D (GH-45854).
- Physics: Allow
CollisionObject
to show collision shape meshes (GH-45783). - Plugins: Detect plugins recursively (GH-43734).
- Rendering: Add fast approximate antialiasing (FXAA) to Viewport (GH-42006).
- Rendering: Disable lights for objects with baked lighting (GH-41629).
- Rendering: Add option for snapping 2D transforms to whole coordinates, for pixel art motion (GH-43554).
- Rendering: New dynamic BVH (GH-44901).
- Rendering: Add
METALLIC
to light()
builtins (GH-42548). - Rendering: Various fixes to light culling (GH-46694).
- Spatial: Optimize transform propagation for hidden 3D objects (GH-45583).
- Sprite3D: Use full float UV for better precision (GH-42537) [regression fix].
- TileMap: Add
show_collision
property to see collision shapes in editor and at run-time (GH-46623). - VR: Add WebXR support for VR games (GH-42397).
- Windows: Fix debugger not getting focused on break on Windows (GH-40555).
- YSort: Make rendering order more deterministic (GH-42375).
- Thirdparty library updates (enet 1.3.17, freetype 2.10.4, mbedtls 2.16.9, pcre2 10.36, tinyexr 1.0.0, zstd 1.4.8).
- API documentation updates.
- Editor translation updates.
- And many more bug fixes and usability enhancements all around the engine!
See the full changelog since 3.2.3-stable (chronological, or for each contributor), or the changes since the previous RC 3 build.
This release is built from commit dc99f04d51d6556e5ba4d9cfcce8117d168ac6f1.
Downloads
The download links for dev snapshots are not featured on the Download page to avoid confusion for new users. Instead, browse our download repository and fetch the editor binary that matches your platform:
- Standard build (GDScript, GDNative, VisualScript).
- Mono build (C# support + all the above). You need to have MSBuild installed to use the Mono build. Relevant parts of Mono 6.12.0.114 are included in this build.
Bug reports
As a tester, you are encouraged to open bug reports if you experience issues with 3.2.4 RC 4. Please check first the existing issues on GitHub, using the search function with relevant keywords, to ensure that the bug you experience is not known already.
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.2.3 or earlier no longer works in 3.2.4 RC 4).
Support
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. A big thankyou to everyone who has contributed their time or financial support to the project!
If you’d like to support the project financially and help us secure our future hires, you can do so on Patreon or PayPal.