y'a plein de solutions differentes
premiere solution "server oriented":
le client ne gere que l'affichage et donc
a intervalle regulier il interroge le serveur
pour savoir ce qu'il doit afficher.
A chaque demande le serveur envoie la totalite de l'etat
du monde au joueur (ou ce qui a change depuis la derniere fois).
Les inputs sont envoyees directement au serveur qui
fait les calculs physiques et de visibilite pour chaque joueur.
Le client est simple a programmer et le serveur n'est pas
trop complique, mais on lui fait faire beaucoup de calculs
et le transfert d'information peut etre assez important.
(ca peut etre delicat sur internet par exemple)
Deuxieme solution "client oriented":
le serveur sert uniquement de relai, c'est a dire que chaque
client lui envoie uniquement les inputs utilisateur, qu'il reexpedie a chaque client connecte.
Le client se charge lui meme de maintenir un etat du monde
coherent avec ce que les autres clients croient savoir.
Le serveur est ultra simple a programmer mais le client doit
etre concu de maniere stricte, pour que la vision du monde soit la plus coherente possible avec les autres clients.
(pas de random du cote du client, mise a jour a intervalles
fixes et constants).
une solution intermediaire mais pas forcement simple
a mettre en oeuvre, c'est que chaque client + le serveur
ont leur propre vision du monde, grace aux infos relayees par le serveur. Puis a intervalles reguliers, le serveur envoie des mises a jour completes (plus ou moins longtemps suivant le degre de divergence acceptable) sachant que pour la logique de jeu
(points de vie, score etc..) le serveur a toujours le dernier mot. Le client lui se contente d'afficher une vision estimee
du monde en corrigeant le tir quand il a des infos contradictoires du serveur.
tu peux aller lire l'article suivant:
http://www.gamasutra.com/features/ [...] oft_01.htm
A+
LEGREG