Druga aktualizacja dotycząca spójności rozgrywki w VALORANT
Witajcie ponownie! Z tej
strony zespół odpowiedzialny za technologię rozgrywki VALORANT.
Chcemy przedstawić wam drugą część naszej analizy i działań
dotyczących spójności rozgrywki.
Jeśli
nie pamiętacie generalnego podsumowania uwag, z jakimi się
spotkaliśmy, sprawdźcie naszą poprzednią
publikację
z zeszłego miesiąca. Przedstawiliśmy w niej ogólny zarys kwestii
poruszanych przez graczy i dokonaliśmy przeglądu zgłębianych
obszarów (opóźnienia, poprawności i skuteczności graczy z dużym
pingiem).
W
poprzednim artykule w dużej mierze wyjaśniliśmy „co, jak i
dlaczego”. Dlatego
też dzisiaj chcieliśmy szczegółowo zająć się jednym z
ulepszonych przez nas obszarów: opóźnieniem i buforowaniem.
Omówimy znaczenie ich wpływu na VALORANT, dokładniej przedstawimy
naszą analizę, wprowadzone poprawki i ulepszenia oraz długofalowe
działania, które podejmujemy.
Poniżej
w skrócie prezentujemy zawartość patcha 4.10:
- Rozpoznaliśmy
i usunęliśmy kilka problemów, które mogą wystąpić po serii
incydentów z niestabilnością sieci, niskiej liczbie klatek
klienta, użyciu skrótu Alt+Tab lub dłuższych okresach odchyleń
sieci.
- Gracze, którzy się z nimi borykali, mogli odczuć opóźnione przetwarzanie ich danych wejściowych na serwerze lub opóźniony ruch wrogów widoczny na ekranie.
- W patchu 4.10 wprowadzamy zmiany, które powinny poprawić buforowanie sieci w wymienionych sytuacjach i udostępniamy graczom dane prezentujące, co się dzieje za kulisami.
- Wspomniane
modyfikacje wymierzone są w pierwotną przyczynę odczuwanego,
nierównego opóźnienia sieci oraz czasu reakcji między grami. W
dalszym ciągu będziemy monitorować sytuację i wprowadzać
kolejne ulepszenia.
- Jeśli wciąż napotykacie problemy w grach, mamy nadzieję, że nowe wykresy pomogą określić ilościowo i zmierzyć to, czego doświadczacie.
- Dalej przesyłajcie zgłoszenia wraz z nagraniami (o ile to możliwe) za pośrednictwem naszego kanału Wsparcia Gracza, aby pokazać nam, co widzicie.
OPÓŹNIENIE I BUFOROWANIE
W
poprzednim
artykule
wspomnieliśmy, że wciąż badamy opóźnienie oraz przebieg
buforowania sieci w VALORANT. Zdążyliśmy już zakończyć to
dochodzenie i wprowadzamy poprawki kilku problemów, które
zidentyfikowaliśmy w patchu 4.10.
Zanim
zagłębimy się w temat, wypada wyjaśnić, co rozumiemy przez
„buforowanie sieci” lub „opóźnienia przetwarzania”.
W
grach online takich jak VALORANT przesyłacie
swoje dane wejściowe na serwer w celu ich przetworzenia, ponieważ
to widok gry na serwerze jest tym prawidłowym.
Za każdym razem, gdy serwer aktualizuje symulację gry (co ma
miejsce 128 razy na sekundę), dane wejściowe z waszego klienta gry
muszą zostać odtworzone w przypadku waszego agenta. Jeśli
nastąpi opóźnienie przesyłu waszych danych wejściowych przez
Internet, serwer nie będzie na nie czekać i przeprowadzi symulację
waszego ruchu.
Taki
przewidziany przez serwer ruch często nie jest zgodny z tym, który
wciąż jest w drodze. Wspomniane niezgodności powodują korekty
ruchu widoczne w kliencie jako niewielkie teleportacje do właściwej
lokalizacji. Zbyt
wiele takich korekt powoduje, że gra sprawia wrażenie
„niestabilnej”, a przy ich wystarczająco wysokim odsetku staje
się niemożliwa.
Aby
uniknąć ruchów przewidzianych przez serwer, trzeba go zmusić do
buforowania i odtworzenia niektórych z nich z nieznacznym
opóźnieniem. To powszechnie stosowana strategia podczas przesyłania
strumieniowego wszelkich danych przez Internet. Dzięki niej
zyskujemy pewność, że serwer płynnie odtworzy ruchy waszego
agenta w każdej klatce. Takie buforowanie zwiększa jednak
opóźnienie, zanim serwer przetworzy wasze ruchy. Jego nadmiar może
sprawić wrażenie, że gracie ze znacznie wyższym pingiem, niż na
to by wskazywał czas przesłania sygnału w sieci (RTT sieci).
Zastosowanie
odpowiedniego buforowania to ważne działanie równoważące.
Jeśli buforowania będzie za mało, zaobserwujecie mnóstwo
przewidzianych przez serwer ruchów oraz korekt klienta. Jeśli
natomiast będzie go w nadmiarze, spotkacie się z dużymi
opóźnieniami i będziecie bardziej narażeni na przewagę osób
wyglądających zza rogu. Jeśli
osiągniemy równowagę, VALORANT będzie działać płynnie i
responsywnie.
Podobnie
jak serwer buforuje wasze ruchy przed ich zastosowaniem, wasz klient
musi buforować informacje o ruchach wroga, zanim ukażą się one u
was na ekranie. Ta zasada zapobiega wrażeniu, że wrodzy gracze
teleportują się, gdy macie słabe połączenie. Jednocześnie
zyskujecie pozbawiony zakłóceń, łatwy do śledzenia widok na
innych graczy.
Analiza
W
ramach przeprowadzonej analizy chcieliśmy lepiej zrozumieć, jak
dokładnie działały te dwa bufory.Stworzyliśmy
nowe oprzyrządowanie do debugowania, aby prześledzić, ile zajęło
ruchom przejście przez każdy z buforów. Używając
tych narzędzi, zaczęliśmy eksperymentować. Chcieliśmy sprawdzić,
czy istnieją scenariusze, które mogłyby sprawić, że bufory ruchu
zachowają się w niezamierzony sposób.
Jednym
ze zgłaszanych przez graczy problemów, które prześledziliśmy w
trakcie tej analizy, było zwiększone opóźnienie przetwarzania
strzału przy skorzystaniu ze skrótu Alt+Tab. Przeniesienie
działającej gry do tła z ustawieniem „Limit FPS w tle” emuluje
przeciągający się problem z wydajnością klienta poprzez
ograniczenie liczby klatek. Po ponownym przywróceniu gry z tła na
pierwszy plan nagła wyższa liczba klatek na sekundę mogłaby
znacznie powiększyć kolejkę ruchów serwera.W
kliencie odnieślibyście wrażenie, że gracie z bardzo wysokim
pingiem, którego nie odzwierciedlałyby aktualne wykresy RTT sieci.
Podobny
skutek uzyskaliśmy, symulując szybki skok pingu w kliencie. Nagły
spadek pingu wyższego do niższego spowodowałby nagromadzenie
ruchów w kolejce ruchów serwera dla tego klienta. Nagły skok z
pingu niższego do wyższego wywołałby ich nagromadzenie w kolejce
ruchów klienta innych graczy. W obu przypadkach nagromadzenie ruchów
w kolejce spowodowałoby zwiększenie widocznego opóźnienia, dopóki
kolejka nie wróciłaby do docelowego rozmiaru.
W
przypadku obu tych scenariuszy aktualny system ostatecznie
rozwiązałby zaistniałe problemy i przywróciłby bufory do ich
docelowego rozmiaru. Przekonaliśmy się jednak, że całkowity
powrót do normalnego stanu trwał zbyt długo, co prowadziło do
wydłużonego okresu występowania faktycznie zwiększonych opóźnień
sieci.
Wprowadziliśmy
dwie
nowe poprawki,
które znacznie szybciej zaradzą tym problemom z nadmiernym
buforowaniem. Powinniście więc doświadczać nadmiernego opóźnienia
tylko chwilami, gdy poprawienie wrażeń z gry będzie koniecznością.
Poprawki
i ulepszenia
Pierwsza
wprowadzona przez nas poprawka dostosowuje prędkość przywracania
buforów do rozmiaru docelowego, gdy coś spowoduje utworzenie kopii
zapasowej. Dodaliśmy
możliwość agresywniejszej adaptacji systemu przetwarzania ruchów
w miarę zwiększania się rozmiaru bufora.
Dzięki
tej zmianie obróbka kopii zapasowych buforowanych ruchów przebiega
szybciej. Jeśli na przykład przed tą modyfikacją w buforze było
pięć dodatkowych ruchów, powrót do idealnego stanu docelowego
mógł trwać nawet pięć sekund. Dzięki nowym ulepszeniom czas ten
wynosi teraz poniżej jednej sekundy. Oznacza to, że gracze, którzy
mają do czynienia z incydentami wpływającymi na rozgrywkę –
takimi jak utrata płynności lub skoki sieci – będą znacznie
krócej odczuwać opóźnienia wynikające z dodatkowego buforowania.
Jednak
w skrajnych przypadkach kopia zapasowa buforowanych ruchów może
urosnąć do takich rozmiarów, że czas potrzebny na przetworzenie
nagromadzonych ruchów może przedłużyć się do iluś sekund,
nawet po wprowadzeniu wyżej opisanej poprawki. Gdy tak się zdarzy,
dokonamy sprzętowego resetu buforu, usuwając wszystkie ruchy z
wyjątkiem ostatniego. Takie rozwiązanie ma tę zaletę, że
natychmiast usunięte zostanie dodatkowe opóźnienie, gwarantując
jednocześnie, że nastąpi korekta ruchu
Przekonaliśmy
się, że w przypadku poważnych zdarzeń – takich jak skrajne
zakłócenie liczby klatek lub skoki sieci – korekta ruchu była
lepszym rozwiązaniem niż nawet kilka sekund oczekiwania, aż
przetwarzanie ruchu ponownie dostosuje rozmiar bufora.
W takiej sytuacji uzyskanie korekty było zwykle mniej uciążliwe
niż dłuższy okres zwiększonego opóźnienia, z którym gracze
musieli się borykać przed wprowadzeniem tej poprawki. Jednym z
poważnych zdarzeń, podczas których możecie spotkać się z taką
korektą, jest ponowne przywrócenie gry na pierwszy plan po użyciu
skrótu Alt+Tab z limitem FPS w tle ustawionym na niską wartość.
Takie działanie powoduje ekstremalną zmianę liczby klatek, co może
prowadzić do problematycznego stanu nadmiernego buforowania.
Wprowadzona modyfikacja powinna temu szybko zaradzić.
Podczas
analizy buforowania zidentyfikowaliśmy również inny powiązany
problem. Polega on na tym, że gracze ze stałymi dużymi
odchyleniami sieci są regularnie przerzucani między niższymi i
wyższymi celami buforowania, ponieważ system próbuje zrównoważyć
ich opóźnienie za pomocą liczby przewidzianych przez serwer
ruchów. Pracujemy
nad rozwiązaniem, które pozwoli lepiej dostosować docelowy rozmiar
bufora, biorąc pod uwagę tego rodzaju długotrwałe odchylenia
sieci.
Wybiegając
naprzód
Wprowadzając
powyższe zmiany, zdaliśmy sobie sprawę, że gracze nie dysponują
dobrą metodą wizualizacji bieżących opóźnień przetwarzania
ruchów. Jako
że stworzone na potrzeby wewnętrzne wykresy okazały się bardzo
przydatne w rozpoznaniu tego problemu, dodaliśmy nowy wykres
wydajności pod nazwą „RTT sieci + opóźnienia przetwarzania”.
Rejestruje on wasz czas przesłania sygnału w sieci wraz z
opóźnieniami ruchów serwera i klienta.
Ten
czas zmierzony na wykresie powinien być względnie taki sam jak
odczuwane przez was opóźnienie podczas starego „testu noża”.
Rozsądna wartość w przypadku tego wykresu, gdy wszystko działa
jak należy, powinna być o 20–30 ms wyższa niż RTT sieci.
Idealna wartość będzie jednak inna w zależności od dokładnych
warunków sieciowych i liczby klatek.
Ponadto
dodaliśmy
wykres średniego odchylenia RTT pokazujący, jak RTT sieci zmienia
się między kolejnymi pakietami.
Skoki pingu i duże odchylenia sieci często wywołują konieczność
dodatkowego buforowania. Dlatego też dodaliśmy ten wykres, aby
ułatwić potencjalne diagnozowanie niekorzystnych warunków
sieciowych, które nie byłyby widoczne na zwykłym wykresie RTT
sieci z uwagi na uśrednienie.
Wprowadziliśmy
również dodatkowe dane telemetryczne, aby gromadzić informacje na
temat tego, z jakimi opóźnieniami w przetwarzaniu gracze mają
faktycznie do czynienia w poszczególnych grach.
Będziemy
dokonywać regularnych przeglądów tych danych, aby kontrolować
kondycję gry i sprawdzać, czy powyższe poprawki przynoszą
zamierzone przez nas skutki, a także, czy konieczne są dodatkowe
poprawki i ulepszenia.
I wreszcie, chociaż czytamy posty na różnych platformach społecznościowych, chcemy również wykorzystać ankiety po zakończeniu gry, aby uzyskać bardziej szczegółowe opinie graczy na temat jakości meczów, w tym dotyczące połączenia i obsługi broni. W związku z tym dodamy i przejrzymy niektóre pytania, aby uwzględnić te obszary.
NASTĘPNA AKTUALIZACJA
Mamy
nadzieję, że omówione ulepszenia buforów przetwarzania ruchów
przyczynią się do ograniczenia braku spójności doświadczanej
przez graczy, których ping nie budzi zastrzeżeń. Jeśli wciąż
doświadczacie problemów w trakcie gry, mamy nadzieję, że
informacje dotyczące odchyleń i opóźnienia w przetwarzaniu
przedstawione w formie wykresu pomogą ilościowo zmierzyć
nieprawidłowości, z którymi się borykacie, i ułatwią
rozpoznanie ich potencjalnych przyczyn. Jeżeli macie do czynienia z
brakiem spójności i rejestrujecie rozgrywkę, widoczne na nagraniu
wykresy zapewnią dodatkowe informacje ułatwiające zawężenie
obszaru wymagającego baczniejszej obserwacji.
Zakończymy
tę aktualizację ogromnymi podziękowaniami skierowanymi do
wszystkich osób, które publikowały filmy i analizy napotykanych
problemów. Bardzo nas cieszy pasja, z jaką podchodzicie do tej gry,
a także wasze starania, by pomóc nam ją ulepszyć. Jak zawsze
bardzo poważnie traktujemy wasze uwagi.
Miejcie oko na kolejną porcję aktualności, które obejmą wybór serwera i jego wpływ na wydajność graczy z wysokim pingiem.