Bulls & Cows — PvP en ligne
Jeu de déduction 1v1 en temps réel avec scoring autoritaire côté serveur

À propos
Contexte, problème & solution
Bulls & Cows Online est une version temps réel à deux joueurs du classique jeu de déduction, repensée en PWA mobile-first où chaque résultat est décidé par le serveur — jamais par le client.
Contexte et problème. Transformer un jeu de déduction au tour par tour en expérience 1v1 en direct soulève les deux grands défis du multijoueur : la confiance et l'état. Si le client calcule son propre score, les joueurs peuvent tricher ; si l'état de la partie ne vit que dans une base de données, le temps réel devient poussif. La conception devait garder le scoring autoritaire côté serveur tout en restant assez rapide pour paraître instantané sur un téléphone.
Solution. Le projet est un monorepo pnpm en trois parties. L'app server fait tourner Fastify 5 et Socket.IO 4 sur un unique listener HTTP partagé, pour que le trafic REST et WebSocket coexiste proprement. L'app web est une PWA React + Vite avec Zustand pour l'état et le client Socket.IO pour les mises à jour live. Un package shared contient ce sur quoi les deux côtés doivent s'accorder — schémas Zod, constantes d'événements et logique de jeu pure — pour que les règles de scoring ne divergent jamais entre client et serveur. Pendant une partie, Redis est le hot store autoritaire (état rapide et éphémère) ; à la fin, la partie est écrite dans PostgreSQL via Drizzle ORM pour un historique permanent.
Ingénierie et exigence qualité. Placer la logique de jeu dans un module partagé et pur la rend directement testable unitairement et garantit que client et serveur scorent à l'identique. Valider chaque événement entrant avec Zod signifie que les messages malformés ou malveillants sont rejetés à la frontière. Le dépôt fournit un CLAUDE.md documentant les invariants d'architecture et un plan MVP par couches dans docs/plans/ — une base de code conçue pour être comprise et étendue, pas seulement pour tourner.
Architecture
Comment le système est construit
Stack technique
Technologies utilisées
Frontend
Backend
Données
Package partagé
Envie d'en savoir plus sur Bulls & Cows — PvP en ligne ?
Le code source complet est disponible sur GitHub, avec l'historique et la configuration de déploiement.