Die Northlight-Technologie in Alan Wake 2
(remedygames.com)- Das Northlight-Team von Remedy hat für Alan Wake 2 zentrale Technologien von der Engine-Architektur bis zum Rendering neu entwickelt oder grundlegend überarbeitet und damit die Basis geschaffen, größere und komplexere Welten zu verarbeiten
- Das neue ECS-basierte Game-Object-Modell erhöht Speichereffizienz und sichere parallele Ausführung, sodass auf Hardware mit unterschiedlich vielen CPU-Kernen dynamischere Welten umgesetzt werden können
- Der voxelbasierte Character Controller und animationsbasierte NPC-Bewegung helfen dabei, dass sich Figuren auch in engen und komplexen Räumen natürlich bewegen, und das Scattering-Tool unterstützt die Erstellung dichter Vegetation
- Das Rendering verarbeitet mit einer GPU-gesteuerten Pipeline, Mesh Shadern, Meshlet Culling, GPU-basierter Vegetationsanimation, HDR und MBOIT-Transparenz-Rendering mehr Geometrie sowie Nebel- und Transparenzeffekte
- Die PC-Version nutzt, wenn die Hardware-Konfiguration es zulässt, DLSS Frame Generation, DLSS Ray Reconstruction und Path Traced Indirect Lighting, um genaueres und robusteres Raytracing als in Control zu liefern
Northlight-Engine und gameplaynahe Basistechnologien
- Während der Entwicklung von Alan Wake 2 stellte Northlight auf ein vollständig neues datenorientiertes Game-Object-Framework um
- Das neue Modell basiert auf einem Entity-Component-System (ECS)
- ECS ermöglicht speichereffiziente Speicherung sowie effiziente und sichere parallele Ausführung
- Es unterstützt Zielhardware mit unterschiedlich vielen Kernen effizient und ermöglicht dadurch größere, dynamischere und reichhaltigere Welten
- Auch das Scattering-Tool für die großflächige Platzierung von Vegetation nutzt die Vorteile von ECS
- Es können mehr Entitäten in der Welt platziert werden
- Der Bedarf an separaten, maßgeschneiderten Lösungen für die Objektverteilung sinkt
- Auch bei der Gameplay-Implementierung beschleunigt ECS die Iteration
- Es wurde für das Case Board genutzt, das visuelle Storyboard, auf dem Saga Beweise sammelt
- Neue Systeme oder Game Objects lassen sich leichter hinzufügen und anpassen
- Beim Speichern und Laden des Case Board wurden Leistungsverbesserungen festgestellt
Charaktersteuerung und NPC-Bewegung
- Alan Wake 2 veranlasste eine Neugestaltung der Charaktersteuerung von Northlight
- Der neue voxelbasierte Character Controller ermöglicht sanfte Navigation in engen, komplexen und dynamischen Umgebungen
- Die Charakterbewegung wirkt natürlicher und flüssiger
- Der Fokus lag darauf, Probleme zu verringern, bei denen Figuren in engen Räumen an Objekten hängen bleiben oder mit ihnen kollidieren
- Auch die NPC-Bewegung wurde grundlegend überarbeitet
- Alle NPCs verwenden animationsbasierte Bewegung zusammen mit neuem distanzbasiertem Motion Matching
- Die Bewegungsqualität steigt, und es lässt sich besser steuern, wann und wie Animationen eingesetzt werden
Wind, Vegetation und Scripting-Tools
- Der realistische Wind in Alan Wake 2 beeinflusst Physik, Partikel und Stoffe
- Game Designer können für Innen- und Außenbereiche leicht unterschiedliche Windgeschwindigkeiten definieren
- Der Übergang zwischen beiden Bereichen erfolgt weich und zustandslos
- Im Auto, in dem Saga und Casey fahren, kommt eine bewegliche wind box zum Einsatz, um den Fahrzeuginnenraum als windfreien Innenbereich zu definieren
- Das Windsystem wurde auf Basis von Signed Distance Fields (SDF) aufgebaut
- Die wind box dient als Primitive zur Definition eines weichen globalen Windstärkefelds
- Sie funktioniert wie ein Grundbaustein zur Festlegung der Windstärke je Bereich und erzeugt glatte Windmuster zwischen Innen- und Außenräumen
- Das neue Scattering-Tool wurde für die Erstellung großflächiger Vegetation und Umgebungsrequisiten entwickelt
- Es wurde genutzt, um die dichteren, reichhaltigeren und lebendigeren Umgebungen von Alan Wake 2 zu erschaffen
- Es kommt zusammen mit einer im Vergleich zu früher größeren Sichtweite (draw distance) zum Einsatz, sodass Spieler weiter entfernte Objekte und Details sehen können
- Die Scripting-Sprache wurde von einer hauseigenen Sprache auf Luau umgestellt, eine von Roblox von Lua abgeleitete eingebettete Scripting-Sprache
- Luau stellt umfangreiche Engine-Funktionen bereit und unterstützt Live-Editing
- Es wird für zahlreiche Gameplay-Systeme eingesetzt, etwa Level-Scripting und das Waffen-Upgrade-System
- Das Game-Team konnte ohne Hilfe von Engine-Programmierern verschiedene Game-Features und VFX-Effekte prototypisieren und umsetzen
- Remedy entwickelte eine eigene VS Code Language-Server-Erweiterung und integrierte sie in die Entwicklungs-Pipeline
- Durch die Einführung von Luau wurden etwa 80.000 Zeilen Code entfernt, die nicht mehr gewartet werden müssen
GPU-zentriertes Rendering und Vegetationsanimation
- Alan Wake 2 zeigt Northlights neue GPU-gesteuerte Rendering-Pipeline
- Dadurch lässt sich mehr Geometrie in die Welt bringen, ohne Leistung zu opfern
- GPU-gesteuertes Rendering mit Mesh Shadern ermöglicht Occlusion Culling mit Präzision bis auf ein einzelnes Pixel
- Jedes Element der Szene kann als Occluder verwendet werden
- Dank der Fähigkeit, nur Sichtbares zu zeichnen, bietet die Welt von Alan Wake 2 mehr geometrische Details als frühere Veröffentlichungen
- Die Rendering-Pipeline cullt nicht nur Meshes, sondern auch Meshlets
- Meshlets sind kleinere, optimierte Dreiecksgruppen, die aus einem Mesh extrahiert werden
- Die Meshlet-Struktur lässt sich am Beispiel des Convenience Stores am Cauldron Lake erkennen
- Die weitläufigen Urwaldumgebungen wurden mit einem neuen shaderbasierten Vegetationssystem umgesetzt
- Dieses System basiert auf einem neuen Skinning-System, das vollständig auf der GPU läuft
- Es unterstützt kunstgesteuerte Bone-Shader-Animationen
- In Alan Wake 2 können dadurch für jede sichtbare Vegetation in der Umgebung Character-Style-Rigs verwendet werden
- Der Bone Shader stellt eine API bereit, über die Artists direkt Shader-Code schreiben und an das zugrunde liegende System anbinden können
- Die Technik lässt sich nicht nur für Vegetation einsetzen, sondern theoretisch auch für Objekte, die auf Wasser schaukeln, oder im Wind schwankende Stromleitungen
- Am Cauldron Lake werden pro Frame fast 300.000 Bones verarbeitet
HDR, Transparenz-Rendering, VFX und Raytracing
- Alan Wake 2 unterstützt HDR vollständig
- Schon mit den Standardeinstellungen wurde es so abgestimmt, dass es sowohl auf SDR- als auch auf HDR-Displays gut aussieht
- Die HDR-Unterstützung erforderte einen neuen Ansatz beim Tonemapping
- Das Color Grading wurde von einem professionellen Coloristen anhand von HDR-Standards durchgeführt, damit auf HDR und SDR gleichermaßen der eigene Art-Style, die Atmosphäre und das Storytelling erhalten bleiben
- Die dichten Nebelszenen basieren auf Verbesserungen beim Transparenz-Rendering
- Northlight hat während der Entwicklung von Alan Wake 2 das Transparenz-Rendering vollständig überarbeitet
- Mit MBOIT (Moment-Based Order-Independent Transparency) werden transparente Oberflächen mit unterschiedlichen Detailstufen weich miteinander vermischt
- Transparente Elemente werden in drei Auflösungen mit MBOIT gerendert
- Nebel, transparente Geometrie und Effekte lassen sich nahtlos miteinander verblenden
- Auch die Pipeline zur feineren Steuerung der Nebelplatzierung in der Welt wurde verbessert
- Durch die Kombination aus transparenter Beleuchtung auf Pixelebene und von Nebel beeinflussten Reflexionen fügen sich opake und transparente Elemente besser zusammen als in früheren Projekten
- Der Nebel approximiert mehrfache Lichtstreuung und erzeugt so eine dichte, realistische Atmosphäre
- Northlights nodebasiertes VFX-Tool hat sich bei Funktionsumfang und Laufzeitleistung deutlich weiterentwickelt
- VFX-Artists können komplexe und dynamische Effekte wie Regen, Nässe, Wassersimulationen oder Verletzungen an Charakteren erstellen
- Auch das VFX-Tool profitiert von GPU-gesteuertem Rendering und kann über die GPU viel Geometrie verarbeiten
- Ein Beispiel ist das Rendern von Rain-Blocker-Objekten für dynamische Masken, damit Regen in Innenräumen oder unter Abdeckungen nicht sichtbar ist
- Das Raytracing unterstützt vollständiges ray-traced direct lighting
- Zusammen mit Nvidia werden verbesserte Denoising- und Indirect-Lighting-Algorithmen eingesetzt
- Das Raytracing in Alan Wake 2 ist genauer und robuster als das in Control
- Da sämtliche Vegetationsgeometrie-Animationen per Skinning erstellt und simuliert werden, lässt Raytracing animierte Vegetation besser aussehen
- PC-Spieler können, sofern GPU- und CPU-Konfiguration es zulassen, die neuesten Nvidia-DLSS-Technologien nutzen
-
DLSS Frame Generation
-
DLSS Ray Reconstruction
- Path Traced Indirect Lighting
-
1 Kommentare
Hacker-News-Kommentare
Wenn man bedenkt, dass Remedy als ganzes Studio nur ein paar hundert Leute hat, liefert das Unternehmen grafisch konstant weit über seiner Gewichtsklasse ab.
Unter den Studios, die mir einfallen, können wohl nur Remedy und CD Projekt Red bei Bildqualität und Performance mit großen Engines wie Unreal, Unity oder EA Frostbite mithalten.
Wenn man sich für Computergrafik oder Technical Art interessiert, sind ihre GDC-/SIGGRAPH-Vorträge hervorragend.
Alan Wake 2 ist technisch eines der schönsten Spiele aller Zeiten, und meiner Meinung nach auch künstlerisch. Dass es selbst dann noch gut aussieht, wenn man alle Einstellungen herunterdreht, ist eine echte Leistung; es ist schwer, etwas auch auf älterer Hardware noch gut aussehen zu lassen.
Wie Analysten wie Digital Foundry jedoch sagen, ist die Performance sehr schlecht, wenn die GPU Mesh Shader nicht unterstützt. Auch in diesem Artikel wird erwähnt, dass Mesh Shader für Culling verwendet werden, wodurch man Objekte wie Kaffeetassen oder Reifen komplett rund machen kann, ohne in die Art von Problem zu geraten, die bei Cities Skylines 2 die Performance ruiniert, also „10.000-Polygon-Zähne im Mund jedes NPC“. Das ist auch einer der großen Vorteile, die Nanite in Unreal 5 bietet.
Von der erstaunlichen Demo Second Reality aus dem Jahr 1993 bis zu Alan Wake 2 dreißig Jahre später lässt sich eine ziemlich klare Linie ziehen.
https://www.youtube.com/watch?v=iw17c70uJes
Das Performance-Problem ist viel größer als nur „unsichtbare Zähne werden gerendert“: https://blog.paavo.me/cities-skylines-2-performance/
Als Beispiel ist es leicht verständlich, aber die größeren Probleme sind fehlende LODs und unzureichendes Culling.
Wechselt CD Projekt Red mit künftigen Spielen nicht zu UE5? Schade. Cyberpunk war wirklich wunderschön, und ich hätte gern ein Multiplayer-Spiel gesehen, das mit dieser Engine gemacht wurde.
CDPR hat 1236, DICE, die Frostbite entwickelt haben, 714, und Epic hatte vor den jüngsten Entlassungen 2200.
Alle Zahlen stammen laut Wikipedia.
Wenn nicht die Leute, die moderne Computergrafik definiert und popularisiert haben, wer würde dann GPUs bis ans Limit treiben?
Schon im ersten Beispiel stört es ziemlich, dass die Füße über den Boden rutschen oder die Figur wie auf der Stelle gleitet, wenn ein Objekt sie blockiert und sie nicht vorwärtskommt.
Ich frage mich, wann solche Probleme endlich gelöst werden.
Natürlich ist die Engine selbst erstaunlich, und die visuellen Effekte und Systeme gehören zu den besten, die ich bisher gesehen habe.
In RDR2 sind die Animationen sehr realistisch, aber die Steuerung fühlt sich dadurch etwas „schwebend“ an.
Ich persönlich bevorzuge schnelle, direkte Bewegung, bei der sich die Figur auf dem Bildschirm sofort nach links bewegt, wenn ich nach links drücke. Realistischer wirkende Animationssysteme erzeugen zwangsläufig Verzögerung, bis die Fußanimationen die Eingabe des Spielers „eingeholt“ haben.
Aber ständiges Raycasting und IK-Berechnung sind nicht kostenlos, also tauscht man das gegen Performance ein, und es kollidiert auch mit der Reaktivität.
Viele Spiele entscheiden sich für schnellere Bewegung und direktere Steuerreaktion. Technisch ist das Problem also schon seit Jahren gelöst, aber wie alles im Game-Design ist es eine Frage von Entscheidungen und Kompromissen.
Viele Studios, darunter Naughty Dog, nutzen das. Aber wie andere Kommentare schon sagen, bleibt die grundlegende Spannung zwischen Reaktivität und Animationsgenauigkeit bestehen.
In Control, dem vorherigen Spiel von Northlight, war das weniger ausgeprägt [2].
[1] https://youtu.be/jQb07FHJ-bQ?t=628
[2] https://youtu.be/fcDK6tnx4vM?t=6700
Tatsächlich ging es dabei um einen Algorithmus, der Animationen mischt, damit Übergänge natürlich wirken.
Es ist erfrischend, einmal etwas anderes zu sehen als noch ein weiteres Spiel auf Basis der Unreal Engine.
Eine eigene Inhouse-Engine zu haben, muss unglaublich schwierig sein; nicht nur die Engine selbst, sondern vielleicht noch mehr die Tools zum Erstellen von Levels, Animationen und so weiter.
Trotzdem scheint es auch Vorteile zu haben. Wenn man mehr Kontrolle über die Low-Level-Architektur hat, ergeben sich auch mehr Möglichkeiten zur Optimierung. Bei einer Allzweck-Engine wie Unreal ist das schwieriger.
Ich will dieses Spiel so schnell wie möglich spielen.
Ich verstehe immer noch nicht, warum Shader-Kompilierung zu Rucklern führt, während die meisten anderen Inhouse-Engines dieses Problem nicht haben. Ich verstehe auch nicht, warum das noch nicht behoben wurde. Selbst wenn morgen ein Update käme, das es verbessert, würde es noch Jahre dauern, bis Spiele das tatsächlich nutzen.
Es gibt so viele etablierte Engines mit großer Community, dass man es nur selbst machen würde, wenn man wirklich vollständige Kontrolle braucht.
Mir gefällt der Ton des Artikels.
Zum Beispiel fand ich die Stelle gut, an der es heißt, das Marketingteam würde sagen: „Die Charaktere reagieren besser als je zuvor und wirken lebendiger“, während in den internen Entwicklungsnotizen steht: „Die Charaktere stoßen in engen Räumen nicht gegen Objekte und bleiben nicht daran hängen.“
Der ganze Satz ist Marketing, und auch die darin enthaltene Komik ist Marketing.
Ich frage mich, wie Remedy heute dazu steht, im eigenen Ökosystem die Programmiersprache D zu verwenden. Falls sie sie noch einsetzen, würde ich auch gern sehen, auf welche Schwierigkeiten sie bei der Entwicklung von AW2 gestoßen sind.
Referenzmaterial: Using an Emerging Language in Quantum Break (https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdceurope201...)
DConf 2016: Quantum Break: AAA Gaming With Some D Code -- Ethan Watson (https://www.youtube.com/watch?v=7YjLW7anNfc)
Sicher ist jedenfalls, dass sie derzeit keine D-Programmierer suchen.
Wenn du der Quelle nachgehen willst, wäre dieser Link ein möglicher Ausgangspunkt: https://forum.dlang.org/post/lymybpygzfalbdgoaizr@forum.dlan...
Da die Person, die diesen Vortrag gehalten hat, dort nicht mehr arbeitet und auch große Unternehmen wie Facebook die Nutzung von D eingestellt haben, vermute ich, dass sie es nicht mehr verwenden. Ich würde mich aber freuen, wenn sich herausstellt, dass ich falschliege.
Wenn diese Person geht oder nicht mehr in einer Position ist, in der sie beitragen oder die Wartung übernehmen kann, wird die Technologie ohne Rückhalt und Akzeptanz im restlichen Team und Studio nach und nach ersetzt.
Ich habe gehört, dass es eine Person gab, die stark dafür geworben hat, in D zu schreiben, aber ich weiß nicht, ob sie noch dort ist.
Soweit ich mich erinnere, war auch ein Teil des Teams an diesem Spiel beteiligt, das im Unreal Marketplace Inhalte auf höchstem Niveau erstellt hat.
https://mawiunited.com/
Hervorragender Content. Ich würde gern mehr Studios sehen, die auf diese Weise UE5-Content erstellen.
Ich finde es interessant, dass sie auf Luau von Roblox als Skripting-Umgebung umgestiegen sind.
Ich habe mich schon immer gefragt, warum in der Spieltechnik so viele für Skripting auf Lua setzen, besonders wenn es von Anfang an so geplant wird.
Alles, was eine C-Runtime verwenden kann, kann auch Lua-Skripting einbetten.
Deshalb ist es von Baldur’s Gate 1 über Warcraft III bis zu modernen Titeln wie Roblox zu einer Art Standardoption geworden.
Die Bewegungen der Charaktere wirken immer noch ziemlich stark wie Uncanny Valley.
Im Video zum „voxelbasierten Character Controller“ sieht das Gehen aus, als würden sie gleiten, und auch in den ersten Sekunden von „NPC Movement“ wirkt das Laufen unnatürlich.
Ich glaube, das liegt daran, dass jeder Schritt vollkommen gleich ist und alle dieselbe Schrittlänge verwenden. Dadurch bewegen sich die Figuren unnatürlich synchron.
Später im Video, wenn die Charaktere individuell zwischen Gehen und Laufen wechseln, ist deutlich mehr Variation in der Bewegung zu sehen, und es wirkt viel realistischer. Ich frage mich, warum es so schwierig ist, generell mehr feine Unterschiede in Bewegungen einzubauen.
Um diesen Punkt aber zu stützen: Freundliche NPCs stehen fast alle einfach still. Wenn in feindlichen Gebieten Gegner heranstürmen, achtet man ohnehin nicht mehr darauf, wie sie laufen, und außerdem sind sie sowieso im Nebel verborgen.
Persönlich halte ich Control für eine Tech-Demo für all das hier. Das erklärt auch, warum es viel weniger Gegner gibt und die Handlung als Horrorgeschichte aufgebaut ist.
Heißt das also, sie haben eine ECS-Game-Engine, einen AAA-Renderer, etwas Nanite-Ähnliches, eine Lua-basierte Skripting-Engine und Gesichtsanimationen auf Hollywood-Niveau?
Sie sollten die Engine veröffentlichen. Das könnte ein starker Konkurrent für Unreal sein. Dank ECS wäre sie skalierbarer und mit Luau auch einfacher zu schreiben.
Das habe ich schmerzhaft festgestellt, als ich versucht habe, das Spiel unter Linux zu kaufen. Wenn sie also mit Unreal konkurrieren würden, könnte das diese Beziehung belasten.
Interne Software in ein Produkt zu verwandeln, das andere Leute verwenden können, ist jedoch etwas völlig anderes.
Remedy hat zwar eindeutig eine Meshlet-Pipeline übernommen, aber das ist im High-End-Rendering inzwischen fast schon Mainstream. Ich habe allerdings keinen Hinweis darauf gesehen, dass sie wie Nanite Compute Shader verwenden, um tatsächlich winzige Dreiecke zu rendern, aber vielleicht habe ich das auch übersehen.
Jetzt läuft Alan Wake 2 selbst mit deaktiviertem Raytracing auf High gerade so.
Visuell ist es eine beeindruckende Engine, aber mir persönlich sind die Hardware-Anforderungen zu hoch.
Die Entity-Component-System-(ECS)-Architektur wird auch in jungen Open-Source-Game-Engines wie Bevy[1] eingesetzt
Ich habe lange keine Spieleentwicklung mehr gemacht, aber wenn ich von einer Architektur höre, die das schwere und komplexe objektorientierte Modell beseitigt, das man in Spielen so oft gesehen hat, bekomme ich wieder Lust, einzusteigen
[1]: https://bevyengine.org/
Seit den frühen 2000ern gewann es allmählich an Dynamik, und auch wenn es heute nicht allgegenwärtig ist, wird es seit Langem fast wie eine grundlegende Technik verwendet; das gilt ebenso für einige Open-Source-Engines
Ein Beispiel ist https://github.com/Adelost/entity-component-systems-study#re...