Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Introduction au développement de l'éditeur¶
Sur cette page, vous allez apprendre :
Les décisions de conception derrière l'éditeur Godot.
Comment travailler efficacement sur le code C++ de l'éditeur Godot.
Ce guide est destiné aux contributeurs actuels ou futurs du moteur. Pour créer des plugins d'éditeur dans GDScript, consultez plutôt Création de plugins.
Voir aussi
Si vous êtes nouveau à Godot, nous vous recommandons de lire La philosophie de design de Godot avant de continuer. L'éditeur Godot étant un projet Godot écrit en C++, une grande partie de la philosophie du moteur s'applique à l'éditeur.
Choix techniques¶
The Godot editor is drawn using Godot's renderer and UI system. It does not rely on a toolkit such as GTK or Qt. This is similar in spirit to software like Blender. While using toolkits makes it easier to achieve a "native" appearance, they are also quite heavy and their licensing is not compatible with Godot's.
L'éditeur est entièrement écrit en C++. Il ne peut pas contenir de code GDScript ou C#.
Structure du répertoire¶
Le code de l'éditeur est entièrement autonome dans le dossier editor/ du dépôt de sources de Godot.
Some editor functionality is also implemented via modules. Some of these are only enabled in editor builds to decrease the binary size of export templates. See the modules/ folder in the Godot source repository.
Certains fichiers importants de l'éditeur sont :
editor/editor_node.cpp: Main editor initialization file. Effectively the "main scene" of the editor.
editor/project_manager.cpp: Main Project Manager initialization file. Effectively the "main scene" of the Project Manager.
editor/plugins/canvas_item_editor_plugin.cpp: The 2D editor viewport and related functionality (toolbar at the top, editing modes, overlaid helpers/panels, …).
editor/plugins/node_3d_editor_plugin.cpp: The 3D editor viewport and related functionality (toolbar at the top, editing modes, overlaid panels, …).
editor/plugins/node_3d_editor_gizmos.cpp: Where the 3D editor gizmos are defined and drawn. This file doesn't have a 2D counterpart as 2D gizmos are drawn by the nodes themselves.
Dépendances de l'éditeur dans les fichiers scene/
¶
Lorsque vous travaillez sur une fonctionnalité de l'éditeur, vous pouvez avoir à modifier des fichiers dans les nœuds de l'interface graphique de Godot, que vous pouvez trouver dans le dossier scene/
.
Une règle à garder à l'esprit est que vous ne devez pas introduire de nouvelles dépendances aux includes de editor/
dans d'autres dossiers tels que scene/
. Ceci s'applique même si vous utilisez #ifdef TOOLS_ENABLED
.
Pour rendre la base de code plus facile à suivre et plus autonome, l'ordre de dépendance autorisé est le suivant :
editor/
->scene/
->servers/
->core/
Cela signifie que les fichiers de editor/
peuvent dépendre des includes de scene/
, servers/
, et core/
. Mais, par exemple, alors que scene/
peut dépendre des includes de servers/
et core/
, il ne peut pas dépendre des includes de editor/
.
Currently, there are some dependencies to editor/
includes in scene/
files, but
they are in the process of being removed.
Conseils de développement¶
To iterate quickly on the editor, we recommend to set up a test project and open it from the command line after compiling the editor. This way, you don't have to go through the Project Manager every time you start Godot.