Développer avec l'émulateur du développeur Google Play Jeux sur PC

L'émulateur du développeur Google Play Jeux sur PC est optimisé pour le développement. Il se distingue d'une expérience côté joueur en vous permettant d'installer et de déboguer vos propres packages. Vous pouvez également simuler différentes configurations côté joueur, comme le format d'affichage, l'émulation de la souris et le backend graphique, pour vous assurer que votre jeu fonctionne comme prévu dans diverses configurations de PC.

Lancer l'émulateur

Une fois l'émulateur installé, vous pouvez le lancer depuis l'élément "Google Play Games Developer Emulator" (Émulateur du développeur Google Play Jeux) dans le menu Démarrer ou depuis le raccourci sur le bureau. L'émulateur persiste dans la barre d'état système lorsque vous fermez la fenêtre.

Se connecter

Vous êtes invité à vous connecter à votre compte Google la première fois que vous exécutez l'émulateur. Utilisez les identifiants avec lesquels vous prévoyez de développer.

Pour vous déconnecter, effectuez un clic droit sur l'icône de la barre d'état système, sélectionnez Developer Options (Options pour les développeurs), puis cliquez sur Force sign out (Forcer la déconnexion). Cette commande provoque un redémarrage immédiat de l'émulateur. Vous êtes ensuite invité à vous reconnecter.

Après le démarrage, un écran d'accueil Android standard s'affiche. Les clics gauches sont traduits directement en contact avec le doigt, comme en mode d'émulation de la souris. Les jeux téléchargés indépendamment pour le développement apparaissent dans la liste des applications. Vous pouvez y accéder en effectuant un cliquer-glisser avec la souris (pour simuler le balayage de l'écran vers le haut sur un téléphone ou une tablette).

En plus de traduire les interactions à la souris, l'émulateur du développeur Google Play Jeux sur PC prend en charge des raccourcis clavier pour améliorer la navigation :

  • Ctrl+H : pression sur le bouton d'accueil
  • Ctrl+B : pression sur le bouton Retour
  • F11 ou Alt+Entrée : basculer entre le mode plein écran et le mode fenêtré
  • Maj+Tabulation : ouvrir la superposition Google Play Jeux sur PC, incluant le mappage actuel des touches pour le SDK Input

Installer un jeu

L'émulateur du développeur Google Play Jeux sur PC utilise Android Debug Bridge (adb) pour installer les packages.

Compatibilité avec adb

Les versions actuelles d'adb sont compatibles avec l'émulateur du développeur Google Play Jeux sur PC. Une version compatible est également installée dans C:\Program Files\Google\Play Games Developer Emulator\current\emulator lorsque vous installez l'émulateur.

Pour que vous puissiez suivre ces instructions, adb doit être disponible dans votre $PATH. Vous pouvez vérifier qu'adb est correctement configuré à l'aide de la commande adb devices.

adb devices
List of devices attached
localhost:6520  device

Installer le jeu

  • Lancer Google Play Games for PC Emulator
  • Saisissez adb devices dans l'invite de commande. Vous devriez obtenir le résultat suivant :

    adb devices
    List of devices attached
    localhost:6520 device
    
  • Résolution des problèmes :

    • Si vous recevez un message d'erreur, vérifiez que vous avez suivi les instructions de la section Compatibilité avec adb.
    • Si vous ne voyez pas d'appareil, essayez de vous reconnecter via le port 6520 :
    adb connect localhost:6520
    
  • Saisissez adb install path\to\your\game.apk pour installer votre jeu. Si vous avez généré un Android App Bundle (AAB), consultez les instructions pour bundletool et utilisez bundletool install-apks à la place.

  • Exécutez votre jeu de l'une des manières suivantes :

    • Saisissez adb shell monkey -p your.package.name 1 pour exécuter votre jeu, en remplaçant your.package.name par le nom de package de votre jeu.
    • Dans l'émulateur du développeur Google Play Jeux sur PC, cliquez sur l'icône pour exécuter votre jeu. Comme sur un téléphone Android, vous devez balayer l'écran vers le haut pour afficher la liste des jeux installés.

Déboguer un jeu

Utilisez Android Debug Bridge (adb) pour effectuer le débogage comme pour tout autre jeu. L'émulateur apparaît comme un appareil connecté via localhost:6520.

adb logcat fonctionne normalement, tout comme les outils qui contribuent à filtrer ou à rendre plus digeste la sortie Logcat, ce qui inclut Android Studio.

En plus d'adb, les journaux sont accessibles dans le répertoire %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs. Ici, le plus utile est AndroidSerial.log, qui représente tout ce qui serait renvoyé par adb logcat à partir du démarrage de l'émulateur.

Paramètres développeur

L'émulateur du développeur Google Play Jeux sur PC se concentre sur l'efficacité du développeur plutôt que sur l'expérience utilisateur. Cela signifie que vous disposez d'un accès non obstrué au système Android, y compris en utilisant le lanceur d'applications Android standard au lieu de l'expérience Google Play Jeux sur PC, et que vous contrôlez les fonctionnalités qui sont normalement activées ou désactivées automatiquement pour les joueurs.

Tester la saisie à la souris

Par défaut, lors du développement, l'émulateur du développeur Google Play Jeux sur PC utilise l'émulation tactile plutôt que la saisie directe à la souris. Vous pouvez activer la saisie directe à la souris en effectuant un clic droit sur l'icône de la barre d'état système, en sélectionnant Developer Options > PC mode (KiwiMouse) (Options pour les développeurs > Mode PC (KiwiMouse)).

Google Play Jeux sur PC propose deux modes de saisie à la souris : un mode d'émulation, qui traduit les clics de la souris en pressions simples, et un "mode PC" en passthrough qui permet aux jeux de gérer les actions à la souris de manière native et de capturer le pointeur. Pour en savoir plus sur la saisie à la souris dans Google Play Jeux sur PC, consultez la page Configurer la saisie avec la souris.

Dans le client joueur, l'émulation est désactivée par l'ajout de ce code à votre fichier manifeste :

<manifest ...>
  <uses-feature
      android:name="android.hardware.type.pc"
      android:required="false" />
  ...
</manifest>

Ce flag de fonctionnalité n'a aucun effet dans l'environnement de développement.

Tester les formats

L'émulateur du développeur se lance au format 16:9, tandis que le client joueur dérive son format de celui de l'écran principal. En effectuant un clic droit sur l'icône de la barre d'état système et en sélectionnant Developer Options (Options pour les développeurs), puis une option dans la section Display Ratio (Format d'affichage), vous pouvez tester l'apparence du jeu sur les écrans de différents joueurs.

La méthode privilégiée pour configurer votre format consiste à utiliser android:minAspectRatio et android:maxAspectRatio.

Par exemple, un jeu en mode portrait aura un format 9/16 ou 0.5625. Vous pouvez donc définir un ratio maximal de 1 pour éviter que votre jeu ne devienne plus large que long :

<activity android:maxAspectRatio="1">
 ...
</activity>

De même, un jeu en mode paysage aura un format 16/9 ou approximativement 1.778. Par conséquent, vous pouvez définir un ratio minimal de 1 pour empêcher le jeu de devenir plus long que large :

<activity android:minAspectRatio="1">
 ...
</activity>

Que faut-il tester ?

Si votre jeu n'est compatible qu'avec les modes Portrait dans le fichier manifeste, vous pouvez sélectionner 9:16 (Portrait) dans la liste déroulante pour voir à quoi il ressemblera sur les ordinateurs des joueurs. Sinon, vérifiez que votre jeu fonctionne dans les formats Paysage les plus larges et les plus étroits parmi ceux recensés dans votre fichier manifeste. Gardez à l'esprit que la prise en charge du format 16:9 (par défaut) ou 9:16 (Portrait) (si votre jeu n'est disponible qu'en mode Portrait) est obligatoire pour la certification complète.

Tester les backends de rendu

Google Play Jeux sur PC utilise ANGLE comme couche de compatibilité pour garantir que les appels OpenGL ES sont correctement gérés par le PC hôte via un backend DirectX ou Vulkan. L'émulateur prend également en charge directement Vulkan, mais pas avec DirectX. Cette couche convertit également les formats de texture compressés propres aux mobiles en formats compatibles avec les PC. Vous pouvez définir cette option sur la valeur par défaut de votre système, ou forcer l'activation ou la désactivation de Vulkan afin de tester la compatibilité. Pour cela, effectuez un clic droit sur l'icône de la barre d'état système et sélectionnez Graphics Stack Override (Forcer la pile graphique).

Que faut-il tester ?

Il existe de légères différences au niveau des formats de texture acceptés et des étapes nécessaires pour émuler diverses fonctionnalités mobiles sur ordinateur. Lors du profilage et de l'optimisation de votre jeu, il peut être utile de vérifier chaque backend.

Profiler votre jeu PC

L'émulateur utilise la même technologie que le client grand public, ce qui en fait un environnement adapté au profilage des performances.

Perfetto est un outil permettant d'analyser les performances sur Android. Pour recueillir et consulter une trace Perfetto, procédez comme suit :

  1. Dans une invite PowerShell, démarrez une trace à l'aide d'adb.

    adb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
    
    1. L'option --time spécifie la durée de la trace à collecter.Dans cet exemple, la trace a une durée de 10 secondes.
    2. Les arguments après l'option --time indiquent les événements à suivre. Dans cet exemple, gfx indique les graphismes, wm la gestion des fenêtres et sched les informations d'ordonnancement de processus. Il s'agit d'options courantes pour le profilage des jeux et une documentation de référence complète est disponible.
    3. L'option --out spécifie le fichier de sortie, qui est extrait de l'émulateur vers la machine hôte à l'étape suivante.
  2. Extrayez la trace de votre hôte.

    adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
    
  3. Ouvrez la trace dans l'interface utilisateur de Perfetto.

    1. Ouvrez ui.perfetto.dev.
    2. Sélectionnez Open trace file (Ouvrir le fichier de suivi) en haut à gauche, sous Navigation.
    3. Ouvrez le fichier example.trace que vous avez téléchargé à l'étape précédente dans votre répertoire Downloads/.
  4. Inspectez la trace dans l'interface utilisateur de Perfetto. Quelques conseils :

    1. Chaque processus possède sa propre ligne, qui peut être développée pour afficher tous les threads de ce processus. Si vous profilez un jeu, son processus se trouve probablement à la première ligne.
    2. Vous pouvez faire un zoom avant ou arrière en maintenant enfoncée la touche Ctrl et en utilisant la molette.
    3. Lorsque vous utilisez l'événement sched, une ligne pour chaque thread indique quand l'état du thread en question est en cours d'exécution, exécutable, en veille ou bloqué.
    4. Lorsque vous activez un événement tel que gfx, vous pouvez voir les différents appels de graphiques effectués par différents threads. Vous pouvez sélectionner des "tranches" individuelles pour voir leur durée, ou faire glisser le pointeur le long d'une ligne pour faire apparaître en bas une section "tranches" qui affiche la durée de toutes les tranches de la période sélectionnée.

Profilage graphique

Vous pouvez effectuer un profilage graphique avec RenderDoc.

  1. Définissez la variable d'environnementANDROID_EMU_RENDERDOC sur une chaîne non vide (telle que "1").
  2. Définissez la variable d'environnement TMP sur %USERPROFILE%\AppData\LocalLow. Vous indiquez ainsi à RenderDoc de placer ses fichiers journaux quelque part dans le bac à sable de l'émulateur.

  3. Si vous utilisez le backend Vulkan Sélectionnez Graphics Settings > Vulkan Instance Implicit Layers (Paramètres graphiques > Couches implicites de l'instance Vulkan) et assurez-vous que VKLAYER_RENDERDOC_Capture est coché.

  4. Lancez l'émulateur pour développeur Google Play Jeux sur PC. Une superposition RenderDoc s'affiche en haut de l'écran tant que la compatibilité est activée.

  5. Lancez RenderDoc à tout moment avant ou après le lancement de l'émulateur pour développeur Google Play Jeux sur PC.

  6. Cliquez sur File > Attach to Running Instance (Fichier > Associer à l'instance en cours d'exécution), puis sélectionnez crosvm.

Spécifier des variables d'environnement

Pour que RenderDoc fonctionne, vous devez ajouter ou modifier des variables d'environnement sous Windows. Vous pouvez modifier les variables d'environnement à l'aide de l'UI, de PowerShell ou de cmd.exe.

Utiliser l'interface utilisateur
  • Appuyez sur Win+R pour ouvrir la boîte de dialogue Exécuter.
  • Saisissez sysdm.cpl pour ouvrir la fenêtre Propriétés système.
  • Sélectionnez l'onglet Paramètres système avancés s'il n'est pas déjà actif.
  • Cliquez sur le bouton Variables d'environnement.

Vous pouvez alors cliquer sur le bouton Nouvelle pour créer une nouvelle variable d'environnement ou sélectionner une variable et cliquer sur le bouton Modifier pour la modifier.

Utiliser PowerShell

Dans une fenêtre PowerShell, saisissez :

$Env:VARIABLE_NAME=VALUE

Remplacez VARIABLE_NAME et VALUE par les valeurs que vous souhaitez définir. Par exemple, pour définir ANDROID_EMU_RENDERDOC sur "1", saisissez :

$Env:ANDROID_EMU_RENDERDOC="1"
Utiliser cmd.exe

Dans une fenêtre cmd.exe, saisissez :

set VARIABLE_NAME=VALUE

Remplacez VARIABLE_NAME et VALUE par les valeurs que vous souhaitez définir. Par exemple, pour définir ANDROID_EMU_RENDERDOC sur "1", saisissez :

set ANDROID_EMU_RENDERDOC="1"

Conseils pour Android 11 (niveau d'API 30) ou version ultérieure

Google Play Jeux sur PC est mis à jour parallèlement à Android. Voici quelques conseils pour travailler avec la dernière version d'Android.

Maintenir les outils à jour

Android Studio installe une version d'adb compatible avec l'émulateur du développeur. Cependant, certains moteurs de jeu incluent une ancienne version d'adb. Dans ce cas, après avoir installé l'émulateur du développeur, vous trouverez une version compatible d'adb sous C:\Program Files\Google\Play Games Developer Emulator\current\emulator.

Lorsque vous lancez une version d'adb, l'autre est arrêtée. Autrement dit, si votre moteur de jeu lance automatiquement sa propre instance adb, vous devrez peut-être redémarrer et reconnecter la version d'adb fournie avec l'émulateur du développeur à chaque déploiement.

Si vous utilisez un Android App Bundle, vous devez installer la dernière version de Bundletool à partir du dépôt GitHub.

Espace de stockage cloisonné

Android 11 (niveau d'API 30) et les versions ultérieures incluent un espace de stockage cloisonné, qui assure une meilleure protection aux données des applications et des utilisateurs stockées sur un espace de stockage externe. En plus de rendre votre jeu compatible avec les exigences concernant l'espace de stockage cloisonné, vous devez passer par des étapes supplémentaires pour charger les fichiers d'extension pour APK (OBB) ou les données des assets dans l'émulateur du développeur Google Play Jeux sur PC. Procédez comme suit si vous rencontrez des problèmes pour accéder à ces fichiers depuis votre jeu :

  1. Créez un répertoire pouvant être lu par votre appli.
  2. Envoyez vos fichiers d'extension à l'émulateur.
adb shell mkdir /sdcard/Android/obb/com.example.game
adb push main.com.example.game.obb /sdcard/Android/obb/com.example.game

Visibilité du package

En raison des nouvelles règles de visibilité du package, les applications qui ciblent Android 11 (niveau d'API 30) ou une version ultérieure ne peuvent pas rechercher d'informations sur les autres applications installées sur un appareil. Cela signifie que votre jeu ne peut pas accéder aux services Play lorsqu'il est téléchargé indépendamment via adb au lieu d'être installé via le Play Store. Pour tester votre IAP avec un jeu téléchargé indépendamment, vous devez ajouter une requête au package "com.android.vending" dans le fichier AndroidManifest.xml, comme suit :

<manifest>
    <queries>
        <package android:name="com.android.vending" />
    </queries>
</manifest>

Installer votre jeu dans le client grand public

Vous ne pouvez pas installer un jeu sur le client grand public tant qu'il n'a pas été répertorié dans le catalogue des services de jeux Play. Une fois votre jeu publié dans une première version, vous pouvez créer un canal de test interne pour valider les futures mises à jour avant leur déploiement.

Le client joueur n'est pas compatible avec les fonctionnalités de développement de l'émulateur du développeur Google Play Jeux sur PC. Il est préférable d'utiliser ce client pour procéder au contrôle qualité du jeu avant la sortie et pour tester de bout en bout l'expérience côté joueur après la publication initiale.