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 hat Godot ein einfaches, aber effizientes System zum Erstellen von DLCs als zusätzliche Paketdateien.

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).

Export-Menü

Nachdem verschiedene Lösungen für den Arbeitsablauf des Exports evaluiert wurden, hat sich der gegenwärtige als am besten herausgestellt. Zum Zeitpunkt dieses Schreibens sind noch nicht alle Plattformen abgedeckt, aber die Zahl der unterstützten Plattformen nimmt zu.

Um das Export-Menü zu öffnen, klicken Sie auf die Exportieren-Schaltfläche:

../../_images/export.png

Das Exportieren-Fenster öffnet sich nun. Das Fenster ist jedoch leer. Das liegt daran, dass wir noch ein Exportprofil anlegen müssen.

../../_images/export_dialog.png

Um ein Exportprofil anzulegen, klicken Sie auf Hinzufügen… oben im Exportieren-Fenster. Daraufhin klappt ein Menü mit einer Liste von Plattformen auf, für die ein Profil gewählt werden kann.

../../_images/export_preset.png

Die Standardoptionen für den Export sind häufig ausreichend, eine Anpassung ist daher üblicherweise nicht notwendig. Allerdings erfordern viele Plattformen zusätzliche Werkzeuge (SDKs), die vor dem Export installiert sein müssen. Außerdem benötigt Godot Exportvorlagen, die ebenfalls vorher installiert sein müssen. Das Export-Menü weist darauf hin, wenn eine Abhängigkeit fehlt und lässt den Export nicht zu, solange nicht alle Probleme behoben worden sind:

../../_images/export_error.png

Hier würde vom Anwender erwartet werden, dass er die Dokumentation aufschlägt und den Anweisungen folgt, um dieses System entsprechend einzurichten.

Exportvorlagen

Abgesehen von der grundsätzlichen Einrichtung, müssen auch die Exportvorlagen installiert sein, um Projekte zu exportieren. Sie können als TPZ-Dateien (ein umbenanntes ZIP-Archiv) aus dem Download-Bereich der Webseite bezogen werden.

Einmal heruntergeladen, können sie unter Verwalte Exportvorlagen im Editor installiert werden:

../../_images/exptemp.png

Ressourcenoptionen

Beim Exportieren erzeugt Godot eine Liste aller zu exportierenden Dateien und erstellt dann das Paket. Es gibt 3 verschiedene Export-Modi:

  • Alle Ressourcen des Projekts exportieren

  • Ausgewählte Szenen (inklusive Abhängigkeiten) exportieren

  • Ausgewählte Ressourcen (inklusive Abhängigkeiten) exportieren

../../_images/expres.png

Export all resources in the project wird jede Ressource im Projekt exportieren. Export selected scenes und Export selected resources gibt Ihnen eine Liste der Szenen oder Ressourcen im Projekt, und Sie müssen jede Szene oder Ressource die Sie exportieren möchten auswählen.

../../_images/expselected.png

Bemerkung

Files and folders whose name begin with a period will never be included in the exported project. This is done to prevent version control folders like .git from being included in the exported PCK file.

Below the list of resources are two filters that can be setup. The first allows non resource files such as .txt,``.json`` and .csv to be exported with the project. The second filter can be used to exclude every file of a certain type without manually deselecting every one. For example, .png files.

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.exe

Es wird nach some_name.exe exportiert, vorausgesetzt, es gibt eine Voreinstellung namens "Windows Desktop" und die Vorlage kann gefunden werden. (Der Name der Export-Voreinstellung muss in Anführungszeichen gschrieben werden, wenn er Leer- oder Sonderzeichen enthält) Der Ausgabepfad ist relativ zum Projektpfad oder absolut; es beachtet nicht das Verzeichnis, aus dem der Befehl aufgerufen wurde.

The output file extension should match the one used by the Godot export process:

  • Windows: .exe

  • macOS: .zip (from all platforms) or .dmg (only when exporting from macOS). .app is not supported directly, although the generated ZIP archive contains an .app bundle.

  • Linux: Any extension (including none). .x86_64 is typically used for 64-bit x86 binaries.

  • HTML5: .zip

  • Android: .apk

  • iOS: .zip

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. Wenn Sie dies tun, muss der Name der Exportvorgabe weiterhin in der Befehlszeile angegeben werden:

godot --export-pack "Windows Desktop" some_name.pck

Es ist oft nützlich, das --export-Flag mit dem --path-Flag zu kombinieren, um nicht mit ``cd``in den Projektordner wechseln zu müssen:

godot --path /path/to/project --export "Windows Desktop" some_name.exe

Siehe auch

Siehe Befehlszeilen-Anleitung für weitere Informationen über die Verwendung von Godot über die Befehlszeile.

PCK in Vergleich zu ZIP Pack-Dateiformat

Jedes Format hat seine Vor- und Nachteile. PCK ist das Standard- und empfohlene Format für die meisten Anwendungsfälle. Abhängig von Ihren Anforderungen können Sie jedoch stattdessen ein ZIP-Archiv verwenden.

PCK format:

  • Unkomprimiertes Format. Größere Datei, aber schneller zu lesen/schreiben.

  • Nicht lesbar und beschreibbar mit Tools, die normalerweise auf dem Betriebssystem des Benutzers vorhanden sind, obwohl es Tools von Drittanbietern zum Extrahieren und Erstellen von PCK-Dateien gibt.

ZIP format:

  • Komprimiertes Format. Kleinere Dateigröße, aber langsamer zu lesen/schreiben.

  • Lesbar und beschreibbar mit Tools, die normalerweise auf dem Betriebssystem des Benutzers vorhanden sind. Dies kann nützlich sein, um das Modden zu vereinfachen (siehe auch Exportieren von Packs, Patches und Mods).

Warnung

Aufgrund eines bekannten Fehlers, wenn Sie eine ZIP-Datei als Pack-Datei verwenden, versucht die exportierte Binärdatei nicht, diese automatisch zu verwenden. Daher müssen Sie ein Launcher-Skript erstellen, das der Spieler per Doppelklick oder über ein Terminal ausführen kann, um das Projekt zu starten:

:: launch.bat (Windows)
@echo off
my_project.exe --main-pack my_project.zip

# launch.sh (Linux)
./my_project.x86_64 --main-pack my_project.zip

Speichern Sie das Startskript und legen Sie es im selben Ordner wie die exportierte Binärdatei ab. Erteilen Sie unter Linux dem Startskript mit dem Befehl chmod +x launch.sh die Berechtigung zur Ausführung.