Le point de départ
C’est le jeu que j’ai écrit en dernier, avec ce que j’avais appris sur les autres : serveur autoritaire dès le premier jour, et une interface pensée d’abord pour un téléphone tenu d’une main, autour d’une table.
Les choix qui comptent
Un paquet partagé
Les constantes, les schémas Zod, le protocole et les règles pures (valider une réponse, détecter un doublon, compter les points) vivent dans un paquet commun. Le client s’en sert pour afficher, le serveur pour décider : les deux ne peuvent pas diverger.
Des réponses secrètes jusqu’à la relecture
Tant que la manche dure, le serveur n’envoie à personne les réponses des autres. On ne peut pas copier son voisin, même en ouvrant les outils du navigateur.
Un doublon, c’est subtil
Pour décider si deux joueurs ont donné la même réponse, on ignore les accents, la casse, le pluriel et l’article devant (« l’éléphant » vaut « éléphant »). Une réponse unique rapporte 10 points, une réponse partagée 5.
Les joueurs jugent
Pendant la relecture, tout le monde voit toutes les réponses et peut refuser les douteuses. Une réponse n’est invalidée que si plus de la moitié des autres joueurs la refusent : un seul rabat-joie ne suffit pas.
Ce qui a été difficile
Le chrono. Le premier qui finit crie « Bac ! » et les autres ont dix secondes : c’est le serveur qui tient l’horloge et qui clôt la manche, pas les clients. Il fallait gérer en même temps les joueurs qui se déconnectent en pleine manche et le moment où le dernier vote arrive.
Ce que je ferais autrement
La validation des mots reste humaine (le vote). Un dictionnaire embarqué aiderait à départager, mais poserait des questions de langue et de mots familiers ; je préfère laisser la table trancher, tant que c’est amusant.