Wie oft aktualisieren große MMORPGs die Physik? [geschlossen]


12

Soweit ich weiß, verwenden die meisten großen Spiele feste Zeitschritte, um eine stabile Simulation zu erhalten.

Welche "Framerate" legen sie für den Spieleserver fest ? Oder anders gesagt: Welchen festen Zeitschritt tendieren sie dazu?

Ich weiß, dass viele sagen würden: "So schnell sie durchkommen können". Ich würde gerne wissen, wie schnell das ist, wenn Sie direkte Erfahrung mit etabliertem MMORPG haben.


Sie sollten nicht zu viel auf das achten, was andere tun. Was für jemand anderen funktioniert, muss nicht unbedingt auch für Sie arbeiten.
Philipp

6
EVE Online aktualisiert die Simulation einmal pro Sekunde, aber das System ist ungewöhnlich. Weitere Informationen finden Sie im ersten Teil dieses Artikels: themittani.com/features/understanding-eve-online-server-tick
Ross Ridge

1
Es handelt sich also um eine Frage, bei der Sie um Wissenswertes über bereits vorhandene Spiele anderer Personen bitten, und nicht um die Frage, wie ein Spiel entwickelt werden soll?
Trevor Powell

2
Ich würde das keine Kleinigkeit nennen - es ist ziemlich wichtig. Die Tatsache, dass einige Spiele 1-Sekunden-Ticks verwenden können, von denen ich nichts wusste oder die überhaupt keine Physik verwenden, ist für mich sehr wichtig (und sollte es für jeden Entwickler sein). Gleichzeitig antwortete ich Philipp aufgrund der unausgesprochenen Implikation, dass ich dies fragte, weil ich mich für meine FPS entscheiden wollte. Das würde keinen Sinn ergeben, da mein Motor viele Einschränkungen aufweist und ich bereits weiß, welche FPS-Grenzwerte ich verwenden kann (sowohl untere als auch obere Schranken).
Fabio

1
Ich erinnere mich, einen Artikel über Blizzard gelesen zu haben, in dem die Verarbeitungsgeschwindigkeit des WoW-Servers für Kampfereignisse von einmal alle 400 MS auf "wann immer sie eintreten" geändert wurde. Dies ist jedoch nicht mit der Physik verwandt, da WoW aufgrund seines Alters nicht wirklich viel mit der Physik zu tun hat. Ich kann auch keine Quelle dafür finden.
Nzall

Antworten:


7

Second Life implementiert mithilfe von Havok die Physik auf der Serverseite und sperrt Aktualisierungen auf 45 pro Sekunde.

https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120

Frühere Versionen um 2005-2006 ließen die Physik-Updates so hoch schweben, wie es der Server erlauben würde. Ein unkomplizierter Bereich mit wenigen Skriptobjekten kann mit 800 Aktualisierungen pro Sekunde ausgeführt werden. Aus Gründen der Effizienz und Konsistenz wurde er später auf 45 gesperrt.

(In Second Life hängt die Bildrate von der CPU und der Grafikleistung jedes Clients ab. Die Genauigkeit der Welt hängt von der Netzwerkleistung ab.)


In der Tat scheint dies vernünftig. Ich habe sogar schon 30 FPS gefunden, um einen anständigen Job zu machen, wenn der Integrator gut und die Kollisionserkennung intelligent genug ist. Kennen Sie andere MMOs mit der richtigen Physik und ihren Zeitschritten?
Fabio

2
Akzeptiert als einziger, der ein reales Beispiel liefert, aber alle waren gute Denkanstöße. Danke Leute.
Fabio

24

Ich habe an einigen Spieleservern gearbeitet, darunter eine Suite für ein MMO.

Im Allgemeinen haben sie überhaupt keine Physik. In den wenigen Situationen, in denen Physik notwendig ist (hauptsächlich Springen), lassen wir die Kunden ihre eigene Physik berechnen und bestreiten einfach alles, was zu ausgefallen ist (Spieler bewegen sich zu schnell für zu lange, gehen viel höher, als sie hätten springen können). etc).

Server haben normalerweise auch keine "Zeitschritte". Normalerweise denken sie überhaupt nicht in "Bildern pro Sekunde". Stattdessen wissen wir, wann wir das letzte Mal von jemandem gehört haben und was er damals tat, und wenn wir etwas später wieder von ihm hören, erfahren wir, was er jetzt tut, und aktualisieren unseren internen Status entsprechend . Es ist nicht erforderlich, alles serverseitig rigoros zu simulieren. Wir können einfach die Dinge aufzeichnen, die die Kunden uns sagen, und einige Überprüfungen durchführen, um sicherzustellen, dass das, was die Kunden sagen, für uns plausibel erscheint.


4
Dies würde nur funktionieren, wenn die Umgebung keine Simulation durchführt, ohne dass Spieler angemeldet sind, oder? Eigentlich nahm ich an, dass dies im Allgemeinen der Fall ist , aber wahrscheinlich ist das für die meisten MMOs nicht wichtig, da es nicht wirklich "lebendig" ist. Danke, das war eine unerwartete Antwort.
Fabio

2
@Fabio Die meisten MMOs tun nichts, wenn es keinen Beobachter gibt - selbst Ultima Online, das eine echte, lebendige Wirtschaft (und Ökologie) hatte, ließ es vor der Veröffentlichung los (allerdings nicht aus technischen Gründen). Es gibt Spiele, in denen Dinge passieren, auch wenn Sie nicht spielen (zum Beispiel Haven und Hearth), aber der Trick ist, dass nichts passiert, bis es beobachtet wird - jedes aktive Objekt merkt sich, wann es das letzte Mal beobachtet wurde, und berechnet, was in passiert ist In der Zwischenzeit in dem Moment, in dem Sie es wieder sehen. Anstatt also jeden Tick zu aktualisieren, tun Sie dies perTick * ticksSinceLastUpdated- einfach und effizient.
Luaan

1
Versteh mich nicht falsch; MMO-Server haben häufig regelmäßige Aufgaben, die sie ausführen. Suchen Sie nach Monstern, die erneut erscheinen müssen, ziehen Sie in Betracht, Ressourcenknoten zu spawnen und den Spielstatus zu sichern. Vielleicht sogar etwas ausgefalleneres, wenn Ihr Spiel prozedurale Aktivitäten aufweist. Aber es ist nicht wie in der Physik, wo Sie x-mal pro Sekunde laufen, auch wenn niemand in der Nähe ist. Sie können einige Male in der Minute nach laichenden Monstern suchen, die oben stehen (oder mit größerer Wahrscheinlichkeit über ein externes Programm verfügen, das dies erledigt, und den Server lediglich anstupsen, um ihn darauf hinzuweisen, dass es an der Zeit ist, damit sich der Server selbst auf die Bearbeitung von Clientanforderungen konzentrieren kann). .
Trevor Powell,

11

Neben den anderen guten Antworten möchte ich die Tatsache erwähnen, dass einige Aspekte der Physik normalerweise nicht vom Server gesteuert werden oder sogar vom Server bekannt sind. Dies ist ein häufiger Trick, um die Welt reicher erscheinen zu lassen, ohne den Netzwerk- oder Server-Aufwand zu erhöhen Nebenbearbeitung.

Zum Beispiel kann es Trümmer geben, die Sie auf dem Boden herumwerfen oder im Wind herumblasen, der mit anderen Objekten interagiert, oder Sie können tote Körper herumschieben.

Wenn die Physik rein dekorativ ist und weder die Bewegung noch das Gameplay in irgendeiner Weise beeinflusst, kann dies auf der Clientseite vollständig geschehen.

Verschiedene Spieler werden die Dinge unterschiedlich sehen (wenn Sie eine Dose auf den Boden schießen und sie wegfliegt, sehen andere Spieler möglicherweise nicht, dass sie wegfliegen kann), aber es gibt viele Fälle, in denen es nicht darauf ankommt, dass die Erfahrung nicht stimmt. Es ist für alle Spieler gleich, und durch clientseitige Physiksimulationen kann das Erscheinungsbild des Onlinespiels erheblich verbessert werden.


In einigen Spielen kann es jemanden töten, wenn das schnell genug wegfliegt. Ich habe Videos von Halo-Spielen gesehen, in denen jemand von einem Verkehrskegel getötet wird, der durch eine Explosion auf ihn geschleudert wurde.
Random832

Wenn Sie möchten, dass die Dose das Gameplay beeinflusst, können Sie sie der synchronisierten Physik-Welt hinzufügen, aber Sie können auch eine nicht synchronisierte Physik-Welt im selben Raum haben! Grundsätzlich kann die nicht synchronisierte Physikwelt durch den Spieler und die synchronisierte Physikwelt beeinflusst werden, aber sie können nicht zurück beeinflusst werden (:
Alan Wolfe

3

EVE Online, ein MMO mit einer einzigen Scherbe und bis zu mehreren tausend Spielern in großen Weltraumschlachten, steuert seine Physik mit einem 1-Hz-Tick, dem so genannten "Schicksals-Tick".

http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/

Das sogenannte "Bloodbath of B-R5RB" ist der bislang größte aufstrebende Spielerkampf in einem Online-Spiel ("der 21-stündige Konflikt betraf insgesamt mehr als 7.548 Spielercharaktere und maximal 2.670 Spieler im B-R5RB-System auf einmal ", laut https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.