Bonjour,

Je développe actuellement un petit jeu (un bomberman en faite) en 2D avec Monogame (Framework de création de jeux en .NET).
J'aimerais que chaque personnage puisse être contrôlé simultanément par plusieurs personnes. Le joueur peut uniquement déplacer le joueur dans les 4 directions et poser une bombe (donc 5 actions au total).
J'ai déjà fait un programme de type chat IRC, dont je pense pouvoir me débrouiller dans la programme réseau.
Ce dont j'ai besoin c'est d'une idée sur l'architecture et la conception de mon application, sachant que je ne sais pas du tout à quoi ressemble un jeu multijoueur en temps réel.

Voici ce dont j'ai imaginé :
- Il y a un serveur, qui gère le jeu, c'est lui qui a toutes les informations (emplacement des murs, des joueurs, des bombes...) et qui gère la logique.
- Il y a un client pour chaque personnage. Le client peut envoyer 5 paquets au serveur (se déplacer en haut/droite/bas/gauche et poser une bombe).

Mais comment un client se met à jour par rapport au serveur ?
- Est-ce que le serveur renvoie les informations du jeu entier à intervalle régulier à tous les joueurs ? Dans ce cas le client se contente uniquement d'afficher ce qu'il reçoit, sans gérer lui-même son jeu. De plus ça peut potentiellement faire beaucoup d'informations à envoyer rapidement ? (Risque de latence entre les joueurs)
- Est-ce que chaque client gère la logique du jeu et reçoit les actions des autres joueurs depuis le serveur ? C'est à dire que le serveur redistribue l'action d'un joueur à tous les autres joueurs. C'est plus léger que d'envoyer toutes les informations du jeu, mais le risque est que tous les joueurs n'aient pas le même état du jeu. Par exemple si un joueur se déconnecte une demi seconde : il rate les actions des autres joueurs et donc les suivantes sont décalées.

Avez-vous des idées svp ?
Merci