Inside Immortals of Aveum: das Tech-Interview von Digital Foundry

Blog

HeimHeim / Blog / Inside Immortals of Aveum: das Tech-Interview von Digital Foundry

Jul 03, 2023

Inside Immortals of Aveum: das Tech-Interview von Digital Foundry

Hinter den Kulissen des ersten nicht-epischen Spiels, das mit allen Next-Gen-Funktionen der Unreal Engine 5 ausgeliefert wird. Aus technologischer Sicht ist Immortals of Aveum von Ascendant Studios ein äußerst wichtiges Spiel.

Hinter den Kulissen des ersten nicht-epischen Spiels, das mit allen Next-Gen-Funktionen der Unreal Engine 5 ausgeliefert wird.

Aus technologischer Sicht ist Immortals of Aveum von Ascendant Studios ein äußerst wichtiges Spiel. Abgesehen von Fortnite, das von Epic Games selbst entwickelt wurde, ist es das erste Triple-A-Spiel, das mit allen hochmodernen Funktionen der Unreal Engine 5 ausgeliefert wird. Das ist das auf Mikrogeometrie basierende Nanite, das erstaunliche Detaillierungsgrade ermöglicht, zusammen mit Lumen – einer auf Raytracing basierenden globalen Beleuchtungslösung plus virtuellen Schattenkarten. Vor Fortnite war The Matrix Awakens die einzige konsolenbasierte UE5-Version, die wir mit diesen Funktionen gesehen haben – sie sah toll aus, hatte aber offensichtliche Leistungsprobleme.

Ascendant nutzt nicht nur alle UE5-Funktionen, sondern strebt auch 60 fps auf Konsolen an. Es ist also ein sehr ehrgeiziges Spiel, aber wie der gestrige DF-Testbericht zeigte, kann die GPU-Rechenleistung nur bis zu einem gewissen Grad reichen, sodass die Bildqualität zwangsläufig Einbußen erleiden muss, wobei FSR 2.2.1 zum Hochskalieren von einer Basisauflösung von 720p auf Xbox Series X und PlayStation verwendet wird 5.

Als wir in den Review-Prozess gingen, waren wir hochmotiviert, mehr darüber herauszufinden, was das Spiel ausmacht. Als EA uns die Gelegenheit bot, mit dem Entwicklungsteam zu sprechen, ergriffen wir die Chance sofort. Alex Battaglia und Tom Morgan sprachen mit Mark Maratea, Julia Lichtblau und Joe Hall von Ascendant Studios – und hier ist das Gespräch.

Wie lange ist Immortals schon in der Entwicklung – und bestand schon immer die Idee, etwas zu produzieren, das einem magischen Ego-Shooter ähnelt, oder hat sich das im Laufe des Projekts weiterentwickelt?

Mark Maratea : Das Unternehmen wurde gegründet, um dieses Spiel zu entwickeln, und es hat viel Zeit gekostet, sich weiterzuentwickeln ... dann kam Covid, sodass die [aufgewendete] Personalbeschaffung zu einem sehr interessanten Zeitraum wurde. Dieses Spiel ist in jeder Hinsicht fünf Jahre alt.

Julia Lichtblau : Ein paar Monate nachdem Brett [Robbins] das Studio tatsächlich gegründet hatte, überreichte er Dave Bogan, dem leitenden Art Director, und mir dieses 60-seitige Pitch-Dokument, bei dem es sich angeblich um einen Magic Shooter handelte. Die Grundidee war [Protagonist] Jack und dieser große Handlungsbogen. Offensichtlich haben sich die Dinge irgendwie geändert, wie zum Beispiel die Feinheiten des Kampfes, aber er wusste, dass Brett wusste, dass er dieses magische Shooter-Spiel machen wollte, weil es etwas war, das es vorher nicht gab, und es ein Spiel war, das er unbedingt spielen wollte und wollte machen.

Aufgrund des Timings würde ich mir vorstellen, dass das Spiel nicht auf der Unreal Engine 5 startete, da es diese nicht gab – startete es also auf der Unreal Engine 4 und wurde es auf UE5 migriert? Wie war das?

Mark Maratea : Das Projekt begann mit UE 4.20, das im Juli herauskam, und das Unternehmen wurde im August [2018] gegründet. Als das Unternehmen gegründet wurde, wurde alles in Blaupausen ohne Änderungen am Motorcode erstellt, als ob es sich um ein kleineres Indie-Projekt handelte, um einen Prototypen zu erstellen ... Das hätte sich ändern können; Die Realität der Geschäftsentscheidungen in diesem Zusammenhang ist, dass, wenn jemand drei Monate später als Verleger aufgetreten wäre und gesagt hätte: „Sie kommen, aber Sie verwenden Frostbite oder was auch immer“, das einen Pivot [erforderlich] gemacht hätte. Wir haben das Glück, über eine sehr großzügige Finanzierungsquelle zu verfügen ... einen großartigen Partner, der uns die Autonomie gibt, diese Entscheidungen zu treffen. Wir begannen mit Vanilla 4.20, Vanilla 4.21, 4.23 Custom Engine, 4.25, 4.26, UE5 Preview, UE5 Actual, UE5.1 und liefern jetzt als UE 5.1.1 aus.

Sie haben also erwähnt, dass Sie mit Blaupausen und minimalen Codeänderungen begonnen haben, aber mit der Umstellung von 4.23 auf eine benutzerdefinierte Engine. Welche größeren Änderungen führten zu Abweichungen?

Mark Maratea : Wissen Sie, der Anfang all dieser Änderungen war in der Regel „...und dann fragte ein Designer oder Künstler nach dieser unmöglichen Sache, und so mussten wir einen Motorwechsel vornehmen.“ Insbesondere beim Ruinen-Level mussten wir aufgrund der Art und Weise, wie das Level angelegt war, etwas Magie in die UE4-Version einbauen; Wir mussten tatsächlich die Sonne am Himmel verschieben. Das hört sich nicht nach einer großen Sache an, bis man bedenkt, dass UE4 auf gebackener Beleuchtung basiert, also wurde das tatsächlich zu einer großen Sache und erforderte viel Arbeit.

Bei diesem Spiel handelte es sich immer um 10 Pfund Wild in einem 5-Pfund-Beutel. Unser Kampfsystem hat sich weiterentwickelt und ist zum Ursprung vieler unserer Engine-Änderungen geworden, da wir unser Kampfsystem auf dem Unreal Gameplay Ability System aufgebaut haben, das für ein MOBA entwickelt wurde. Es ist ein guter Rahmen für ein netzwerkrepliziertes Fähigkeitssystem und wir verwenden es für alle Waffentypen im Spiel – Schnellfeuerwaffen, gezielte und kontrollierte Waffen – wir sind also wirklich über die Grenzen dieses Systems hinausgegangen. Die ersten großen Änderungen bestanden also darin, das Spielbarkeitssystem des Spiels so zu gestalten, wie wir es uns für den Kampf wünschen.

Das nächste große Ding war die Zusammensetzung der Welt – wie streamt das Spiel [Daten], wo läuft alles live? Wir haben große Änderungen an diesem System vorgenommen, um diese extragroßen Welten und den Übergang durch sie unterzubringen und sie innerhalb unseres Speicherbudgets zu halten ... und dann passiert die Magie von UE5, und die Weltkomposition existiert nicht mehr, weil sie veraltet ist . Wie Sie sich vorstellen können, war das ein Übergang für uns alle – insbesondere für die Technik, alle unsere Content-Teams, Level-Künstler und Level-Designer. Das war, als wir sagten: „Hier ist die neue Bibel, wie man ein Spiel baut“, und sie sagten: „Erstens müsst ihr schreiben lernen … und zweitens: Das ist verrückt.“ Es war ein riesiges Innovationsprojekt auf Studioebene. Wir mussten Prototypen entwickeln, was der richtige Weg war, die Regeln festlegen, herausfinden, was Epic nicht richtig gemacht hat, die Funktionsweise unseres Spiels ändern, die Regeln neu schreiben, und das war ein fortlaufender Prozess Prozess bis in die letzten sechs Monate.

Wir haben 5.1 über Weihnachten genommen und ich habe meine Weihnachtsferien damit verbracht, [diese Version] zu integrieren ... als wir auf 5.1 umgestiegen sind, konnten wir keine Assets in das Spiel laden, also musste ich im Grunde den gesamten Asset Loader in zwei Tagen neu schreiben Tun Sie das nicht, damit wir nicht alle Fortschritte verlieren.

Das sind doch die Kosten dafür, auf dem Laufenden zu bleiben, nicht wahr?

Mark Maratea: Ja, aber es hat sich absolut gelohnt.

Haben Sie irgendwelche Shader-Pre-Caching-Funktionen aus 5.11 oder 5.2 ausgewählt?

Ich bin gerade mitten in einer Slack-Diskussion darüber, ob wir etwas aus 5.2 übernehmen müssen, um hier zu helfen. PSO-Caching in 5.1 funktioniert also, aber wenn Sie in den Code gehen, ist die erste Zeile ein Kommentar mit der Aufschrift „Das funktioniert nicht, verwenden Sie das nicht“, und es gibt frühe Ausgänge, um zu anderen Codeabschnitten zu gelangen . Sie haben versucht, einen adaptiven Pre-Cache zu erstellen, der beim Freigeben von Assets zu Speicherlecks und schließlich zu Abstürzen führte – was schlecht ist –, aber in 5.2 ist das alles behoben. Leider befinden wir uns genau an der Schwelle zwischen der Version 5.1.0 und der Version 5.2, die jeweils auf eine bestimmte Weise funktionieren, und der Version 5.1.1, die versucht wurde, zum Laufen zu bringen, aber nicht ganz funktioniert.

Daher mussten wir einige Dinge ändern. Wir verwenden PSO-Pre-Caching in Kombination mit dem normalen DX12-Cache. In der Dokumentation von [Epic] gibt es eine Wegwerfzeile, die besagt: „Wenn Sie PSO-Caching durchführen, werden standardmäßig alle PSOs, die es finden kann, zwischengespeichert und dann alle auf einmal geladen.“ Und dieser Teil „Alle auf einmal laden“ [ist problematisch]. Wir haben viele Shader in unserem Spiel, wir haben ein unglaubliches, anderes System entwickelt, das dynamische Verzweigung verwendet, und wir haben tatsächlich einen Teil der Shader-Pipeline neu geschrieben, wodurch wir unsere Renderzeiten um 3–4 ms verkürzen, ein wirklich ernstes Geschäft. Der Nachteil ist, dass dadurch die Shader-Permutationen erhöht werden, sodass wir 5,7 Millionen Shader mit vollständigen Permutationen haben ... das generiert 563.000 PSO-Objekte, sodass beim Starten des Spiels versucht wird, eine halbe Million PSOs zu laden.

Erklärt das, was ich gesehen habe, als ich das Spiel ohne die .ini-Datei geladen habe? [Hinweis: Der PC-Überprüfungscode wurde ohne eine entscheidende .ini-Datei ausgeliefert, was dazu führte, dass anfängliche Probleme schnell behoben wurden.] Ich bin es gewohnt, dass die CPU [bei der Shader-Vorkompilierung] auf Hochtouren läuft, aber hier war es wie bei der CPU Es fällt mir schwer, überhaupt die volle Auslastung zu erreichen.

Mark Maratea : Ja, es ist alles I/O. Es ist sozusagen die schlechteste Version von I/O, weil Sie die PSOs aus dem Cache in den Speicher laden, sie verarbeiten und wieder auf Ihrem Laufwerk C: speichern. Und so umgehen Sie alle Optimierungen, weil es auf ein anderes Laufwerk verschoben werden muss – die meisten Leute haben ihre Steam-Bibliothek nicht mehr auf ihrem Laufwerk C: – und Sie umgehen DMA-Dinge und DirectStorage funktioniert nicht. Sie nehmen also eine kleine Strafe hin.

Sie haben DirectStorage erwähnt – verwenden Sie es auf Xbox Series-Konsolen oder PCs?

Mark Maratea : Ja, wenn [DirectStorage] vorhanden ist, wird Unreal automatisch versuchen, es zu nutzen. Wir nutzen auch asynchrones Computing, was in Verbindung mit DirectStorage eine wunderbare Geschwindigkeitssteigerung darstellt, da es uns ermöglicht, Compute-Shader direkt auf die GPU zu laden und dann magische Berechnungen durchzuführen, um das Spiel besser und beeindruckender aussehen zu lassen. Dadurch können wir GPU-Partikel von Niagara ausführen, ohne die CPU asynchron zu belasten und den Spielthread nicht zu treffen.

Ich habe die ersten 25 Minuten des Spiels gespielt und hatte keine Probleme mit der Shader-Kompilierung, was bei einem Unreal Engine-Spiel selten vorkommt.

Mark Maratea : Im gesamten Spiel wird es keine PSO-Störungen geben. Ich sage das jetzt laut, öffentlich, es ist aufgezeichnet.

Wie war es, Nanite im Spiel zu implementieren, und wie war es im Vergleich zum üblichen LOD-Authoring? War es einfach, damit zu arbeiten?

Julia Lichtblau : Auf der künstlerischen Seite haben wir tatsächlich mit der Entwicklung dieses Spiels in Unreal 4 begonnen, daher sind viele unserer frühen Kits entlang dieser traditionellen Pipeline entstanden. Als wir auf Nanite und UE5 umgestiegen sind, gab es viel Aufregung, weil wir viel mehr Details in die Assets selbst packen konnten ... [Ursprünglich] gab es ein High-Poly-[Modell], das in ZBrush erstellt wurde und in das eingebettet wurde Klassische Textur und Material, um die Form zu erhalten und gleichzeitig eine niedrige Polyanzahl beizubehalten. Aber als wir zu Nanite wechselten, konnten wir plötzlich wieder auf die High-Poly-Assets zurückgreifen. Herauszufinden, wie man etwas von dieser Dichte auspacken kann, erforderte auf jeden Fall ein großes Überdenken des Arbeitsablaufs, denn jetzt hat man es mit so viel mehr Polygonen zu tun, in Millionenhöhe ... Sobald es in der Engine war, war es einfach unglaublich damit anzufangen, Millionen und Abermillionen von Polys in die Engine einzubauen, damit sie nicht völlig abstürzt.

Beim Import kam es ein paar Mal vor, dass die Nanite-Flagge manchmal nicht hängen blieb und wir ein Bücherregal im Wert von mehreren Millionen Exemplaren neu importierten und uns fragten, warum die Engine stotterte, wenn wir in diese Richtung blickten. Man könnte sehen, dass Unreal nicht weiß, wie man damit umgeht, aber sobald man das Kästchen ankreuzt, kümmert es sich einfach um alles. Es führt die Art von dynamischen LODs und Clustern gerade so weit aus, dass unser Arbeitsablauf deutlich beschleunigt wurde, und es war ziemlich erstaunlich, in die Nanite-Ansicht zu springen und zu sehen, wie die Cluster in Echtzeit angepasst werden und wie sie optimiert werden. Dadurch konnten wir dieses Spiel mit diesem kleinen Team viel schneller entwickeln.

Wie haben Sie entschieden, was über Nanite geschehen soll?

Julia Lichtblau : Als wir zum ersten Mal auf Unreal [5] umgestiegen sind, haben wir Nanite auf alles aktiviert, was wir konnten. Ich denke, 5.0 war nicht [kompatibel mit] Blattwerk, das kam etwas später, aber sobald wir Nanite-Blattwerk haben konnten, haben wir es aktiviert. Dann fingen wir an, uns davon zurückzuziehen und [fragten]: „Muss das wirklich Nanite sein?“ Wir sind auf einige Assets gestoßen, die aufgrund ihrer Konstruktion und der Art und Weise, wie die UV-Hüllen eingerichtet wurden, [problematisch waren], also mussten wir einige dieser Assets überarbeiten, um sie mit Nanite funktionsfähig zu machen, oder sie komplett ändern und zum Original zurückkehren traditionelle Methode. Wir konnten [Nanit] nicht für Dinge verwenden, die sich bewegen würden, wie zum Beispiel Flaggen. Wir haben wirklich alles in den Nanite-Eimer geworfen, um daraus zu lernen. Jetzt konnten wir eine riesige Confluence-Seite [Unternehmens-Wiki] darüber erstellen, wie Nanite künftig gehandhabt werden soll.

Wie lassen sich Nanite und virtuelle Schattenkarten auf Konsolen wie PS5 und Series X/S übertragen?

Julia Lichtblau: Auf der künstlerischen Seite mussten wir eigentlich nichts anpassen, aber vielleicht hat Mark im Backend Dinge getan, damit das funktioniert, damit wir Künstler uns nicht so viele Sorgen machen müssen!

Mark Maratea : Ich würde sagen, seltsamerweise funktioniert es in mancher Hinsicht besser auf Konsolen. Die virtualisierte Nanite-Geometrie ist sehr streamlastig, es dreht sich alles um Festplatten-I/O. Daher schreibt UE5 die I/O-Pipeline und die für NVMe-SSDs vorgenommenen Optimierungen neu. Es ist für die Verwendung auf Konsolen konzipiert. Auf dem PC habe ich keine Ahnung, wie hoch die I/O-Bandbreite von irgendjemandem ist ... Der einzige Nachteil auf der Konsole ist, dass man bei der Verwendung von Nanite unbedingt virtuelle Streaming-Texturen verwenden muss, man braucht wirklich einen sehr großen virtuellen Texturpool. Konsolen haben festen Speicher, aber [eine einzelne Grafikkarte] kann mehr Speicher haben als die PS5. Daher ist die Optimierung für beides wirklich schwierig.

Nanite nutzt den verfügbaren Speicher gut aus, die Ausnahme besteht jedoch darin, dass die Größe virtueller Texturpools in UE nicht geändert werden kann – sie müssen beim Start der Engine initialisiert werden und können nicht erneut berührt werden, was eine vollständig zusammenhängende Zuordnung ermöglicht Speicher, der vom Standpunkt der Leistung her wunderbar ist, aber [man kann Probleme haben, wenn zum Beispiel] weit entfernt in der Ferne ein Kelch ist, zwei Pixel, und dafür ein Stück einer Textur [aus einer 500-MB-Pool-Zuweisung] benötigt wird, und Sie nicht Ich habe nichts davon zurück, bis die Textur verschwindet. Dem PC ist es egal [wenn Ihnen der Speicher ausgeht]; Im schlimmsten Fall landet es im virtuellen Speicher. Konsole sagt: „Ich habe keinen virtuellen Speicher, ich bin fertig.“ Und es wird nicht abstürzen, aber es wird erhebliche Probleme verursachen. Dies verursachte intern den berüchtigten Landschaftsfehler, bei dem man einfach bestimmte Teile des Spiels betrat und den Eindruck erweckte, als würde jemand eine Anime-Landschaft auf den Boden malen, weil der virtuelle Texturpool nicht zugewiesen werden konnte.

Nanite scheint das Leben auf der Kunstseite einfacher gemacht zu haben; Gibt es einen Punkt im Spiel, auf den Sie besonders stolz sind, einen Vorzeigemoment dafür, was Sie mit Nanite machen können, was Sie ohne UE 5.1 ​​nicht geschafft hätten?

Julia Lichtblau : Auf jeder Ebene müssen wir das wirklich vorantreiben. Es gibt dieses eine Level mit einem riesigen Koloss, diesem riesigen Mech, und er hat eine sehr geschwungene Geometrie mit vielen Details; Im Inneren ist jede noch so kleine Niete vorhanden und Schlitze [im] Boden sind eingearbeitet, so dass man all diese verrückten, sich bewegenden zylindrischen und hochpolymetrischen Objekte sehen kann, denen wir immer mehr Details hinzufügen konnten. .. Nanite hat gerade die Welt dafür geöffnet, Levels viel schöner zu machen, denn jetzt müssen wir uns nicht mehr auf normale Karten und diese Art von Fälschung verlassen, die [bei einem bestimmten Betrachtungswinkel] auseinanderfällt. Dieses [Problem] existiert nicht mehr, weil die Geometrie tatsächlich vorhanden ist ... man kann sehr nahe daran herangehen und es wird immer noch all diese Krümmungen und Details aufweisen. Es war wirklich cool, mit verschiedenen Texturen, Oberflächen, Formen und Architekturstilen zu experimentieren. Es hat künstlerisch wirklich Spaß gemacht, das im gesamten Spiel voranzutreiben.

Joe Hall : Mit den VFX in UE5.1 haben sie mit Nanite Transparenz eingeführt, die wir unbedingt brauchten. Es gibt eine Bibliotheksebene, in der dieses Metall je nach Fortschritt des Spielers abgetragen werden muss. Es handelt sich also um Nanite-Assets, die tatsächlich durch Emissionsstoffe und Partikeleffekte abgetragen werden und das darin enthaltene Fallback-Netz nutzen. Es ist wirklich beeindruckend.

Wir müssen diese Momente für unsere Berichterstattung festhalten ...

Mark Maratea : Um ehrlich zu sein, schwenken wir in den ersten 10 Minuten des Spiels nach dem Kinofilm die Seren-Unterbrücke – das ist alles ein Echtzeit-In-Game-Bereich mit vollständig beleuchteter, durch Nanite-Geometrie unterteilter Welt. Das Ding ist riesig – ich glaube, viele von uns vergessen, wie atemberaubend es ist; Jedes andere Spiel hätte es vorab gerendert. Echtzeitbeleuchtung, sich in Echtzeit drehende Windmühlen auf diesen Gebäuden, animierte Netze ... jedes Mal, wenn ich mir das ansehe, fällt mir ein neues Detail ein. Unser Kunstteam ist einfach phänomenal mit dem, was es mit UE5 gemacht hat. Es überspringt das unheimliche Tal und geht direkt zu „Ja, das ist eine normale Stadt.“ über.

Mit Nanite können Sie die Replikation, Drehung und Skalierung genau desselben Objekts nutzen, um Bereiche zu erstellen – wie können Sie also Variationen in die Umgebungen einführen? Gibt es ein Verschleißsystem? Gibt es mischbare Details, um bestimmten Assets Abwechslung zu verleihen?

Julia Lichtblau : Wir haben kein Verschleißsystem; Wir haben in großem Umfang verschiedene Materialinstanzen verwendet, um Gebäuden beispielsweise unterschiedliche Anstrichfarben zu verleihen, und eine ganze Reihe von Abziehbildern, mit denen Sie beispielsweise bestimmte Bereiche mit mehr bröckelndem Stuck, Schmutzschnitten, Graffiti oder Ähnlichem versehen können der Sache. Vieles davon war nur das Hinzufügen von [handgefertigter] Geometrie – man nehme ein Gebäude und füge eine Reihe von Requisiten darum herum hinzu. Wir haben diese Slum-Baupläne erstellt, die viele austauschbare Requisiten enthielten, sodass diese nicht von Hand platziert wurden – aber wir konnten hineingehen und dieses künstlerische Detail hinzufügen, diese Art von Wohngefühl, um etwas Umweltgeschichten zu erzählen Ich denke, das hat uns dazu gebracht, den meisten dieser Assets etwas Abwechslung zu verleihen.

Verwenden Sie bei 60 fps auf Konsolen die Software Lumen? Und erhalten Sie beim PC die Software Lumen automatisch oder wählt der PC basierend auf Ihrer Konfiguration zwischen Hardware- und Software-Lumen?

Mark Maratea : Ja [zur Software Lumen auf Konsolen]. [Auf dem PC] ist es derzeit Software, wir haben Optionen für beides. Dies führt wieder zu den PSO-Caching-Problemen – es stellt sich heraus, dass sobald Sie Hardware [Lumen] einschalten, Ihre Shader-Permutationen verdoppelt werden, da die Hardware- und Softwareversionen erstellt werden, und ich habe beschlossen, dass wir das den Leuten nicht sofort antun sollten .

Um einige dieser Probleme zu vermeiden, können Sie mit dem PSO-Caching unter anderem ein Maskierungssystem verwenden. Also muss ich alle [10 Millionen] PSOs im Spiel noch einmal durchgehen und zurückerobern. Und ich muss das Spiel mit einem uint64-Bitflag instrumentieren, das besagt: Das ist Stufe eins, das ist Stufe zwei, das ist Stufe drei, während des gesamten Spiels – und dann den Precache durchführen, der Reihe nach, zu unterschiedlichen Zeiten, auf unterschiedlichen Ebenen . Ich muss also dieses kleine System aufbauen und es einbauen, dann können wir Hardware [Lumen] einbauen, ohne dass es zu Beginn des Spiels zu einem fünfminütigen Shader-Neuaufbau kommt.

Werden Sie bei Hardware-Lumen mit all seinen entfernten Details auf CPU-Probleme stoßen?

Ja. Der Draw-Thread wird sehr stark gepingt. Die größte Änderung von Software- zu Hardware-Lumen besteht darin, dass die Reichweite von 200 m auf 1000 m reicht. Es gibt ein überraschendes sekundäres Problem, wenn man anfängt, Lichtquellen aus fünffacher Entfernung hinzuzufügen, nämlich, dass man nun Lichtreflexionen aus fünffacher Entfernung erhält. Lumen mag es sehr, sehr gerne mit Reflexionen auf allem umzugehen, und wir haben viele Lichter, also fangen Sie jetzt an, mit anderen Parametern zu experimentieren, um zu verhindern, dass all Ihre glänzenden Materialien zu viele Reflexionen haben. Julias Team liebt glänzende Materialien, wir haben viele davon, daher ist es ein ständiges Gleichgewicht zwischen zu wenigen und zu vielen Reflexionen. Wenn Sie in die falsche Richtung optimieren, wird es entweder durcheinander oder es wird zu einem Glitzerfest, und beides ist nicht großartig. Wir legen also großen Wert darauf, Bildrate und visuelle Wiedergabetreue in Einklang zu bringen. Das erfordert eine Menge Tests, und Sie können dabei keine anderen Dinge kaputt machen.

Unsere aktuellen Mindestspezifikationen sind eine RX 5700 XT und eine RTX 2080. Ich gehe davon aus, dass die aktualisierten Spezifikationen irgendwo in den Händen der Leute liegen; Wir konnten die Mindestanforderungen tatsächlich ein wenig senken. Wir haben wirklich hart daran gearbeitet, das weit außerhalb von allem, was RTX unterstützt, wegzulassen. Der Nebeneffekt davon ist natürlich, dass wir sicherstellen müssen, dass die Software [Lumen] auf dem PC nicht beschädigt wird, wenn wir mit der Optimierung für die Hardware [Lumen] beginnen.

Zurück zu Lumen: Es geht bis zur Ultra-Einstellung für globale Beleuchtung und Reflexionen. Wo liegen die Konsolen innerhalb dieser Einstellungen?

Mark Maratea: Sie sind grundsätzlich mittelmäßig und zielen auf 1080p 60fps mit Hochskalierung ab.

Es ist unglaublich zu sehen, dass das Spiel Nanite und Lumen von Anfang an auf Konsolen mit 60 Bildern pro Sekunde unterstützt. War das schon immer Teil des Plans? Gab es einen Moment, in dem Sie darüber nachgedacht haben, sich für 30 fps zu entscheiden?

Mark Maratea : Wir haben die ersten zwei Jahre damit verbracht, unsere visuelle Zielerfassung [anstelle eines FPS-Ziels] zu verfolgen, wobei das Grafikteam diese Aufgabe anführte. Parallel dazu arbeiteten das Kampfteam und [Game Director] Brett, während Joes Team dafür sorgte, dass die visuelle Darstellung der Kämpfe den Designzielen entsprach. Nachdem sich diese beiden Dinge gefestigt hatten, hatten wir eine Maschine, die konstant mit 45–50 fps im Entwicklungsmodus lief – und Brett spielte das und sagte: „Okay, nein, ich mag 30 nicht mehr. Dieses Spiel muss 60 sein, Kampf.“ fühlt sich mit 30 nicht richtig an.“ Und so haben wir als Team eine Wende vollzogen.

Seitdem haben wir viele dieser Probleme beseitigt, was es uns ermöglicht hat, unsere Mindestanforderungen ein wenig zu senken. Ich empfehle niemandem, dies zu tun, aber wenn jemand [eine GTX] 1060 auf dieses Spiel werfen würde, würde es tatsächlich laufen. Dafür ist es nicht optimiert; Da es sich auch nicht um eine 8-GB-Karte handelt, müsste man sehr vorsichtig sein. Unreal wird sehr wütend, wenn Sie nicht genügend virtuellen Schattenspeicher für die Auflösung haben, mit der Sie arbeiten. Wenn Sie mit 1080p arbeiten, ist das keine so große Sache, aber als exklusiver 4K-Gamer auf dem PC kann ich Ihnen sagen, dass es eine sehr große Sache ist, wenn mir der Schattenspeicher ausgeht. Das ist die technische Seite davon, aber das ist wirklich eine Kunstfrage. Nachdem wir uns für 60 entschieden hatten, gingen die Teams von Julia und Joe einige großartige Wege, um den RT zu diesem Zeitpunkt zum Laufen zu bringen.

Was ist mit anderen konsolenäquivalenten Einstellungen? Sind PS5 und Series

Mark Maratea : Trotz [Leistungs-]Parität handhaben Serie X und PS5 die Dinge unterschiedlich. Async Computing funktioniert auf dem einen sehr gut, auf dem anderen jedoch nicht so gut, was die GPU-Belastung verändert. Ein Teil des Konsolen-Tuning-Prozesses veranlasste uns, das Leistungstool zu entwickeln, das wir auf dem PC haben. Wir haben jede einzelne Rendering-Variable, die im Unreal-Tuning-System vorhanden ist, alle möglichen Bereiche ermittelt und das Spiel [mit jeder Kombination von Einstellungen] 17.000 Mal ausgeführt. Und wir haben die Leistung und den visuellen Kompromiss all dieser Dinge verstanden. Dann haben wir uns mit der Kunstabteilung zusammengesetzt und sind zu einem glücklichen Mittelweg gekommen, wo wir eines meiner Meinung nach am besten aussehenden Konsolenspiele aller Zeiten haben, das mit einer sehr, sehr guten Bildrate läuft.

Das PC-Grafikmenü berechnet eine Punktzahl für Ihre CPU und GPU. Worauf basiert das?

Mark Maratea : Epic hat ein synthetisches Benchmark-Programm entwickelt [das wir verwenden] und echte [für den Benutzer sichtbare] Zahlen ermittelt, also kommt das daher. Bei der CPU handelt es sich im Wesentlichen um Single-Core-Leistung, bei der GPU um volle GPU-Leistung. Eine Min-Spec-CPU liegt bei etwa 180 oder 200, Ultra bei etwa 300; Die Min-Spec-GPU liegt bei etwa 500, Ultra beginnt bei etwa 1200, wo eine 7900 XT oder eine 4080 auftaucht.

Das Geständnis ist, dass dies aus unserem Tuning für Konsolen hervorgegangen ist, was, wenn man zwischen den Zeilen liest, bedeutet, dass ich vor ein paar Wochen unter der Dusche war und dachte: „Es wäre wirklich cool“, dieses Performance-Tool zu bauen. Nun kommen all diese Daten daher herein, [wodurch wir] den Benutzern Daten [zu verschiedenen Kosten für Grafikeinstellungen] zugänglich machen können ... [Wenn] jemand einen neuen Prozessor oder eine neue Grafikkarte hat, gibt uns das neue Datenpunkte und das kann die Zahlen verändern. Dabei handelt es sich im Grunde genommen darum, dass wir riesige Datenmengen über eine Vielzahl unterschiedlicher Hardware sammeln und dann wirklich gute Vermutungen anstellen.

Ist dies zukunftssicher für zukünftige Hardware oder erfordert es noch viele manuelle Optimierungen?

Mark Maratea : Die heutige Version ist sehr manuell, aber die Version, die Sie sehen werden, wird wesentlich besser sein. Wenn sich dieses Spiel bis zum 60. Tag so verkauft, wie ich hoffe, dass es verkauft wird, wird es tatsächlich verschiedene Hochskalierungsalgorithmen, unterschiedliche Auflösungen, RT ein- und ausschalten und im Wesentlichen ML-Vorhersagen darüber machen, wohin die Bildraten gehen werden.

Das erinnert mich an den Windows Experience Index [eingeführt mit Windows Vista]. Ich war immer so traurig, dass Spiele es letztendlich nicht nutzten, weil ich es für eine wirklich gute Idee hielt. In Ihrem Blog wird die Verwendung von FSR 2 auf der Konsole erwähnt. Warum haben Sie sich für FSR 2 gegenüber TSR entschieden?

Mark Maratea : Leistung. Wir verwenden FSR 2.2.1, wir sind auf dem neuesten Stand von AMD. Die Leistung ist bei der Hochskalierung wesentlich besser und die Hochskalierung von TSR weist deutlich mehr Geisterbilder auf als DLSS oder FSR. Wir sprechen ständig mit AMD, Intel und Nvidia darüber, wie wir Probleme minimieren können. Für jede ihrer einzelnen GPUs gibt es Kompatibilitätslabore, in denen all das durchgeführt wird, und wir haben viel Mühe darauf verwendet, mit ihnen zusammenzuarbeiten. Es ist etwas schwieriger, Epic dazu zu bringen, eine Engine-Änderung zu veröffentlichen, um [TSR-Probleme zu beheben].

Was ist mit bestimmten Auflösungszielen auf Konsolen – ist es FSR 2 bei Ultra-Performance mit dem Ziel 4K oder ist es eine höhere Einstellung?

Mark Maratea: Nur auf Konsolen wird eine adaptive Hochskalierung durchgeführt. Wir schauen uns also an, was Sie vom Monitor-/TV-Standpunkt aus angeschlossen haben … und es gibt einen Schlitz in der Logik, der besagt, dass, wenn eine PS5 Pro herauskommt, sie tatsächlich auf eine andere hochskaliert Qualitätsstufen – es wird FSR 2-Qualität und nicht die Standard-FSR 2-Leistung sein.

Wenn Sie das Spiel also auf einem 1080p-Bildschirm spielen, könnte sich die Leistung möglicherweise von der Leistung auf einem 4K-Bildschirm unterscheiden?

Mark Maratea: Jawohl.

Können Sie für die von Ihnen erwähnten dynamischen Branching-Shader die Unterschiede zwischen der Basis-UE5 und dem, was Sie tun, erklären?

Mark Maratea : Ja, also möchte ich [das] Joe Weyland zuschreiben, das ist sein Baby. Das ist wie eine Sache auf Siggraph-Whitepaper-Ebene. Daran arbeiten wir seit etwa 3,5 Jahren. Wir haben ein hierarchisches System mit zunehmender Komplexität, während Sie Ihre Shader aufbauen. Sie können sich vorstellen, dass der grundlegende [Parameter] „Ist es glänzend“ lautet, und dann gibt es ein untergeordnetes Element, das „Ist es glänzend oder rau“ oder was auch immer lautet? . Bei dieser Art von System gibt es also viele Anweisungen, die Sie nicht benötigen; Sie werden als „nicht verwenden“ bewertet ... aber aufgrund der Art und Weise, wie das Pipelining funktioniert, muss die GPU sie trotzdem bewerten, was wie eine Verschwendung von GPU-Ressourcen erscheint.

Deshalb haben wir ein intelligentes dynamisches Verzweigungssystem entwickelt, das es uns ermöglicht, Knotenpfade, die für ein bestimmtes Material nicht verwendet werden, vorab zu bereinigen. Es ist eine Laufzeitentscheidung, die es uns ermöglicht, viele Dinge im Editor zu erledigen, sodass die Leute sofort etwas optimieren und die Leistung und visuellen Änderungen in Echtzeit sehen können. Aber diese Entscheidungen werden dann letztendlich zur Laufzeit getroffen. Dadurch können wir verschiedene Zweige mit IHV-spezifischen Erweiterungen haben, wie z. B. Shader-Erweiterungen nur für Nvidia, bei denen wir die Prüfung nicht einmal auf einer AMD-Karte durchführen. Das bringt uns also, abhängig von der Komplexität der Szene, etwa 2–5 ms ein. Das ist ein Haufen sehr kluger Leute, die viel Zeit darauf verwenden, ihr Lebenswerk aufzubauen, und ehrlich gesagt ist das erstaunlich.

Ist es angesichts der Ankündigung von Jedi: Survivor für Konsolen der letzten Generation überhaupt möglich, eine PS4- oder Xbox One-Version des Spiels in Betracht zu ziehen?

Absolut nicht. Es gibt keine Version von Lumen, die auf der letzten Generation funktioniert, nicht einmal in der Software. Wenn jemand mit einem Muldenkipper voller Bargeld vorkäme [und sagte], wir möchten, dass Sie alle Ihre Level auseinanderreißen, dafür sorgen, dass es mit gebackener Beleuchtung funktioniert, und alle Ihre Texturen verkleinern, damit Sie in die letzte Generation passen Speicherbedarf der Konsole. Das müsste ein großer Muldenkipper sein. Und das geschah, nachdem Joe, Julie und ich sechs Monate lang unseren tropischen Urlaub verbracht hatten, dann kamen wir zurück und ich machte Ihren Last-Gen-Port. Ich meine, Sie fragen sich im Wesentlichen, ob wir das gesamte Spiel neu erstellen können, indem wir eine Reihe wichtiger Funktionen weglassen und unser Kunstbudget auf ein Viertel kürzen?

Absolut. Ich würde sagen, bei Digital Foundry haben wir nicht genug Veröffentlichungen der nächsten Generation gesehen, vor allem nicht, wenn die Generation schon drei oder vier Jahre alt ist. Wir sind große Befürworter von 60-fps-Spielen, aber ist für die Konsolenversionen ein 30-fps-Modus mit höherer Qualität oder höherer Auflösung in Sicht?

Mark Maratea : Im Grunde tun wir das für den Benutzer; Wir haben Bereiche außerhalb des Kampfes, in denen wir die Bildrate gegen die visuelle Wiedergabetreue eingetauscht haben ... Sie werden Bereiche bekommen, die etwas abfallen, [ohne] Kampf dort [und] sie werden besonders großartig aussehen. Sie befinden sich bereits im Qualitätsmodus. Wenn man dann in Bereiche vordringt, die Kampfräume sind, fangen wir an, Kompromisse einzugehen – es gibt weniger dynamische Lichter, es gibt weniger einzigartige Dinge, wir fangen an, Hilfscharaktere zu entfernen, die auf einer RTX 4090 auftauchen könnten, um die Bildrate beizubehalten.

Joe [Hall], gibt es etwas, das Sie über die VFX sagen möchten, auf das Sie wirklich stolz waren, oder etwas, das Sie in das Spiel eingebracht haben, von dem Sie nicht dachten, dass es möglich sein würde?

Joe Hall : Bringt Farbe zurück. Bringt Farbe in den Kampf zurück, auf geerdete, aber auch magische Weise. Das ist definitiv etwas. Es ist etwas, worauf man stolz sein kann, [das Spiel] bei 60 fps zu halten und von Moment zu Moment auf High-Fidelity und hohe Qualität zu drängen. Ich bin stolz auf das Team und auf den Einsatz, den es geleistet hat, und darauf, wie weit wir die Messlatte verschoben haben. Ich bin auf jeden Fall dankbar, dass es UE 5.1 ​​gibt. Für die Spieler ist es spannend, mitzumachen!

Wie lange ist Immortals schon in der Entwicklung – und bestand schon immer die Idee, etwas zu produzieren, das einem magischen Ego-Shooter ähnelt, oder hat sich das im Laufe des Projekts weiterentwickelt?Mark MarateaJulia Lichtblau Aufgrund des Timings würde ich mir vorstellen, dass das Spiel nicht auf der Unreal Engine 5 startete, da es diese nicht gab – startete es also auf der Unreal Engine 4 und wurde es auf UE5 migriert? Wie war das?Mark MarateaSie haben also erwähnt, dass Sie mit Blaupausen und minimalen Codeänderungen begonnen haben, aber mit der Umstellung von 4.23 auf eine benutzerdefinierte Engine. Welche größeren Änderungen führten zu Abweichungen?Mark MarateaDas sind doch die Kosten dafür, auf dem Laufenden zu bleiben, nicht wahr?Mark MarateaHaben Sie irgendwelche Shader-Pre-Caching-Funktionen aus 5.11 oder 5.2 ausgewählt? Erklärt das, was ich gesehen habe, als ich das Spiel ohne die .ini-Datei geladen habe? [Hinweis: Der PC-Überprüfungscode wurde ohne eine entscheidende .ini-Datei ausgeliefert, was dazu führte, dass anfängliche Probleme schnell behoben wurden.] Ich bin es gewohnt, dass die CPU [bei der Shader-Vorkompilierung] auf Hochtouren läuft, aber hier war es wie bei der CPU Es fällt mir schwer, überhaupt die volle Auslastung zu erreichen.Mark MarateaSie haben DirectStorage erwähnt – verwenden Sie es auf Xbox Series-Konsolen oder PCs?Mark MarateaIch habe die ersten 25 Minuten des Spiels gespielt und hatte keine Probleme mit der Shader-Kompilierung, was bei einem Unreal Engine-Spiel selten vorkommt.Mark Maratea Wie war es, Nanite im Spiel zu implementieren, und wie war es im Vergleich zum üblichen LOD-Authoring? War es einfach, damit zu arbeiten?Julia LichtblauWie haben Sie entschieden, was über Nanite geschehen soll?Julia LichtblauWie lassen sich Nanite und virtuelle Schattenkarten auf Konsolen wie PS5 und Series X/S übertragen?Julia LichtblauMark Maratea Nanite scheint das Leben auf der Kunstseite einfacher gemacht zu haben; Gibt es einen Punkt im Spiel, auf den Sie besonders stolz sind, einen Vorzeigemoment dafür, was Sie mit Nanite machen können, was Sie ohne UE 5.1 ​​nicht geschafft hätten?Julia LichtblauJoe HallWir müssen diese Momente für unsere Berichterstattung festhalten ...Mark Maratea Mit Nanite können Sie die Replikation, Drehung und Skalierung genau desselben Objekts nutzen, um Bereiche zu erstellen – wie können Sie also Variationen in die Umgebungen einführen? Gibt es ein Verschleißsystem? Gibt es mischbare Details, um bestimmten Assets Abwechslung zu verleihen?Julia Lichtblau Verwenden Sie bei 60 fps auf Konsolen die Software Lumen? Und erhalten Sie beim PC die Software Lumen automatisch oder wählt der PC basierend auf Ihrer Konfiguration zwischen Hardware- und Software-Lumen?Mark MarateaWerden Sie bei Hardware-Lumen mit all seinen entfernten Details auf CPU-Probleme stoßen? Zurück zu Lumen: Es geht bis zur Ultra-Einstellung für globale Beleuchtung und Reflexionen. Wo liegen die Konsolen innerhalb dieser Einstellungen?Mark Maratea Es ist unglaublich zu sehen, dass das Spiel Nanite und Lumen von Anfang an auf Konsolen mit 60 Bildern pro Sekunde unterstützt. War das schon immer Teil des Plans? Gab es einen Moment, in dem Sie darüber nachgedacht haben, sich für 30 fps zu entscheiden?Mark Maratea Was ist mit anderen konsolenäquivalenten Einstellungen? Sind PS5 und SeriesMark Maratea Das PC-Grafikmenü berechnet eine Punktzahl für Ihre CPU und GPU. Worauf basiert das?Mark MarateaIst dies zukunftssicher für zukünftige Hardware oder erfordert es noch viele manuelle Optimierungen?Mark Maratea Das erinnert mich an den Windows Experience Index [eingeführt mit Windows Vista]. Ich war immer so traurig, dass Spiele es letztendlich nicht nutzten, weil ich es für eine wirklich gute Idee hielt. In Ihrem Blog wird die Verwendung von FSR 2 auf der Konsole erwähnt. Warum haben Sie sich für FSR 2 gegenüber TSR entschieden?Mark MarateaWas ist mit bestimmten Auflösungszielen auf Konsolen – ist es FSR 2 bei Ultra-Performance mit dem Ziel 4K oder ist es eine höhere Einstellung?Mark MarateaWenn Sie das Spiel also auf einem 1080p-Bildschirm spielen, könnte sich die Leistung möglicherweise von der Leistung auf einem 4K-Bildschirm unterscheiden?Mark MarateaKönnen Sie für die von Ihnen erwähnten dynamischen Branching-Shader die Unterschiede zwischen der Basis-UE5 und dem, was Sie tun, erklären?Mark MarateaIst es angesichts der Ankündigung von Jedi: Survivor für Konsolen der letzten Generation überhaupt möglich, eine PS4- oder Xbox One-Version des Spiels in Betracht zu ziehen? Absolut. Ich würde sagen, bei Digital Foundry haben wir nicht genug Veröffentlichungen der nächsten Generation gesehen, vor allem nicht, wenn die Generation schon drei oder vier Jahre alt ist. Wir sind große Befürworter von 60-fps-Spielen, aber ist für die Konsolenversionen ein 30-fps-Modus mit höherer Qualität oder höherer Auflösung in Sicht?Mark MarateaJoe [Hall], gibt es etwas, das Sie über die VFX sagen möchten, auf das Sie wirklich stolz waren, oder etwas, das Sie in das Spiel eingebracht haben, von dem Sie nicht dachten, dass es möglich sein würde?Joe Hall