Ich habe die Entwickler gebeten, zu erklären, warum PC-Ports im Jahr 2023 wie Müll laufen
Wenn man sich den Stand der PC-Releases im Jahr 2023 ansieht, kann man leicht mit dem Finger auf andere zeigen. Das Spiel ist nicht optimiert (was auch immer das bedeutet), oder der Herausgeber hat es zu schnell herausgebracht, oder die Grafikkarten, die Nvidia uns verkauft hat, verfügen über zu wenig VRAM . Aber diese Anschuldigungen sind in den meisten Fällen unausgegoren und anmaßend, und obwohl sie auf die Realität hinweisen, erzählen sie nicht die ganze Geschichte.
Ich wollte wissen, was eigentlich los ist, also habe ich mich mit ein paar Entwicklern zusammengesetzt, um den Stand der PC-Spiele zu verstehen und zu erfahren, warum so viele Veröffentlichungen mit so großen Problemen auf den Markt kommen. Noch wichtiger war, dass ich wissen wollte, was Entwickler und Herausgeber tun können, um diese Probleme zu lösen, und obwohl der Weg nach vorne nicht klar ist, wird es offensichtlich, dass Entwickler wissen, dass es ein Problem gibt.
Was ist das Problem?
Zuerst müssen wir das Kernproblem beim PC identifizieren, insbesondere wenn Spiele auf Konsolen in spielbarem (wenn nicht perfektem) Zustand ausgeliefert werden, auf dem PC jedoch schrecklich kaputt ankommen. Auf hoher Ebene ist das Problem der Plattform PC genau das, was sie überhaupt so verlockend macht: Flexibilität.
Marc Whitten, Senior Vice President und General Manager von Unity Create, sagt, dass „die schiere Vielfalt und Variabilität der PC-Konfigurationen, auf denen Spiele gespielt werden … definitiv unerwartete Probleme aufdecken können.“ Whitten weist auch darauf hin, dass „verschiedene Betriebssysteme und neue Treiberaktualisierungen, Hitze und Latenz sowie Benutzeranpassungen“ Faktoren sein können, die bei dem Problem eine Rolle spielen können.
Ich bin mir sicher, dass dies die Antwort ist, die die meisten Menschen als Erklärung annehmen.
Laut Whitten liegt das Problem jedoch nicht im Mangel an Tests selbst. Er behauptet, dass Spiele „im Allgemeinen während der gesamten Entwicklung ausgiebig getestet werden“. Das Problem liegt im Umfang der verschiedenen Konfigurationen, die Entwickler testen müssen, sowie in den Variablen, die sie nicht berücksichtigen können.
Nehmen wir als Gedankenexperiment an, ein Entwickler hat 100 verschiedene PC-Konfigurationen zum Testen festgelegt und dabei CPU, GPU, RAM und Festplatte variiert. Fürs Protokoll: Das ist eine Zahl, die ich nur herausziehe, und nicht etwas, das ein Entwickler tatsächlich als realistisches Ziel bezeichnet hat. Nehmen Sie nun alle diese Konfigurationen und multiplizieren Sie sie mit Dutzenden zusätzlicher Faktoren: Welches Betriebssystem verwenden Sie? Welche Version dieses Betriebssystems? Wie wäre es mit der Treiberversion? Welche BIOS-Einstellungen sind aktiviert? Läuft im Hintergrund Software wie Razer Synapse oder Corsair iCue?
Der Umfang möglicher Konfigurationen geht weit über die CPU und GPU hinaus, die Sie in Ihrem System haben, und diese Faktoren können sich leicht zu Zehntausenden von Szenarien vervielfachen, die Entwickler einfach nicht berücksichtigen können. Im Idealfall können Entwickler die größten Probleme für die gängigsten PC-Konfigurationen mit den neuesten Treiber- und Betriebssystem-Updates beheben, so dass nach dem Start nur noch kleine, spezifische Probleme behoben werden müssen.
Auch Whitten ist mit dieser Meinung nicht allein. John Johanas, Game Director von Hi-Fi Rush und The Evil Within 2, sagt: „Es ist ziemlich unrealistisch zu glauben, dass man ein Produkt entwickeln kann, das auf einer scheinbar unbegrenzten Konfiguration von CPUs, GPUs, Speicher und mehr einwandfrei läuft.“ wahrscheinlich, was im Hintergrund läuft.“
Hideyuki Miyashita, Systemprogrammierer bei Hi-Fi Rush, stimmte zu, verwies jedoch speziell auf die Kosten der Optimierung eines Spiels für jede mögliche Konfiguration: „Im Hinblick auf die PC-Leistung wäre es ideal, jede Grafikfunktion für verschiedene Konfigurationen skalierbar zu machen; Allerdings setzen die Entwicklungskosten eine Obergrenze für eine realistische Skalierbarkeitsunterstützung.“
Das ist keine neue Geschichte. Die große Bandbreite an PC-Konfigurationen ist die häufigste Ursache für alles, von der Schwierigkeit, Spiele auf dem PC zu optimieren, bis hin zu dem Grund, warum wir die Quick Resume-Funktion von Xbox in Windows nicht angezeigt haben. Die Frage ist, was Entwickler trotz der begrenzten Zeit und des begrenzten Geldes tun können. Weil PCs nicht einfacher werden und Spiele immer noch kaputt auf der Plattform ankommen.
Was Sie richtig machen können
Wir haben dieses Jahr viele Beispiele für Spiele, bei denen die PC-Unterstützung falsch funktioniert. Ein Paradebeispiel ist Star Wars Jedi: Survivor , das derzeit auf Steam den Rezensionsstatus „Gemischt“ hat , obwohl es eines der am meisten gefeierten Spiele des Jahres ist. In der Top-Rezension heißt es: „Ein einziger Absturz hat meine 140-Stunden-Speicherdatei mit 99,8 % NG+ beschädigt.“ Huch.
Ich wandte mich an das Entwicklungsteam, um herauszufinden, was schief gelaufen war, und obwohl sie zunächst aufgeschlossen waren, griff EA ein und antwortete nicht mehr auf meine E-Mails. Anstatt also darauf zu achten, was Spiele auf dem PC falsch machen, müssen wir uns ansehen, was Entwickler richtig machen.
Hi-Fi Rush ist eine erstklassige Fallstudie. Es handelt sich um ein neues Spiel von einem AAA-Studio, das die berüchtigte Unreal Engine 4 verwendet. Man könnte meinen, es vergleiche Hi-Fi Rush mit Apfel und Orange mit einem Spiel wie Star Wars Jedi: Survivor, aber sie haben mehr gemeinsam, als man vielleicht vermuten würde verdächtig. Johanas betont: „… die Tatsache, dass das Spiel eine Cartoon-Ästhetik hat, wird einigen Benutzern den Eindruck vermitteln, dass die Ausführung des Spiels auf jedem PC kein Problem darstellen sollte.“ Realistisch gesehen unternimmt das Spiel viele Dinge, um das von uns angestrebte Aussehen und die sich ständig bewegende Welt zu erreichen, die sehr anstrengend ist … Ich wusste das von Anfang an und habe dafür gesorgt, dass wir versucht haben, diese Erwartungen zu erfüllen.“
Dieses Ziel von Anfang an zu setzen, schien für die Stabilität von Hi-Fi Rush wichtig zu sein. Die Entwickler weisen darauf hin, dass es von Anfang an ein Designziel war, mindestens 60 Bilder pro Sekunde (fps) beizubehalten, da es sich sowohl um ein Rhythmusspiel als auch um ein Actionspiel handelt, bei dem ein Unterschreiten dieser Marke zu „Schluckaufen“ führen würde ] könnte zu einer Diskrepanz zur Musik und einem wahrgenommen schlechten Spielerlebnis führen“, so Johanas.
Wie hat das Team von Tango Gameworks das geschafft? Im Großen und Ganzen läuft es auf drei Hauptpunkte hinaus: sorgfältige VRAM-Überwachung, asynchrone Vorgänge und PSO-Caching.
Laut Kosuke Tanaka, leitender Grafikprogrammierer bei Hi-Fi Rush, überwachte das Team die VRAM-Nutzung während jedes Entwicklungsschritts. Dazu gehört natürlich die Überwachung jedes Levels, aber auch die VRAM-Nutzung jedes Grafikbereichs, wobei die Künstler aufgefordert werden, die Textur- oder Mesh-Speichernutzung zu senken, um sie in das Budget des Spiels einzuhalten. Auch in der Spieleentwicklung ist das keine Seltenheit.
Was für Hi-Fi Rush spricht, ist seine starke künstlerische Ausrichtung. Tanaka betont: „Unser Kunststil hat uns ein wenig geholfen, weil wir keine traditionellen PBR-Texturen wie Normal Maps, Roughness Maps oder Metallic Maps benötigen.“ Es ist ein Beweis dafür, dass man mit kreativen Einschränkungen arbeitet und wie sich diese auf die Stabilität des Endprodukts auswirken können. Johanas sagt, es ginge nicht um einen kleineren Umfang – es ging darum, „keinen Grund zu haben, ohne Grund groß rauszukommen“.
Ich habe das Team gefragt, was es aus Hi-Fi Rush gelernt hat und was es in größere, umfassendere Projekte einbringen könnte, aber das ist nicht gerade die Art und Weise, wie Tango Lehren aus dem Spiel zieht. Tatsächlich erzählte mir das Entwicklungsteam, dass es viel mehr über die Optimierung von Ghostwire: Tokyo gelernt habe, das eher in die traditionelle AAA-Form passt, und dass es diese Ideen in Hi-Fi Rush übernommen hat, nicht umgekehrt.
„Wir haben aus unserer Erfahrung bei der Optimierung von Ghostwire: Tokyo viel über den Umgang mit Spielruckeln in Hi-Fi Rush gelernt“, erzählte mir Miyashita. Ein großer Teil davon war das Pipeline State Object (PSO)-Caching . Hierbei handelt es sich um eine in Unreal Engine 4 verfügbare Funktion, die dazu beiträgt, Stottern zu reduzieren, indem Shader vor dem Ausführen des Spiels vorkompiliert werden.
Das Hauptproblem besteht darin, dass Unreal Engine 4 dies nicht automatisch durchführt, was zu Situationen führt, in denen die Shader kompiliert werden müssen, während Sie das Spiel spielen, was zu Rucklern führt. Miyashita sagt: „Dies führte dazu, dass einige Nachbearbeitungsprozesse und visuelle Effekte zu Stottern führten.“ Der Programmierer sagt auch, dass PSO-Caching optional ist und daher ein besonderer Schwerpunkt für den Entwickler sein muss.
Allerdings löst Caching nicht jedes Problem, und hier kommen asynchrone Vorgänge ins Spiel. Das Hi-Fi Rush- Team nutzte die asynchrone Kompilierung – bei der Shader getrennt vom Spiel-Thread kompiliert werden –, aber angesichts der Laufzeit des Spiels war dies auch ein großer Schwerpunkt Unreal Engine 4.
Wie wir bei anderen Unreal Engine 4-Spielen wie Star Wars Jedi: Survivor und Redfall gesehen haben, ist die Engine bei der Skalierung auf die vielen Threads, die auf modernen CPUs verfügbar sind, nicht besonders gut. Miyashita erklärt: „Wie schwierig die Unterstützung von Multithreading sein kann, hängt stark von der Architektur der verwendeten Engine ab. Leider bleibt UE4 in dieser Hinsicht etwas zurück.“
Insbesondere platziert Unreal Engine 4 nach Angaben des Entwicklers die Erstellung von Schauspielern (Objekten/Charakteren) und Widgets (Benutzeroberfläche und Overlay) im selben CPU-Thread wie das Spiel. Das bedeutet, dass jedes Mal, wenn das Spiel beispielsweise einen neuen Charakter laden möchte, dieser Vorrang im Thread hat. Miyashita sagt: „Dies kann dazu führen, dass die komplexe Erstellung von Schauspielern und Widgets den Spielthread für lange Zeit blockiert.“ Das ist ein Stottern.
Die Lösung sind asynchrone Operationen. Miyashita sagt, dass das Team Analysetools verwendet, um herauszufinden, was die CPU macht, wenn Objekte eingebracht werden, und dass sie sich bemühen, diese Aufgaben in andere Threads zu verschieben, damit das Spiel nicht langsamer wird. Dieses spezifische Targeting kann auch beim Ressourcenladen helfen. Durch die Verlagerung dieser Vorgänge in eine parallele Struktur können die Fallstricke von Streaming-Rucklern vermieden werden, die in Spielen wie Dead Space auftreten.
Der Weg in die Zukunft für PC-Ports
Die Entwicklung der Spiele, die heute in einem katastrophalen Zustand auf den Markt kommen, begann schon vor Jahren. Obwohl ich also hoffe, dass sich die PC-Veröffentlichungen im Laufe des Jahres verbessern werden, kann es mehrere Jahre dauern, bis diese Kernprobleme behoben werden.
Whitten sagt, dass „Entwickler genauso auf die Leistung bedacht sind wie Spieler“, und das habe ich schon mehrmals gehört. Es gibt Möglichkeiten, PC-Releases zu optimieren, von Pre-Caching-Shadern über asynchrone Vorgänge bis hin zur Validierung auf einer Vielzahl von Hardware. Die Realität ist jedoch, dass Entwickler aus Zeit- oder Geldgründen und in der Regel aus beidem nicht alles berücksichtigen können.
Der Weg dorthin ist einfach. Teilen Sie den Herausgebern dieser Spiele zunächst mit, dass Ihnen eine Verzögerung lieber ist als ein kaputtes Spiel. Entwickler anzuschreien wird nicht viel bringen – sie kennen das Problem bereits und würden es wahrscheinlich genauso gern gelöst haben wie Sie. Zweitens: Seien Sie vorsichtig, wenn Sie am Tag der Veröffentlichung ein neues PC-Spiel kaufen. Es ist schwer, geduldig zu sein, wenn man sich auf etwas freut (glauben Sie mir, ich weiß), aber mit dem Kauf eines Spiels zu warten, bis die Probleme behoben sind, ist ein starkes Signal an die Verlage, mehr Zeit und Ressourcen zu investieren, um sicherzustellen, dass die Spiele auf dem neuesten Stand sind auf dem PC.
Man vergisst leicht, dass es sich hier noch um Neuland handelt. Heute kommen Spiele mehr denn je am selben Tag auf den PC, an dem sie auf die Konsolen kommen, ganz anders als noch vor ein paar Jahren, als PC-Ports Monate (oder sogar Jahre) später kamen. Vor zwei Konsolengenerationen wurden die meisten Spiele nur am selben Tag auf einer Plattform ausgeliefert; in der Vorgängergeneration waren es zwei. Jetzt wird von den Entwicklern erwartet, dass sie mindestens am selben Tag auf drei Plattformen liefern, manchmal sogar auf fünf, wenn sie eine Last-Gen-Version haben.
In diesem Kontext ist es nicht schwer zu erkennen, warum es auf dem PC Probleme gibt, aber hoffentlich sind weitere ausgefeilte Veröffentlichungen in Vorbereitung.
Dieser Artikel ist Teil von ReSpec – einer fortlaufenden zweiwöchentlichen Kolumne, die Diskussionen, Ratschläge und ausführliche Berichterstattung über die Technologie hinter PC-Gaming enthält.