Aurélien Vivet
Posted
At the beginning of the year, we announced our 2025 roadmap, and notably that a full 3D, real-time editor was being integrated into GDevelop.
This new editor is now almost ready and will be included in the upcoming 5.6 release. If you haven’t read our introduction to GDevelop 5.6 yet, read it here.
Let's take a look in this article at the engineering behind the editor and, notably, the architectural changes it required and the technical challenges we had to overcome. While developing it, the team had to maintain the existing engine, fix community-reported bugs, optimize performance, and strengthen the whole software stability.
The 3D editor is entirely separate from the 2D editor, giving us the flexibility to improve existing features as we introduced 3D capabilities.
The existing 2D editor is lightweight and fast but its architecture had some limitations:
Overcoming these limitations required an architectural shift. The 3D editor is built on the foundations provided by the game engine:
As the new 3D editor runs and renders in a separate frame and process, and is based on the game engine itself, it brings major performance and scalability improvements:
As the 3D editor is the game itself running separately from the rest of the editor, it maintains its own scene representation, synchronized with the main editor through internal message exchanges. This is based on the same work that enables hot-reloading inside previews.
This allows changes, like adjusting an object’s tint, texture, color or other properties in the sidebar, to appear immediately in the editor.
To prevent game logic from executing in the viewport, the 3D view runs in a paused state, rendering only what’s visible and reacting to property updates sent from the editor panels.
Early prototypes revealed a major bottleneck: every property change triggered a multi-second reload with a loading bar, unacceptable for a real-time editor. The culprit: the engine was reloading entire scenes and resources for every small changes.
We optimized the hot-reload system to only transmit essential datas, cutting reload times from several seconds to a few milliseconds. The 3D editor has a variable refresh rate system to balance CPU/GPU usage if the latter is not focused or in use.
These improvements made it possible to achieve true real-time scene editing with immediate feedback, even in complex environments.
To support a new 3D viewport, the interface underwent a small redesign.
The viewport now occupies the entire window, with contextual panels (properties, layers, objects) dynamically overlaying the 3D view.
This approach enables a "full-screen" experience. It also made to avoids costly re-rendering when resizing or moving user interface panels. Panels now keep their position even when you hide them, so we encourage your to customize your workspace and then hide/show panels when needed.
Building the 3D editor directly on top of the preview system enabled a major leap: you now see what you manipulate. Previously invisible placeholders from the 2D editor now appear as visual 3D representations. For instance, a 3D particle emitter now displays a cone representing its emission direction, fully visible and adjustable within the editor.
The new architecture also opens the door to extension-driven visualization.
Extensions can now be used to create custom rendering logic into the editor, something that was impossible in the previous 2D editor.
A perfect example is the 3D Height Map object: it generates and updates terrain geometry dynamically using JavaScript and Three.js. This can now be rendered in real-time in the 3D editor.
This is possible because the same code generation that works for the game and renders the game is used for the integrated editor.
GDevelop’s new 3D editor represents far more than a visual upgrade, it’s a complete architectural rework.
By embedding the editor inside the engine, optimizing real-time synchronization ("hot-reloading"), and enabling extension-based rendering, GDevelop now offers a fast and intuitive 3D creation experience.
The 3D editor is still new and there are many improvements that have been now unlocked thanks to its release:
In the meantime, please let us know if you encounter any issue so that the 3D editor is fully stable.
We have our ideas, but we also want to hear yours!
Join the conversation and spread the word with #GDevelop on our social media channels:
Thanks!