Były pracownik Respawn Entertainment oraz Sony krytykuje kod sieciowy The Division

The Division cierpli na liczne problemy. Jeden z byłych pracowników Respawn Entertainment wyjaśnia ich prawdopodobną przyczynę.

@ 27.04.2016, 16:44
Marcin "bigboy177" Trela
Czasem coś piszę, czasem programuję, czasem projektuję, czasem robię PR, a czasem marketing... wszystko to, czego wymaga sytuacja. Uwielbiam gry, nie cierpię briefów reklamowych!
pc, ps3, xbox 360, ps4, xbox one

Były pracownik Respawn Entertainment oraz Sony krytykuje kod sieciowy The Division

The Division, choć okazało się dużym sukcesem sprzedażowym i krytycznym, cierpi na dość znaczne problemy techniczne oraz związane z oszustami. Twórcy nie mogą sobie z nimi poradzić, a Glenn Fiedler, były pracownik Respawn Entertainment oraz Sony Santa Monica wie czym może to być spowodowane.

Fiedler u swoich dotychczasowych pracodawców zajmował stanowisko starszego programisty, specjalizującego się w opracowywaniu rozwiązań sieciowych. Postanowił on na łamach swojego bloga opublikować całkiem ciekawy artykuł, ukazujący przewagę serwerów dedykowanych nad rozwiązaniami przetwarzającymi dane po stronie gracza. W przypadku tych drugich problemem są bowiem cheaterzy.

Deweloper przyznał na początku wpisu, że nie miał przyjemności grać w The Division, ale obserwując materiały filmowe jest w stanie zdiagnozować wiele problemów trapiących produkcję. Jako idealny przykład podał on wideo, na którym użytkownik, wykorzystując Cheat Engine, analizuje pamięć swojego komputera i wpływa na samą grę. Cheat Engine jest interesujący w przypadku rozgrywek singlowych, ale może stanowić problem w grach sieciowych.

Co ciekawe, rozwiązaniem nie są w tym przypadku dodatkowe procedury sprawdzające kod, jak twierdzą niektórzy. Dorzucenie ich nie jest bowiem takie łatwe, jak mogłoby się to wydawać.

"Kiedy przedstawię swoją mroczną wizję, ludzie często pytają: dlaczego nie mogą zaimplementować dodatkowych procedur sprawdzających? W rzeczywistości deweloperzy przed premierą zdawali się coś takiego pisać: 'Nie martwcie się. Nie zaimplementowaliśmy systemu sprawdzającego jeszcze'. To pokazuje jednak brak podstawowej wiedzy na temat tego, jak działają gry sieciowe".

Fiedler następnie wyjaśnia, że w przypadku rozwiązań stosowanych przez najlepsze sieciówki do czynienia mamy z serwerami dedykowany. Działają one tak, że wszystkie obliczenia we wnętrzu gry robione są na serwerze. Właściwa rozgrywka odbywa się na serwerze, a nie w oprogramowaniu, jakie posiada grający. W takiej sytuacji może kontrolować zabawę, a jeśli całość odbywa się na komputerze lub konsoli użytkownika dodanie kilku procedur sprawdzających nie rozwiąże problemów.

"W przypadku sieciowych strzelanek mamy standardowe rozwiązanie, opracowane przez Quake'a, a potem doprowadzone do perfekcji przez Counter-Strike'a. Ten sam model wykorzystują dzisiaj największe FPS-owe marki, jak Call of Duty, Overwatch oraz Titanfall. Model ten ma dwie najistotniejsze cechy, o których najpewniej słyszeliście:

  • predykcję po stronie klienta, aby gracz nie odczuwał lagu;
  • kompensacja lagu, w wyniku której, jak strzelasz do innego gracza, a kule trafiają na Twojej maszynie, otrzymujesz natychmiast nagrodę, tak, jak widziałeś to u siebie (nie śledzisz celu z uwzględnieniem lagu).

Najważniejsze w tym jest to, że decyzja o tym czy kula trafiła czy nie leży po stronie serwera, a nie klienta".

W ten sposób docieramy do istoty problemu, czyli wspomnianych obliczeń na serwerze dedykowanym. To on bowiem przetwarza wszystkie dane i to na nim toczy się rozgrywka. Przejmuje on ruchy graczy oraz wystrzelone przez nich pociski, a następnie symuluje to wszystko na dedykowanej maszynie. Od środka wygląda to tak, jakby wirtualna postać dodatkowo grała w grę, częściowo niezależną od nas samych.

"Dla przykładu, jeśli serwer otrzyma informację, że gracz trzyma przycisk strzału, serwer także sprawi, że zostaną wystrzelone pociski, zależne od posiadanej przez gracza broni, szybkości strelania, ilości amunicji itd. Kule wystrzelone w serwerze będą tymi, które rzeczywiście trafią w przeciwnika".

W rezultacie, serwer jest niewrażliwy na oszustwa. Nie ufa on temu, co wysyła mu klient gry. Nie bierze pod uwagę pozycji gracza, nie przelicza obrażeń wedle tych, jakie ma broń po jego stronie, nie sprawdza też z jaką szybkością lecą wystrzelone przez niego pociski. Prawdziwa GRA toczy się na serwerze.

"Jeśli gracz podniesie pojemność magazynka albo szybkość strzelania, nie ma to wpływu na grę, bo wszystkie nadmiarowe pociski to duchy, niepowodujące żadnych obrażeń. Jeśli gracz włamie się do inwentarza i da sobie broń, której tak naprawdę nie ma, nie jest to istotne, ponieważ obliczenia obrażeń i tak są liczone na podstawie broni jaką ma na serwerze. Jeśli włamią się do pamięci, aby zwiększyć szybkość poruszania się, serwer nie będzie odczytywał pozycji z klienta, ale tę zanotowaną w jego oprogramowaniu własnym".

Dlaczego w takim razie The Division nie korzysta z serwerów dedykowanych, robiąc wszystkie obliczenia na komputerach graczy? Najpewniej ze względu na koszt utrzymania grupy maszyn, odpowiadających za przeliczanie danych. Fiedler niestety nie podzielił się żadnymi liczbami, mimo że, jak sam zaznaczył, pracował on między innymi nad Titanfall i musi wiedzieć jak kosztowne jest opłacanie infrastruktury serwerów, przetwarzających wszystkie dane gry.


Sprawdź także:
Titanfall

Titanfall

Premiera: 11 marca 2014
PC, XBOX 360, XBOX ONE

Titanfall to debiutancka produkcja studia Respawn Entertainment utworzonego przez byłych pracowników Infinity Ward. Tytuł przeznaczony jest głównie do rozgrywek multiplay...

Dodaj Odpowiedź
Komentarze (15 najnowszych):


Powyższy wpis nie posiada jeszcze komentarzy. Napraw to i dodaj pierwszy, na pewno masz jakąś opinię na poruszany temat, prawda?