Exportieren

Übersicht

Jetzt, da Du ein fertiges Spiel hast, willst Du wahrscheinlich Deinen Erfolg mit anderen teilen. Es ist jedoch nicht praktisch, Deine Freunde zu bitten, Godot herunterzuladen, nur damit sie Dein Projekt öffnen können. Stattdessen kannst Du Dein Projekt exportieren und in ein „Paket“ konvertieren, das von jedem ausgeführt werden kann.

Wie Du Dein Spiel exportierst, hängt davon ab, auf welche Plattform Du Dich fokussierst. In diesem Tutorial erfährst Du, wie Du das Spiel „Dodge the Creeps“ für unterschiedliche Plattformen exportieren kannst. Zunächst müssen wir jedoch einige Änderungen an der Funktionsweise des Spiels vornehmen.

Bemerkung

Wenn du „Dodge the Creeps“ noch nicht selbst erstellt hast, lies bitte Dein erstes Spiel, bevor du mit diesem Tutorial weitermachst.

Vorbereitung des Projekts

In „Dodge the Creeps“ verwendeten wir Tastatursteuerungen, um den Charakter des Spielers zu bewegen. Dies ist in Ordnung, wenn Ihr Spiel auf einer PC-Plattform gespielt wird, aber auf einem Telefon oder Tablett müssen Sie die Touchscreen-Eingabe unterstützen. Da ein Klickereignis wie ein Touch-Ereignis behandelt werden kann, konvertieren wir das Spiel in einen Click-and-Move-Eingabestil.

By default Godot emulates mouse input from touch input. That means if anything is coded to happen on a mouse event, touch will trigger it as well. Godot can also emulate touch input from mouse clicks, which we will need to be able to keep playing our game on our computer after we switch to touch input. In the „Project Settings“ under Input Devices and Pointing, set Emulate Touch From Mouse to „On“.

../../_images/export_touchsettings.png

We also want to ensure that the game scales consistently on different-sized screens, so in the project settings go to Display, then click on Window. In the Stretch options, set Mode to „2d“ and Aspect to „keep“.

Since we are already in the Window settings, we should also set under Handheld the Orientation to „portrait“.

../../_images/export_handheld_stretchsettings.png

Als nächstes müssen wir das Skript Player.gd ändern, um die Eingabemethode zu ändern. Wir entfernen die wichtigsten Eingaben und bringen den Spieler dazu, sich auf ein „Ziel“ zuzubewegen, das durch das Berühren (oder Klicken) des Ereignisses festgelegt wird.

Hier ist das vollständige Skript für den Spieler, mit Kommentaren, die aufzeigen, was wir geändert haben:

extends Area2D

signal hit

export var speed = 400
var velocity = Vector2()
var screen_size
# Add this variable to hold the clicked position.
var target = Vector2()

func _ready():
    hide()
    screen_size = get_viewport_rect().size

func start(pos):
    position = pos
    # Initial target is the start position.
    target = pos
    show()
    $CollisionShape2D.disabled = false

# Change the target whenever a touch event happens.
func _input(event):
    if event is InputEventScreenTouch and event.pressed:
        target = event.position

func _process(delta):
    # Move towards the target and stop when close.
    if position.distance_to(target) > 10:
        velocity = (target - position).normalized() * speed
    else:
        velocity = Vector2()

# Remove keyboard controls.
#    if Input.is_action_pressed("ui_right"):
#       velocity.x += 1
#    if Input.is_action_pressed("ui_left"):
#        velocity.x -= 1
#    if Input.is_action_pressed("ui_down"):
#        velocity.y += 1
#    if Input.is_action_pressed("ui_up"):
#        velocity.y -= 1

    if velocity.length() > 0:
        velocity = velocity.normalized() * speed
        $AnimatedSprite.play()
    else:
        $AnimatedSprite.stop()

    position += velocity * delta
    # We still need to clamp the player's position here because on devices that don't
    # match your game's aspect ratio, Godot will try to maintain it as much as possible
    # by creating black borders, if necessary.
    # Without clamp(), the player would be able to move under those borders.
    position.x = clamp(position.x, 0, screen_size.x)
    position.y = clamp(position.y, 0, screen_size.y)

    if velocity.x != 0:
        $AnimatedSprite.animation = "right"
        $AnimatedSprite.flip_v = false
        $AnimatedSprite.flip_h = velocity.x < 0
    elif velocity.y != 0:
        $AnimatedSprite.animation = "up"
        $AnimatedSprite.flip_v = velocity.y > 0

func _on_Player_body_entered( body ):
    hide()
    emit_signal("hit")
    $CollisionShape2D.set_deferred("disabled", true)

Setting a main scene

The main scene is the one that your game will start in. In Project -> Project Settings -> Application -> Run, set Main Scene to „Main.tscn“ by clicking the folder icon and selecting it.

Exportvorlagen

Um zu exportieren, müssen Sie die Exportvorlagen von der Website http://godotengine.org/download. herunterladen. Diese Vorlagen sind optimierte Versionen der Engine, ohne dass der Editor für jede Plattform vorkompiliert wird. Sie können sie auch in Godot herunterladen, indem Sie auf Editor -> Manage Export Templates klicken:

../../_images/export_template_menu.png

In dem erscheinenden Fenster können Sie auf „Download“ klicken, um die Vorlagenversion zu erhalten, die Ihrer Version von Godot entspricht.

../../_images/export_template_manager.png

Bemerkung

Wenn Sie Godot aktualisieren, müssen Sie Vorlagen herunterladen, die der neuen Version entsprechen, da sonst Ihre exportierten Projekte möglicherweise nicht ordnungsgemäß funktionieren.

Exportvoreinstellungen

Next, you can configure the export settings by clicking on Project -> Export.

Erstelle eine neue Exportvoreinstellung, indem Du auf „Hinzufügen“ klickst und eine Plattform auswählst. Du kannst mit verschiedenen Einstellungen beliebig viele Voreinstellungen vornehmen.

../../_images/export_presets_window.png

Am unteren Rand des Fensters befinden sich zwei Schaltflächen. „Exportiere PCK/ZIP“ erstellt nur eine gepackte Version der Daten Deines Projekts. Dies beinhaltet keine ausführbare Datei, so dass das Projekt nicht allein ausgeführt werden kann.

Die zweite Schaltfläche „Projekt exportieren“ erstellt eine vollständig ausführbare Version Deines Spiels, z. B. ‚.apk‘ für Android oder eine ‚.exe‘ für Windows.

Auf den Registerkarten „Ressourcen“ und „Funktionen“ können Sie festlegen, wie das Spiel für jede Plattform exportiert wird. Wir können diese Einstellungen erst einmal so lassen wie sie sind.

Exportieren nach Plattform

In diesem Abschnitt werden wir den Prozess für jede Plattform durchgehen, einschließlich zusätzlicher Software oder Anforderungen, die Du benötigst.

PC (Linux/macOS/Windows)

Der Export von PC-Plattformen funktioniert auf allen drei unterstützten Betriebssystemen gleich. Öffne das Exportfenster und klicke auf „Hinzufügen…“, um die gewünschte(n) Voreinstellung(en) zu erstellen. Klicke dann auf „Projekt exportieren“ und wähle einen Namen und einen Zielordner aus. Wähle einen Ort außerhalb Deines Projektordners.

Klicke auf „Speichern“ und die Engine erstellt die Exportdateien.

Bemerkung

Wenn Du dein Projekt für macOS exportierst, dann wird auf einem macOS-Computer eine .dmg-Datei erzeugt, während unter Linux oder Windows eine` .zip`-Datei erzeugt wird. In beiden Fällen enthält die komprimierte Datei eine macOS .app, die Du doppelklicken und ausführen kannst.

Bemerkung

Wenn unter Windows die exportierte ausführbare Datei ein anderes Symbol als das Standardsymbol haben soll, musst Du es manuell ändern. Siehe dazu: Changing application icon for Windows.

Android

Tipp

Mobile Geräte verfügen über eine Vielzahl von Funktionen. In den meisten Fällen funktionieren die Standardeinstellungen von Godot, aber die Entwicklung für mobile Geräte ist manchmal mehr Kunst als Wissenschaft, und Du musst möglicherweise etwas experimentieren und nach Hilfe suchen, um alles zum Laufen zu bringen.

Bevor Du Dein Projekt für Android exportieren kannst, musst Du folgende Software herunterladen:

Wenn Du Android Studio zum ersten Mal ausführst, klicke auf Konfigurieren -> SDK-Manager und installiere „Android SDK Platform Tools“. Dadurch wird das Befehlszeilentool ‚adb‘ installiert, durch das Godot mit Deinem Gerät kommuniziert.

Erstelle als Nächstes einen „Debug-Keystore“, indem Du den folgenden Befehl in der Befehlszeile Deines Systems ausführst:

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999

Klicken Sie in Godot auf Editor -> Editor Settings und wählen Sie den Abschnitt Export/Android. Hier müssen Sie die Pfade zu den Android SDK-Anwendungen auf Ihrem System und den Speicherort des gerade erstellten Schlüsselspeichers festlegen.

../../_images/export_editor_android_settings.png

Now you’re ready to export. Click on Project -> Export and add a preset for Android (see above). Select the Android Presets and under Options go to Screen and set Orientation to „Portrait“.

Klicke auf die Schaltfläche „Projekt exportieren“, und Godot erstellt eine APK, die Du auf Dein Gerät herunterladen kannst. Verwende dazu Folgendes in der Befehlszeile:

adb install dodge.apk

Bemerkung

Möglicherweise muss sich Dein Gerät im Entwicklermodus befinden. Weitere Informationen findest Du in der Dokumentation Deines Geräts.

Wenn Dein System dies unterstützt, wird beim Anschließen eines kompatiblen Android-Geräts die Schaltfläche „One-click Deploy“ im Bereich der Godot Playtest-Schaltfläche angezeigt:

../../_images/export_android_oneclick.png

Durch Klicken auf diese Schaltfläche wird die APK erstellt und in einem Schritt auf Dein Gerät kopiert.

iOS

Bemerkung

Um Dein Spiel für iOS zu erstellen, benötigst Du einen Computer mit macOS auf dem Xcode installiert ist.

Vor dem Exportieren musst Du einige Einstellungen vornehmen, damit das Projekt erfolgreich exportiert werden kann. Zuerst benötigst Du die „App Store Team Id“, die Du findest, indem Du Dich bei Deinem Apple-Entwicklerkonto anmeldest und im Abschnitt „Mitgliedschaft“ nachsiehst.

Außerdem musst Du App-Icons und Begrüßungsbildschirme bereitstellen, wie unten gezeigt:

../../_images/export_ios_settings.png

Klicke auf „Projekt exportieren“ und wähle einen Zielordner aus.

Nachdem Du das Projekt erfolgreich exportierst hast, findest Du an Deinem ausgewählten Speicherort die folgenden Ordner und Dateien:

../../_images/export_xcode_project_folders.png

Du kannst das Projekt jetzt in Xcode öffnen und das Projekt für iOS erstellen. Die Xcode-Buildprozedur geht über den Rahmen dieses Tutorials hinaus. Weitere Informationen findest Du unter https://help.apple.com/xcode/mac/current/#/devc8c2a6be1 .

HTML5 (web)

Klicke in der HTML5-Voreinstellung auf „Projekt exportieren“. Wir müssen keine der Standardeinstellungen ändern.

Wenn der Export abgeschlossen ist, hast Du einen Ordner mit den folgenden Dateien:

../../_images/export_web_files.png

Wenn Du die `.html‘-Datei in Deinem Browser öffnest, kannst Du das Spiel spielen. Du kannst die Datei jedoch nicht direkt öffnen. Sie muss von einem Webserver bereitgestellt werden. Wenn Du noch keinen Webserver auf Deinem Computer eingerichtet hast, kannst Du z.B. mit einer Suchmaschine Anleitungen für Dein Betriebssystem dazu finden.

Öffnen Sie die URL in Ihrem Browser, unter der Sie die HTML-Datei abgelegt haben. Möglicherweise müssen Sie einige Sekunden warten, bis das Spiel geladen ist, bevor der Startbildschirm erscheint.

../../_images/export_web_example.png

Das Konsolenfenster unter dem Spiel zeigt an, ob etwas schief geht. Du kannst es deaktivieren, indem Du beim Exportieren des Projekts „Exportieren mit Debuggen“ deaktivierst.

Bemerkung

Die Browserunterstützung für WASM ist nicht sehr weit verbreitet. Da es sich immer noch im Entwicklungsstadium befindet, funktioniert möglicherweise nicht alles. Stelle sicher, dass Deinen Browser auf die neueste Version aktualisiert wurde, und melde alle Fehler, die Du gefunden hast an Godot Github Repository.