Czy w grze MMO można mieć pojazdy z fizyką, takie jak GTA? [Zamknięte]
9
Nie widziałem żadnych gier MMO z pojazdami z realistyczną fizyką i które mogłyby osiągnąć dużą prędkość, dlaczego? Czy to z powodu ograniczeń przepustowości sieci?
Second Life ma pojazdy, ale fizyka jest słaba, a maksymalna prędkość jest żałosna.
Wiem, że to stare pytanie, ale chciałbym wspomnieć o Auto Assault. To była gra MMO z fizyką pojazdu.
William Mariager,
Odpowiedzi:
19
Tak i nie (ale przeważnie nie).
Każda gra MMO ma kilka ograniczeń, które wpływają na jej fizykę. Najważniejszym z nich jest opóźnienie . Opóźnienie to czas, jaki zajmuje klientowi wysłanie żądania do serwera i otrzymanie odpowiedzi z powrotem. Nawet w najlepszych okolicznościach czas ten wynosi około 50-100 milisekund. W prawdziwym świecie może wynosić nawet 500 ms. Oznacza to, że ilekroć gracz coś zrobi - na przykład przekręca koło samochodu - widzi, że gra zareaguje na to dopiero 100-500 ms później.
100 ms to właściwie całkiem sporo. Każda gra, która ma tyle opóźnień, nie będzie reagować, a 500 ms wydaje się wręcz niemożliwa do odtworzenia. Dlatego klienci gier używają wielu sztuczek, aby zamaskować to opóźnienie. Na przykład samochód gracza może zacząć się obracać w momencie, gdy kręci kołem, nie czekając na serwer. Jednak te sztuczki tylko maskują opóźnienie i nigdy nie mogą go faktycznie skrócić.
Załóżmy na przykład, że mamy dwóch graczy w samochodach kierujących jednocześnie ku sobie. Każdy klient natychmiast zacznie skręcać własnym samochodem; ale samochód drugiego gracza nie skręca - ponieważ informacja o jego zmieniającym się kursie nie dotarła jeszcze do klienta z powodu opóźnienia. Obaj gracze z radością sterują swoimi samochodami, a potem bam! - serwer zauważa, że faktycznie się ze sobą zderzyli.
Takim sytuacjom nie można zapobiec. Bez względu na to, jakich sprytnych schematów przewidywania używamy, tam gdzie są inni gracze, zawsze istnieje szansa, że coś pójdzie nie tak. W każdej grze MMO około pół sekundy, którą właśnie widziałeś , tak naprawdę jeszcze się nie wydarzyło i może się zmienić w dowolnym momencie. Teraz w wolniejszych grach, takich jak tradycyjne gry MMORPG, pół sekundy nie jest naprawdę tak długie. W tym czasie postacie poruszają się tylko o metr lub dwa. Jeśli jednak mówimy o szybkim wyścigu samochodowym, pół sekundy to naprawdę długi czas! Możesz rozbić się trzy razy w ciągu pół sekundy (-8
W rzeczywistości szybka gra może działać nawet przy tych ograniczeniach. Miałoby to nieprzyjemne chwile, ale dopóki wszyscy gracze mają dobre znajomości, można grać. Tak działają gry wyścigowe dla wielu graczy. Istnieje jednak inne ograniczenie MMO: liczba aktualizacji N-kwadrat.
Wyobraź sobie, że 10 graczy gra jednocześnie. Aby się zobaczyć, serwer musi przesłać każdemu graczowi informacje o każdym innym graczu. Oznacza to, w naszym przykładzie, 10 x 10 = 100 informacji do przygotowania i wysłania. To jest liczba graczy do kwadratu, stąd „N do kwadratu”. Liczba ta rośnie dość szybko, a nawet tradycyjne MMORPG zaczynają walczyć, gdy na tym samym obszarze jest wielu graczy. W naszej wyobrażonej szybkiej grze z samochodami te informacje muszą być przesyłane znacznie szybciej niż w wolniejszej grze. I prawdopodobnie sami są większe - wysłałeś nie tylko pozycje, ale także prędkości, przyspieszenie, prędkości kątowe itp. Oznacza to, że w każdej szybkiej grze wieloosobowej może być ograniczona liczba graczy.
Oba powyższe problemy w zasadzie nie mogą być rozwiązane przez oprogramowanie, tylko w pewnym stopniu zamaskowane. Można je nieco zmniejszyć, ograniczając liczbę graczy - więc na przykład gra, w której szybkie samochody są używane tylko w przypadkach z ograniczoną liczbą graczy, jest prawdopodobnie wykonalna. Wierzę, że tak właśnie zrobił APB. Ale w pełni otwarta gra MMO z szybkimi samochodami po prostu się nie wydarzy. Dopóki nie będziemy mieli interfejsów sieci kwantowo-entaglementowych czy coś w tym rodzaju.
Czy widziałeś DCUO, pełny świat fizyki, szybkie podróże, rzucanie autobusami i samochodami, wszystko to dobre rzeczy. Maskowanie jest dość skuteczne. Biorąc pod uwagę, że wszystkie symulacje fizyki są w rzeczywistości tylko symulacjami, czego gracze potrzebują, to nie rzeczywistość, ale symulacja, która wydaje się sprawiedliwa i bezstronna. I na pewno nie potrzebujesz fizyki gwiezdnej wędrówki, takiej jak splątanie, aby to uzyskać =)
Patrick Hughes
@Patrick Hughes Nie grałem w DCUO, ale sądząc po filmach, nie jest to zbliżone do fizyki podobnej do GTA. Wydaje się, że nie ma pojazdów - i jest to ważna część, ponieważ można uciec od „fałszywej” fizyki dla superbohaterów o wiele łatwiej niż w prawdziwych samochodach. Wiele osób ma dość wysokie oczekiwania dotyczące „realistycznej” fizyki samochodu.
Nevermind,
Chociaż jest to prawda, nie jest również do końca poprawna. Można grać w gry walki na dużą skalę z samochodami, czołgami i samolotami, Battlefield 3 to całkiem spora gra, nawet bez MMO, twórcy byli w stanie biegać jednocześnie z ponad 100 graczami. Sprawdź na stronie battlegroundeurope.com MMOFPS, w którym fizyka odgrywa ważną rolę.
Coyote
Jeśli masz deterministyczny silnik fizyki, opóźnienie nie stanowi problemu, ponieważ możesz symulować fizykę zarówno na serwerze, jak i na kliencie. Problemem jest głównie potrzebna moc obliczeniowa lub jej opłacalność.
Markus von Broady,
@Markus von Broady Tak, o ile wkład twoich graczy nie wpływa w żaden sposób na fizykę - jesteś złoty.
Nevermind,
3
Tak.
Musisz poradzić sobie z opóźnieniami w sieci i synchronizowaniem stanu gry w sieci. Im szybciej samochody się poruszają, tym bardziej widoczne staje się opóźnienie sieci. Gracze mogą upaść na ścianę, ponieważ ich klient gry nie aktualizuje stanu gry na serwerze z powodu problemów z siecią. Co nie stanowi problemu, gdy gracze poruszają się z prędkością marszu ;-)
Serwer MMO ma większe obciążenie. Gra wyścigowa dla wielu graczy może działać dobrze z podłączonymi 10 osobami, ale zawiesi się i spali, jeśli serwer przestanie odpowiadać pod dużym obciążeniem od setek użytkowników.
Fizyka pojazdu Second Life jest po prostu źle zaimplementowana. (Czy to wciąż żyje?)
Garry's Mod to właściwie cała fizyka. Nie sądzę, że liczy się jako MMO jako taka - chociaż będzie obsługiwać 32 graczy na serwer - i ma najbardziej realistyczną fizykę, jaką widziałem (nie tylko pojazdy).
Myślę, że nie było MMO zaprojektowanego z myślą o fizyce.
Próbowali to osiągnąć w poważnej porażce gry o nazwie biuletyn wszystkich punktów. Cóż, pomysł był świetny, nie tyle wykonanie. Losowe samochody pojawiałyby się znikąd. Będziesz prowadził i po prostu uderzyłeś w ścianę, która zamieniłaby się w samochód. Widzę, jak to się robi w ciągu następnych pięciu lat, chociaż więcej procesora mniej GPU.
Sama GTA ma kilka problemów z trybem wieloosobowym, ale należy się tego spodziewać. Przykładem jest, gdy opóźnienie zamienia pościg samochodowy w koszmar. Czasami gracze zabijają się nawzajem z powodu opóźnienia.
Ale opóźnienie nie jest jedynym problemem, nie można uruchomić MMO tylko z klientami, potrzebujesz serwerów i te serwery muszą zarządzać większością, jeśli nie całą fizyką, aby uniknąć oszustów.
Wyobraź sobie, że musisz biec z tysiącami graczy. Wyobraź sobie również obciążenie procesorów podczas intensywnych ćwiczeń fizycznych. Możesz zrekompensować część stresu dedykowanym procesorom graficznym . Bullet Physics ma implementację działającą na procesorze.
Ale aby uniknąć przeciążenia na serwerze, musisz wdrożyć mechanizm obsługi redefinicji stref dynamicznych w zależności od gęstości graczy. W tym przypadku jest to o wiele ważniejsze niż w innych MMO.
To jest wykonalne. Problem polega na tym, że trzeba skalować grę, aby obsłużyć większą liczbę graczy i uruchomić główną instancję gry rozproszoną na serwerach.
Jeśli uda Ci się zoptymalizować fizykę, szybko i skutecznie przenosić obiekty między serwerami i znaleźć sposób na uniknięcie ogromnych tłumów (na przykład instancji), możesz to zrobić z podobnymi ograniczeniami jak w przypadku odniesienia i kilkoma innymi ze względu na naturę MMO gry.
Pamiętaj, że nie musisz wysyłać wszystkich aktualizacji stanu gry do wszystkich graczy przez cały czas, tylko zmiany, które są bezpośrednio istotne dla gracza, powinny być wysyłane stale, a pozostałe mogą być wysyłane z niższą prędkością.
sprawdź tryb GTA 5 Rage MP, Russian Red Age lub FiveStar Roleplay ma około 1200 do 1600 graczy na jednym serwerze, imponujące, ale starają się dodać ruch AI z powrotem w wersji 0.4
Odpowiedzi:
Tak i nie (ale przeważnie nie).
Każda gra MMO ma kilka ograniczeń, które wpływają na jej fizykę. Najważniejszym z nich jest opóźnienie . Opóźnienie to czas, jaki zajmuje klientowi wysłanie żądania do serwera i otrzymanie odpowiedzi z powrotem. Nawet w najlepszych okolicznościach czas ten wynosi około 50-100 milisekund. W prawdziwym świecie może wynosić nawet 500 ms. Oznacza to, że ilekroć gracz coś zrobi - na przykład przekręca koło samochodu - widzi, że gra zareaguje na to dopiero 100-500 ms później.
100 ms to właściwie całkiem sporo. Każda gra, która ma tyle opóźnień, nie będzie reagować, a 500 ms wydaje się wręcz niemożliwa do odtworzenia. Dlatego klienci gier używają wielu sztuczek, aby zamaskować to opóźnienie. Na przykład samochód gracza może zacząć się obracać w momencie, gdy kręci kołem, nie czekając na serwer. Jednak te sztuczki tylko maskują opóźnienie i nigdy nie mogą go faktycznie skrócić.
Załóżmy na przykład, że mamy dwóch graczy w samochodach kierujących jednocześnie ku sobie. Każdy klient natychmiast zacznie skręcać własnym samochodem; ale samochód drugiego gracza nie skręca - ponieważ informacja o jego zmieniającym się kursie nie dotarła jeszcze do klienta z powodu opóźnienia. Obaj gracze z radością sterują swoimi samochodami, a potem bam! - serwer zauważa, że faktycznie się ze sobą zderzyli.
Takim sytuacjom nie można zapobiec. Bez względu na to, jakich sprytnych schematów przewidywania używamy, tam gdzie są inni gracze, zawsze istnieje szansa, że coś pójdzie nie tak. W każdej grze MMO około pół sekundy, którą właśnie widziałeś , tak naprawdę jeszcze się nie wydarzyło i może się zmienić w dowolnym momencie. Teraz w wolniejszych grach, takich jak tradycyjne gry MMORPG, pół sekundy nie jest naprawdę tak długie. W tym czasie postacie poruszają się tylko o metr lub dwa. Jeśli jednak mówimy o szybkim wyścigu samochodowym, pół sekundy to naprawdę długi czas! Możesz rozbić się trzy razy w ciągu pół sekundy (-8
W rzeczywistości szybka gra może działać nawet przy tych ograniczeniach. Miałoby to nieprzyjemne chwile, ale dopóki wszyscy gracze mają dobre znajomości, można grać. Tak działają gry wyścigowe dla wielu graczy. Istnieje jednak inne ograniczenie MMO: liczba aktualizacji N-kwadrat.
Wyobraź sobie, że 10 graczy gra jednocześnie. Aby się zobaczyć, serwer musi przesłać każdemu graczowi informacje o każdym innym graczu. Oznacza to, w naszym przykładzie, 10 x 10 = 100 informacji do przygotowania i wysłania. To jest liczba graczy do kwadratu, stąd „N do kwadratu”. Liczba ta rośnie dość szybko, a nawet tradycyjne MMORPG zaczynają walczyć, gdy na tym samym obszarze jest wielu graczy. W naszej wyobrażonej szybkiej grze z samochodami te informacje muszą być przesyłane znacznie szybciej niż w wolniejszej grze. I prawdopodobnie sami są większe - wysłałeś nie tylko pozycje, ale także prędkości, przyspieszenie, prędkości kątowe itp. Oznacza to, że w każdej szybkiej grze wieloosobowej może być ograniczona liczba graczy.
Oba powyższe problemy w zasadzie nie mogą być rozwiązane przez oprogramowanie, tylko w pewnym stopniu zamaskowane. Można je nieco zmniejszyć, ograniczając liczbę graczy - więc na przykład gra, w której szybkie samochody są używane tylko w przypadkach z ograniczoną liczbą graczy, jest prawdopodobnie wykonalna. Wierzę, że tak właśnie zrobił APB. Ale w pełni otwarta gra MMO z szybkimi samochodami po prostu się nie wydarzy. Dopóki nie będziemy mieli interfejsów sieci kwantowo-entaglementowych czy coś w tym rodzaju.
źródło
Tak.
Musisz poradzić sobie z opóźnieniami w sieci i synchronizowaniem stanu gry w sieci. Im szybciej samochody się poruszają, tym bardziej widoczne staje się opóźnienie sieci. Gracze mogą upaść na ścianę, ponieważ ich klient gry nie aktualizuje stanu gry na serwerze z powodu problemów z siecią. Co nie stanowi problemu, gdy gracze poruszają się z prędkością marszu ;-)
Serwer MMO ma większe obciążenie. Gra wyścigowa dla wielu graczy może działać dobrze z podłączonymi 10 osobami, ale zawiesi się i spali, jeśli serwer przestanie odpowiadać pod dużym obciążeniem od setek użytkowników.
Fizyka pojazdu Second Life jest po prostu źle zaimplementowana. (Czy to wciąż żyje?)
źródło
Garry's Mod to właściwie cała fizyka. Nie sądzę, że liczy się jako MMO jako taka - chociaż będzie obsługiwać 32 graczy na serwer - i ma najbardziej realistyczną fizykę, jaką widziałem (nie tylko pojazdy).
Myślę, że nie było MMO zaprojektowanego z myślą o fizyce.
źródło
Próbowali to osiągnąć w poważnej porażce gry o nazwie biuletyn wszystkich punktów. Cóż, pomysł był świetny, nie tyle wykonanie. Losowe samochody pojawiałyby się znikąd. Będziesz prowadził i po prostu uderzyłeś w ścianę, która zamieniłaby się w samochód. Widzę, jak to się robi w ciągu następnych pięciu lat, chociaż więcej procesora mniej GPU.
źródło
Najpierw spójrzmy na twoją referencję.
Sama GTA ma kilka problemów z trybem wieloosobowym, ale należy się tego spodziewać. Przykładem jest, gdy opóźnienie zamienia pościg samochodowy w koszmar. Czasami gracze zabijają się nawzajem z powodu opóźnienia.
Ale opóźnienie nie jest jedynym problemem, nie można uruchomić MMO tylko z klientami, potrzebujesz serwerów i te serwery muszą zarządzać większością, jeśli nie całą fizyką, aby uniknąć oszustów.
Wyobraź sobie, że musisz biec z tysiącami graczy. Wyobraź sobie również obciążenie procesorów podczas intensywnych ćwiczeń fizycznych. Możesz zrekompensować część stresu dedykowanym procesorom graficznym . Bullet Physics ma implementację działającą na procesorze.
Ale aby uniknąć przeciążenia na serwerze, musisz wdrożyć mechanizm obsługi redefinicji stref dynamicznych w zależności od gęstości graczy. W tym przypadku jest to o wiele ważniejsze niż w innych MMO.
To jest wykonalne. Problem polega na tym, że trzeba skalować grę, aby obsłużyć większą liczbę graczy i uruchomić główną instancję gry rozproszoną na serwerach.
Jeśli uda Ci się zoptymalizować fizykę, szybko i skutecznie przenosić obiekty między serwerami i znaleźć sposób na uniknięcie ogromnych tłumów (na przykład instancji), możesz to zrobić z podobnymi ograniczeniami jak w przypadku odniesienia i kilkoma innymi ze względu na naturę MMO gry.
Pamiętaj, że nie musisz wysyłać wszystkich aktualizacji stanu gry do wszystkich graczy przez cały czas, tylko zmiany, które są bezpośrednio istotne dla gracza, powinny być wysyłane stale, a pozostałe mogą być wysyłane z niższą prędkością.
źródło
sprawdź tryb GTA 5 Rage MP, Russian Red Age lub FiveStar Roleplay ma około 1200 do 1600 graczy na jednym serwerze, imponujące, ale starają się dodać ruch AI z powrotem w wersji 0.4
źródło