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.
mmo
fixed-timestep
Fabio
źródło
źródło
Odpowiedzi:
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.)
źródło
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.
źródło
perTick * ticksSinceLastUpdated
- prosty, wydajny.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.
źródło
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 ).
źródło