Pour autant que je sache, la plupart des grands jeux utilisent un pas de temps fixe pour avoir une simulation stable.
Concernant le serveur de jeu , quelle "cadence" imposent-ils? Ou dit autrement, quel pas de temps fixe ont-ils tendance à utiliser?
Je sais que beaucoup diraient: "Aussi vite qu'ils peuvent s'en tirer". J'aimerais savoir à quelle vitesse est-ce possible, si vous avez une expérience directe d'un MMORPG établi.
mmo
fixed-timestep
Fabio
la source
la source
Réponses:
Second Life implémente la physique côté serveur à l'aide de Havok et verrouille les mises à jour à 45 par seconde.
https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120
Les versions antérieures vers 2005-2006 permettaient aux mises à jour physiques de flotter aussi haut que le serveur le permettait. Une région simple avec peu d'objets scriptés pourrait s'exécuter à 800 mises à jour par seconde ... Pour une meilleure efficacité et cohérence, ils l'ont ensuite verrouillée à 45.
(Dans Second Life, la fréquence d'images dépend du processeur et de la puissance graphique de chaque client. La précision mondiale dépend des performances du réseau.)
la source
J'ai travaillé sur quelques serveurs de jeux, dont une suite pour un MMO.
En général, ils n'ont pas du tout de physique. Dans les quelques situations où la physique est nécessaire (sauter, principalement), nous laissons les clients calculer leur propre physique, et nous refusons tout ce qui est trop bizarre (les joueurs se déplaçant trop vite pendant trop longtemps, allant beaucoup plus haut qu'ils n'auraient dû être capables de sauter, etc).
Les serveurs n'ont généralement pas non plus de «pas de temps». Ils ne pensent pas du tout en "images par seconde". Au lieu de cela, nous savons quand nous avons entendu pour la dernière fois quelqu'un et ce qu'il faisait à l'époque, puis quand nous entendons à nouveau un peu plus tard, nous entendons parler de ce qu'il fait maintenant, et donc nous mettons à jour notre état interne pour qu'il corresponde . Il n'est pas nécessaire de tout simuler rigoureusement côté serveur; nous pouvons simplement enregistrer les choses que les clients nous disent et faire quelques vérifications pour nous assurer que ce que les clients disent s'est passé nous semble plausible.
la source
perTick * ticksSinceLastUpdated
- simple, efficace.Outre les autres bonnes réponses données, je veux ajouter le fait que la physique n'est généralement pas pilotée par le serveur ou même connue par le serveur et est une astuce courante pour rendre le monde plus riche sans ajouter de surcharge au réseau ou au serveur traitement latéral.
Par exemple, il peut y avoir des débris que vous pouvez balancer au sol ou souffler dans le vent qui interagissent avec d'autres objets, ou peut-être que vous pouvez pousser des cadavres.
Si la physique est purement décorative et n'affecte en rien le mouvement ou le gameplay, vous pouvez le faire complètement du côté client.
Différents joueurs verront les choses différemment (par exemple, si vous tirez une canette au sol et qu'elle s'envole, d'autres joueurs peuvent ne pas voir que cela peut s'envoler) mais il y a beaucoup de cas où cela n'a pas d'importance que l'expérience ne soit pas '' t la même chose pour tous les joueurs, et avoir des simulations physiques côté client peut vraiment améliorer l'apparence du jeu en ligne.
la source
EVE Online, un MMO avec un seul fragment et jusqu'à plusieurs milliers de plaers dans de grandes batailles spatiales, exécute sa physique sur une tique de 1 Hz, appelée la tique "destin".
http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/
Le soi-disant "Bloodbath of B-R5RB" est le plus grand combat de joueurs émergents jamais arrivé dans un jeu en ligne à ce jour ("le conflit de 21 heures a impliqué plus de 7 548 personnages-joueurs au total et un maximum de 2 670 joueurs dans le système B-R5RB"). à la fois ", selon https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).
la source