Fortnite

FNBR Performance-Update

30.10.2017
Performance ist wichtig. Wir arbeiten ständig daran, die Leistungsstärke des Spiels zu verbessern, haben dabei aber Vor- und Rückschritte gemacht. Wir sind noch lange nicht am Ziel angelangt.

Aus Spielersicht zeigen sich Performance-Probleme an diesen Stellen:

Client
  • Niedrige Bildrate -> erhöhte Eingabelatenz, große Abstände zwischen einzelnen Bildern (frames)
  • Anzeigelatenz -> erhöhte Eingabelatenz
  • Hänger (Frames dauern ungewöhnlich lange) -> Anzeige erst eingefroren und dann ungewöhnlich schnell
  • Unbeständige Bildrate -> erschwert das Zielen

Server
  • Niedrige Rate für die Verbindungsaktualisierung / niedrige Bildrate -> erhöhte Ping-Dauer
  • Hänger (Frames dauern ungewöhnlich lange) -> Rubberbanding-Effekte

Netzwerk
  • Paketverlust -> Rubberbanding-Effekte
  • Bandbreitensättigung -> Rubberbanding-Effekte
  • Hohe Ping-Dauer -> Rubberbanding-Effekte
  • Paketblockübertragung (packet bursting) (besonders bei WLAN) -> Rubberbanding-Effekte

Rubberbanding-Effekte sind plötzliche Positionskorrekturen aufgrund von unterschiedlichen Positionsbestimmungen des Clients und des Servers. Sie äußern sich bei Spielerbewegungen, ungewöhnlichen Türinteraktionen usw.

Es gibt viele Probleme, die zum Rubberbanding führen und genauso viele Gründe dafür. Zum Beispiel können unsere Server aufgrund von Problemen mit der Programmierung hängen, andere Server auf der gleichen Maschine können negative Auswirkungen haben (Stichwort: störender Nachbar) oder es können Probleme mit dem Host-OS oder Hardware auftreten, welche die Performance verschlechtern, aber nicht zu Ausfällen führen (sog. graue Ausfälle).

Eure Verbindung zu unseren Datenzentren wird in erster Linie davon beeinflusst, wo unsere Datenzentren sind und wie lange euer Ping dahin dauert, aber der Ping wird auch von der Route eurer Datenpakete beeinflusst. Die Verwendung von WLAN führt zu zusätzlicher Latenz und Paketverlust.


Das hier tun wir schon oder müssen wir noch auf Seiten des Monitorings tun:
  • Client-Performance für verschiedene Grafikkarten analysieren, aufgeteilt nach Auflösung und Grafikeinstellungen, damit wir besser beurteilen können, welche Auswirkungen unsere Änderungen haben.
  • Client-Hänger aufzeichnen in Hinsicht darauf, wie sehr das Spielerlebnis beeinflusst wird.
  • Netzwerkpakete vom Server zum Client verfolgen (und die Zeit dazwischen) und in umgekehrter Richtung.
  • Server-Performance und Anzahl verpasster Frames verfolgen. Als erstes Ziel brauchen wir solide 20 Hz.
  • Belastungs-Server-Performance in VM verfolgen, um fehlerhafte Geräte zu identifizieren und auszuwechseln.
  • Pings und Paketverlust nach Region und ISP verfolgen, damit wir anomale Zustände melden können.
  • Situationen verfolgen, die zu Eskalationen führen können. Zum Beispiel Bandbreitenbelastung in Verbindung mit Paketverlusten, was bei uns zu erhöhtem Sendeverkehr führt und so die Situation immer weiter verschlechtert.


Und das wollen wir noch an der Entwicklung verbessern:
  • Performance auf PCs mit Mindestsystemvoraussetzungen (NVIDIA GTX 460, Radeon HD 5570, Intel HD 4000) verbessern. Hier haben wir Rückschritte gemacht, aber mit v1.8 wieder begonnen, sie zu korrigieren. Wir werden mit den Korrekturen fortfahren.
  • Grafikkarten-Hänger auf PC korrigieren und weiter mit Herstellern wie NVIDIA, AMD und Intel zusammenarbeiten, um Performance und Stabilität zu verbessern.
  • Eingabelatenz auf Konsolen verbessern. Verbesserungen wurden mit v1.8 eingeführt - wir erwarten euer Feedback.
  • Unsere Bemühungen fortführen, Konsolen-Performance zu verbessern. Wir haben gemessen, wie viele VSYNCs verpasst werden und wollen, dass weniger als 2 % aller Frames sie verpassen.
  • Hänger im Spiel verringern. Als Hänger betrachten wir einen Frame, der mehr als 60 ms benötigt, wodurch ein ganzer Frame übersprungen wird. Das Ziel ist, weniger als einen pro Minute zu haben und keinen, der mehr als 100 ms dauert.
  • Die übrigen Hänger auf dedizierten Servern beheben. Zum Beispiel kann eine große Anzahl von Spielern, die spät springen, Rubberbanding bei frühen Spielern erzeugen.
  • Server-Performance bei gewöhnlichen Aktionen (z. B. das Erleiden von Schaden) optimieren.
  • Ursachen für Hänger identifizieren, die sich auf die erste Stunde nach Veröffentlichung eines Updates beschränken.
  • Unsere Server und die Netzwerkprogrammierung optimieren, so dass der Spielerzustand zu allen 100 Verbindungen pro Frame geschickt werden kann. Derzeit aktualisieren wir in der Lobby 25 und im Spiel 50 Verbindungen pro Frame. Das heißt, dass das von uns gewünschte Spielerlebnis erst erreicht ist, wenn 50 Spieler übrig sind. Dieses Ziel ist ein sehr wichtiges, das parallel mit anderen Optimierungen verläuft.
  • Unseren Umgang mit Randfällen verbessern, die zu Eskalationen führen können.
  • Unsere Spielersuche so verbessern, dass Traffic dynamisch zu Datenzentren innerhalb der Region geroutet wird. Die Spielersuche soll Ping-orientiert sein und dabei das Spielen mit Freunden ermöglichen.
  • Kluge Köpfe einstellen, die sich gerne diesen technischen Herausforderungen stellen.


Hier sind ein paar Dinge, die ihr selbst ausprobieren könnt:

Sicherstellen, dass die Grafikkartentreiber aktuell sind und notfalls auf die neueste Version aktualisieren.

Wir betreiben unsere Server derzeit auf AWS Datenzentren auf der ganzen Welt. Ihr könnt http://www.cloudping.info/ besuchen und dort eure Ping-Zeiten zu den Datenzentren ausprobieren.
  • NA - Virginia, Ohio 
  • EU - Frankfurt, London
  • OCE - Sydney
  • BR - Sao Paulo
  • ASIA - Tokyo

Riot Games betreibt www.lagreport.com, wo es gute Informationen zu ISP (Internet Service Provicer) gibt. Die Auswirkungen auf Fortnite können variieren.

Wenn Ihr Wlan benutzt und auf eine Lan-Verbindung ausweichen könnt, solltet ihr das mal ausprobieren, um die negativen Effekte von Latenz, Paketverlust und Paketblockübertragung (packet bursting) zu vermeiden.

Die Einstellungen eures Fernsehers können ebenfalls die Latenz beeinflussen und es gibt verschiedene Anleitungen, um die Einstellungen zu verbessern. Hier ist ein Beispiel (Englisch).

PC-Nutzer können Artikel wie diesen (Englisch) benutzen, um nach Hintergrundprozessen zu suchen, die Systemressourcen verbrauchen.