Fortnite

Fortnite: Battle Royale - stan prac nad wydajnością

30.10.2017
Wydajność ma duże znaczenie i choć nieustannie pracujemy nad poprawą sytuacji, w pewnych aspektach poczyniliśmy krok lub dwa w tył i generalnie nie jesteśmy na poziomie zadowalającym nas na dłuższą metę.

Z punktu widzenia gracza problemy związane z wydajnością przejawiają się w następujący sposób:

Klient gry
  • Niska częstotliwość wyświetlania klatek -> zwiększone opóźnienie sygnału, duże zmiany między klatkami
  • Opóźnienie obrazu -> większe opóźnienie sygnału
  • Zacinanie się (nienormalnie duży czas wyświetlania klatek) -> nieruchomy obraz, a potem nagły skok naprzód
  • Nierówna częstotliwość wyświetlania klatek -> trudności w celowaniu

Serwer
  • Niska częstotliwość odświeżania połączenia gracza / wyświetlania klatek -> zwiększony ping
  • Zacinanie się (nienormalnie duży czas wyświetlania klatek) -> „teleportowanie się” obiektów

Funkcje sieciowe
  • Utrata pakietów -> „teleportowanie się” obiektów
  • Nasycenie przepustowości łącza -> „teleportowanie się” obiektów
  • Wysoki ping -> „teleportowanie się” obiektów
  • Grupowanie pakietów (szczególnie poprzez Wi-Fi) -> „teleportowanie się” obiektów

„Teleportowanie się” obiektów (ang. rubber-banding) oznacza tu sytuację między klientem i serwerem, skutkującą szarpanym połączeniem, przez co ruchome obiekty w świecie gry zdają się teleportować, zamiast płynnie poruszać. Może to być zacinanie się ruchu innych graczy, dziwnie funkcjonujące otwieranie drzwi itp.

Rubber-banding może mieć podłoże w całej masie problemów i jeszcze więcej pierwotnych przyczyn. Na przykład nasze serwery mogą zacinać się z powodu błędów w kodzie gry, innych serwerów działających na tym samym sprzęcie (tzw. „hałaśliwych sąsiadów”) lub problemów z systemem operacyjnym albo sprzętem hosta, co skutkuje pogorszeniem wydajności, lecz nie awarią (są to tzw. „szare awarie”).

Wasze połączenie z naszymi centrami danych zależy przede wszystkim od naszego wyboru położenia centrum i waszego pingu, lecz na ping ma wpływ wiele czynników, zależnie od trasy, jaką obiorą wasze pakiety. Istnieje również ryzyko dodatkowego opóźnienia i utraty pakietów, jeśli korzystacie z Wi-Fi.


Oto co musimy zrobić w kwestii monitoringu:
  • Monitorować wydajność klienta gry na różnych klasach kart graficznych w różnych kategoriach rozdzielczości i ustawień jakości, aby lepiej zrozumieć skutki naszych zmian.
  • Monitorować zacinanie się klienta, zależnie od jego wpływu na jakość gry.
  • Monitorować po stronie klienta pakiety sieciowe otrzymywane z serwera i pakiety otrzymywane od klienta przez serwer, a także czas między nimi.
  • Monitorować wydajność serwerów i liczbę zgubionych klatek - naszym pierwszym celem jest niezawodna praca w 20 Hz.
  • Monitorować łączną wydajność serwerów w każdej maszynie wirtualnej, aby identyfikować i pomijać niesprawne maszyny.
  • Monitorować utratę pingu i pakietów w każdym regionie i u każdego dostawcy, abyśmy mogli szybko wykrywać anomalie i na nie reagować.
  • Monitorować sytuacje prowadzące do lawinowego załamania. Na przykład ograniczona przepustowość łącza plus utrata pakietów powoduje zwiększenie ruchu w naszą stronę, co jeszcze bardziej pogarsza sytuację.


Oto co musimy zrobić w kwestii pracy nad grą:
  • Poprawić wydajność na komputerach PC o minimalnych parametrach (tzn. korzystających z kart graficznych Nvidia GTX 460, Radeon HD 5570 bądź Intel HD 4000). Tu ostatnio pogorszyliśmy sytuację, lecz już w wersji 1.8 poczyniliśmy kroki w kierunku jej poprawy. Nie zamierzamy na tym poprzestać.
  • Usunąć błędy powodujące przestoje kart graficznych na PC i kontynuować współpracę z ich producentami (takimi jak NVIDIA, AMD i Intel) nad dalszą poprawą wydajności i stabilności.
  • Zmniejszyć opóźnienie sygnału na konsoli. Wprowadziliśmy już poprawki w wersji 1.8 - dajcie nam znać, co o tym sądzicie.
  • Kontynuować wysiłki nad zwiększeniem wydajności na konsolach. Monitorujemy liczbę pominiętych synchronizacji pionowych i chcemy, żeby spadła ona poniżej 2% (ledwo) zgubionych klatek.
  • Zmniejszyć zacinanie się w tracie gry. Przez zacinanie się rozumiemy klatki trwające ponad 60 ms, co powoduje pominięcie kolejnych. Naszym celem jest sprawienie, by nie występowało to częściej niż co minutę. Zamierzamy też całkowicie zlikwidować zacięcia trwające ponad 100 ms.
  • Usunąć pozostałe zacinanie się na dedykowanych serwerach. Przykładowo, jeśli wielu graczy naraz dołączy w późniejszej fazie gry, może to spowodować chwilowe pogorszenie płynności.
  • Zoptymalizować wydajność serwerów dla rutynowych zdarzeń w stylu odnoszenia ran.
  • Zidentyfikować źródła zacinania się występujące tylko w pierwszej godzinie po wydaniu aktualizacji.
  • Zoptymalizować kod serwerów i funkcji sieciowych, aby pozwolić na przesyłanie stanu graczy do wszystkich 100 połączeń w każdej klatce. W tej chwili stoimy na poziomie 25 połączeń na klatkę w lobby i 50 podczas gry. Oznacza to, że jakość gry nie osiągnie pożądanego przez nas poziomu, jeśli weźmie w niej udział więcej niż 50 graczy naraz. Jest to poważna zmiana i pracujemy nad nią równolegle z innymi poprawkami.
  • Poprawić naszą obsługę krańcowych przypadków, które mogą prowadzić do lawinowego załamania się sytuacji.
  • Ulepszyć system dobierania graczy, aby dynamicznie przekierowywał ruch do centrów danych w odpowiednim regionie. Mówiąc krótko, mieć sposób optymalizacji pingu bez odbierania graczom możliwości gry ze znajomymi.
  • Zatrudnić więcej inteligentnych pasjonatów takich technicznych wyzwań.


Oto co możecie sprawdzić, aby potencjalnie zaradzić problemom we własnym zakresie:

Sprawdźcie, czy macie aktualne sterowniki karty graficznej, a jeżeli nie, zaktualizujcie je do najnowszej wersji.

Obecnie nasze serwery pracują w centrach danych Amazon Web Services na całym świecie i możecie odwiedzić stronę http://www.cloudping.info/, aby szybko sprawdzić wasz ping na połączeniu z nimi.
  • Ameryka Północna - Virginia, Ohio 
  • Europa - Frankfurt, Londyn
  • Oceania - Sydney
  • Brazylia - Sao Paulo
  • Azja - Tokio

Riot Games prowadzi stronę www.lagreport.com, która stanowi świetne źródło ogólnych informacji na temat dostawców internetowych. Nie gwarantujemy jej skuteczności w przypadku Fortnite.

Jeśli korzystacie z sieci Wi-Fi i macie możliwość przełączyć się na połączenie przewodowe, może to zmniejszyć opóźnienia, utratę pakietów i ich grupowanie.

Na opóźnienia mogą też wpłynąć ustawienia telewizora. W sieci istnieje wiele poradników na temat tego, jak najlepiej je dostosować. Oto jeden z takich poradników (w j. angielskim).

Na komputerach PC możecie skorzystać z takich artykułów technicznych (w j. angielskim) i przy ich pomocy sprawdzić, czy jakieś niespodziewane procesy nie pracują u was w tle, zużywając zasoby komputera.