Spielmodus-Interventionen

Spielmodus-Interventionen sind spielspezifische Optimierungen, die von Erstausrüstern (Original Equipment Manufacturers, OEMs) festgelegt werden, um die Leistung von Spielen zu verbessern, die nicht mehr vom Entwickler aktualisiert werden. Beispiel:

  • Mit dem WindowManager-Backbuffer-Größe ändern.
  • ANGLE anstelle von nativen GLES-Treibern verwenden

Sie können die Game Mode API von Ihrem Spiel unterstützen und verwalten, damit sie vom OEM bereitgestellte Game Mode-Interventionen überschreibt.

Die Game Mode API und Maßnahmen sind verfügbar auf:

Jedes Spiel kann:

  • Implementieren Sie das Spielmodus-API-Verhalten,
  • OEMs Einstellungen für Spielmodus-Interventionen vorschlagen oder
  • Sie können die Eingriffe des Spielmodus ausdrücklich deaktivieren.

Hintergrund

In diesem Abschnitt wird beschrieben, wie sich die Eingriffe im Spielmodus auswirken und wie Sie Ihr Spiel für jeden Modus optimieren.

WindowManager-Backbuffer-Größenänderung

Durch die WindowManager-Eingriffsfunktion zur Größe des Backbuffers kann die GPU-Auslastung eines Geräts reduziert werden. Außerdem kann der Akkuverbrauch gesenkt werden, wenn ein Spiel mit einer Ziel-Framerate ausgeführt wird.

Wenn Sie die Größenänderung aktivieren, kann der GPU-Energieverbrauch um bis zu 30% und der Gesamtenergieverbrauch des Systems um 10% gesenkt werden. Die Ergebnisse können je nach verwendetem Gerät, Umgebungsbedingungen und anderen Faktoren wie der gleichzeitigen Verarbeitung variieren.

Ein GPU-gebundenes Spiel ohne Zeittempo hat bei reduzierter GPU-Last wahrscheinlich höhere Framerates.

Wir empfehlen dringend, dass alle Spiele gut flüssig laufen, da ungleichmäßige Frameraten sich erheblich auf die Wahrnehmung der Leistung durch die Nutzer auswirken.

FPS-Drosselung

Die FPS-Drosselung von Android ist eine Maßnahme im Game Mode, die dazu beiträgt, dass Spiele mit einer stabileren Framerate laufen, um den Akkuverbrauch zu senken. Die Intervention ist ab Android 13 verfügbar. Weitere Informationen finden Sie unter FPS-Drosselung – Übersicht.

Maßnahmen für den Spielmodus bewerten

In diesem Abschnitt wird der Befehl adb verwendet.

Modi einrichten

Sie müssen die Spielmodi in der Konfigurationsdatei für den Spielmodus der App deaktivieren, bevor Sie die Interventionen für den Spielmodus testen können. Andernfalls werden sie von der Plattform ignoriert und es werden nur In-Game-Optimierungen berücksichtigt.

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

(Optional) Vorhandene Gerätekonfiguration sichern

Bei Pixel oder anderen Geräten ist möglicherweise bereits eine Spieleingriffskonfiguration in Ihrer Gerätekonfiguration vorhanden. Sie können die Konfiguration mit dem Befehl abfragen:

adb shell device_config get game_overlay <PACKAGE_NAME>

Wenn die Abfrage null zurückgibt, ignorieren Sie die vorhandene Konfiguration. Andernfalls speichern Sie ihn und setzen ihn nach der Bewertung wieder zurück.

Interventionen bewerten

Wenn Sie die Intervention zur Größe des WindowManager-Backbuffers separat bewerten möchten, verwenden Sie den folgenden Befehl, um für die verschiedenen Spielmodi unterschiedliche Werte für die Größe des WindowManager-Buffers festzulegen.

adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5

Im Beispiel oben steht mode=2 für „Leistung“ und mode=3 für „Energiesparmodus“. Der downscaleFactor-Wert wird als Prozentwert für die Einstellung zur Größenänderung angegeben (z.B.0, 7 ist 70% und 0, 8 ist 80%). Eine Größenänderung von 90 % (0,9) ist fast vernachlässigbar, während 50% (0,5) erheblich sind.

Warnung:Untergeordnete Prozesse werden unter Android 12 möglicherweise nicht richtig skaliert. Achten Sie insbesondere darauf, dass Toasts und Pop-ups korrekt gerendert werden. Wir empfehlen, die Einstellung für die Größe auf mindestens 70 % zu begrenzen.

Nachdem Sie die neuen Werte für die Größe festgelegt haben, wechseln Sie zwischen den Spielmodi, um zu sehen, wie sich die Änderung der Größe des WindowManager-Backbuffers auf Ihr Spiel auswirkt:

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

Starte das Spiel nach jeder Auswahl des Spielmodus neu. Für das Herunterskalieren ist ein Neustart der App erforderlich.

Interventionen deaktivieren

Sie können festlegen, ob eine Intervention auf Ihr Spiel angewendet wird. Für jede Intervention gibt es eine eigene Deaktivierungseinstellung.

  1. Die gleiche Konfigurations-XML-Datei, die zum Aktivieren und Deaktivieren von Spielmodi verwendet wird, wird auch für die Einstellungen für Interventionen verwendet:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:allowGameDownscaling="false"
    android:allowGameFpsOverride="false"
/>
  1. Erstellen Sie Ihr Spiel neu und reichen Sie es noch einmal ein, um die Funktion zu deaktivieren.

Standardmäßig werden von den Erstausrüstern (OEMs) festgelegte Interventionen verwendet, sofern Sie die Verwendung nicht explizit deaktivieren.

Ressourcen

Weitere Informationen zum Messen und Optimieren der Spielleistung: