Question

Imaginons jeu très simple ... Nous avons un labirinth et deux joueurs essayant de trouver la sortie en temps réel grâce à Internet .

Sur chaque client du jeu de déplacement doit envoyer les coordonnées du joueur au serveur et accepter les coordonnées actuelles d'un autre client. Comment est-il possible de faire cet échange si vite (comme tous les jeux modernes font).

Ok, nous pouvons utiliser memcache ou une technologie similaire pour réduire l'exploitation minière de données côté serveur. Nous pouvons également utiliser le plus rapide etc. serveur Web, mais nous aurons encore des problèmes avec les horaires.

Alors, les questions sont ...

  1. Ce que les clients de jeu de protocole utilisent habituellement pour l'échange d'informations avec le serveur?
  2. Quelles sont les technologies de serveur viennent pour résoudre ce problème?
  3. Quels algorithmes sont appliqués pour la lutte contre les retards pendant le jeu etc.
Était-ce utile?

La solution

En général, avec le réseau et la prédiction d'interpolation. Gamedev est une bonne ressource: http://www.gamedev.net/reference/list .asp? categoryid = 30

Consultez également celui-ci: http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

Autres conseils

  • utiliser UDP, TCP pas
  • utilisez un protocole personnalisé, généralement un seul octet définissant une « commande », et que quelques octets suivants que possible contenant les arguments de commande
  • prédiction est utilisé pour rendre les mouvements des autres joueurs semblent lisses sans avoir à obtenir une mise à jour pour chaque trame

indice:. Prédiction est utilisée de toute façon pour lisser la mise à jour rapide de l'écran (~ de 60fps) car la vitesse de jeu réel est généralement plus lent (~ 25fps)

Les autres réponses ne sont pas précisées quelques idées fausses importantes dans le message original, qui est que ces jeux ne sont pas des sites Web et fonctionnent très différemment. En particulier:

  • Il n'y a pas ou peu de « data-mining » que les besoins à accélérer. Le plus rapide en ligne jeux (par exemple. premiers tireurs personne) généralement ne sont pas quelque chose à sauver disque lors d'un match. Plus lent en ligne jeux, tels que les MMOs, peuvent utiliser base de données, principalement pour le stockage informations joueur, mais pour la plupart partie qu'ils détiennent leurs joueurs et des données mondiales en mémoire, pas sur le disque.
  • Ils n'utilisent pas webservers. HTTP est relativement lente protocole, et même seul TCP peut être trop lent pour certains jeux. Au contraire, ils ont des serveurs sur mesure qui sont écrits juste pour ce jeu particulier. Souvent, ces serveurs sont optimisés pour une faible latence plutôt que le débit, car ils ne servent généralement pas de grands documents comme un serveur web mais de nombreux seraient, messages minuscules (par exemple. Mesurée en octets plutôt que kilo-octets).

Avec ces deux questions abordées, votre problème de vitesse va en grande partie loin. Vous pouvez envoyer un message à un serveur et obtenir une réponse en moins de 100ms et peut le faire plusieurs fois par seconde.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top