Game Mode API

Mit der Game Mode API können Sie Ihr Spiel für die beste Leistung oder die längste Akkulaufzeit optimieren, wenn der Nutzer den entsprechenden Spielmodus auswählt.

Alternativ können Sie Anfragen für Game Mode-Interventionen einreichen, um die Leistung von Spielen zu verbessern, die nicht mehr von Entwicklern aktualisiert werden.

Die Game Mode API und die Interventionen sind auf folgenden Geräten verfügbar:

Für jedes Spiel kann das Verhalten der Game Mode API implementiert werden, es können Einstellungen für Game Mode-Interventionen für OEMs vorgeschlagen werden oder Game Mode-Interventionen können deaktiviert werden.

Einrichtung

So verwenden Sie die Game Mode API in Ihrem Spiel:

  1. Laden Sie das Android 13 SDK herunter und installieren Sie es.

  2. Deklarieren Sie Ihre App in der Datei AndroidManifest.xml als Spiel, indem Sie das Attribut appCategory im Element <application> festlegen:

android:appCategory="game"
  1. So fragen Sie den aktuellen Spielmodus ab:

Java

// Only call this for Android 12 and higher devices
if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ) {
  // Get GameManager from SystemService
  GameManager gameManager = Context.getSystemService(GameManager.class);

  // Returns the selected GameMode
  int gameMode = gameManager.getGameMode();
}

Kotlin

// Only call this for Android 12 and higher devices
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
  // Get GameManager from SystemService
  val gameManager: GameManager? = context.getSystemService(Context.GAME_SERVICE) as GameManager?

  // Returns the selected GameMode
  val gameMode = gameManager?.gameMode
}
Unterstützter Spielmodus Beschreibung
NICHT UNTERSTÜTZT Das Spiel deklariert keine Unterstützung für die Game Mode API und unterstützt keine Game Mode-Interventionen.
STANDARD Der Nutzer hat keinen Spielmodus ausgewählt oder den Standardmodus ausgewählt.
LEISTUNG Bietet die niedrigsten Latenz-Framerate, was jedoch zu einer kürzeren Akkulaufzeit und einer geringeren Wiedergabetreue führt.
AKKU Bietet die längstmögliche Akkulaufzeit, dafür werden die Wiedergabetreue oder die Framerates reduziert.
  1. Fügen Sie Code hinzu, um den Status des Spielmodus in der Funktion onResume abzufragen:

    Beispiel mit der Nutzereinstellung „Akkumodus“

Best Practices

Wenn dein Spiel bereits mehrere Treue- und Framerate-Ziele unterstützt, solltest du die entsprechenden Einstellungen für den Leistungs- und den Energiesparmodus ermitteln:

  • Um durchgehend die maximalen Framerates des Geräts zu erreichen, sollten Sie die Detailgenauigkeit leicht reduzieren.

  • Um die Akkulaufzeit zu verlängern, solltest du eine niedrigere Aktualisierungsrate für das Display (z.B. 30 Hz oder 60 Hz) auswählen und Frame Pacing verwenden, um die reduzierte Rate zu erreichen.

Bei Spielen mit hoher Wiedergabetreue wie Ego-Shootern, Multiplayer Online Battle Arenas (MOBAs) und Rollenspielen (RPGs) sollten Sie sich darauf konzentrieren, hohe, gleichbleibende Framerates zu erzielen, um die Nutzerbindung zu maximieren.

Sowohl bei Spielen mit hoher grafischer Darstellung als auch bei Casual Games sollten Sie den Energiesparmodus unterstützen, um die Spieldauer durch Reduzierung der maximalen Framerates zu verlängern.

Unterstützung für Spielmodi deklarieren

Wenn Sie die Unterstützung für Spielmodi deklarieren und alle Spielmodi-Interventionen von OEMs überschreiben möchten, fügen Sie zuerst die Spielmodi-Konfiguration dem Element <application> in Ihrer Datei AndroidManifest.xml hinzu:

<application>
    <meta-data android:name="android.game_mode_config"
               android:resource="@xml/game_mode_config" />
  ...
</application>

Erstellen Sie dann im Verzeichnis res/xml/ Ihres Projekts eine game_mode_config.xml-Datei mit folgendem Inhalt:

<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsBatteryGameMode="true"
    android:supportsPerformanceGameMode="true"
/>

Spielmodi wechseln

Um zwischen den Spielmodi zu wechseln, können Sie das Game Dashboard (auf Pixel-Geräten verfügbar) oder ähnliche Anwendungen von Geräteherstellern verwenden. Alternativ können Sie während der Entwicklung den Shell-Befehl für den Spielemodus verwenden.

Wenn Sie das Game Dashboard verwenden und das Optimierungssymbol beim Start Ihres Spiels nicht angezeigt wird, müssen Sie Ihre App möglicherweise in die Google Play Console hochladen und über den Play Store installieren. Informationen zum Testen von Apps im Google Play Store finden Sie unter App-Bundles und APKs intern freigeben.

Aktivitäten im Dashboard für Spiele Abbildung 1: Das Dashboard für Spiele wird als Overlay über dem laufenden Spiel auf einem Pixel-Gerät angezeigt.

In Abbildung 1 kann der Spielmodus des laufenden Spiels über das Optimierungs-Widget geändert werden. Wie im Widget zu sehen ist, wird das Spiel derzeit im Modus PERFORMANCE ausgeführt.

Wenn Sie während der Entwicklung ein Gerät ohne Game Dashboard verwenden und der Hersteller keine Möglichkeit bietet, den Spielemodus für jede App festzulegen, können Sie den Status des Spielemodus über adb ändern:

adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>

Beispiel-App

Das Game Mode API-Beispiel zeigt, wie du die FPS- und Renderauflösungsgrenzen optimieren kannst, um in deinen Apps etwa 25% weniger Strom zu verbrauchen.

Weiter

Im Artikel Game Mode Interventions erfahren Sie, wie Sie die Leistung eines Spiels verbessern können, wenn keine Spielupdates möglich sind.