Vorhandenes Spiel in ein Instant-Game umwandeln

Die Schritte zum Einrichten von Apps für die Ausführung in Google Play Instant, wie unter Erste Instant-App erstellen erläutert, gelten auch für Spiele. In diesem Leitfaden werden einige Einrichtungsschritte für Spiele beschrieben.

Sie können Spiele für Google Play Instant mit Unity (mit oder ohne Google Play Instant Unity-Plug-in), Cocos2D, Android Studio oder einer eigenen benutzerdefinierten Engine entwickeln.

In diesem Leitfaden wird davon ausgegangen, dass du bereits weißt, welche Art von Spiel du anstellen möchtest. Ideen und Best Practices zum Erstellen hochwertiger Spiele finden Sie unter UX-Best Practices für Spiele bei Google Play Instant.

Bevor Sie ein Spiel veröffentlichen, das mit Google Play Instant ausgeführt werden kann, sollten Sie außerdem die Checkliste für technische Anforderungen lesen.

Eine Aktivität mit dem folgenden Intent-Filter wird zum Einstiegspunkt für Google Play Instant:

<activity android:name=".GameActivity">
   <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

Diese Aktivität wird gestartet, wenn ein Nutzer im Play Store auf die Schaltfläche Jetzt testen oder in der Google Play Spiele App auf die Schaltfläche Sofort spielen tippt. Sie können diese Aktivität auch direkt über die Deep Link API starten.

Die richtigen Versionscodes definieren

Der Versionscode der Instant-Version Ihres Spiels muss kleiner als der Versionscode des installierbaren Spiels sein. Wenn Sie Ihre App auf diese Weise versionieren, können Spieler von der Google Play Instant-Version das Spiel herunterladen und auf ihrem Gerät installieren. Im Android-Framework wird dieser Übergang als App-Update betrachtet.

Um sicherzustellen, dass Sie dem empfohlenen Versionsverwaltungsschema folgen, führen Sie eine der folgenden Strategien aus:

  • Starten Sie die Versionscodes für Google Play Instant noch einmal auf 1.
  • Erhöhe den Versionscode der installierbaren App um eine große Zahl, z. B. 1.000, damit genügend Speicherplatz für die Versionsnummer der Instant-Version vorhanden ist.

Sie können Ihr Instant-Game und Ihr installierbares Spiel in zwei separaten Android Studio-Projekten entwickeln. In diesem Fall müssen Sie jedoch die folgenden Schritte ausführen, um Ihr Spiel bei Google Play zu veröffentlichen:

  1. Verwenden Sie in beiden Android Studio-Projekten denselben Paketnamen.
  2. Laden Sie in der Google Play Console beide Varianten in dieselbe App hoch.

Weitere Informationen zum Festlegen der Version Ihres Spiels finden Sie unter App versionieren.

Ausführungsumgebung unterstützen

Spiele bei Google Play Instant werden wie andere Apps in einer eingeschränkten Sandbox auf dem Gerät ausgeführt. Führen Sie die Schritte in den folgenden Abschnitten aus, um diese Ausführungsumgebung zu unterstützen.

Klartext-Traffic deaktivieren

Spiele bei Google Play Instant unterstützen keinen HTTP-Traffic. Wenn Ihr Spiel auf Android 9 (API-Level 28) oder höher ausgerichtet ist, deaktiviert Android die Klartextunterstützung in Ihrem Spiel standardmäßig.

Wenn Ihr Spiel jedoch auf Android 8.1 (API-Level 27) oder niedriger ausgerichtet ist, müssen Sie eine Datei für die Netzwerksicherheitskonfiguration erstellen. Legen Sie in dieser Datei cleartextTrafficPermitted auf false fest, wie im folgenden Code-Snippet gezeigt:

res/xml/network_security_config.xml.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>

Sandbox-Zielversion aktualisieren

Aktualisieren Sie die Datei AndroidManifest.xml Ihres Instant-Spiels so, dass sie auf die von Google Play Instant unterstützte Sandbox-Umgebung ausgerichtet ist. Sie können dieses Update abschließen, indem Sie das Attribut android:targetSandboxVersion in das <manifest>-Element Ihres Spiels einfügen, wie im folgenden Code-Snippet gezeigt:

<manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
  ...
   android:targetSandboxVersion="2" ...>

Weitere Informationen finden Sie in der Dokumentation zum Attribut targetSandboxVersion.

Nicht auf das Vorhandensein eines Caches oder auf App-Daten verlassen

Die Instant-Funktion bleibt auf das Gerät eines Nutzers heruntergeladen, bis der Cache der Instant-Funktion geleert wurde. Dies ist in folgenden Situationen der Fall:

  • Der Instant-Erlebnis-Cache wird automatisch bereinigt, weil auf dem Gerät nur noch wenig Speicherplatz verfügbar ist.
  • Der Nutzer startet sein Gerät neu.

Wenn einer der beiden Prozesse auftritt, muss der Nutzer die Instant-Version noch einmal herunterladen, um damit interagieren zu können.

Wenn auf dem System nur noch wenig Speicherplatz verfügbar ist, werden die Nutzerdaten der Instant-Version möglicherweise aus dem internen Speicher entfernt. Daher empfiehlt es sich, die Nutzerdaten regelmäßig mit dem Server des Spiels zu synchronisieren, damit der Fortschritt des Nutzers erhalten bleibt.

App-Größe reduzieren

Im Gegensatz zu anderen Arten von Apps gilt für Spiele bei Google Play Instant eine Downloadgröße von 15 MB. Um ein Spiel dieser Größe zu erstellen, müssen Sie eventuell die Logik Ihres Spiels refaktorieren. In diesem Abschnitt werden einige Tools und Techniken beschrieben, mit denen du die Größe deines Spiels optimieren kannst.

Tools

Mit der folgenden Liste von Tools können Sie ermitteln, was zur Größe Ihres Spiels beigetragen hat:

  • APK Analyzer: Bietet eine ganzheitliche Sicht auf den Inhalt eines kompilierten APKs. Mithilfe dieser Ansicht können Sie die Anzahl der Byte ermitteln, die jedes Element zur Gesamtgröße beiträgt. Mit diesem Tool können Sie schnell die Größe der Ressourcen, Assets, Logik und nativen Bibliotheken prüfen, die Ihr Spiel verwendet.
  • Bloaty McBloatface: Zeigt das Größenprofil von Binärdateien an.
  • Android GPU Inspector: Hiermit sehen Sie, wie sich die Dateigröße auf die Reduzierung der Texturgröße auswirkt, ohne Ihr Spiel neu kompilieren zu müssen.

Techniken

Mit den folgenden Methoden können Sie die Größe Ihres Spiels reduzieren:

  • Extrahieren Sie einen Teil der Logik Ihres Spiels und platzieren Sie ihn in einem oder mehreren Funktionsmodulen, die nicht auf die Größenbeschränkung angerechnet werden.
  • Reduzieren Sie die Auflösung der Texturen Ihres Spiels.
  • Sie sollten das WebP-Format verwenden, insbesondere wenn Sie unkomprimierte Texturen auf der GPU nutzen. Das WebP-Format erstellt Bilder, die dieselbe Qualität wie JPEG-Bilder haben, aber 15 bis 30 % kleiner sind. Obwohl das Dekomprimieren von WebP-Bildern länger dauert, ist sie immer noch deutlich kürzer als die Downloadzeit der Texturen Ihres Spiels. Google hat das Format außerdem in eine Open-Source-Spiele-Engine integriert.
  • Klänge und Musik komprimieren oder wiederverwenden
  • Verwenden Sie verschiedene Kompilierungs-Flags, um die Binärdatei zu verkleinern:
    • -fvisibility=hidden: Das Wichtigste. In cmake können Sie ihn so angeben:
      $ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
      
    • -Oz: Auch wichtig für die Größenverkleinerung. Wenn du mit gcc kompilierst, verwende stattdessen -Os.
    • -flto: verringert manchmal die Dateigröße.
    • Verknüpfungs-Flags: Verwenden Sie --gc-sections in Verbindung mit Compiler-Flags wie -ffunction-sections und -fdata-sections.
  • Verwenden Sie Proguard, um Ihren Code und Ihre Ressourcen zu verkleinern.
  • Verwenden Sie Gradle 4.4 oder höher, um kleinere DEX-Dateien zu generieren.
  • Cloud Delivery von Assets implementieren

Große Spiele in mehrere APKs aufteilen

Es kann schwierig sein, Google Play Instant für ein einzelnes APK mit 15 MB zu optimieren, auch wenn Sie die Empfehlungen zur Reduzierung der APK-Größe berücksichtigt haben. Um diese Herausforderung zu meistern, können Sie Ihr Spiel in mehrere APKs aufteilen. Spieler laden zuerst das primäre Basis-APK herunter. Während des Spiels werden die verbleibenden geteilten APKs dem Spiel im Hintergrund zur Verfügung gestellt.

Das Basis-APK kann beispielsweise die Kernspiel-Engine und die Assets enthalten, die zum Anzeigen eines Ladebildschirms erforderlich sind. Beim Starten des Basis-APKs wird der Ladebildschirm angezeigt und sofort ein zusätzliches unterteiltes APK mit den Spiel- und Leveldaten angefordert. Sobald das unterteilte APK verfügbar ist, kann es seine Assets in die Spiel-Engine laden und dem Spieler die Inhalte zur Verfügung stellen, die er zum Starten des Spiels benötigt.

Best Practices für das UX-Design anwenden

Nachdem Sie Ihr Spiel so konfiguriert haben, dass es Instant-Funktionen unterstützt, fügen Sie die in den folgenden Abschnitten gezeigte Logik hinzu, um für eine gute Nutzererfahrung zu sorgen.

64-Bit-Architekturen unterstützen

Bei Google Play veröffentlichte Apps müssen 64-Bit-Architekturen unterstützen. Durch das Hinzufügen einer 64-Bit-Version deiner App wird die Leistung verbessert und du kannst Geräte mit Nur-64-Bit-Hardware verwenden. Weitere Informationen zur 64-Bit-Unterstützung

Prüfen, ob es sich um eine Instant-Version im Spiel handelt

Wenn ein Teil der Spiellogik davon abhängt, ob der Nutzer mit der Instant-Funktion interagiert, rufen Sie die Methode isInstantApp() auf. Diese Methode gibt true zurück, wenn der aktuell ausgeführte Prozess sofort verfügbar ist.

Durch diese Prüfung können Sie ermitteln, ob Ihre Anwendung in einer eingeschränkten Ausführungsumgebung ausgeführt werden muss oder Plattformfunktionen nutzen kann.

Installationsaufforderung anzeigen

Wenn Sie Google Play Instant als Testversion entwickelt haben, sollte der Spieler irgendwann vom Spiel aufgefordert werden, die Vollversion auf seinem Gerät zu installieren. Verwenden Sie dazu die Methode showInstallPrompt() in den Google APIs für Android.

Weitere Informationen dazu, wie und wann Sie den Spieler zur Installation auffordern sollten, finden Sie unter UX-Best Practices für Spiele bei Google Play Instant.

Daten auf eine installierte Website übertragen

Wenn einem Spieler die Testversion gefällt, kann er sich entscheiden, die Vollversion Ihres Spiels zu installieren. Für eine gute Nutzererfahrung ist es wichtig, dass der Fortschritt des Spielers von der Instant-Version in die Vollversion des Spiels übertragen wird.

Wenn in Ihrem Spiel ein targetSandboxVersion als 2 angegeben ist, wird der Fortschritt des Spielers automatisch auf die Vollversion Ihres Spiels übertragen. Andernfalls müssen Sie die Daten zum Spielerfortschritt manuell übertragen. Verwenden Sie dazu die Cookie-API – Beispiel-App.

Weitere Informationen

Weitere Informationen zu Google Play Instant finden Sie in diesen zusätzlichen Ressourcen:

Codelab: Deine erste Instant App erstellen
Unterstützung für Google Play Instant in einer vorhandenen App hinzufügen
Codelab: Instant App mit mehreren Funktionen erstellen
App mit mehreren Funktionen modularisieren