Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Dateisystem

Einführung

Ein Dateisystem verwaltet, wie Assets gespeichert und auf diese zugegriffen wird. Ein gut gestaltetes Dateisystem erlaubt außerdem mehreren Entwicklern, kollaborativ dieselben Dateien zu bearbeiten. Godot speichert alle Assets als Dateien im Dateisystem.

Implementierung

Das Dateisystem speichert Ressourcen auf der Festplatte. Alles, vom Skript zu Szenen oder PNG Bildern, sind Ressourcen für die Engine. Wenn eine Ressource Propertys besitzt, welche andere Ressourcen im Dateisystem referenzieren, so werden diese miteinbezogen. Wenn eine Ressource Built-in-Subressourcen besitzt, so werden diese in einer einzigen Datei zusammen mit allen gebündelten Subressourcen gespeichert. So wird beispielsweise eine Schriftart-Ressource oft zusammen mit den Schriftart-Texturen gebündelt.

Das Godot-Dateisystem vermeidet die Verwendung von Metadaten-Dateien. Bestehende Asset-Manager und VCS sind besser als alles, was wir implementieren können, daher versucht Godot sein Bestes, um mit Subversion, Git, Mercurial usw. mitzuspielen.

Beispiel von Dateisystem-Inhalten:

/project.godot
/enemy/enemy.tscn
/enemy/enemy.gd
/enemy/enemysprite.png
/player/player.gd

project.godot

Die project.godot-Datei ist die Projektdatei für Godot Projekte und befindet sich immer im Stammverzeichnis eines Projekts. Tatsächlich definiert der Ort dieser Datei sogar, was als das Stammverzeichnis für das Projekt genutzt wird. Dies ist die erste Datei, die Godot lokalisiert, wenn ein Projekt geöffnet wird.

Diese Datei enthält die Projektkonfiguration im einfachen Textformat, wobei das win.ini-Format verwendet wird. Auch eine leere project.godot kann als Basisdefinition für ein leeres Projekt dienen.

Pfad-Trennzeichen

Godot unterstützt ausschließlich / als Pfad-Trennzeichen. Dies wird aus Portabilitätsgründen so gehalten, denn alle Betriebssysteme unterstützen dies, sogar Windows, also muss ein Pfad wie C:\project\project.godot als C:/project/project.godot angegeben werden.

Ressourcen-Pfad

Beim Zugriff auf eine Ressource kann das Dateisystem-Layout des Betriebssystems umständlich und unter Umständen nicht portabel sein. Um dieses Problem zu umgehen wurde der Spezialpfad res:// geschaffen.

Der Pfad res:// zeigt immer zum Root des Projektverzeichnisses (wo project.godot zu finden ist, also ist res://project.godot immer gültig).

Dieses Dateisystem befindet sich nur dann im Lese-/Schreibmodus, wenn das Projekt lokal im Editor ausgeführt wird. Beim Export oder bei der Ausführung auf anderen Geräten (z. B. Handys oder Konsolen oder beim Starten von DVD) wird das Dateisystem schreibgeschützt und das Schreiben ist nicht mehr erlaubt.

Nutzer-Pfad

Für Aufgaben wie das Speichern des Spielstatus oder das Herunterladen von Inhaltspaketen ist das Schreiben auf die Festplatte weiterhin erforderlich. Zu diesem Zweck stellt die Engine sicher, dass es einen speziellen Pfad user:// gibt, der immer beschreibbar ist. Dieser Pfad wird je nach Betriebssystem, auf dem das Projekt läuft, unterschiedlich aufgelöst. Die lokale Pfadauflösung wird in Dateipfade in Godot-Projekten näher erläutert.

Host-Dateisystem

Alternativ können auch Pfade zum Host-Dateisystem verwendet werden, doch ist dies nicht für den Produkte zu empfehlen, die veröffentlicht werden sollen, da diese Pfade nicht garantiert auf allen Plattformen funktionieren. Die Verwendung von Host-Dateisystempfaden kann jedoch beim Schreiben von Entwicklungswerkzeugen in Godot nützlich sein.

Nachteile

Dieses Dateisystem hat einige Nachteile. Das erste Problem besteht darin, dass beim Verschieben von Assets (Umbenennen oder Verschieben von einem Pfad zu einem anderen innerhalb des Projekts) bestehende Verweise auf diese Assets zerstört werden. Diese Verweise müssen neu definiert werden, um auf den neuen Speicherort der Assets zu verweisen.

Um dies zu vermeiden, sollten alle Aktionen wie Verschieben, Löschen oder Umbenennen innerhalb von Godot ausgeführt werden, und zwar im Dateisystem-Dock. Verschieben Sie niemals Assets von außerhalb von Godot, da sonst Abhängigkeiten manuell korrigiert werden müssen (Godot erkennt dies und hilft Ihnen bei der Korrektur, aber warum sollten Sie sich die Mühe machen?).

Weiterhin ist es so, dass unter Windows und MacOS Dateien und Pfade in Groß- und Kleinschreibung nicht unterschieden werden. Wenn Entwickler auf einem dieser Systeme eine Datei als myfile.PNG abspeichert und diese aber als myfile.png referenziert, wird dies vielleicht unter deren Betriebssystem funktionieren, aber nicht unter z.B. Linux, Android etc. Dies kann auch auf exportierte Binärdateien zutreffen, welche ein komprimiertes Format nutzen, um Dateien unterzubringen.

Es wird empfohlen, dass Ihr Team eine klare Namenskonvention für Dateien bei der Arbeit mit Godot festlegt. Eine narrensichere Konvention besteht darin, dass Datei- und Pfadnamen nur in Kleinbuchstaben geschrieben werden dürfen.