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

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, klicke 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, klicke 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

Export-Modus

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

  • Exportiere alle Ressourcen des Projekts
  • Exportiere nur Ressourcen (+spezifische Filter), dies ist der Standard.
  • Exportiere nur ausgewählte Ressourcen (+ spezifischen Filter)
../../../_images/expres.png
  • Exportiere jede einzelne Datei - Dieser Modus exportiert jede einzelne Datei des Projekts. Das ist nützlich, um zu prüfen, ob etwas vergessen wird, aber da Entwickler oft eine Menge unwichtigen Zeugs in ihrem Projektverzeichnis haben, kann es eine schlechte Idee sein.
  • Exportiere ausgewählte Ressourcen - Nur Ressourcen werden exportiert. Dies ist für die meisten Projekte ausreichend. Jedoch möchten viele Entwickler spezielle Dateien in ihren Spielen verwenden. Um das zu berücksichtigen, können Filter für zusätzliche Dateiendungen hinzugefügt werden (beispielsweise *.txt, *.csv).
  • Exportiere nur ausgewählte Ressourcen - Nur ausgewählte Ressourcen auf einer Liste werden exportiert. Das ist für die meisten Projekte wohl zu viel des Guten, aber in manchen Fällen ist es gerechtfertigt (für gewöhnlich in großen Projekten). Dieser Modus bietet volle Kontrolle darüber, was exportiert wird. Einzelne Ressourcen können ausgewählt werden und eine Abhängigkeitskontrolle sorgt dafür, dass alles Nötige hinzugefügt wird.
../../../_images/expselected.png

Von der Kommandozeile exportieren

In production, it is useful to automate builds, and Godot supports this with the --export and --export-debug command line parameters. Exporting from the command line still requires an export preset to define the export parameters. A basic invocation of the command would be:

godot --export "Windows Desktop" some_name

This will export to some_name.exe, assuming there is a preset called „Windows Desktop“ and the template can be found. The output path is relative to the project path or absolute; it does not respect the directory the command was invoked from.

You can also configure it to export only the PCK or ZIP file, allowing a single export to be used with multiple Godot executables. This takes place if the target name ends with .pck or .zip.

It is often useful to combine the --export flag with the --path flag, and to create a dedicated export preset for automated export:

godot --path path/to/project --export "pck" game_name.pck