API Game Mode

L'API Game Mode vous permet d'optimiser les performances de votre jeu ou l'autonomie de la batterie, selon le mode de jeu choisi par l'utilisateur.

Vous pouvez également envoyer des demandes d'interventions Game Mode pour améliorer les performances des jeux qui ne sont plus mis à jour par les développeurs.

L'API et les interventions Game Mode sont disponibles sur :

Chaque jeu peut implémenter le comportement de l'API Game Mode, proposer des paramètres d'intervention Game Mode aux OEM ou désactiver les interventions Game Mode.

Configurer

Pour utiliser l'API Game Mode dans votre jeu, procédez comme suit :

  1. Téléchargez et installez le SDK Android 13.

  2. Dans le fichier AndroidManifest.xml, déclarez votre application en tant que jeu en définissant l'attribut appCategory dans l'élément <application> :

android:appCategory="game"
  1. Interrogez le mode de jeu actuel en ajoutant ceci à votre activité principale :

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
}
Compatibilité Game Mode Description
NON COMPATIBLE Le jeu n'est compatible ni avec l'API Game Mode, ni avec les interventions Game Mode.
STANDARD L'utilisateur n'a sélectionné aucun mode de jeu ou a sélectionné le mode standard.
PERFORMANCES Fournit les fréquences de frames ayant la plus faible latence, en échange d'une autonomie et d'une fidélité réduites.
BATTERIE Meilleure autonomie de la batterie en échange d'une fidélité ou d'une fréquence d'images réduites.
  1. Ajoutez du code pour interroger l'état du mode de jeu dans la fonction onResume :

    Exemple lorsque l&#39;utilisateur active le mode Batterie

Bonnes pratiques

Si votre jeu propose déjà des objectifs de niveau de fidélité et de fréquence d'images, c'est à vous d'identifier les paramètres appropriés pour les modes Économiseur de batterie et Performances :

  • Si vous souhaitez atteindre les fréquences d'images maximales des appareils, il peut être utile de réduire légèrement le niveau de fidélité.

  • Pour améliorer l'autonomie de la batterie, nous vous conseillons de réduire la fréquence d'actualisation de l'écran (par exemple, 30 Hz ou 60 Hz) et d'utiliser le frame pacing pour atteindre cette fréquence réduite.

Pour les jeux haute fidélité, tels que les jeux de tir à la première personne, les arènes de combat en ligne multijoueurs (MOBA) et les jeux de rôle, votre priorité doit être d'assurer des fréquences d'images stables afin d'offrir une expérience plus immersive aux utilisateurs.

Pour les jeux haute fidélité et les jeux grand public, autorisez l'utilisation du mode Économiseur de batterie afin d'allonger la durée de jeu en réduisant les fréquences d'images maximales.

Déclarer la compatibilité avec Game Mode

Pour déclarer la compatibilité avec Game Mode et remplacer toutes les interventions Game Mode effectuées par des OEM, commencez par ajouter la configuration Game Mode à l'élément <application> dans votre fichier AndroidManifest.xml :

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

Créez ensuite un fichier game_mode_config.xml dans le répertoire res/xml/ de votre projet avec le contenu suivant :

<?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"
/>

Changer de mode de jeu

Pour basculer entre les modes de jeu, vous pouvez utiliser le Tableau de bord Jeux (disponible sur les appareils Pixel) ou toute application similaire fournie par un OEM. Vous pouvez également utiliser la commande shell Game Mode pendant le développement.

Si vous utilisez le Tableau de bord Jeux et que l'icône Optimisation ne s'affiche pas au lancement du jeu, vous devrez peut-être importer votre application dans la Google Play Console et l'installer via le Play Store. Pour en savoir plus sur les tests d'application sur le Play Store, consultez la page Partager vos app bundles et APK en interne.

Activité du Tableau de bord Jeux Figure 1 : Tableau de bord Jeux affiché au-dessus du jeu exécuté sur un appareil Pixel

Dans la figure 1, le mode de jeu peut être modifié à partir du widget d'optimisation. Comme indiqué sur le widget, le jeu s'exécute actuellement en mode PERFORMANCE.

Pendant le développement, si vous utilisez un appareil sans Tableau de bord Jeux et que le fabricant ne propose aucun moyen de définir le mode de jeu pour chaque application, vous pouvez modifier l'état du mode de jeu via adb :

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

Exemple d'application

L'exemple d'API Game Mode montre comment optimiser le nombre de frames par seconde (FPS) et les limites de résolution de rendu pour économiser environ 25% d'énergie dans vos applications.

Suivant

Consultez l'article Interventions en mode Jeu. pour améliorer les performances d'un jeu lorsqu'il n'est pas possible de fournir ses mises à jour.