UEFN Stabilität-Update

Hallo, zusammen!

Wie die meisten von euch bereits wissen, hat die kürzlich erschienene Fortnite-Version 32.00 mehrere Stabilitätsprobleme und Rückschritte mit sich gebracht. Zu den erheblichen Störungen gehört, dass Spieler nicht auf manche UEFN- und Fortnite-Kreativmodus-Inhalte zugreifen können, dass das UEFN- und Creator-Portal nicht mehr für Spieler verfügbar ist, sowie Bugs bei einigen Features.

Mit V.32.10 gab es mehrere Stunden, in denen UEFN-Inhalte und -Werkzeuge nur vorübergehend verfügbar für Spieler und Creators waren.

Diese Releases entsprachen nicht unseren Standards, was zu vielen internen Diskussionen führte, wie diese Probleme unbemerkt blieben und was wir in Zukunft an unseren Arbeitsprozessen verbessern können.

Es ist schwierig, das Fortnite-Ökosystem schnell zu entwickeln und zeitgleich für Stabilität und Kompatibilität in einer Vielzahl von Features und Erlebnissen zu sorgen, doch wir sind entschlossen, uns dieser Probleme anzunehmen. Das bedeutet, dass wir aus unseren Fehlern lernen und Verantwortung übernehmen müssen. Wir wollen außerdem transparent bei den erheblichen Problemen sein, mit denen Creators neuerdings zu kämpfen haben, sowie mit unseren Antworten darauf und mit den Änderungen, die wir implementieren werden.

Entsprechend findet ihr unten eine Zusammenfassung der erheblichsten Probleme aus V.32. Jede Zusammenfassung führt das Problem, die Ursache, die Auswirkungen und die Änderungen, die wir basierend auf dem Gelernten implementieren werden auf.

Dies sind nicht die einzigen Fehler in V.32.00 und V.32.10, sondern die Fehler mit Auswirkungen für das gesamte Ökosystem, die Epics internes Vorgehen für kritische Vorfälle ausgelöst haben.

Problem: Inhaltsdienst-Verschlechterung (32.00 & 32.10)

Der Inhaltsdienst ist unser internes System, das alle im Fortnite-Kreativmodus und in UEFN erstellten Inhalte verfolgt, darunter Metadaten wie Versionen und Veröffentlichungsstatus. Es fungiert im Grunde als eine Art „Verzeichnis des Metaversums“ und ist essenziell für die Funktionalität von Fortnite und UEFN.

Während wir unsere Verwendung von UEFN bei Epic ausbauen, müssen wir uns auch zunehmend auf den Inhaltsdienst verlassen.

In Update V.32.00 haben Änderungen am Client und Server von Fortnite versehentlich dazu geführt, dass der Inhaltsdienst erheblich stärker ausgelastet war – an einem Punkt 10-mal so stark wie normalerweise. Diese Erhöhung hat ein Problem hervorgebracht, dass zu Fehlern führte, während der Inhaltsdienst versuchte, das erhöhte Datenaufkommen zu verarbeiten, was sich wiederum auf mehrere Bereiche der Funktionalität von UEFN und des Fortnite-Kreativmodus auswirkte.

Versuche, den Dienst neu zu konfigurieren oder hochzuskalieren, waren nicht erfolgreich, und es gab keine sofort ergreifbare Maßnahme, mit der das Verhalten des Clients oder des Servers beeinflusst werden konnte. Zum Glück war unser Ökosystem-Sicherheitsteam in der Lage, unsere Firewall so zu konfigurieren, dass das Datenaufkommen auf ein tragbares Niveau gebracht werden konnte, wodurch sich unsere Server erholen konnten.

Wir dachten, das übermäßige Datenaufkommen von Client und Server in 32.10 behoben zu haben, doch am Tag der Veröffentlichung gab es ein natürliches Datenaufkommen, das die Leistung des Inhaltsdienst erneut beeinträchtigte. Dieses Mal blieb der Dienst verfügbar, doch der Zugriff auf Creator-Inseln und UEFN-Funktionen war mehrere Stunden lang unzuverlässig. Fortnite Reload war während dieser Zeit ebenfalls nicht verfügbar.

Auswirkungen: Einige Fortnite-Inhalte, darunter Reload, Jam-Songs und Creator-Inseln, waren von 8:00 Uhr MEZ bis 19:00 Uhr MEZ nicht verfügbar, als 32.00 am 2. November veröffentlicht wurde.

Am 13. November fand die Veröffentlichung von 32.10 statt, wodurch der Zugriff auf Creator-Inseln und die UEFN-Funktionalität ungefähr zwischen 13:00 Uhr MEZ und 19:00 Uhr MEZ eingeschränkt war. Zu der Zeit konnten Spieler ungefähr zu 70 % erfolgreich Inseln betreten. Fortnite Reload war während dieser Zeit nicht verfügbar.

Änderungen: Wir arbeiten mit Eifer daran, dieses Skalierungsproblem zu beheben, und sind überzeugt davon, dass wir für den Rest des Jahres gut gerüstet sind.
Wir erhöhen außerdem unsere Analyse des Datenverkehrs von Client und Server vor bevorstehenden Veröffentlichungen, um versehentlich eingeführte Fehler früher zu erkennen.

Problem: Verlust des Fortbestands (32.00)

Kurz nachdem die Funktionalität des Inhaltsdiensts wiederhergestellt wurde, berichteten mehrere Creators, die Fortbestand nutzen, dass bestimmte Gegenstandsarten in ihren Inventaren fehlten.

Unsere Untersuchung ergab, dass einige Fortnite-Inhalte für eine bevorstehende Initiative neu organisiert wurden. Diese Neuorganisierung sorgte dafür, dass verfolgte Gegenstände wie zum Beispiel Diamanten einen neuen Asset-Pfad besaßen, wodurch sie im Inventar als neue Gegenstände ohne Anzahl angezeigt wurden. Obwohl Unreal Engine ein System zum Umgang mit bewegten Assets besitzt (Redirectors), sorgte ein Fehler in unserem Fortbestand-Code dafür, dass die Umleitung nicht angewendet wurde.

Um das zu beheben, verfolgten wir zwei Hauptansätze:

  1. Das Problem beheben, um Datenverlust für neue Spieler zu verhindern.
  2. Inventare von bereits betroffenen Spielern wiederherstellen.

Für die erste Aufgabe mussten wir einen neuen Server erstellen, testen und einsetzen. Dies dauert in der Regel weniger als 24 Stunden, doch aufgrund einer Reihe verschiedener Faktoren – darunter unser Bestreben, Änderungen zum Beheben anderer Probleme einzuführen – wurde der neue Server erst drei Tage später am 5. November eingesetzt. Wir sind uns bewusst, dass dies ein absolut inakzeptables Zeitfenster für ein Problem dieser Größenordnung ist.

Für die zweite Aufgabe mussten wir ein Skript erstellen, dass die Inventare von Spielern wiederherstellt, die nach dem Release von V.32.00 auf einer Insel gespielt haben, um so ihr Inventare zu korrigieren. Die Wiederherstellung ist eine schwierige Entscheidung in dieser Situation, da sich die Auswirkungen von Insel zu Insel unterscheiden, und die Wahl, ob es besser ist, die Daten wiederherzustellen oder mit den neuen Daten fortzufahren, hängt davon ab, wie schwerwiegend die Auswirkungen ausfallen und wie lange die Wiederherstellung dauert.
Wir haben Creators, die Auswirkungen meldeten, die Wiederherstellung angeboten und mit der Wiederherstellung von Spielerdaten auf diesen Inseln am 6. November um 20:00 Uhr MEZ begonnen. Der Vorgang wurde am 7. November um 21:00 Uhr MEZ abgeschlossen.

Änderungen: Obwohl wir ein automatisches System haben, das meldet, wenn Assets entfernt werden (Gegenstände auf Creator-Inseln „verschwinden“ beispielsweise nicht einfach), hat uns dieses System nicht darüber informiert, dass Assets bewegt wurden. Wir werden das System aktualisieren, damit es auch bewegte Assets meldet.
Zusätzlich arbeiten wir für zukünftige Versionen von Fortnite an Automatisierungsoptionen, die melden, wenn in Inventaren gespeicherte Gegenstände nicht geladen werden. Dabei handelt es sich allerdings um ein schwieriger zu lösendes Problem, für das wir mehr Zeit benötigen.

Schließlich war wie oben erwähnt die Zeit, die das Einsetzen des Servers mit der Fehlerbehebung gedauert hat, inakzeptabel. Dies ist ein Vorgang, den wir ebenfalls verbessern werden.

Problem: Allgemeine Client-Instabilität (32.00)

Uns fiel schnell auf, dass Client-Abstürze auf allen Plattformen drastisch zunahmen.

Die Hauptursache hierfür war eine Änderung in Update 32.00, die Fehler mit dem Deaktivieren von Waffenschaden in Mutatorzonen beheben sollte. Diese Änderung führte eine Wettlaufsituation ein, bei der zwei Threads gleichzeitig auf ein Array zugreifen konnten. Je nach Timing und Spieleraktionen während Respawns konnte dies zu einem Absturz führen.

Da diese Abstürze beim Client auftraten und nicht über Serveranpassungen behoben werden konnten, mussten wir einen Client-Patch auf allen Plattformen veröffentlichen. Das Erstellen von Client-Patches erfordert mehr Zeit sowie Zertifizierung auf bestimmten Plattformen, weswegen das Update erst am 16. November verfügbar war.

Auswirkungen: Clients auf allen Plattformen waren in Update V.32.00 wesentlich instabiler.

Änderungen: Während der Entwicklung jedes Releases von Fortnite verfolgen und beheben wir bekannte Absturzprobleme. Unsere Untersuchung fand keine vorherigen Vorfälle dieses Absturzes, selbst nach ausgiebigen Tests. Selbst nachdem wir die Ursache identifizieren konnten, war uns das Replizieren des Problems intern nicht möglich.

Diese Herausforderung mit „Problemen bei der Skalierung“ ist nichts Neues. Beispielsweise könnte ein Absturz, der nur in 0,01 % der Fälle auftritt, während der Entwicklung nicht auftreten. Doch wenn ein Spiel täglich eine Million Spieler hat, könnte dies jeden Tag zu 10.000 Abstürzen führen.

Um dieses Problem zu beheben, planen wir den zunehmenden Einsatz von „Bereinigungs-Builds“ während unserer Tests. Diese Builds haben verstärkte Erkennungsfunktionen für Speicherzugriffsprobleme, selbst wenn diese nicht sofort zu Abstürzen führen. Obwohl wir nicht garantieren können, dass diese Methode die aufgetretenen Probleme rechtzeitig identifiziert hätte, können wir somit sehr wahrscheinlich ähnliche Probleme in Zukunft vermeiden.

Problem: Der Editor stürzt beim Laden von Projekten ab (32.00)

Als Update 32.00 veröffentlicht wurde, erreichten uns schnell Berichte von Creators, die Editor-Abstürze beim Öffnen ihrer Projekte erlebten. Ursprünglich gingen wir davon aus, dass diese Abstürze mit den bereits bekannten Verschlechterungen des Inhaltsdiensts zusammenhängen, mussten jedoch bald feststellen, dass es sich um ein separates Problem handelte.

Die Diagnose des Problems war herausfordernd, da es mit einem Absturz der Grafiktreiber zusammenhing, wodurch die Menge der zur Ursache verfügbaren Informationen begrenzt war. Nach der Identifizierung dieses Problems haben wir Creators empfohlen, als vorübergehende Lösung UEFN auf Direct3D 11 umzustellen.

Die Hauptursache war schließlich auf Projekte zurückzuführen, die eine große Anzahl von Start-Warnungen im „Toast“-Popup in der unteren rechten Ecke anzeigten. Jeder Warnhinweis verwendete unverhältnismäßig viel Speicher für das Rendering. Wenn zu viele Warnungen erschienen, konnte der verwendete Speicher an seine Grenzen geraten und so zu einem Absturz führen.

Zum Glück können wir UEFN unabhängig von Fortnite aktualisieren und waren deshalb in der Lage, bereits am nächsten Tag ein Update zu veröffentlichen.

Frustrierenderweise war dies ein Fehler, der einem internen UEFN-Nutzer in einer frühen Version von 32.00 aufgefallen war, doch da die Entwickler den Fehler nicht nachbilden konnten, wurde die Fehlermeldung geschlossen.

Auswirkungen: Mehrere Hundert UEFN-Abstürze sind in den ersten acht Stunden nach dem Release aufgetreten.

Änderungen: Während unserer Nachbesprechung haben wir angemerkt, dass unsere Rechner oftmals wesentlich bessere Hardware als die Computer unserer Spieler besitzen, insbesondere in Hinsicht auf den Videospeicher.

Zuvor konzentrierten sich unsere Kompatibilitätstests auf die Erfahrung neuer Spieler und weniger auf die Arbeit in UEFN mit großen Projekten. Wir planen, in Zukunft größere interne Projekte verstärkt mit Geräten zu testen, die eher den Mindestanforderungen und den Geräten von Konsumenten entsprechen, um potenzielle Probleme besser zu identifizieren.

Wir hoffen, dass euch diese Zusammenfassung ein besseres Verständnis von den Ursachen der Probleme vermittelt, mit denen ihr nach dem Release von 32.00 vielleicht zu kämpfen hattet. Es ist uns sehr wichtig, Creators eine stabile Umgebung zu bieten, in denen sie Erlebnisse, die Spieler aufregend finden, erstellen und unterstützen können.

Unsere Ziele sind die weitere Verbesserung unserer Systeme und Prozesse, das Verzeichnen von Problemen, denen ihr begegnet, und die regelmäßige Kommunikation zu Dingen, an denen wir arbeiten, um UEFN und den Fortnite-Kreativmodus besser für alle zu machen.

Vielen Dank
Andrew