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), 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

Requis par le processus de release

Toutes les bibliothèques incluses dans votre jeu nécessitent des versions compatibles avec l'ABI x86 pour garantir des performances et une stabilité optimales sur la plate-forme. Bien que Google Play Jeux sur PC soit compatible avec les versions 32 bits et 64 bits, vous ne devez en choisir qu'une seule pour répondre à ces exigences.

Compilation de bibliothèques

Pour assurer une compatibilité optimale avec un processeur x86, n'utilisez pas l'ensemble d'instructions Atom lorsque vous compilez vos bibliothèques. Par exemple, lorsque vous utilisez gcc, optez pour -march=x86 ou -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 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/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 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.

    • 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 (ChromeOS) et x86-64 (ChromeOS).

Pour optimiser la compatibilité avec les moteurs de jeu, nous vous recommandons d'activer les versions x86 et x86-64, ou uniquement la version x86-64 afin d'éviter d'être limité par un espace de mémoire de 32 bits.

Comme Unity 2018 n'est compatible qu'avec les cibles x86, vous pouvez ignorer la prise en charge de x86-64. Toutefois, vous ne pouvez pas publier cette version sur Android, car elle doit être compatible 64 bits. Dans ce cas, vous devez gérer une version distincte pour Google Play Jeux sur PC.

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 les boîtes de dialogue d'autorisation

Google Play Jeux sur PC n'affiche pas de boîte de dialogue d'autorisation. Vous ne devez donc pas essayer d'afficher de telles boîtes de dialogue avant de demander des autorisations. Si vous les avez affichées 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 Android qui sont disponibles sur un téléphone mobile ou une tablette ne le sont pas sur un ordinateur. Il peut s'agir de fonctionnalités matérielles telles que l'appareil photo ou d'autres fonctionnalités telles que la position de l'utilisateur. Par conséquent, votre jeu ne doit pas reposer sur des fonctionnalités ou autorisations Android non prises en charge. Sur un ordinateur, si votre jeu demande une autorisation non compatible avec cet environnement, la demande échoue automatiquement.

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

  • Dans le fichier manifeste de votre application, ajoutez android:required="false" à la déclaration <uses-feature> pour toutes les fonctionnalités non prises en charge par Google Play Jeux sur PC. Cela ne s'applique qu'aux fonctionnalités déjà déclarées dans le fichier manifeste de votre application.

  • Dans votre jeu, désactivez les fonctionnalités qui dépendent de fonctionnalités matérielles et logicielles non compatibles avec les ordinateurs. Si vous utilisez le même fichier APK que pour le jeu mobile, vous pouvez les désactiver de manière conditionnelle pour les ordinateurs.

  • Dans votre jeu, désactivez les demandes d'autorisation Android non compatible avec les ordinateurs, ainsi que les fonctionnalités qui dépendent de ces autorisations. Si vous utilisez le même fichier APK que pour le jeu mobile, vous pouvez appliquer ces modifications de manière conditionnelle pour les ordinateurs, et vous ne devez pas modifier les autorisations déclarées dans 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

Pour savoir comment supprimer la fonctionnalité android.hardware.wifi, consultez Surveiller l'état de la connectivité et la mesure des connexions. Pour la 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.