Einführung in die Editorentwicklung

Auf dieser Seite erfahren Sie:

  • Die Designentscheidungen hinter dem Godot-Editor.

  • Wie man effizient am C++-Code des Godot-Editors arbeitet.

Diese Anleitung richtet sich an aktuelle oder zukünftige Engine-Mitwirkende. Um Editor-Plugins in GDScript zu erstellen, siehe stattdessen Erweiterungen (Plugins) erstellen.

Siehe auch

Wenn Sie neu bei Godot sind, empfehlen wir Ihnen, Godots Design-Philosophie zu lesen, bevor Sie fortfahren. Da der Godot-Editor ein in C++ geschriebenes Godot-Projekt ist, gilt ein Großteil der Philosophie der Engine auch für den Editor.

Technische Entscheidungen

Der Godot-Editor wird mit Godots Renderer und dem UI-System gezeichnet. Er ist nicht auf ein Toolkit wie GTK oder Qt angewiesen. Dies ist im Geiste ähnlich zu Software wie Blender. Während die Verwendung von Toolkits es einfacher macht, ein "natives" Aussehen zu erreichen, sind sie auch ziemlich schwer und ihre Lizenzierung ist nicht kompatibel mit der von Godot.

Der Editor ist vollständig in C++ geschrieben. Er kann keinen GDScript- oder C#-Code enthalten.

Verzeichnisstruktur

Der Code des Editors ist vollständig im Ordner editor/ des Godot-Source-Repositorys.

Einige Editor-Funktionen sind auch über Module implementiert. Einige davon sind nur in Editor-Builds aktiviert, um die Binärgröße von Exportvorlagen zu verringern. Siehe den Ordner modules/ im Godot-Source-Repository.

Einige wichtige Dateien im Editor sind:

Editor-Abhängigkeiten in scene/-Dateien

Wenn Sie an einer Editor-Funktion arbeiten, müssen Sie möglicherweise Dateien in Godots GUI-Nodes ändern, die Sie im Ordner scene/ finden.

Eine Regel, die Sie beachten sollten, ist, dass Sie keine neuen Abhängigkeiten zu editor/-Includes in anderen Ordnern wie scene/ einführen dürfen. Dies gilt auch, wenn Sie #ifdef TOOLS_ENABLED verwenden.

Um die Codebasis übersichtlicher und in sich geschlossener zu gestalten, ist die zulässige Reihenfolge der Abhängigkeiten:

  • editor/ -> scene/ -> servers/ -> core/

Das bedeutet, dass Dateien in editor/ von Includes aus scene/, servers/ und core/ abhängen können. Aber während zum Beispiel scene/ von Includes aus servers/ und core/ abhängen kann, kann es nicht von Includes aus editor/ abhängen.

Derzeit gibt es noch einige Abhängigkeiten zu editor/-Includes in scene/-Dateien, die aber derzeit entfernt werden.

Tipps zur Entwicklung

Um schnell über den Editor zu iterieren, empfehlen wir, ein Testprojekt einzurichten und es nach dem Kompilieren des Editors von der Kommandozeile zu öffnen. Auf diese Weise müssen Sie nicht jedes Mal, wenn Sie Godot starten, durch den Projektmanager gehen.