Catan
Adaptation web multijoueur du jeu de société Catan, jouable à plusieurs dans un navigateur en temps réel.
En bref
- Partie multijoueur synchronisée en temps réel par WebSocket
- Règles du jeu et validation des coups entièrement côté serveur
- Démarrage complet en une commande docker compose
Le projet
Une version numérique de Catan, jouable en multijoueur dans le navigateur : plateau généré aléatoirement, placement des colonies et des routes, production de ressources, échanges entre joueurs, voleur et décompte des points de victoire.
Architecture
Stack : Vue 3 · FastAPI · PostgreSQL · WebSocket
L'état de la partie vit sur le serveur, jamais dans le client. Chaque action envoyée par un joueur est validée côté serveur — est-ce son tour, a-t-il les ressources, l'emplacement est-il légal — avant d'être appliquée puis rediffusée à tous les participants.
C'est la seule architecture défendable pour un jeu multijoueur : un client qui calcule lui-même ce qu'il a le droit de faire est un client qu'on peut modifier.
Ce que le jeu apprend
Catan est un excellent exercice de modélisation. Le plateau est un pavage hexagonal où les colonies se placent sur les sommets et les routes sur les arêtes — trois systèmes de coordonnées cohabitent donc, et la moitié du travail consiste à naviguer proprement entre eux : quelles tuiles touchent ce sommet, quelles arêtes partent d'ici, quels sommets sont trop proches pour accueillir une nouvelle colonie.
Une fois cette géométrie posée correctement, les règles du jeu deviennent presque triviales à implémenter. Posée de travers, chaque règle devient un cas particulier.
Projet suivant
Thanos