Projekte exportieren¶
Wozu exportieren?¶
Ursprünglich bot Godot keine Möglichkeit, Projekte zu exportieren. Die Entwickler kompilierten die entsprechenden Binärdateien und Bibliotheken für jede Plattform per Hand.
Als immer mehr Entwickler (und Nicht-Programmierer) begannen, Godot einzusetzen, und auch gleichzeitig unser Unternehmen immer mehr Aufträge annahm, stellte sich das als Flaschenhals heraus.
Auf dem PC¶
Ein Projekt für den PC zu verteilen ist vergleichsweise einfach. Sie legen die ausführbare Godot-Datei im selben Verzeichnis wie die project.godot
ab, komprimierst den Projektordner und das war's.
Das klingt zunächst einmal simpel, doch es gibt einige Gründe, warum ein Entwickler sich gegen diese Methode auszusprechen mag. Einer davon kann sein, dass es nicht gewünscht ist, viele einzelne Dateien zu verbreiten, entweder um den internen Spielaufbau vor neugierigen Blicken zu schützen, oder weil es unelegant ist, etc. Ein anderer Grund wäre, stattdessen eine speziell kompilierte Binärdatei auszuliefern, die optimiert ist und eine kleinere Dateigröße aufweist und ohne Entwicklungswerkzeuge, wie Editor und Debugger auskommt.
Schließlich, bietet Godot ein einfaches aber effizientes System zur Erzeugung von DLCs für zusätzliche Inhalte.
Auf mobilen Geräten¶
Das gleiche Szenario ist auf mobilen Plattformen etwas komplizierter. Um ein Projekt auf diesen Geräten zu verteilen, wird eine Binärdatei für jede Zielplattform individuell kompiliert und diese im Anschluss in einem nativen Projekt eingebettet, zusammen mit den Spielinhalten.
Dies kann sich als problematisch erweisen, denn der Entwickler muss sich im Vorfeld mit dem SDK der jeweiligen mobilen Plattform vertraut machen, ehe er damit überhaupt etwas exportieren kann. Auch wenn es immer lobenswert ist, sich in unterschiedliche SDKs einzuarbeiten, kann es frustrierend sein, wenn das zu einer ungünstigen Gelegenheit kommt.
Auch kommt eine weitere Problematik mit diesem Ansatz einher: unterschiedliche Geräte verarbeiten bestimmte Daten in unterschiedlichen Formaten. Als prominentes Beispiel dafür steht die Texturkomprimierung. Unter PC-Hardware verwendet man dafür S3TC (BC), welches als der Standard seit über einem Jahrzehnt gilt, doch mobile Geräte verwenden anderweitige Formate für die Texturkomprimierung, wie PVRTC (iOS) oder ETC (Android).
Von der Kommandozeile exportieren¶
In der Produktion ist es nützlich, Builds zu automatisieren, und Godot unterstützt dies mit den Kommandozeilenparametern --export
und --export-debug
. Für den Export über die Befehlszeile ist nach wie vor eine Exportvoreinstellung zur Definition der Exportparameter erforderlich. Ein grundlegender Aufruf des Befehls wäre:
godot --export "Windows Desktop" some_name
Es wird nach some_name.exe
exportiert, vorausgesetzt es gibt eine Voreinstellung namens "Windows Desktop" und die Vorlage kann gefunden werden. Der Ausgabepfad ist relativ zum Projektpfad oder absolut; es beachtet nicht das Verzeichnis, aus dem der Befehl aufgerufen wurde.
Sie können es auch so konfigurieren, dass nur die PCK- oder ZIP-Datei exportiert wird, so dass ein einziger Export mit mehreren ausführbaren Godot-Programmen verwendet werden kann. Dies findet statt, wenn der Zielname mit .pck
oder .zip
endet.
Es ist oft nützlich, das --export
Flag mit dem --path
Flag zu kombinieren und eine dedizierte Exportvoreinstellung für den automatischen Export zu erstellen:
godot --path path/to/project --export "pck" game_name.pck
PCK versus ZIP pack file formats¶
Each format has its upsides and downsides. PCK is the default and recommended format for most use cases, but you may want to use a ZIP archive instead depending on your needs.
PCK format:
- Uncompressed format. Larger file size, but faster to read/write.
- Not readable and writable using tools normally present on the user's operating system, even though there are third-party tools to extract and create PCK files.
ZIP format:
- Compressed format. Smaller file size, but slower to read/write.
- Readable and writable using tools normally present on the user's operating system. This can be useful to make modding easier (see also Exportieren von Packs, Patches und Mods).