Bonjour à tous,
Beaucoup de jeux CPC sont super, et pourtant une bonne partie des joueurs ne peut pas y jouer confortablement. Non pas à cause du jeu lui-même, mais à cause des touches qu’il écoute. J’en ai parlé dans Why make such great games if most people can’t play them properly?, et j’aimerais aller plus loin : décrire les problèmes et proposer une solution.
L’objectif : le confort du joueur
Chaque joueur arrive avec ses habitudes, et un jeu est confortable quand il s’y adapte. Par exemple :
- main gauche pour gauche/droite et main droite pour haut/bas, ou l’inverse ;
- un losange sous une main ;
- les touches fléchées ;
- un joystick ;
- le tir près du pouce, ou sous l’auriculaire.
Un jeu qui n’accepte qu’une seule de ces habitudes force tous les autres joueurs à rééduquer leurs mains, ou à abandonner. Un jeu qui les accepte toutes à la fois n’a besoin d’aucune redéfinition de touches : chaque joueur joue simplement comme il en a l’habitude.
Ce qui pose problème
Même un jeu qui propose de bonnes touches peut les perdre sur la configuration de quelqu’un d’autre.
Les lettres qui bougent. WASD, QAOP et compagnie supposent un clavier QWERTY. Sur AZERTY (CPC français, PC français), A et Q échangent leurs places, tout comme Z et W, et le M se déplace. Sur QWERTZ (PC allemands), Y et Z s’inversent. Un jeu qui se joue avec QAOP devient un casse-tête sur un clavier français avant même d’avoir commencé.
Les touches qu’un éulateur doit placer quelque part. COPY, CLR et les touches f0 à f9 du pavé numérique n’ont pas de place évidente sur un clavier PC, et encore moins sur un portable. Aujourd’hui, j’ai essayé My Roland, un projet en cours, où le saut est sur COPY. Selon l’émulateur, COPY se retrouve sur Alt ou sur Insert. Je ne suis même pas sûr de pouvoir dire que c’est jouable.
Les couches intermédiaires. Entre le doigt du joueur et votre jeu, il peut y avoir : la disposition du clavier hôte, le système d’exploitation, un navigateur, le mappage de l’émulateur (par position, ou par symbole, ce qu’Arnoldemu appelle « traduit »), parfois un bureau à distance. Chaque couche peut déplacer une touche. Lire les positions physiques des touches résoudrait une partie du problème dans un environnement sain ; mais dans de nombreuses configurations, l’interface ne les fournit tout simplement pas, et le programme apprend seulement quel symbole a été tapé.
Dans un navigateur, cela peut être pire. Avec le paramètre « résister au fingerprinting » de Firefox, la page s’entend dire que le clavier est un clavier standard (probablement US), peu importe ce qu’il est réellement. J’ai essayé un émulateur CPC intégré dans une page de cette façon depuis un clavier français : toutes les lettres fonctionnaient bien, mais les touches numériques donnaient de mauvais caractères ou rien du tout, et je ne pouvais même pas taper un " (détails).
Le résultat : un jeu fonctionne parfaitement sur la configuration de son auteur, et s’avère gênant ou injouable sur celle de quelqu’un d’autre.
Une proposition de solution : les touches « toute configuration »
J’appelle ça les touches toute configuration : un jeu de touches qui convient à chaque joueur, quelles que soient ses habitudes et quelle que soit sa configuration : vrai CPC de n’importe quelle langue, émulateur PC, émulateur web. Deux règles, la première avant tout :
- Utilisez uniquement des lettres qui restent en place. Ce sont celles qui sont au même endroit sur QWERTY, AZERTY et QWERTZ :
B C D E F G H I J K L N O P R S T U V X. ÉvitezA Z Q W M(elles bougent sur AZERTY) etY(s’inverse avecZsur QWERTZ). Une lettre de cette liste se retrouve que l’émulateur mappe par position ou par symbole. - Donnez à chaque fonction importante plusieurs touches, y compris des touches que chaque clavier possède. L’action sur le tir, la barre d’espace,
RETURN,ENTERetCOPY. Le menu ou la pause surESC, le second tir, etPpour la compatibilité avec la GX-4000.
Comment choisir ces différentes touches : adaptez-vous à toutes les habitudes à la fois. Joystick, touches fléchées, une main par axe dans les deux sens, un losange, les groupes de touches que les joueurs connaissent déjà ; le tir sous le pouce et sous l’auriculaire. Personne n’a rien à redéfinir : on lance et on joue.
Pas de routine de redéfinition des touches à écrire. Les joueurs n’ont rien à redéfinir, vous n’avez donc pas besoin d’écrire, de tester et de trouver de la mémoire pour un menu de redéfinition, et les joueurs n’ont pas besoin d’en passer par là avant de jouer. Rien ne vous empêche d’en proposer un aussi, mais aucun joueur ne devrait en avoir besoin.
Exemple : le jeu de touches de Just Get 9
Voici ce que Just Get 9 accepte, tout en même temps :
- Déplacement, selon ce qui convient à vos mains :
- les touches fléchées
- joystick 1 ou joystick 2
- une main par axe, dans un sens ou dans l’autre : main gauche sur
V/Bpour gauche/droite avec la main droite surO/Kpour haut/bas, ou main gauche surD/Cpour haut/bas avec la main droite surH/Jpour gauche/droite - un losange sous la main droite :
Uhaut,Nbas,Hgauche,Jdroite - une ligne de style ZX :
4gauche,5bas,6haut,7droite (les touches5678du ZX Spectrum décalées d’une touche vers la gauche, de sorte que5et6conservent leur signification du joystick 2) - les touches du joystick 2 de l’Amstrad :
6haut,5bas,Rgauche,Tdroite
- Action : sous le pouce (barre d’espace,
COPY,ENTER), sous l’auriculaire droit (RETURN), sous l’index (G,Ypour « yes »), ou le tir - Menu : second tir,
ESC,P(le bouton pause de la GX-4000),F(second tir du joystick 2)
LORSQUE deux configurations partagent une touche, elles lui donnent la même signification, donc les mélanger ne vous surprendra jamais. Dessiné sur un clavier de CPC6128 (● action, □ menu) :
┏━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┓
┃ □ ┃ ┃ ┃ ┃ ← ┃ ↓ ┃ ↑ ┃ → ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┣━━━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━━━╋━━━╋━━━╋━━━⫫
┃ ┃ ┃ ┃ ┃ ← ┃ → ┃ ● ┃ ↑ ┃ ┃ ↑ ┃ □ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┣━━━━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┓ ● ┣━━━╋━━━╋━━━⫫
┃ ┃ ┃ ┃ ↑ ┃ □ ┃ ● ┃ ← ┃ → ┃ ↓ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┣━━━━━━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━━━━╋━━━╋━━━╋━━━⫫
┃ ┃ ┃ ┃ ↓ ┃ ← ┃ → ┃ ↓ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ↑ ┃ ┃
┣━━━━━━━━╋━━━┻━━┳┻━━━┻━━━┻━━━┻━━━┻━━━┻━━━┻━━━┻━━┳┻━━━┻━━━━━━╋━━━╋━━━╋━━━⫫
┃ ┃ ● ┃ ● ┃ ● ┃ ← ┃ ↓ ┃ → ┃
┗━━━━━━━━┻━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━┻━━━┻━━━┛
Deux exceptions honnêtes dans ce jeu de touches. Y enfreint la règle 1 : sur QWERTZ, elle ne fait simplement rien, et il y a six autres touches d’action. Les touches numériques nécessitent Maj sur un clavier AZERTY : c’est très bien sur un vrai CPC et avec un mappage positionnel, mais elles peuvent échouer dans un émulateur web, comme dans le cas du « résister au fingerprinting » ci-dessus. C’est pourquoi elles ne sont jamais le seul moyen de se déplacer.
Les joueurs ont-ils besoin qu’on leur dise tout cela ? Just Get 9 ne le mentionne même pas dans le jeu ; le fichier README du téléchargement contient la liste et le schéma ci-dessus, et personne ne s’est plaint. Les joueurs qui ont des habitudes particulières explorent le clavier et trouvent quelque chose qui fonctionne pour eux.
À vous de jouer
- Si vous écrivez des jeux : pensez à un jeu de touches « toute configuration ». Celui de Just Get 9 en est un exemple ; le vôtre peut être différent, tant qu’il respecte les deux règles.
- Si vous jouez : quels jeux vous ont posé problème sur votre configuration (langue du clavier, émulateur, émulateur web) ? Lesquels fonctionnent directement ? J’aimerais les rassembler et peut-être en faire une page CPCWiki.
- Si vous écrivez des émulateurs : c’est un sujet connexe mais distinct, le mappage de touches basé sur les symboles. J’ai écrit à ce sujet dans Introducing in-page emulator on wiki pages.
Merci de m’avoir lu, et bon jeu (toute configuration) !

