Główna > Inne > Objaśnienie problemu przenikających pocisków (ang. gost shells)

Objaśnienie problemu przenikających pocisków (ang. gost shells)

23 lipca 2015 o 17:47   Autor: Kasia
1 vote, average: 5,00 out of 51 vote, average: 5,00 out of 51 vote, average: 5,00 out of 51 vote, average: 5,00 out of 51 vote, average: 5,00 out of 5 (1 głos)
Loading...Loading...

Informacje poruszające tę kwestię zostały zaczerpnięte z dyskusji pomiędzy dwoma deweloperami, więc należy traktować je nieco z przymrużeniem oka. Aczkolwiek dają pewien wgląd w ten temat.

Krótki opis:

Problemem nie jest ani serwer ani klient, lecz wadliwy proces silnika BigWorld, który się włącza, kiedy serwer nie oblicza wartości penetracji. Mniej fachowo, proces jest następujący (brak kilku elementów wypełniających takich jak czas przemieszczania się pocisków, szybkość czołgu, łuk działa, typ pocisków, itp. dla uproszczenia):

– klient jest uruchomiony
– serwer odbiera komendę „uruchom”, odpowiada „uruchomiony” i chwilę potem ustala, że w polu widzenia znajduje się czołg wroga, który również może zostać zauważony przez klienta, więc wysyła dane z powrotem informując „masz czołg w polu widzenia”
– teraz klient widzi czołg wroga
– serwer potwierdza, że czołg się tam znajduje i pojawiają się wszystkie mechanizmy celowania
– klient strzela w czołg
– serwer potwierdza, że klient strzelił i uruchamia miernik czasu przeładowania klienta, ale również przetwarza wartość penetracji dla pocisku, kąta, RNG (+/-25%), obszaru zniszczenia oraz ustala czy doszło do penetracji/rykoszetu lub zniszczenia jakiegokolwiek modułu wewnętrznego
– silnik Bigworld pracuje, kiedy serwer nie przetwarza żądania klienta i wysyła „null”
– Serwer: „hej, ale właśnie wysłałem dane!”
– Bigworld: „tak i wysyłam null, teraz słuchaj!”
– Serwer: „??? okay ._.”

Serwer wysyła z powrotem ping z nullem: „ej, tam nie było czołgu”. Klient pokazuje w zamian przenikający pocisk.

 

Co jest przyczyną tego błędu?

Są pewne kluczowe zdarzenia z tym związane, niezależne od ping. Może to być kilka czynników takich jak mikrolagi – minimalna utrata pakietów (mam na myśli bity, nawet nie bajty), które serwer może zinterpretować jako „szum” (częściowo nieodtwarzalne pakiety). Jest to związane z wieloma rzeczami, zależnymi od jakości połączenia klienta, odległości a nawet zakłóceń, mikro przeciążeń serwera, itd..

Czy można to naprawić? Tak, zdecydowanie, ale nie jest to związane z jakością serwera czy połączenia (wyjaśnię to bardziej szczegółowo poniżej). Jest to związane z silnikiem gry Bigworld, który wymaga patcha. Technicznie serwer zawsze jest ustawiony by odpowiadać na każdy wystrzelony pocisk, błąd jest w rzeczy samej rzadki ponieważ Bigworld po prostu zapomina o otrzymywaniu danych od serwera z powodu „szumu”.

Nie jest to nieuchronny błąd i z całą pewnością można stwierdzić, że około 90% zanotowanych przypadków przenikających pocisków nie jest związane z defektem opisanym powyżej, a raczej związane z lagami lub niewielką de-synchronizacją pomiędzy klient-serwer (tu znów związek z czynnikami takimi jak używanie serwera w połączeniu klient-serwer, przykładowo: telia.net i jego wadliwy serwer poziomu2, który jakiś czas temu był zmorą społeczności NA).

Sorry, ale nie jestem super czarodziejem technicznym i próbowałem wyjaśnić to w jak najprostszy sposób. Jestem pewien, że jakiś ekspert IT wytłumaczyłby kwestię mikrolagów i rozbieżności o wiele lepiej, ale tak – defekt jest prawdziwy i zidentyfikowany. Sprawa patcha jest skomplikowana, bo serwer nie rozpoznaje, że coś jest nie tak.

Więc jak powszechny to problem?

Bardzo trudno określić dokładną liczbę – ale w przybliżeniu, może się to zdarzyć każdemu, niezależnie od lokalizacji geograficznej czy konfiguracji sprzętu przynajmniej raz dziennie i bardzo rzadko więcej niż raz na rozgrywkę (bardzo ważne: Nie mówię, że zdarza się to co każdą rozgrywkę. Mówię, że jeżeli się to zdarzy podczas rozgrywki, to z dużym prawdopodobieństwem nie powtórzy się to podczas TEGO meczu).

Więc w czym problem? Przenikające pociski muszą zostać naprawione w dwóch obszarach i są rozważane osobne kwestie:

1 – jeżeli defekt jest związany z de-synchronizacją pomiędzy klient-serwer (mikrolagi) to BARDZO trudno to naprawić, ponieważ występuje mnóstwo czynników powiązanych, takich jak problemy związane z połączeniem między komputerami czy połączeniem serwer-klient.

2  – defekt Bigworld – można naprawić patchem lub aktualizacją silnika z poprawką w przyszłości.

Przy okazji WoT Cbox nie raportują tego problemu.

Mam nadzieję, że wyjasnienie pomoże i nie będziemy z tego robić tajemnicy. W przeszłości inne gry miały ten sam problem (desynchronizacja powodująca defekty), kiedy było to czymś więcej niż tylko błędem. Odnoszę się tu do World of Warcraft. W WOTLK/CATA był tego rodzaju błąd, na szczęście silnik WoW miał więcej niż 12 lat i prawie wszystko było już zbadane. Błędu w WoW już nie ma.

 

Źródło:

 

http://ritastatusreport.blogspot.com/2015/07/insider-talks-ghost-shells-explained.html

UdostępnijShare on FacebookShare on Google+


Inne

, , , ,


Musisz się zalogować aby napisać komentarz. Logowanie bez rejestracji przez worldoftanks.eu

banner