Jak często duże MMORPG aktualizują fizykę? [Zamknięte]


12

O ile rozumiem, większość dużych gier korzysta ze stałego timestepu, aby uzyskać stabilną symulację.

Jeśli chodzi o serwer gry , jakie „szybkość klatek” narzucają? Lub powiedział to w inny sposób, z jakiego ustalonego czasu używają?

Wiem, że wielu powiedziałoby: „Tak szybko, jak to możliwe”. Chciałbym wiedzieć, jak szybko to jest, jeśli masz bezpośrednie doświadczenie w tworzeniu MMORPG.


Nie powinieneś zbytnio zwracać uwagi na to, co robią inni. To, co działa dla kogoś innego, niekoniecznie musi również działać dla Ciebie.
Philipp

6
EVE Online aktualizuje symulację raz na sekundę, ale jej system jest niezwykły. Aby uzyskać więcej informacji, zobacz pierwszą część tego artykułu: themittani.com/features/understanding-eve-online-server-tick
Ross Ridge

1
Czy to pytanie „pytające o ciekawostki na temat gier innych ludzi, które już istnieją”, a nie pytanie o opracowanie gry?
Trevor Powell,

2
Nie nazwałbym tego ciekawostkami - to dość ważne. Fakt, że niektóre gry mogą używać 1-sekundowych tyknięć, których nie znałem lub które w ogóle nie wykorzystują fizyki, jest dla mnie bardzo ważny (i powinien to być każdy programista). Jednocześnie moja odpowiedź dla Filipa wynikała z jej niewypowiedzianej implikacji, że pytam o to, ponieważ chciałem zdecydować o moich FPS. To nie miałoby sensu, ponieważ mój silnik ma wiele ograniczeń i już znam limit FPS, którego mogę użyć (zarówno dolny, jak i górny limit).
Fabio

1
Pamiętam, jak czytałem artykuł o Blizzardzie zmieniającym szybkość przetwarzania serwera WoW dla wydarzeń bojowych z raz na 400 MS na „za każdym razem, gdy się pojawią”. Nie jest to jednak związane z fizyką, ponieważ WoW nie ma tak naprawdę dużego wpływu na fizykę ze względu na swój wiek. Nie mogę też znaleźć źródła tego.
Nzall,

Odpowiedzi:


7

Second Life implementuje fizykę po stronie serwera za pomocą Havoka i blokuje aktualizacje do 45 na sekundę.

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

Wcześniejsze wersje około 2005-2006 pozwalały unosić się tak wysoko, jak pozwalałby serwer. Nieskomplikowany region z kilkoma skryptowanymi obiektami może działać z prędkością 800 aktualizacji na sekundę ... Aby uzyskać lepszą wydajność i spójność, później zablokowali go na 45.

(W Second Life liczba klatek na sekundę zależy od procesora i mocy graficznej każdego klienta. Światowa dokładność zależy od wydajności sieci.)


Rzeczywiście wydaje się to rozsądne. Znalazłem nawet 30 FPS, aby wykonać przyzwoitą robotę, jeśli integrator jest dobry, a wykrywanie kolizji wystarczająco inteligentne. Czy znasz inne MMO z odpowiednią fizyką i ich przebieg czasowy?
Fabio

2
Zaakceptowany jako jedyny, który stanowi prawdziwy przykład, ale wszystkie były dobrym jedzeniem do namysłu. Dzięki chłopaki.
Fabio

24

Pracowałem na kilku serwerach gier, w tym na pakiecie dla MMO.

Ogólnie rzecz biorąc, w ogóle nie mają fizyki. W nielicznych sytuacjach, w których fizyka jest konieczna (przede wszystkim skakanie), pozwalamy klientom obliczyć własną fizykę i po prostu odmawiamy wszystkiego, co jest zbyt dziwaczne (gracze poruszają się zbyt szybko przez zbyt długi czas, idąc znacznie wyżej, niż powinni byli skakać, itp).

Serwery również zazwyczaj nie mają „znaczników czasu”. Zwykle wcale nie myślą w „klatkach na sekundę”. Zamiast tego wiemy, kiedy po raz ostatni usłyszeliśmy od kogoś i co on wtedy robił, a potem, gdy usłyszymy od niego chwilę później, słyszymy o tym, co robią teraz, więc aktualizujemy nasz stan wewnętrzny, aby dopasować . Nie ma potrzeby rygorystycznej symulacji wszystkiego po stronie serwera; możemy po prostu nagrać to, co mówią nam klienci, i przeprowadzić pewne kontrole, aby upewnić się, że to, co mówią klienci, wydaje się nam prawdopodobne.


4
Działa to tylko wtedy, gdy środowisko nie wykonuje żadnej symulacji bez zalogowanych graczy, prawda? Właściwie to zakładałem, że tak , ale prawdopodobnie nie jest to ważne dla większości MMO, ponieważ tak naprawdę nie jest „żywe”. Dzięki, to była nieoczekiwana odpowiedź.
Fabio

2
@Fabio Większość MMO nic nie robi, gdy nie ma obserwatora - nawet Ultima Online, która kiedyś miała prawdziwą, żywą gospodarkę (i ekologię), wypuściła ją przed wydaniem (choć nie z przyczyn technicznych). Są gry, w których rzeczy dzieją się, nawet gdy nie grasz (na przykład Przystań i Palenisko), ale sztuczka polega na tym, że nic się nie dzieje, dopóki nie zostanie zaobserwowane - każdy aktywny przedmiot zapamiętuje ostatnią obserwację i oblicza, co się stało tymczasem chwila, kiedy to zobaczysz ponownie. Zamiast wartości aktualizującej każdy tik, robisz perTick * ticksSinceLastUpdated- prosty, wydajny.
Luaan,

1
Nie zrozum mnie źle; Serwery MMO często wykonują cykliczne zadania, które uruchamiają. Sprawdź potwory, które muszą się odrodzić, rozważ odrodzenie węzłów zasobów, wykonaj kopię zapasową stanu gry. Może nawet coś bardziej fantazyjnego, jeśli twoja gra ma pewne czynności proceduralne. Ale to nie jest tak, jak w fizyce, gdzie biegasz „x” razy na sekundę, nawet gdy nikogo nie ma w pobliżu. Możesz sprawdzać pojawianie się potworów kilka razy na minutę, szczyty (lub bardziej prawdopodobne, że ma zewnętrzny program, który to robi, i po prostu szturcha serwer, aby poinformować go, że nadszedł czas, aby sam serwer mógł skupić się na obsłudze żądań klientów) .
Trevor Powell,

11

Oprócz innych dobrych odpowiedzi, które chciałbym podać, chcę dodać fakt, że niektóre fizyki zwykle nie są napędzane przez serwer lub nawet wiedzą o nim przez serwer i jest powszechną sztuczką, aby świat wydawał się bogatszy bez dodawania narzutów do sieci lub serwera przetwarzanie boczne.

Na przykład mogą znajdować się szczątki, które możesz kopać po ziemi lub wiać na wietrze, który wchodzi w interakcje z innymi przedmiotami, a może możesz popychać martwe ciała.

Jeśli fizyka jest czysto dekoracyjna i nie wpływa w żaden sposób na ruch lub rozgrywkę, możesz mieć to całkowicie po stronie klienta.

Różni gracze zobaczą różne rzeczy (na przykład, jeśli strzelasz do puszki na ziemi i odlatuje, inni gracze mogą nie widzieć, że może odlecieć), ale w wielu przypadkach nie ma znaczenia, że ​​to doświadczenie nie jest To samo dla wszystkich graczy, a symulacje fizyki po stronie klienta mogą naprawdę poprawić wygląd gry online.


W niektórych grach, jeśli to potrafi odlecieć wystarczająco szybko, może kogoś zabić. Widziałem filmy z grami Halo, w których ktoś zostaje zabity przez stożek drogowy napędzany przez eksplozję.
Random832

Jeśli chcesz mieć wpływ na rozgrywkę, możesz dodać ją do zsynchronizowanego świata fizyki, ale możesz też mieć niezsynchronizowany świat fizyki w tej samej przestrzeni! Zasadniczo na niezsynchronizowany świat fizyki może wpływać gracz i zsynchronizowany świat fizyki, ale nie może on wpływać na nich z powrotem (:
Alan Wolfe

3

EVE Online, MMO z jednym odłamkiem i nawet kilkoma tysiącami bitew w wielkich bitwach kosmicznych, wykorzystuje swoją fizykę na tikrze 1 Hz, zwanym tikiem „przeznaczenia”.

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

Tak zwana „Bloodbath of B-R5RB” to największa jak dotąd walka wśród graczy, jaka kiedykolwiek miała miejsce w grze online („w trwającym 21 godzin konflikcie uczestniczyło łącznie ponad 7548 postaci graczy i maksymalnie 2670 graczy w systemie B-R5RB jednorazowo ”, zgodnie z https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.