NeJ A game by Ben Lega
NeJ A game by Ben Lega

Maintenance release: Godot 3.4.1

By: Rémi Verschelde 17 December 2021

Godot 3.4 was released a month ago, and it went fairly smoothly! Many thanks to all the contributors who worked on it, including all testers who tried beta and RC releases to ensure that the 3.4-stable branch would be an easy and worthwhile upgrade path for all users.

No software release is perfect though, so there will always be some things to iron out, which is why we provide maintenance releases for stable branches, focusing on bugfixing and preserving compatibility (see our release policy). Godot 3.4.1 is the first maintenance release in the 3.4 stable branch, and a recommended upgrade for all Godot 3.4 users.

Download Godot 3.4.1 now or try the online version of the Godot editor.

Changes

See the curated changelog, or the full commit history on GitHub for an exhaustive overview of the fixes in this release.

Here are the main changes since 3.4-stable:

  • Android: Fix get_screen_orientation() not returning valid values (GH-55210).
  • Android: Add configs to specify the min and target sdk versions (GH-55735).
  • Android: Add support for configuring the XR hand tracking frequency mode (GH-55768).
  • Camera2D: Fix condition on 'jump to limits' logic (GH-55417).
  • Core: Fix Color.v integer assignment (GH-55963).
  • Editor: Clamp rotation for up/down orbiting shortcuts (GH-54788).
  • Editor: Fix swapped rest pose action names in the Skeleton2D editor (GH-54851).
  • Editor: Fix Theme Editor crash when clicking the element picker (GH-55186).
  • Editor: Improve project export and MeshLibrary export checkboxes (GH-55215).
  • Editor: Remove editor splash screen with sponsors logo (GH-55467).
  • Editor: Fix EditorPlugin.remove_inspector_plugin() instance cleanup (GH-55658).
  • Editor: Sort and group theme properties in docs, improve formatting for theme and enums (GH-55526).
  • Editor: Expose ScriptEditor::edit to scripting (GH-55709).
  • GDScript: Don't ignore the type mismatch in setter function (GH-54117).
  • GDScript: Support multiline indexing with [] (GH-54227).
  • HTML5: Fix input not focusing canvas, check Gamepad API errors (GH-55111, GH-55342).
  • HTML5: Fix multi-touch input handling (GH-55466).
  • HTML5: Use absolute path for JS lib/pre/externs for compatibility with latest Emscripten (GH-55347).
  • HTML5: Use compatibility function for glGetBufferSubData to preserve support for older Emscripten (GH-55354).
  • HTML5: Fix files_dropped in exported Mono builds (GH-55594).
  • Import: Prevent OBJ importer from printing misleading error (GH-54694).
  • Import: Fix incorrect glTF cubic spline interpolation times/values size error (GH-54805).
  • Import: Fix support for CSG and GridMap in glTF scene export (GH-54911).
  • Import: Fix texture atlas generation when source sprite is larger than generated atlas (GH-55094).
  • Import: Fix crash when exporting meshes to glTF that have no skin (GH-55246).
  • Input: Add Input.is_physical_key_pressed() method (GH-55251).
  • Input: Fix regression in UI navigation with joysticks (GH-55480).
  • Input: Fixed event spam when using the Nintendo Switch controller (GH-55997).
  • Input: Fixed detecting the Valve Streaming Gamepad (GH-55980).
  • iOS: Capture and display xcodebuild output (GH-54711).
  • LSP: Prevent LSP adding signal callbacks to non GDScripts (GH-55624).
  • macOS: Enable multithreaded OpenGL engine flag when using multithreaded VisualServer (GH-54526).
  • macOS: Read and ZIP project files in 16K chunks instead of reading the whole file at once (GH-54673).
  • macOS: Fix crash on DualShock 4 joypad removal (GH-55034).
  • macOS: Fix driver crash when enabling per-pixel transparency on M1 macs (GH-55464).
  • macOS: Fix crash handler not printing function names on M1 Macs (GH-55019).
  • Networking: Fix WebSocket buffer size checks in put_packet(), silent failures/connection hangs (GH-54381).
  • Networking: Fix HTTP request headers being included in response (GH-54683).
  • Networking: Fix potential infinite loop when connecting HTTPClient (GH-55358).
  • Networking: Fix WebRTC returning packets from peers too early (GH-55953).
  • Particles: Fix for double use of seed in random shader variables (GH-55607).
  • Physics: Expose intersect_point in 3D physics server (GH-54577).
  • Physics: Fix the volume calculation for cylinders in GodotPhysics (GH-54642).
  • Physics: Fix errors in KinematicBody when floor is destroyed or removed (GH-54819).
  • Physics: Fix test_move reporting collision when touching another body (GH-54845).
  • Physics: BVH: Fix pairing for teleported or fast moving objects (GH-54925).
  • Physics: BVH: Detect shrinkage within expanded bounds (GH-55050).
  • Physics: BVH: Add option for expanded AABBs in leaves (GH-55096).
  • Rendering: Fix vertex attribute specification for octahedral compression (GH-54768).
  • Rendering: Update CanvasItem when MultiMesh instance transform changes (GH-54899).
  • Rendering: Portals: Allow user to set roaming expansion margin (GH-54921).
  • Rendering: Fix incorrect VisualServer RID cleanup in various locations (GH-55673, GH-55669, GH-55701, GH-54650).
  • Rendering: Fix occasional dangling OmniLight RID (GH-41360).
  • Rendering: GLES3: Fix incompatible addition in auto exposure shader (GH-55983).
  • RichTextLabel: Fix right alignment regression (GH-55439).
  • RichTextLabel: Fix min/max line width calculation (GH-55440).
  • Tabs: Prevent hidden tab close buttons from intercepting input (GH-55453).
  • TextEdit: Allow toggling bookmark gutter (GH-55197).
  • TextEdit: Add methods to get position from column and line (GH-55416).
  • TextureProgress: Fix position of reference cross with progress_offset (GH-55377).
  • Theme: Make default/project theme wait for modules before initializing (fixes WebP support for custom themes) (GH-55484).
  • Tiles: Fix TileSet editor workspace breaking (GH-55059).
  • Tiles: Only add light occlusion for visible TileMaps (GH-54435).
  • Tiles: Fix selecting next/previous subtile in TileSet editor (GH-55261).
  • Viewport: Show tooltips even when paused or time_scale is 0 (GH-55224).
  • Windows: Open a new console window for the editor instances on Windows 11 (GH-55925, GH-55967).
    • This is needed to workaround a design change in Windows 11's new Windows Terminal, which broke Godot (GH-54076).
  • XR: Add support for OpenXR export configurations (GH-55158).
  • Thirdparty library updates: libogg 1.3.5, libvorbis 1.3.7, minimp3 from 2021-11-30, CA certificates from 2021-11-01.
  • API documentation and translation updates.

Known incompatibilities

Edit 2021-12-22: One regression has been found which causes flickering on macOS (affects both using the editor on macOS, and games exported to macOS). All users are advised to upgrade to Godot 3.4.2 which fixes that issue.

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 current and future hires, you can do so on Patreon or PayPal.


The illustration picture is from NeJ, an upcoming poetic and mysterious hand-drawn adventure game developed by Ben Lega. You can wishlist it on Steam and follow development on Twitter.