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.

Projekte exportieren

Warum 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 Bottleneck heraus.

Auf dem PC

Ein Projekt für den PC zu veröffentlichen, ist vergleichsweise einfach. Sie legen die ausführbare Godot-Datei im selben Verzeichnis wie die project.godot ab, komprimieren 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 veröffentlichen, 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 Entwicklungs-Tools, 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 für diese Geräte zu veröffentlichen, 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. Das Erlernen der einzelnen SDKs wird zwar immer empfohlen, aber es kann frustrierend sein, wenn man dazu gezwungen wird, dies zu einem unerwünschten Zeitpunkt zu tun.

Es gibt noch ein weiteres Problem bei diesem Ansatz: Verschiedene Geräte bevorzugen verschiedene Datenformate. Das wichtigste Beispiel hierfür ist die Texturkomprimierung. Die gesamte PC-Hardware verwendet die S3TC (BC)-Komprimierung, die seit mehr als einem Jahrzehnt standardisiert ist, aber mobile Geräte verwenden unterschiedliche Formate für die Texturkomprimierung, wie ETC1 und ETC2.

Exportmenü

Nachdem verschiedene Lösungen für den Arbeitsablauf des Exports evaluiert wurden, hat sich der gegenwärtige als am besten herausgestellt. Zum Zeitpunkt der Erstellung dieses Artikels werden noch nicht alle Plattformen unterstützt, aber die Zahl der unterstützten Plattformen wächst ständig.

Um das Exportmenü zu öffnen, klicken Sie auf den Exportieren-Button:

../../_images/export.webp

Das Exportmenü wird geöffnet. Es ist jedoch noch völlig leer. Das liegt daran, dass wir ein Exportprofil hinzufügen müssen.

../../_images/export_dialog.webp

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

../../_images/export_preset.webp

Die Default-Optionen 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 Exportmenü 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.webp

Zu diesem Zeitpunkt wird vom Benutzer erwartet, dass er auf die Dokumentation zurückgreift und die Anweisungen zur ordnungsgemäßen Einrichtung dieser Plattform befolgt.

Mit den Buttons am unteren Ende des Menüs können Sie das Projekt auf verschiedene Arten exportieren:

  • Alles exportieren: Exportiert das Projekt als abspielbaren Build (ausführbare Godot-Datei und Projektdaten) für alle definierten Vorgaben. Für alle Vorgaben muss ein Exportpfad definiert sein, damit dies funktioniert.

  • Projekt exportieren: Exportieren Sie das Projekt als spielbaren Build (ausführbare Godot-Datei und Projektdaten) für die ausgewählte Vorgabe.

  • PCK/ZIP exportieren: Exportiert die Projektressourcen als PCK- oder ZIP-Paket. Dabei handelt es sich nicht um einen spielbaren Build, sondern nur um den Export der Projektdaten ohne eine ausführbare Godot-Datei.

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 Exportvorlage Installieren im Editor installiert werden:

../../_images/export_templates.webp

Ressourcenoptionen

When exporting, Godot makes a list of all the files to export and then creates the package. There are 5 different modes for exporting:

  • Alle Ressourcen des Projekts exportieren

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

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

  • Export all resources in the project except resources checked below

  • Export as dedicated server

../../_images/export_resources.webp

Alle Ressourcen des Projekts exportieren wird jede Ressource im Projekt exportieren. Ausgewählte Szenen exportieren und Ausgewählte Ressourcen exportieren gibt Ihnen eine Liste der Szenen oder Ressourcen im Projekt, und Sie müssen jede Szene oder Ressource auswählen, die Sie exportieren möchten.

../../_images/export_selected.webp

Export all resources in the project except resources checked below does exactly what it says, everything will be exported except for what you select in the list.

Export as dedicated server will remove all visuals from a project and replace them with a placeholder. This includes Cubemap, CubemapArray, Material, Mesh, Texture2D, Texture2DArray, Texture3D. You can also go into the list of files and specify specific visual resources that you do wish to keep.

Bemerkung

Dateien und Ordner, deren Namen mit einem Punkt beginnen, werden nie in das exportierte Projekt aufgenommen. Dies geschieht, um zu verhindern, dass Versionskontrollordner wie .git in die exportierte PCK-Datei aufgenommen werden.

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.

Konfigurationsdateien

Die Exportkonfiguration wird in zwei Dateien gespeichert, die beide im Projektverzeichnis zu finden sind:

  • export_presets.cfg: Diese Datei enthält den größten Teil der Exportkonfiguration und kann sicher in die Versionsverwaltung commitet werden. Hier gibt es nichts, was Sie normalerweise geheim halten müssten.

  • .godot/export_credentials.cfg: Diese Datei enthält Exportoptionen, die als vertraulich gelten, wie Passwörter und Verschlüsselungsschlüssel. Sie sollte im Allgemeinen nicht in die Versionsverwaltung committet oder mit anderen geteilt werden, es sei denn, Sie wissen genau, was Sie tun.

Da die Datei mit den Anmeldeinformationen normalerweise nicht in Versionsverwaltungssystemen gespeichert wird, fehlen einige Exportoptionen, wenn Sie das Projekt auf einen neuen Rechner klonen. Am einfachsten ist es, die Datei manuell vom alten Speicherort zum neuen zu kopieren.

Von der Kommandozeile exportieren

Im Produktionsbetrieb ist es nützlich, Builds zu automatisieren, und Godot unterstützt dies mit den Kommandozeilenparametern --export-release und --export-debug. Der Export von der Kommandozeile aus erfordert immer noch ein Exportprofil, um die Exportparameter zu definieren. Ein einfacher Aufruf des Befehls würde wie folgt aussehen:

godot --export-release "Windows Desktop" some_name.exe

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

Die Dateierweiterung der Ausgabedatei sollte mit derjenigen übereinstimmen, die vom Godot-Exportprozess verwendet wird:

  • Windows: .exe

  • macOS: .app or .zip (or .dmg when exporting from macOS)

  • Linux: Jede Erweiterung (auch keine). .x86_64 wird typischerweise für 64-Bit-x86-Binärdateien verwendet.

  • 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 des Exportprofils weiterhin in der Kommandozeile angegeben werden:

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

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

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

Siehe auch

Siehe Kommandozeilen-Tutorial für weitere Informationen über die Verwendung von Godot über die Kommandozeile.

PCK vs. ZIP Pack-Dateiformat

Jedes Format hat seine Vor- und Nachteile. PCK ist der Default und das 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 Schreibbar 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

Due to a known bug, when using a ZIP file as a pack file, the exported binary will not try to use it automatically. Therefore, you have to create a launcher script that the player can double-click or run from a terminal to launch the project:

:: 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 Launcher-Skript und legen Sie es im selben Ordner wie die exportierte Binärdatei ab. Erteilen Sie unter Linux dem Launcher-Skript mit dem Befehl chmod +x launch.sh die Berechtigung zur Ausführung.