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.