Ograniczenia gier wieloosobowych p2p vs klient-serwer [zamknięte]


12

Czytam o architekturze gry wieloosobowej.

Do tej pory większość znalezionych artykułów dotyczyła modelu klient-serwer.

Chciałbym wiedzieć, jakie są ograniczenia korzystania z architektury p2p? jaka „klasa” gier jest możliwa (lub bardziej powszechna) do wdrożenia przy jej użyciu? które nie są? i ogólnie, jakie są jego główne różnice i ograniczenia w stosunku do modelu klient-serwer.



Na przykład prawdziwej gry P2P możesz spojrzeć na Gunz: The Duel, który ma ogromne problemy w trybie wieloosobowym i hakowaniu z tego powodu.
fhyve

Odpowiedzi:


11

Oto moje dwa centy:

P2P :

  • Plusy:
    • Nie ma potrzeby centralnego serwera : dzięki temu jest znacznie tańszy i bardziej opłacalny w przypadku niskobudżetowych gier niezależnych.
    • Skaluje się bardzo dobrze (do pewnego momentu, gdy przeciętny klient po prostu nie jest w stanie obsłużyć przepustowości).
    • Bardzo dobry do dystrybucji danych : Pasuje do gier, w których treści tworzone przez użytkowników są dynamicznie synchronizowane (np. Torrenty).
    • Bardziej stabilny: Nigdy nie może się zdarzyć, że na serwerze występują problemy i nikt nie może grać (zależnie od implementacji).
  • Cons:
    • Trudne do wdrożenia : znacznie trudniej jest stworzyć solidną architekturę P2P niż serwer-klient.
    • Bardzo trudno jest zapobiec oszustwom w takim systemie, chyba że wyznaczysz autorytatywnego peera (który utrudni jakiekolwiek korzyści z dobrego skalowania z P2P).
    • Bezpieczeństwo jest trudne do osiągnięcia.
    • Połączenie internetowe klienta może wpływać na grę także dla innych.
    • Opóźnienie jest zwykle znacznie większe (chociaż może być lepsze, gdy dołączasz do gry internetowej na przykład z wieloma osobami z sieci LAN).
    • Może wymagać przekierowania portów : P2P przez Internet wymaga przekierowania portów i nie wszyscy są wystarczająco techniczni, aby to zrobić. Ponadto dostawca usług internetowych może uniemożliwić przekierowanie portów i zwiększa barierę wejścia.

Serwer-klient :

  • Plusy:
    • Łatwy do wdrożenia: jest tak prosty, jak to tylko możliwe.
    • Jeśli dobrze zaimplementowane, skaluje się bardzo dobrze (jeśli praca może być rozłożona na wiele serwerów).
    • Oszukiwania można łatwo uniknąć (w porównaniu do P2P).
    • Niższe opóźnienia : jeśli serwer ma stałe połączenie, opóźnienia mogą być bardzo niskie.
    • Połączenie internetowe gracza nigdy nie wpływa na grę innej osoby.
  • Cons:
    • Kosztuje pieniądze za uruchamianie serwerów : zdecydowanie nie nadaje się do darmowej gry (chyba że pozwolisz graczom skonfigurować serwer dedykowany, ale może to być problem z bezpieczeństwem).
    • Jeśli na serwerze występują problemy, wszyscy to robią.

Uznałbym P2P za dobry wybór, ponieważ przeciętne połączenie internetowe staje się coraz lepsze, w przyszłości opóźnienie P2P może wcale nie stanowić problemu. Również wiele o P2P zależy od konkretnej implementacji.

Istnieje również kilka architektur łączących P2P z klientem-serwerem.


Con P2P: Matchmaking, chyba że jest to gra w sieci LAN, nie wiesz, jak znaleźć swojego partnera. CS: Niższe opóźnienia nie występują, gdy jeden gracz, powiedzmy, w Niemczech, a drugi jest w Australii. Problem jest nadal 6 lat później. CS: koszt pieniądza nie tak dużo, naprawdę. Serwery stają się raczej tanie. Możesz także rozpocząć od hostowania gry na własnym komputerze za pomocą serwera proxy sieci Web, aby na nią wskazać.
badunius

2

Duże ryzyko związane z grami peer-to-peer polega na tym, że bez centralnego organu w postaci neutralnego serwera nie ma sposobu, aby zapobiec oszustwom. Każdy klient może interpretować wynik gry w dowolny sposób. Niektóre gry ogłaszają gospodarza jednym z klientów i pozwalają mu być sędzią, ale kiedy ten klient jest oszustem, decydują o wyniku całej gry.

W przypadku gier wymagających niskiego opóźnienia i dużej przepustowości, jak każda gra wymagająca szybkiej reakcji ze strony graczy, masz również problem z tym, że host używa tylko połączenia internetowego klasy konsumenckiej, a nie siedzi w centrum danych o wysokiej wydajności sieci szkieletowej połączenie. Oznacza to, że ucierpi na tym doświadczenie użytkownika. Nie stanowi to większego problemu w bardziej zorientowanych na strategię, „wolniejszych” grach.


Używając modelu konsensusu, oszukiwanie nie stanowi większego problemu niż w modelu klient-serwer.
Jeroen

1

Wdrożenie gier wieloosobowych typu peer to peer nie jest obecnie łatwe i nie ma zastosowania.

Problemem jest to, że żaden z peerów nie zna wszystkich innych peerów, dzięki czemu masz wiele przeskoków dla każdej wiadomości, co skutkuje większym opóźnieniem w porównaniu do modelu serwera klienta. Zobacz ten artykuł, aby uzyskać dodatkowe informacje.

Gry oparte na rundach mogłyby z łatwością korzystać z takiego protokołu, ponieważ tak bardzo nie zależą od opóźnień. Poza tym zwykle mają tylko kilka hostów w sesji, aby można było nadawać każdą wiadomość do wszystkich innych graczy.

Inne gry, które używają peer-to-peer, po prostu dynamicznie wybierają jeden z peerów do hostowania gry (tj. CoD MW2), co powoduje problemy takie jak migracja hosta, jeśli host się rozłączy.


3
Co masz na myśli „nie dotyczy w tej chwili”? Istnieje wiele gier wykorzystujących P2P do pracy w sieci. Również „żaden z rówieśników nie zna wszystkich pozostałych” jest źle sformułowany. Podczas gdy w praktyce przekaźniki muszą być obsługiwane w celu poprawy niezawodności, jest całkowicie możliwe, aby mieć idealną topologię sieci „każdy do każdego”, szczególnie przy małej liczbie peerów lub w sieci LAN, w której nie przeszkadzają routery NAT.
Tapio,

@Tapio Oczywiście możliwe jest zbudowanie sieci p2p dla gier, ale byłoby to ograniczone pod względem opóźnienia, liczby użytkowników lub środowiska, w którym jest używana. Z tego powodu większość gier nie stosuje podejścia P2P.
Horstinator,

@Horstinator Wiem o grze, która wykorzystuje P2P do gry FPS, solidnie obsługuje 50-100 graczy bez żadnych problemów z opóźnieniami. (Nazywa się to walką stickman dla każdego, kogo to obchodzi)
akaltar

@akaltar Czy jest to oprogramowanie typu open source? Chciałbym zobaczyć, jak to robią.
Horstinator,

@Horstinator Szkoda, ale o ile wiem, nie jest. Możesz poprosić twórcę na forum (jest to bardzo mały projekt, więc ktoś powinien odpowiedzieć).
akaltar
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.