Dans la continuité du codage du moteur du jeu, voici la partie multijoueurs. Le moteur permet donc de jouer soit sur réseau local, soit sur internet.

Quelle est l’architecture du moteur du jeu ?

Le moteur utilise une architecture client/serveur. Le client sert à l’affichage et à la saisie des commandes du joueur et le serveur est utilisé pour centraliser le calcul des positions des différents joueurs.

Quels sont les messages échangés ?

Les messages de service comme les connexions, le démarrage de la course… sont envoyés par TCP pour assurer que les messages arrivent à bon port. Chaque client envoie régulièrement les commandes effectuées par le joueur sous la forme d’un message UDP plus rapide mais moins fiable. Le serveur envoie régulièrement aussi les positions de tous les bateaux à tous les clients, ceci sous la forme d’un message UDP également.

Gestion des temps de transferts entre le serveur les les clients

Pour que l’affichage ne soit pas trop saccadé, le client calcule les déplacements de tous les bateaux entre deux messages du serveur. A chaque message reçu du serveur, le client met à jour la position du bateau correspondant et continue la simulation locale.

Analyse du code

Le client et le serveur partage tout le code de la simulation, mais le serveur n’a pas d’affichage.

Le serveur