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.
Einstiegspunkt angeben
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:
- Verwenden Sie in beiden Android Studio-Projekten denselben Paketnamen.
- 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:
<?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. Incmake
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 mitgcc
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