Documentation Coté Serveur

Le serveur de jeu est construit selon une architecture orientée services, utilisant Node.js avec Type Script. Il s'appuie principalement sur Socket.IO pour les communications en temps réel et MongoDB pour la persistance des données. L'architecture est conçue pour gérer plusieurs parties simultanément, avec une logique complexe pour les mécanismes de jeu, le combat, et les interactions entre joueurs.

Le point d'entrée principal est le fichier server.ts qui initialise le serveur HTTP et configure Socket.IO. L'application est structurée selon le principe d'injection de dépendances , permettant de maintenir un couplage faible entre les différentes parties du système.

Organisation fonctionnelles des services

Le côté serveur peut être divisé en plusieurs catégories fonctionnelles afin d’en faciliter la compréhension. Les sections suivantes présentent un résumé de chaque catégorie. Pour consulter la documentation détaillée, cliquez sur le titre correspondant pour y accéder directement.

1. Infrastructure et Configuration

2. Gestion des WebSockets

3. Gestion des Parties

4. Système de Combat

5. Gestion des Items

6. Gestion des Joueurs

7. Contrôle de Jeu et Vérification

8. Système du Chatbox

9. Classes du Jeu (Coté Serveur)

Flux d'information

L'architecture du serveur suit un modèle événementiel où:

  1. Les clients se connectent via WebSockets (Socket.IO)
  2. Les événements socket sont routés vers les services appropriés
  3. Ces services mettent à jour l'état du jeu (instances de OnGoingGame)
  4. Les modifications sont transmises à tous les clients concernés

Le serveur maintient l'état de toutes les parties en cours en mémoire, avec des références entre les différentes entités (joueurs, objets, grille de jeu). La persistance des données est assurée par MongoDB pour les configurations de jeux (plateaux personnalisés).