Pour le plaisir, j'essaie d'écrire un des jeux de société préférés de mon fils sous forme de logiciel. J'espère un jour construire une interface utilisateur WPF par-dessus, mais pour l'instant, je suis en train de construire la machine qui modélise le jeu et ses règles.
En faisant cela, je continue à voir des problèmes qui me semblent communs à de nombreux jeux de société, et peut-être que d'autres les ont déjà résolus mieux que moi.
(Notez que l'IA pour jouer le jeu, et les modèles autour de la haute performance ne sont pas intéressants pour moi).
Jusqu'à présent, mes modèles sont :
-
Plusieurs types immuables représentant des entités dans la boîte de jeu, par exemple des dés, des dames, des cartes, un plateau, des espaces sur le plateau, de l'argent, etc.
-
Un objet pour chaque joueur, qui contient les ressources du joueur (par exemple l'argent, le score), son nom, etc.
-
Un objet qui représente l'état du jeu : les joueurs, le tour de chacun, la disposition des pièces sur le plateau, etc.
-
Une machine à états qui gère la séquence des tours. Par exemple, de nombreux jeux ont un petit pré-jeu au cours duquel chaque joueur lance un dé pour savoir qui passe en premier ; c'est l'état de départ. Lorsque le tour d'un joueur commence, il lance un dé, puis il se déplace, puis il doit danser sur place, puis les autres joueurs devinent de quelle race de poulet il s'agit, puis il reçoit des points.
Existe-t-il un art antérieur dont je peux tirer parti ?
EDIT : J'ai réalisé récemment que l'état du jeu peut être divisé en deux catégories :
-
État de l'artefact de jeu . "J'ai 10 dollars" ou "ma main gauche est sur le bleu".
-
État de la séquence de jeu . "J'ai obtenu deux fois des doubles ; le prochain me mettra en prison". Une machine à états peut être utile ici.
EDIT : Ce que je cherche vraiment ici c'est le meilleur de mettre en œuvre des jeux multijoueurs au tour par tour comme les échecs, le Scrabble ou le Monopoly. Je suis sûr que je pourrais créer un tel jeu en le parcourant du début à la fin, mais, comme pour les autres modèles de conception, il existe probablement des moyens de rendre les choses plus fluides qui ne sont pas évidents sans une étude approfondie. C'est ce que j'espère.