Compatibilité et optimisation PC pour Google Play Jeux sur PC

Pour pouvoir être inclus sur Google Play Jeux sur PC, votre jeu doit être compatible avec les ordinateurs et optimisé en conséquence. Ces modifications garantissent que votre jeu peut s'exécuter sur un PC et que l'expérience utilisateur est optimisée pour la plate-forme.

De plus, Google Play Jeux sur PC doit remplir certaines conditions en matière d'éléments graphiques, d'entrée sur l'appareil et de jeu multi-appareils. Pour en savoir plus, consultez le guide de démarrage.

Lorsque vous apportez des modifications à votre jeu pour qu'il soit compatible avec les ordinateurs et optimisé pour ce type d'environnement (en dehors de la prise en charge de l'architecture x86-64), vous pouvez le configurer pour qu'il détecte Google Play Jeux sur PC, puis activer ou désactiver les fonctionnalités propres à la plate-forme. Vous pouvez ainsi utiliser le même APK ou app bundle pour vos versions Android pour mobile et PC.

Voici un résumé des exigences et recommandations de cette page :

Inclure l'architecture ABI x86-64

Requis par le processus de release

Toutes les bibliothèques incluses dans votre jeu nécessitent des versions compatibles avec l'ABI x86-64 pour garantir des performances et une stabilité optimales sur la plate-forme.

S'il est techniquement impossible pour votre jeu de livrer un exécutable x86 64 bits, vous devez contacter l'équipe d'examinateurs pour obtenir une exception. Votre jeu ne peut pas obtenir la certification complète, sauf exception, mais peut être placé dans le catalogue en tant que jeu "jouable".

Compilation de bibliothèques

Pour assurer une compatibilité optimale avec un processeur x86-64, n'utilisez pas l'ensemble d'instructions Atom lorsque vous compilez vos bibliothèques. Par exemple, lorsque vous utilisez gcc, optez pour -march=x86-64 au lieu de -march=atom.

Cibler l'architecture dans Unity

Certaines versions de Unity 2019 et 2020 ne sont pas compatibles avec l'architecture x86-64 sur Android. Assurez-vous d'utiliser Unity 2019.4.31f1, 2020.3.19f1 ou une version ultérieure.

Si votre jeu utilise une version compatible du moteur de jeu Unity, activez les cibles Android x86-64 :

  1. Accédez à Player Settings > Other Settings > Configuration > Scripting Backend (Paramètres du joueur > Autres paramètres > Configuration > Backend de script) et sélectionnez IL2CPP dans le menu déroulant pour activer le backend de script IL2CPP.

  2. Activez les cibles Android x86-64 pour votre version d'Unity :

    • Unity 2018 et versions antérieures : accédez à Player Settings > Other Settings > Target Architecture (Paramètres du joueur > Autres paramètres > Architecture cible), puis cochez la case x86. Comme Unity 2018 n'est compatible qu'avec les cibles x86, vous ne pourrez pas compiler x86-64. Ce build nécessitera une exception de la part de l'équipe d'examinateurs. Veuillez contacter votre représentant Google pour demander une exception x86.

    • Version LTS (Long Term Support) Unity 2019 et versions ultérieures : accédez à Player Settings > Other Settings > Target Architectures (Paramètres du joueur > Autres paramètres > Architectures cibles), puis activez x86-64. (Chrome OS).

Détecter Google Play Jeux sur PC

Vous pouvez détecter la plate-forme Google Play Jeux sur PC au moment de l'exécution, ce qui vous permet d'activer ou de désactiver les fonctionnalités spécifiques à la plate-forme dans votre jeu.

Recherchez la fonctionnalité système com.google.android.play.feature.HPE_EXPERIENCE pour déterminer si votre jeu s'exécute sur la plate-forme Google Play Jeux sur PC :

Kotlin

    var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

Java

    PackageManager pm = getPackageManager();
    boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

C#

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
  

Gérer les événements de cycle de vie d'Android

Il est important de gérer l'événement onPause (c++) dans l'environnement Google Play Jeux sur PC. Votre jeu est visible lorsqu'un joueur active la superposition d'émulateur. Si vous n'écoutez pas l'événement onPause, l'expérience utilisateur risque d'être médiocre.

Mettre à jour l'UI

Certains éléments d'interface utilisateur et gestes ne conviennent pas aux ordinateurs et doivent être mis à jour.

Action obligatoire :

  • Remplacez les actions d'interface utilisateur nécessitant deux doigts ou plus (gestes à plusieurs doigts). Par exemple, remplacez le geste de pincement pour zoomer et d'autres gestes à plusieurs doigts par l'entrée correspondante de la souris et du clavier. Pour en savoir plus sur le changement des entrées de périphériques, consultez la section Entrées compatibles.

Recommandations :

  • Tout texte visible par l'utilisateur doit indiquer "cliquer" au lieu du terme "appuyer".
  • Les listes déroulantes doivent comporter des barres de défilement.
  • Les zones dans lesquelles les utilisateurs peuvent faire un panoramique doivent être dotées de barres de défilement ou proposer une autre manière de parcourir rapidement de grandes distances.
  • N'affichez pas de clavier cliquable à l'écran pour saisir du texte.
  • Toutes les entrées de texte doivent être comprises dans les limites du champ de texte.
  • Les clics sur les éléments visibles doivent respecter les conditions suivantes :
    • Ils doivent accepter les clics n'importe où dans les limites visibles de l'élément.
    • Ils ne doivent accepter aucun clic en dehors de l'élément visible.
  • Les boîtes de dialogue doivent afficher un bouton visible permettant de les fermer. N'activez aucun clic en dehors des limites de la boîte de dialogue.

Désactiver la plupart des boîtes de dialogue d'autorisations

À l'exception de l'autorisation d'accès au micro, Google Play Jeux sur PC n'affiche pas de boîte de dialogue d'autorisations. Vous ne devez donc pas essayer de les afficher ni de demander des autorisations au moment de l'exécution. Si vous avez affiché des boîtes de dialogue d'autorisation précédemment, mettez à jour votre jeu afin qu'il ne les affiche plus sur les ordinateurs.

Fonctionnalités et autorisations non compatibles avec Android

Requis par le processus de release

Certaines fonctionnalités matérielles courantes sur les téléphones mobiles et les tablettes ne sont pas disponibles sur PC. Il peut s'agir de fonctionnalités matérielles telles que l'appareil photo ou la position du joueur. Les jeux qui nécessitent des fonctionnalités non disponibles sur les PC ne peuvent pas être téléchargés ni installés sur l'ordinateur du joueur. Les requêtes de fonctionnalités manquantes sur un PC échouent automatiquement.

Pour afficher la liste complète des fonctionnalités disponibles, tapez ce qui suit :

adb shell pm list features

Pour que votre jeu soit compatible avec les ordinateurs, vous devez apporter les modifications suivantes :

  • Pour marquer les fonctionnalités comme facultatives dans le fichier manifeste de votre application, ajoutez android:required="false" à la déclaration <uses-feature>. Cela ne s'applique qu'aux fonctionnalités déjà déclarées dans le fichier manifeste de votre application.

  • N'essayez pas d'utiliser des fonctionnalités manquantes au moment de l'exécution. Si vous utilisez le même fichier APK pour les canaux pour mobile et pour ordinateur, détectez l'environnement du PC au moment de l'exécution et évitez les chemins de code pertinents.

  • Ne demandez pas d'autorisations Android non compatibles au moment de l'exécution. Si vous utilisez le même fichier APK pour les canaux pour mobile et pour ordinateur, détectez l'environnement du PC au moment de l'exécution et évitez les chemins de code pertinents. Vous n'avez pas besoin de mettre à jour le fichier manifeste.

Pour en savoir plus sur la compatibilité des fichiers manifestes d'application, consultez le guide sur la compatibilité des fichiers manifestes d'application Chromebook.

Exigences liées aux tests fonctionnels

Supprimez les fonctionnalités matérielles suivantes avant d'envoyer la première version de build à la Google Play Console :

  • android.hardware.wifi
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.location

Certaines de ces fonctionnalités peuvent être annoncées comme prises en charge lors de l'exécution de pm list features pour des raisons de compatibilité, mais elles ne sont pas entièrement implémentées. Pour découvrir comment supprimer la fonctionnalité android.hardware.wifi, consultez la section Surveiller l'état de la connectivité et la mesure des connexions. Pour une liste complète des fonctionnalités non compatibles, consultez le guide sur la compatibilité des fichiers manifestes d'application pour les Chromebooks.

Exigences liées aux tests de qualité

Les fonctionnalités matérielles ci-dessous, qui sont couramment utilisées, ne sont pas compatibles avec les ordinateurs. Vous devez donc les supprimer avant d'envoyer la version finale à la Google Play Console :

  • android.hardware.audio.pro
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.consumerir
  • android.hardware.location
  • android.hardware.nfc
  • android.hardware.sensor.light
  • android.hardware.sensor.accelerometer
  • android.hardware.sensor.barometer
  • android.hardware.sensor.compass
  • android.hardware.sensor.gyroscope
  • android.hardware.sensor.proximity
  • android.hardware.telephony
  • android.hardware.touchscreen
  • android.hardware.usb.accessory
  • android.hardware.usb.host
  • android.hardware.wifi
  • android.software.midi

Autorisations non compatibles

Les autorisations ci-dessous, qui sont couramment utilisées, ne sont pas compatibles avec les ordinateurs. Vous devez donc les désactiver dans votre jeu pour Google Play Jeux sur PC :

  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_WIFI_STATE
  • android.permission.BLUETOOTH
  • android.permission.CAMERA
  • android.permission.FOREGROUND_SERVICE
  • android.permission.GET_ACCOUNTS
  • android.permission.INSTALL_PACKAGES
  • android.permission.READ_CONTACTS
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.READ_PHONE_STATE
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.REQUEST_INSTALL_PACKAGES
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.USE_CREDENTIALS
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.WRITE_SETTINGS
  • com.google.android.gms.permission.ACTIVITY_RECOGNITION

Sites Web externes et éléments WebView

Un intent de navigateur se charge dans le navigateur Web natif d'un ordinateur au lieu d'un navigateur dans l'environnement Google Play Jeux sur PC. C'est une expérience idéale pour les joueurs dans la plupart des cas.

Pour faciliter le portage, Google Play Jeux sur PC prend en charge l'élément WebView. Comme il s'ouvre dans l'environnement Google Play Jeux sur PC, il n'offre pas de navigateur pour ordinateur classique. Si vous utilisiez auparavant WebView pour partager vos conditions d'utilisation, vos règles de confidentialité ou d'autres contenus similaires, nous vous recommandons d'appeler un intent de navigateur.

Désactiver les API des services Google Play non compatibles

Requis par le processus de release

Google Play Jeux sur PC propose sa propre variante des services Google Play, qui ne contient qu'un sous-ensemble des API des services Google Play. Vérifiez que le fonctionnement de votre application ne dépend pas des modules omis ou non compatibles sur les ordinateurs. Notez que certains modules peuvent être disponibles, mais que leurs fonctionnalités ne sont pas toujours compatibles en permanence. Par exemple, Firebase Cloud Messaging ne fonctionne pas lorsque Google Play Jeux sur PC est fermé.

Modules compatibles

Ces modules sont actuellement disponibles et compatibles avec Google Play Jeux sur PC. D'autres fonctionnalités seront également prises en charge à l'avenir :

Prise en charge limitée

Les modules suivants sont partiellement fonctionnels. Nous faisons tout notre possible pour les prendre en charge sur Google Play Jeux sur PC, mais nous ne pouvons pas garantir leur bon fonctionnement.

Modules non compatibles

Les modules ci-dessous ne sont pas compatibles avec Google Play Jeux sur PC, mais ne provoquent pas de problèmes dans Google Play Jeux sur PC en cas d'échec :

Modules à éviter

Requis par le processus de release

Vous ne devez pas utiliser les modules suivants sur ordinateur, car ils peuvent entraîner un comportement inattendu dans Google Play Jeux sur PC.

Activer l'espace de stockage cloisonné

Requis par le processus de release

Cette section s'applique si votre jeu lit ou écrit des données sur un espace de stockage externe. Le cloisonnement de l'espace de stockage doit être utilisé comme méthode alternative pour lire et écrire des données dans l'espace de stockage. Il vous évite d'avoir à demander au joueur les autorisations sensibles suivantes :

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

Pour en savoir plus sur l'espace de stockage cloisonné, consultez les références suivantes :

Données analytiques

Les anciens produits Google Analytics ne fonctionnent pas dans Google Play Jeux sur PC. Si vos jeux sont concernés, vous devez migrer vers Google Analytics 4.

Cela ne devrait affecter votre jeu que si vous utilisez actuellement Google Analytics 360. Si vous utilisez le SDK Firebase pour suivre les événements d'analyse dans votre jeu et que votre jeu apparaît en tant que propriété dans la console Google Analytics, vous n'avez rien d'autre à faire.