2010-08-22 2 views
2

Comment les serveurs de jeux de tir peuvent-ils gérer le timing, par exemple lorsqu'un joueur en tire un autre, comment s'assure-t-il que les deux joueurs reçoivent le message exactement au même moment.programmation de la socket - comment les serveurs de jeu de tir multijoueurs gèrent-ils le timing?

ou dans la plupart d'entre eux vous voyez tous les détails qu'un joueur fait à chaque seconde, et les deux joueurs voient exactement les mêmes mouvements sur leur client? Comment les serveurs de jeu parviennent-ils à envoyer ces mouvements à tous les clients (joueurs) exactement au même moment?

Répondre

3

Ils ne les voient pas au même moment.

Le serveur déterminera si la prise de vue a abouti et enverra des mises à jour aux clients. Les clients vont alors tirer les balles, le sang, etc.

Il y a une boucle de synchronisation là, mais pas tous les événements doivent être synchronisés. C'est pourquoi vous voyez le joueur sauter sous haute latence. De leur point de vue, ils fonctionnent correctement, mais en raison de la latence, votre client n'est pas mis à jour assez rapidement.

1

La plupart des paquets sont envoyés à un délai suffisamment important pour que tout soit agité. Tout ce que le client montre aura une compensation de décalage (prédisant où les projectiles, les joueurs, etc. seront entre les trames) pour donner l'impression que les paquets arrivent en même temps.