Druga aktualizacja dotycząca spójności rozgrywki w VALORANT

Zespół VALORANT odpowiedzialny za rozgrywkę dzieli się aktualnościami dotyczącymi analizy spójności sekwencji gier.

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.

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.