Die Entwicklung von Fobia - St. Dinfna Hotel stellte eine einzigartige Herausforderung dar: die Entwicklung ein und derselben Umgebung durch verschiedene Epochen zu zeigen, ohne auf Ladezeiten oder abrupte Schnitte zurückzugreifen. Um dies zu erreichen, kombinierte das Team dynamische Beleuchtung in Unreal Engine 4 mit einem Übergangssystem, das Texturen und Geometrie in Echtzeit verändert, und stützte sich dabei auf Maya für die Basismodellierung und Substance Painter für die realistische Alterung von Oberflächen.
Workflow zwischen Maya, Substance Painter und Unreal Engine 4 🛠️
Der Prozess begann in Maya, wo die Umgebungen mit einer modularen Topologie modelliert wurden, die den Austausch von Teilen zwischen den Epochen ermöglichte. Jedes Asset erhielt eine optimierte UV-Mapping, um die Texturierung in Substance Painter zu erleichtern, wodurch Schichten von Abnutzung, Staub und Rost erzeugt wurden, die je nach Zeitlinie aktiviert werden. In Unreal Engine 4 wurden Blueprints implementiert, um die dynamische Beleuchtung zu steuern: Beim Wechsel der Epoche werden die Lichter neu konfiguriert und die Texturen mittels Materialien mit Parametern für Opazität und Verschiebung interpoliert. Um die Leistung auf Konsolen und PCs zu erhalten, wurde LOD (Level of Detail) für entfernte Objekte angewendet und die Verwendung dynamischer Schatten auf Schlüsselelemente beschränkt, wobei die Stabilität der Bildrate während der Übergänge priorisiert wurde.
Lehren für unabhängige Entwickler 💡
Die Lösung von Fobia zeigt, dass Zeitreisen keine separaten Umgebungen oder großen Budgets erfordern. Durch die Wiederverwendung desselben Basisnetzes und die alleinige Änderung der visuellen Parameter wird der Speicherverbrauch reduziert und die Entwicklung beschleunigt. Für ähnliche Projekte empfehle ich, von Anfang an eine Datenstruktur zu planen, die jede Epoche mit einem Satz von Texturen und Lichtern verknüpft, und die Übergänge auf Mittelklasse-Hardware zu testen, um sicherzustellen, dass das Horrorerlebnis nicht durch Leistungseinbrüche unterbrochen wird.
Als Entwickler: Welche Technik habt ihr in Unreal Engine 4 implementiert, um die Zustandsänderungen der Umgebung über verschiedene Zeitlinien hinweg zu verwalten, ohne die Motorleistung zu beeinträchtigen?
(PS: Ein Spieleentwickler ist jemand, der 1000 Stunden damit verbringt, ein Spiel zu machen, das die Leute in 2 Stunden durchspielen)