An exciting new feature for game developers has begun to land in the free and open source Godot Engine, with the start of interactive in-game editing.
Coming in Godot 4.4 which just had a 4th developer preview released, this feature lets developers more easily debug an actual running game. Instead of me trying to explain it poorly as a non-dev though, here's what they said about it:
One of the most requested features is the ability to debug the running game from within the editor including pausing the game, clicking on elements within the scene, and embedding the running game window inside the editor. Dev4 comes with the first two of these workflows thanks to the contribution from YeldhamDev of Lone Wolf Technology & W4 Games, users are now able to explore their project’s world freely!
The actual embedding of the game window into the editor will come later in a subsequent PR.
Check out the PR (GH-97257) and the video below to see exactly what this change enables.
According to the PR noted above this includes:
- Selection of 2D/3D nodes at runtime, this includes anything that has collisions or some sort of visual representation. When a node is selected, a selection box will appear around it and it will be opened in the inspector.
- Suspend mode. This is a middle ground between in-game pausing and the editor's break feature. When this mode is enabled, it allows node selection, and frame skipping.
- Next frame. This allows the game to run one frame at the time when the it's suspended.
- Production edit: This closes Add a keyboard shortcut to perform frame-by-frame stepping when running a project from the editor godot-proposals#3105.
- 2D/3D camera override. The camera manipulation can come from within the game, or the 2D and 3D editors.
And a little video they included to show it off a bit:
There's some other really nice sounding features added into Godot as well with this release including ubershaders and pipeline pre-compilation. The result is two big improvements:
- Ubershaders: a technique that allows us to completely avoid shader stutter when objects are viewed in a scene for the first time
- Dedicated transfer queues: by relying on special hardware functions we can dramatically improve the load time for scenes containing many graphics assets like meshes and textures.
So future games made with at least Godot 4.4 should see some real nice performance improvements there. Not just for players, but for developers as well since the previous dev3 release also had a massive optimized scene startup for large projects.
Godot is really getting some advanced features lately, wonderful to see for cross-platform game development.
See more in the release post for dev4.
See more from me