A screenshot of a code editor displaying a script in the Godot game engine, with a 3D model and its reference grid shown on the right. The text at the bottom reads 'DEV SNAPSHOT 4.5 Dev 5.'

Godot 4.5 Dev 5: Shaders, Colors & Abstracts Galore

Godot 4.5 Dev 5 introduces visionOS support, GDScript abstract classes, shader baking, WebAssembly SIMD, and inline color pickers.

Godot 4.5 Dev 5 introduces native support for Apple’s visionOS, marking the first officially-supported platform integration in about a decade. This addition, contributed by Ricardo Sanchez-Saez from Apple’s visionOS engineering team, enables developers to build applications for Apple’s XR environment directly within Godot.

GDScript: Abstract Classes

GDScript now supports abstract classes, allowing developers to define classes that cannot be instantiated directly but serve as a base for other classes. This feature, implemented by Aaron Franke, introduces the abstract keyword, enabling a more structured and object-oriented approach to scripting in Godot.

https://godotengine.org/storage/blog/dev-snapshot-godot-4-5-dev-5/abstract-error.webp

Shader Baker

The new shader baker feature, developed by Darío Samo and Pedro J. Estébanez, allows for exporting precompiled shaders to significantly reduce shader compilation times, especially on Apple devices and D3D12. While this feature can decrease load times by over 20× in certain demos, it comes with trade-offs, including increased export times and larger build sizes. Additionally, support for the Forward+ renderer on Intel Macs is no longer guaranteed due to the removal of certain MoltenVK bug workarounds.

WebAssembly SIMD Support

Godot 4.5 Dev 5 integrates WebAssembly SIMD support, enhancing performance for web builds by leveraging Single Instruction, Multiple Data (SIMD) capabilities across major browsers. This implementation, led by Adam Scott, provides an alternative to multi-threaded web support, which had been reverted in previous versions.

Inline Color Pickers

A new quality-of-life feature adds inline color pickers within the script editor, allowing developers to view and select colors directly in their code. This enhancement, contributed by Koliur Rahman, improves the intuitiveness of color assignments without the need to expose variables.

Rendering Enhancements

Several rendering improvements have been introduced:

  • SMAA 1x anti-aliasing has been integrated into the engine, thanks to Raymond DiDonato.
  • Bent normal maps, contributed by Capry, enhance specular occlusion and indirect lighting.
  • The Compatibility backend now uses a fragment shader copy instead of a blit copy, addressing sample rate issues on mobile devices, as implemented by Clay John.

These updates aim to improve visual fidelity and performance across various platforms.

Community Contributions and Bug Fixes

The development snapshot includes numerous fixes and enhancements contributed by the community, addressing various issues and enhancing the engine’s stability. As the feature freeze approaches, developers are encouraged to test the new features and report any bugs to ensure a smooth beta period. For more details and to download the latest development snapshot, visit the official Godot Engine website: godotengine.org