Jouer à un jeu de cartes tactique à la manette : comment fonctionne la prise en charge des manettes dans Ancient Duel
La prise en charge des manettes concerne d’ordinaire les jeux de déplacement et de visée. Ancient Duel n’a ni l’un ni l’autre. C’est un jeu de cartes : vous regardez le plateau, vous réfléchissez un moment, puis vous prenez une seule décision, bien précise.
C’est justement pour cela que la manette lui convient si bien. Chaque action d’un duel se ramène à la même courte liste. Quelle carte. Quelle position. Quelle cible. Confirmer. Retour. C’est la langue naturelle d’une manette, et elle s’accorde mal avec un appareil dont le grand talent est de pointer n’importe quel pixel.
Une manette ne devrait pas se faire passer pour une souris
Le raccourci tentant consiste à laisser le joystick pousser un curseur sur l’écran. C’est vite programmé et désagréable à utiliser : vous guidez un pointeur au-dessus d’un tapis vide, en fournissant un effort analogique pour prendre une décision numérique.
Ancient Duel déplace plutôt la sélection. Le joystick ou la croix directionnelle sautent d’un élément qui compte vraiment à un autre (une carte en main, une unité sur le champ de bataille, une cible, un bouton, un onglet), et Confirmer active ce qui est sélectionné à cet instant. Vous ne visez jamais. Vous dites « carte suivante », « celle-là », « oui ».
Toute la couche d’entrée suit une règle que je me suis fixée tôt et que je n’ai jamais enfreinte : elle ne réimplémente jamais une action du jeu. Elle déplace le focus et laisse le bouton déjà présent faire son travail. Le jeu se pilotait entièrement au clavier depuis le travail d’accessibilité d’avril, si bien que la prise en charge des manettes n’a demandé aucune modification de la logique du jeu. L’inverse vaut aussi : ce qui n’est pas accessible au clavier ne l’est pas à la manette. Rendre un élément navigable, c’est en faire un point de focus, pas écrire du nouveau code d’entrée.
Le plateau était déjà une grille
Un jeu de cartes aide ici d’une façon dont un monde en 3D est incapable. Le champ de bataille d’Ancient Duel est une structure fixe et finie : quatre positions d’unité par camp, un emplacement de Commandant au centre, une rangée de stratégie, une main, deux défausses, une zone de terrain. Il n’y a aucun espace continu à parcourir.
La disposition visible peut donc tout simplement devenir la navigation. Gauche et droite avancent le long d’une rangée, haut et bas passent de la main au champ de bataille, et les boutons de tranche sautent des zones entières d’un coup au lieu de traverser tout ce qui se trouve entre les deux. Le joystick droit fait défiler la page, et Start ouvre les réglages de la manette.
Le focus est le curseur
Avec une souris, on sait toujours ce que l’on pointe, puisque c’est sa propre main qui pointe. Retirez le pointeur, et l’interface doit répondre à tout moment à trois questions : qu’est-ce qui est sélectionné, que va en faire Confirmer, et que va annuler Retour ?
Cela paraît évident, et c’est là qu’est passé l’essentiel du travail minutieux. Une boîte de dialogue qui s’ouvre avec la sélection sur son bouton de fermeture est techniquement navigable et en pratique inutilisable : le jeu vient de vous demander quelle carte défausser, et la surbrillance est sur le ✕. Les boîtes de dialogue s’ouvrent désormais sur leur premier vrai choix, et les modes de ciblage placent la sélection sur la première cible valide au lieu de se contenter de les mettre toutes en surbrillance, ce qui fonctionnait avec un pointeur et devenait, sans lui, une chasse au trésor.
Une bonne prise en charge des manettes, ce n’est pas un état où chaque bouton est accessible. C’est un état où l’on cesse de se demander comment les atteindre.
Ne vous fiez jamais à l’index d’un bouton
C’est la partie que j’ai le plus sous-estimée.
Une manette pour PC peut annoncer qu’elle utilise la disposition standard, puis numéroter ses boutons comme bon semble à son firmware. La manette avec laquelle je fais mes tests fait exactement cela et porte en plus les inscriptions 1 / 2 / 3 / 4 dans le sens des aiguilles d’une montre en partant du haut, au lieu de A/B/X/Y. Derrière chaque pression se cachent donc trois informations distinctes, et seule la première peut réellement être connue : l’entrée brute, la position physique de ce bouton sur le plastique et l’inscription imprimée à côté. Un jeu qui associe Confirmer au « bouton 0 » devine deux de ces trois informations.
C’est pourquoi Ancient Duel dispose d’un assistant de calibrage, qui ne déduit jamais rien d’un index. Il apprend la position physique grâce à vos mains, et l’inscription d’après ce que vous lui dites voir sur l’appareil. Les inscriptions se choisissent dans une liste au lieu d’être tapées, puisqu’une manette n’a pas de lettres, et elles n’ont rien de décoratif : si vous indiquez au jeu que votre bouton du bas porte « B » et celui de droite « A », vous tenez une manette à la convention Nintendo, quoi qu’en pense le navigateur, et Confirmer et Retour s’inversent en conséquence.
Une commande que vous passez reste muette. Il n’y a aucun repli sur un index supposé, car un bouton de tranche qui confirme un abandon est précisément l’erreur que le calibrage existe pour empêcher.
Un calibrage qui n’a pas le droit de réclamer une souris
Il y a là un paradoxe. Le joueur dont la manette est mal configurée est justement celui qui a besoin de l’écran de calibrage, et justement celui qui ne peut pas traverser un menu ordinaire pour y arriver.
Toute la conception suit donc une règle : une manette doit pouvoir être calibrée, étiquetée, enregistrée, rouverte et réparée sans souris ni clavier. Sur un ordinateur, les deux restent disponibles par commodité ; rien ne doit en dépendre.
Concrètement, l’assistant s’ouvre sur « appuyez sur n’importe quel bouton pour commencer » et accepte n’importe quel bouton brut de n’importe quelle manette branchée, et cette pression décide aussi quelle manette pilote la session. Viennent ensuite confirmer et annuler, qu’on ne peut pas passer. À partir de la troisième question, le bouton que vous venez de désigner comme bouton de façade droit revient d’une étape en arrière, si bien qu’en appuyant dessus assez de fois, vous fermez l’assistant : la seule sortie qui ne demande pas de pointeur. Chaque étape de capture avance d’elle-même, car un joueur à qui l’on vient de demander d’appuyer sur le bouton de façade du bas n’a aucun moyen d’appuyer aussi sur « Suivant ».
Pourquoi il ne pose jamais de question sur le joystick
Huit questions, et toutes portent sur des boutons. Aucune ne porte sur les directions.
En partie parce que les directions sont la partie fiable : sur une manette à la disposition standard, le joystick gauche arrive sous la forme des deux premiers axes, ce qui rend les entrées directionnelles bien plus prévisibles que des boutons numérotés au gré du fabricant. Mais surtout à cause d’une chose que je n’ai comprise qu’après l’avoir vue échouer. Un bouton est enfoncé ou il ne l’est pas. Un axe n’a pas d’état relâché qui ait un sens : un joystick usé dérive, le chapeau d’une croix directionnelle se repose à 3,29, une gâchette reste à −1, et n’importe lequel d’entre eux peut répondre à une question que personne n’a posée, ou empêcher une étape de se terminer pour une raison que rien à l’écran ne peut expliquer. Ne pas poser la question a supprimé toute une catégorie de comportements inexplicables.
Maintenir une direction la fait répéter, à une vitesse réglable ; la zone morte se règle elle aussi, si votre joystick dérive.
Écrire sans lettres
Puis vous arrivez à un champ de texte, et la manette n’a rien à proposer. Se connecter, nommer un deck, chercher dans le catalogue des cartes : tout cela demande des caractères qu’aucune manette ne possède.
Confirmer sur un champ de texte ouvre donc un clavier QWERTY complet à l’écran. Ce sont des boutons ordinaires sur une couche ordinaire, ce qui veut dire que la même navigation s’y déplace et que Retour le ferme comme tout le reste. Un joueur équipé d’un vrai clavier ne le voit jamais.
Un détail dont je ne pensais pas qu’il compterait : la disposition reprend le vrai décalage physique des rangées, les mêmes décalages d’un quart de touche qu’un clavier ANSI. La navigation lit la géométrie affichée pour décider où mène « haut », c’est donc le décalage qui place le W au-dessus de l’espace entre le A et le S. Des valeurs plus rondes échouent bel et bien : avec un décalage d’exactement une demi-touche, chaque touche se trouve à égale distance des deux touches situées en dessous, et l’égalité est tranchée par l’ordre dans lequel le balisage les a placées par hasard.
Ce que la manette a trouvé dans le reste du jeu
Le plus utile dans ce travail, c’est ce qu’il a mis au jour. Une souris permet de contourner les problèmes d’une interface en pointant directement ce que l’on veut. Une manette ne le permet pas, alors l’interface doit rendre ces relations explicites, et à plusieurs endroits il s’est avéré qu’elle ne le faisait pas.
Les decks enregistrés n’étaient pas des points de focus, ce qui voulait dire qu’on ne pouvait pas du tout ouvrir un deck sans souris. Même chose pour les défausses et le terrain. Le Constructeur de deck reconstruisait ses deux colonnes à chaque carte ajoutée, détruisant le bouton sur lequel vous veniez d’appuyer et vous faisant perdre votre place ; il retient maintenant la carte et l’action, et les retrouve. Les fenêtres de confirmation et d’alerte propres au navigateur échappent entièrement au modèle de focus de l’application ; elles ont donc été remplacées par des boîtes de dialogue intégrées à la page, qui s’ouvrent sur la réponse sans risque.
Aucun de ces problèmes n’est un bug de manette. Ce sont des bugs d’interface qu’un pointeur compensait en silence, et les corriger a amélioré le jeu pour des personnes qui ne toucheront jamais une manette.
Steam, canapés et le Deck
Le même code tourne dans le navigateur, dans la version Windows utilisée sur Steam et dans la version macOS, et les trois partagent le même système de manette et la même logique de configuration, même si les réglages eux-mêmes sont enregistrés sur l’appareil et non sur votre compte.
Ce que cela apporte est simple : un PC n’est plus seulement un bureau. La même version fonctionne sur un portable, sur une machine branchée à un téléviseur et depuis le canapé, manette en main. Un jeu de cartes s’y prête mieux que la plupart des genres, car la posture naturelle pour Ancient Duel consiste à se caler dans son siège et à réfléchir, pas à se pencher en avant pour cliquer.
Pour les consoles portables comme le Steam Deck, l’état honnête des choses est le suivant : les fondations sont faites, les tests ne le sont pas. Steam Input peut exposer les entrées de la manette par une disposition standard compatible XInput ; le modèle existant constitue donc en principe une base utile, et un jeu qui ne suppose jamais la présence d’une souris remplit une condition importante pour ce type d’appareil. Je n’ai pas vérifié Ancient Duel sur le matériel lui-même, je n’affirmerai donc pas qu’il y fonctionne. Il existe aussi un mode TV qui ajoute une marge de sécurité, car certains réglages de téléviseur appliquent encore un overscan et rognent une partie de l’image sur les bords, assez pour faire sortir de l’écran le bouton d’abandon.
Le même raisonnement vaut pour toute plateforme future. Une version console demanderait bien plus qu’un travail sur les entrées : SDK, certification, services de la plateforme, empaquetage, validation par la boutique. Mais il y a un obstacle que l’on peut lever tôt, et c’est celui qui concerne tous les écrans : le jeu ne doit pas supposer qu’une souris existe. Cela ne rend rien prêt pour une console. Cela garde ouverte une porte qu’il coûterait cher de rouvrir plus tard.
La souris n’est allée nulle part
Rien de tout cela ne remplace quoi que ce soit. La souris et le clavier fonctionnent exactement comme avant, et sur un ordinateur ils restent plus rapides. L’idée n’a jamais été de choisir un périphérique d’entrée à la place des joueurs.
Un duel joué à la manette n’est pas un autre duel. On sélectionne la même carte, on choisit la même cible, on prend la même décision et on en assume les conséquences. Seul change le chemin par lequel la décision parvient au jeu, et moins Ancient Duel fait de suppositions sur ce que vous tenez entre les mains, plus il y a d’endroits où ce même duel peut se jouer.
Daniel Rusu
Créateur et développeur d’Ancient Duel