Considérations de conception essentielles

Lorsque vous implémentez la compatibilité avec les manettes de jeu, tenez compte des exigences essentielles suivantes pour aider les joueurs à profiter d'un gameplay fluide et sans interruption.

Indiquez aux utilisateurs du Play Store que votre jeu est compatible avec les manettes

La déclaration de la fonctionnalité de manette de jeu dans votre fichier manifeste Android affiche une icône et un tag de compatibilité avec les manettes de jeu sur Google Play. Utilisez cette déclaration pour aider davantage d'utilisateurs à découvrir votre jeu et à y jouer. Pour obtenir des instructions de configuration détaillées et des exemples de fichiers manifestes, consultez Visibilité sur le Play Store et Fonctionnalités matérielles de la manette de jeu.

Permettre aux joueurs de passer facilement d'un périphérique d'entrée à un autre

Lorsque les joueurs passent d'un périphérique d'entrée à un autre, assurez-vous que la transition se fait de manière fluide. Évitez d'obliger les joueurs à changer manuellement de mode de saisie dans un menu de paramètres ou à redémarrer le jeu.

Écrans de jeu de course côte à côte : les boutons tactiles de direction et de nitro s'affichent pendant le jeu sur mobile et disparaissent automatiquement lorsqu'une manette physique est connectée.
Figure 1. Changement dynamique entre les méthodes de saisie sans interrompre le jeu.

Changement automatique et compatibilité avec le branchement à chaud

Gardez tous les périphériques d'entrée compatibles actifs simultanément afin que les joueurs puissent passer de l'un à l'autre à la volée. Écoutez les modifications apportées aux périphériques d'entrée au moment de l'exécution afin que les manettes fonctionnent immédiatement après la connexion sans redémarrer l'application, et passez facilement à d'autres méthodes de saisie disponibles si une manette active se déconnecte pendant le jeu. Pour détecter les connexions et les déconnexions de manettes, consultez Vérifier qu'une manette de jeu est connectée (Kotlin ou Java) ou Enregistrer ou supprimer un rappel d'état de la manette (bibliothèque Game Controller C++). Sur Android 16 (niveau d'API 36) et versions antérieures, déclarez également android:configChanges="keyboard|keyboardHidden|navigation" dans votre fichier manifeste afin que la connexion ou la déconnexion d'une manette ne redémarre pas votre activité (voir Gérer les modifications de configuration).

Non recommandé Recommandé
Non recommandé : boîte de dialogue modale demandant au joueur de changer manuellement de mode de saisie dans les paramètres et de redémarrer le jeu lorsqu'une manette est détectée. Recommandé : Une bannière non intrusive confirmant que la manette est connectée et que l'entrée a été automatiquement basculée avec des invites de manette.

Mettre à jour l'iconographie des boutons et les guides textuels pour qu'ils correspondent à l'appareil actif

Changez dynamiquement les icônes des boutons à l'écran et les guides textuels en fonction du périphérique d'entrée actif. Par exemple, remplacez un guide de commandes tactiles tel que "Appuyez pour sauter" par "Appuyez sur B pour sauter" (ou le bouton équivalent de la plate-forme) lorsque votre jeu détecte une entrée de manette.

Écrans de jeu d'aventure côte à côte : les invites "Appuyez pour sauter" et "Appuyez sur le coffre pour l'ouvrir" deviennent "Appuyez sur B pour sauter" et "Appuyez sur A pour ouvrir le coffre" lorsqu'une manette de jeu est connectée.
Figure 2. Mise à jour dynamique des icônes des boutons à l'écran et du texte du guide pour correspondre à la manette active.

Masquer les commandes tactiles virtuelles lorsqu'une manette est active

Pour éviter d'encombrer l'écran et de perturber le joueur, masquez tous les éléments d'interface utilisateur tactiles virtuels, tels que les joysticks virtuels et les boutons à l'écran, lorsqu'une manette de jeu est active. Restaurez l'UI tactile immédiatement si le joueur touche l'écran.

Écrans de jeu d'aventure côte à côte : le joystick virtuel et le bouton d'attaque à l'épée sont visibles pendant le jeu tactile et masqués pour une vue dégagée lorsqu'une manette de jeu est connectée.
Figure 3. Masquer les commandes tactiles virtuelles lorsque la manette de jeu est active.

Assurez une compatibilité totale avec les manettes de jeu pour toute la logique du jeu.

Évitez de vous appuyer sur le toucher comme mécanisme de remplacement. Utiliser l'écran tactile pour quitter les menus ou effectuer certaines actions dans le jeu peut nuire à l'immersion. Implémentez toutes les interactions dans le jeu afin que les joueurs puissent les effectuer entièrement à l'aide d'une manette de jeu.

Mappez tous les éléments de l'affichage tête haute et les boîtes de dialogue aux entrées de la manette.

Permettez aux joueurs d'ouvrir, d'interagir avec et de fermer tous les éléments d'affichage tête haute (HUD), les menus et les boîtes de dialogue à l'écran à l'aide de la manette, via des boutons de raccourci dédiés, des gâchettes ou la navigation par pavé directionnel, afin qu'ils n'aient pas à toucher l'écran.

Non recommandé Recommandé
Non recommandé : boîte de dialogue modale et icônes d'interface à l'écran sans raccourcis de manette, ce qui oblige le joueur à appuyer sur le bouton de fermeture à l'écran. Recommandé : icônes de l'interface à l'écran et boutons de boîte de dialogue modale mappés aux entrées de la manette avec des invites claires pour les boutons A et B.

Séparer les contextes d'entrée du gameplay et de l'UI

Lorsqu'un menu ou une boîte de dialogue s'ouvre pendant le jeu, changez de contexte ou bloquez les commandes en arrière-plan afin que la manette de jeu n'interagisse qu'avec l'UI active. Cette séparation empêche la navigation directionnelle ou l'appui sur un bouton dans un menu de déclencher accidentellement un mouvement ou une action du personnage en arrière-plan.

Non recommandé Recommandé
Non recommandé : lorsque le joueur parcourt un menu d'inventaire ouvert, le personnage se déplace et brandit son arme en arrière-plan par accident. Recommandé : L'ouverture du menu d'inventaire bloque les entrées de gameplay en arrière-plan, de sorte que les pressions sur le pavé directionnel et les boutons ne déplacent que la sélection de la grille d'éléments, tandis que le personnage reste immobile.

Attribuer le premier focus dès qu'un écran s'ouvre

Contrairement à la saisie tactile, où les joueurs appuient directement sur les boutons, la navigation à la manette de jeu passe de l'élément actuellement sélectionné à un élément adjacent. Si un nouveau menu ou une nouvelle boîte de dialogue s'ouvre sans cible de sélection initiale, il est possible que les entrées du pavé directionnel et de confirmation ne répondent pas ou restent bloquées sur les éléments d'arrière-plan. Attribuez le curseur initial à un bouton par défaut dès qu'un écran s'ouvre.

Non recommandé Recommandé
Non recommandé : un menu de pause s'ouvre sans qu'aucun bouton ne soit sélectionné, ce qui ne laisse aucun point de départ au joueur pour la navigation avec le pavé directionnel. Recommandé : Le menu de pause met immédiatement en surbrillance le bouton "Continuer" par défaut avec une bordure de sélection claire et une invite de bouton A.