Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Projektorganisation

Einführung

Da Godot keine Einschränkungen hinsichtlich der Projektstruktur oder der Verwendung des Dateisystems hat, kann das Organisieren von Dateien beim Erlernen der Engine eine Herausforderung darstellen. Diese Anleitung schlägt einen Arbeitsablauf vor, der ein guter Ausgangspunkt sein sollte. Wir werden auch die Versionskontrolle mit Godot behandeln.

Organisation

Godot ist szenenbasiert und verwendet das Dateisystem unverändert ohne Metadaten oder eine Asset-Datenbank.

Im Gegensatz zu anderen Engines sind viele Ressourcen in der Szene selbst enthalten, sodass die Anzahl der Dateien im Dateisystem erheblich geringer ist.

Der gängigste Ansatz ist daher, die Assets so nah wie möglich an den Szenen zu gruppieren; wenn ein Projekt wächst, wird es dadurch leichter wartbar.

So kann man z.B. die grundlegenden Elemente wie Sprite-Bilder, 3D-Modell-Meshes, Materialien, Musik usw. in einem einzigen Ordner ablegen. Sie können dann einen separaten Ordner verwenden, um die erstellten Levels zu speichern, die sie verwenden.

/project.godot
/docs/.gdignore  # See "Ignoring specific folders" below
/docs/learning.html
/models/town/house/house.dae
/models/town/house/window.png
/models/town/house/door.png
/characters/player/cubio.dae
/characters/player/cubio.png
/characters/enemies/goblin/goblin.dae
/characters/enemies/goblin/goblin.png
/characters/npcs/suzanne/suzanne.dae
/characters/npcs/suzanne/suzanne.png
/levels/riverdale/riverdale.scn

Styleguide

Aus Gründen der Projektkonsistenz empfehlen wir, die folgenden Richtlinien zu befolgen:

  • Verwenden Sie snake_case für Ordner- und Dateinamen (mit Ausnahme von C#-Skripten). Dadurch werden Probleme mit der Groß- und Kleinschreibung umgangen, die nach dem Exportieren eines Projekts unter Windows auftreten können. C#-Skripte sind eine Ausnahme von dieser Regel, da die Konvention darin besteht, sie nach dem Klassennamen zu benennen, der in PascalCase geschrieben sein sollte.

  • Verwenden Sie PascalCase für Node-Namen, da dies mit der Groß-/Kleinschreibung der integrierten Nodes übereinstimmt.

  • Bewahren Sie Ressourcen von Drittanbietern im Allgemeinen in einem Ordner addons / der obersten Ebene auf, auch wenn es sich nicht um Editor-Plugins handelt. Dies erleichtert das Verfolgen der Dateien von Drittanbietern. Es gibt einige Ausnahmen von dieser Regel; Wenn Sie beispielsweise Spiel-Assets von Drittanbietern für einen Charakter verwenden, ist es sinnvoller, diese in denselben Ordner wie die Charakterszenen und -skripte aufzunehmen.

Importieren

Godot-Versionen vor 3.0 haben den Importvorgang aus Dateien außerhalb des Projekts durchgeführt. Während dies in großen Projekten nützlich sein kann, führte dies für die meisten Entwickler zu Organisationsproblemen.

Because of this, assets are now transparently imported from within the project folder. See Import-Prozess for more details on how importing works in Godot.

Bestimmte Ordner ignorieren

Um zu verhindern, dass Godot Dateien importiert, die in einem bestimmten Ordner enthalten sind, erstellen Sie eine leere Datei mit dem Namen .gdignore im Ordner (der anführende Punkt . ist erforderlich). Dies kann nützlich sein um den ersten Projektimport zu beschleunigen.

Bemerkung

To create a file whose name starts with a dot on Windows, place a dot at both the beginning and end of the filename (.gdignore.). Windows will automatically remove the trailing dot when you confirm the name.

Alternativ können Sie auch einen Texteditor wie Notepad++ verwenden oder den folgenden Befehl in einer Eingabeaufforderung eingeben: type nul > .gdignore

Sobald der Ordner ignoriert wird, können die Ressourcen in diesem Ordner nicht mehr mit den Methoden load() und preload() geladen werden. Außerdem wird der Ordner im Dateisystem-Panel verborgen, wodurch Unordnung vermieden werden kann.

Beachten Sie, dass der Inhalt der Datei .gdignore ignoriert wird, weshalb die Datei leer sein sollte. Sie unterstützt keine Muster wie die .gitignore-Dateien.

Groß- und Kleinschreibung beachten

Windows und neuere MacOS-Versionen verwenden standardmäßig Dateisysteme, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird, während Linux-Distributionen standardmäßig ein Dateisystem verwenden, bei dem die Groß- und Kleinschreibung berücksichtigt wird. Dies kann nach dem Exportieren eines Projekts zu Problemen führen, da das virtuelle PCK-Dateisystem von Godot zwischen Groß- und Kleinschreibung unterscheidet. Um dies zu vermeiden wird empfohlen, bei allen Dateien im Projekt die Bezeichnung snake_case beizubehalten (und im allgemeinen Kleinbuchstaben zu verwenden).

Bemerkung

Diese Regel kann gebrochen werden, wenn Styleguides etwas anderes empfehlen (wie der C# Styleguide). Seien Sie dennoch konsistent, um Fehler zu vermeiden.

On Windows 10, to further avoid mistakes related to case sensitivity, you can also make the project folder case-sensitive. After enabling the Windows Subsystem for Linux feature, run the following command in a PowerShell window:

# To enable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> enable

# To disable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> disable

If you haven't enabled the Windows Subsystem for Linux, you can enter the following line in a PowerShell window running as Administrator then reboot when asked:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux