Godot 4.1 is right here, smoother, extra dependable, and with loads of new options
After four months of work, we’re excited to carry you Godot 4.1! It’s an replace that follows our pledge to enhance upon Godot 4.0 with frequent incremental releases — with a give attention to stability, efficiency, and polish.
As all the time, a brand new launch comes with a bunch of welcome new options, just like the improved AI navigation avoidance and the flexibility to detach code editors and put them on different shows.
Nonetheless, we took nice care to prioritize the bugs you will have encountered in 4.0. This replace fixes over 900 points that customers have reported from utilizing Godot 4 or whereas serving to contributors check 4.1 with pre-release builds. The engine ought to really feel extra dependable general. We’ll proceed enhancing stability, efficiency, and workflows with each upcoming function launch of Godot 4.
For many video games and apps made with 4.0 it needs to be comparatively protected emigrate to 4.1. We’re preparing a migration guide that outlines all the pieces it’s essential take note of when migrating your venture. Some incompatibilities are anticipated for C# and GDExtension customers particularly, nonetheless we’re engaged on ensuring to keep away from that in future releases. Don’t overlook to all the time make backups when transferring variations, even minor. Higher but, choose utilizing a model management system, similar to Git, and commit a model of your venture earlier than the migration.
Should you want to get straight into the motion, you possibly can download Godot 4.1 now. Or stick round and skim extra about probably the most notable modifications of this launch. You too can watch this nice highlights video by GDQuest:
Giving again
As a neighborhood effort, Godot depends on particular person contributors to enhance. In recent times, user and company donations allowed us to additionally rent quite a lot of core contributors to work full-time on the engine and convey you these fast-paced releases.
Our month-to-month bills stay increased than month-to-month donations, and we nonetheless rely upon massive one-time firm donations to fund improvement. Presently, we want much more monthly donations to maintain up the tempo with Godot 4 updates, to not point out the necessity to rent extra maintainers to evaluation each contribution.
Moreover monetary help, you can too give again by: writing detailed bug stories, contributing to the code base, writing documentation, writing guides (for the docs or by yourself web site), and supporting others on the assorted community platforms by answering questions and offering useful ideas.
Final however not least, making video games with Godot and crediting the engine goes a great distance to assist make it extra common and persuade extra folks to contribute and enhance Godot for everybody. Keep in mind, we’re all on this collectively and Godot requires neighborhood help in each space to thrive.
Highlights
This launch was made doable because of submissions from over 300 contributors! We warmly thanks all to your work and dedication, together with those that helped us check the engine earlier than the discharge and submit bug stories.
For an exhaustive checklist of all of the bug fixes and enhancements, head on over to our interactive changelog.
With out additional ado, right here’s a breakdown of the primary modifications and new options.
Efficiency
Godot video games are constructed as a tree of nodes, that are the engine’s base constructing block for recreation entities. Including and eradicating nodes are operations the engine must do extraordinarily usually, in order that they have to be as quick as doable.
In 4.1, we modified the algorithm to make use of a quick hashmap to make including and eradicating little one nodes a number of occasions sooner. Unusual node operations are barely slower in consequence, and the reminiscence footprint of the bottom Node class is 10% increased, however it is a small and needed trade-off for an enormous profit to all Godot customers, particularly to extra complicated tasks with a number of node manipulation.
This model additionally introduces experimental multithreading to your scenes, a function kickstarted by Juan Linietsky. New node properties provide you with full management over how nodes get processed, sequentially or in parallel.
As talked about, the function is presently marked experimental because it wants intensive testing to search out edge instances. We don’t advocate utilizing it in manufacturing but. However it units the muse for profiting from trendy {hardware}, with easy controls.
Additionally on the multithreading entrance, Pedro J. Estébanez labored laborious on fixing a considerable amount of multi-threaded loading points and limitations.
On the rendering aspect, the Vulkan renderer obtained a pipeline cache. Whereas Godot already cached shaders to cut back shader compilation stutter, compiling pipelines nonetheless result in some stuttering and slower load occasions. Whereas the pipeline compilation stuttering challenge is way from solved, this represents a step in the proper route and must also result in a slight lower in load occasions when utilizing one of many RenderingDevice-based rendering backends. This cache might be toggled off within the venture settings and is on by default in Godot 4.1.
This enchancment doesn’t tackle all doable causes of stalls, but it surely’s a primary step in the proper route by Alexander Streng. We’ll hold engaged on it in upcoming releases.
Extra work will comply with on the efficiency entrance all year long.
Core
When importing fashions into Godot, there was usually the issue that they ended up going through backward.
Juan Linietsky, Tokage, and Aaron Franke addressed the difficulty by swapping the back and front digital camera instructions within the editor. Additionally, the look_at()
operate now has an argument to make use of the mannequin area because the reference for wanting ahead as a substitute of the digital camera’s minus Z axis. These modifications additionally assist repair a long-standing bug with path following.
This replace additionally brings body delta smoothing to Godot 4, by lawnjelly. This could considerably enhance the fluidity of movement and provides smoother gameplay. This feature is enabled by default, although please be aware that it solely works when VSync can be enabled.
Scripting
GDScript
Till now, in GDScript, you wanted to make use of a useful resource or an autoload to share information between a number of situations of the identical script.
Because of George Marques, now you can create and use static variables as a substitute. Static variables retailer information on the category as a substitute of every occasion, in order that they’re shared between each occasion of the category.
To make a variable static, add the static
key phrase in entrance of a variable outlined on the high of your script.
An important function of GDScript added in Godot 4 is the automated era of documentation pages to your named courses.
This model features a rework of the system by ocean that now treats enumerations as varieties, making the generated documentation extra exact. You too can now use inline docstrings as a substitute of getting to all the time place them above a variable or a operate’s definition.
var my_variable = 10 ## That is an inline docstring
C#/.NET
The main target on this launch was on bringing function parity between C# and GDScript.
When utilizing GDScript, you possibly can outline a brand new node sort to make use of within the editor by including a worldwide class identify to your script.
Ranging from Godot 4.1, that is additionally doable in C# by including the [GlobalClass]
attribute to your file, because of Raul Santos and Will Nations. You too can use the [Icon]
attribute to offer your world class a singular icon.
Word that as of this launch tasks made with C# nonetheless can’t be exported to cell and internet platforms. We’re engaged on offering the help as quickly as doable, however the decision of this limitation will doubtless rely upon the discharge of .NET 8 on the finish of 2023. Which means that the work on enabling cell and internet platforms can solely actually begin later this 12 months.
GDExtension
Godot comes with a singular expertise to make use of low-level languages like C++ as a recreation scripting language, with out having to recompile the engine.
Whereas the expertise continues to be in beta for this launch, GDExtension is now even nearer to GDScript and C# by way of scripting capabilities. Now you can implement new visible shader nodes and create editor plugins with GDExtension.
The group additionally carried out a backward compatibility system to assist make sure that code written for Godot 4.1 retains working even when the API modifications in future releases. Nonetheless, a major compatibility breakage was essential to do in 4.1 to repair essential points in GDExtension, so present Godot 4.0 extensions will have to be ported and recompiled for 4.1.
Lastly, a number of work was completed on the structure as soon as once more to make the GDExtension API extensible sooner or later.
All of the above resulted from the teamwork of David Snopek, Juan Linietsky, RedworkDE, Yuri Rubinsky, and Yuri Sizov.
Editor
Godot 4 has help for a number of home windows which we use for the venture and editor settings and numerous pop-ups. Beginning with this model, now you can additionally detach docs into floating home windows and detach script editors, together with the shader editor, and place them on a separate monitor.
Along with that, the editor will now hold monitor of your window format in order that once you shut and reopen the editor, it’s best to usually end up precisely the place you left off.
You possibly can thank trollodel, Hendrik Brucker, and Tomasz Chabora for this.
Godot 4.0 launched the choice to outline and export typed arrays, and to export particular person nodes to the inspector, but it surely was not doable to mix the 2. From Godot 4.1 onwards, you possibly can export arrays of nodes to the inspector, which is nice to hyperlink recreation objects collectively.
This work was completed by Tomasz and Timothé Bonhoure
The venture supervisor now lets you assign tags to particular person tasks and filter tasks by tags. It makes it a lot simpler to look by dozens, if not a whole bunch of Godot tasks.
Rendering
Particle turbulence obtained reworked on this model based mostly on artists’ suggestions to supply higher inventive management. Turbulence is used extensively to create these wealthy sprawling results seen in lots of trendy video games. Huge because of KdotJPG and Raffaele Picca for this contribution.
Utilizing the brand new 3D noise textures you possibly can management the density of volumetric fog simply, and make it thinner in sure areas. NoiseTexture3D can be used to create particle attractor vector fields, which is helpful to simulate wind that impacts particles. Lasuch and Clay John carried out this function.
Whereas there are nonetheless many planned improvements to Godot’s renderers, most will likely be current in future releases. The rendering group (and all rendering contributors) prioritized bug fixing and stability over new options. Notably, the 3D GLES3 renderer shouldn’t be but full, however will see substantial work over the approaching months.
Navigation
Godot 4.0 launched real-time avoidance for AI navigation, but it surely was restricted to a single aircraft.
This launch consists of fully rewritten avoidance algorithms by smix8 to offer you significantly better behaviors and higher management. Avoidance can now occur in 2D or 3D, permitting flying brokers to maneuver over these strolling on the bottom.
On high of that, now you can use layers to regulate which brokers keep away from which and assign priorities to have some brokers push others away.
Try the updated documentation to study extra about how the improved navigation works.
Platform help
We’re as dedicated as ever to have Godot video games on all common platforms, and 4.1 nonetheless presents the identical capabilities as did Godot 4.0. You possibly can export to all desktop platforms with each normal and .NET model of the engine, and you may export to cell and internet in case you don’t use C# in your tasks.
As of 4.1 internet exports nonetheless have some limitations attributable to poor vendor help of sure trendy options. Browsers with dangerous WebGL 2 help, similar to Chrome on macOS, sadly endure from points which we can’t tackle and not using a repair from Google or a major quantity of effort put into supporting a devoted WebGL 1 / GLES2 renderer.
We’re additionally conscious of the complexity organising internet video games on internet hosting platforms which don’t allow you to set the required CORS headers for SharedArrayBuffer help. This principally will depend on Safari implementing the coep:credentialless
header help, whereas Chromium-based browsers and Firefox already work advantageous (particularly in case you publish on itch.io). There’s a possible workaround that we’re investigating.
Identified points
With each launch we acknowledge that there are going to be issues which we couldn’t resolve in time. A few of these issues have been recognized and fixes are being labored on as we communicate, whereas others stay unknown till somebody runs into the difficulty. You possibly can comply with our bug tracker to study if the issue that you simply’re experiencing has been reported. We recognize new stories and confirmations of present stories, as that helps us prioritize fixing particular points.
Listed here are notable points which have already been recognized that you simply would possibly expertise in Godot 4.1:
- The newly added API for outlining customized configuration properties for export presets doesn’t persist consumer configurations. Configuration choices get reset and misplaced on editor restarts. The repair goes to be obtainable in 4.1.1 (see GH-79025).
On to the subsequent launch!
We already began work on Godot 4.2, which can come out in 4 months. We’re devoted to maintaining the tempo and sticking to this dependable launch cycle, so that you by no means have to attend lengthy for the subsequent batch of enhancements and new options.
Till then, enjoy Godot 4.1!