Local-Games — Jeux Multijoueur en Réseau Local
Suite de jeux de société classiques (Yahtzee, Morpion) conçue pour être déployée sur un réseau local d'entreprise ou domestique : parties synchronisées en temps réel via WebSockets, zéro dépendance cloud et latence réseau inférieure à 5 ms.
🎯 1. Contexte & Problématique
Mettre en pratique la synchronisation d'événements temps réel bidirectionnels entre plusieurs navigateurs clients sans passer par un serveur cloud externe, dans un environnement réseau local isolé ou hors-ligne.
🧭 2. Objectifs techniques
- Développer un serveur de jeu léger gérant des salons de parties simultanés
- Implémenter la synchronisation des lancers de dés et tours de jeu via WebSockets
- Créer une interface web adaptative responsive sans framework lourd
- Conteneuriser l'application sous Docker avec reverse proxy Nginx
🛠️ 3. Architecture & Réalisations
Backend événementiel Node.js gérant la machine à états de chaque partie, persistance en mémoire vive pour des temps de réponse instantanés et diffusion des événements en temps réel vers tous les clients connectés.
💼 4. Rôle & Contributions
- Modélisation de l'algorithme des règles officielles du Yahtzee (combinaisons, totaux, bonus)
- Gestion des messages WebSockets (connexion, déconnexion, passage de tour, synchronisation)
- Développement de l'interface graphique interactive avec animations de dés
- Packaging sous Docker Compose pour un lancement en 1 clic sur n'importe quel poste du sous-réseau
⚡ 5. Stack technologique
⚖️ 6. Décisions techniques
Architecture en mémoire vive : L'absence de base de données relationnelle élimine les temps de latence d'écriture disque pour privilégier une réactivité maximale propice aux interactions de jeu.
📊 7. Résultats
Parties stables et synchronisées, testées avec succès sur maquette réseau local avec plusieurs participants simultanés depuis des ordinateurs et smartphones.
💡 8. Apprentissages clés
Maîtrise de la gestion d'états distribués, de la résilience aux pertes de paquets sur liaison Wi-Fi/Ethernet et du protocole WebSocket.