Bild mit freundlicher Genehmigung von Matthieu Fiorilli

Chasing the Unseen nutzt fraktale Mathematik für Umgebungen und Gameplay

Indie-Spieleentwickler Matthieu Fiorilli |
23. November 2022
Strange Shift Studio wurde 2022 in Montreal gegründet und ist ein unabhängiges Ein-Mann-Spielestudio des Gründers Matthieu Fiorilli.
Chasing the Unseen ist ein Spiel, in dem es darum geht, auf riesige Kreaturen zu klettern und jenseitige Umgebungen zu erkunden, die mit Hilfe von Fraktalmathematik generiert wurden. Da ich ein solch ehrgeiziges Projekt als alleiniger Spieleentwickler in Angriff genommen habe, wusste ich, dass ich die richtigen Tools brauchte. In diesem Tech-Blog werde ich Ihnen einen Überblick darüber geben, wie ich diese Herausforderungen für Chasing the Unseen angegangen bin.
 

Werkzeuge für Indie-Entwickler haben in den letzten Jahren große Fortschritte gemacht und ein Projekt wie dieses wäre bis vor Kurzem unmöglich gewesen. Die Bemühungen von Epic, SideFX und anderen, leistungsfähige Werkzeuge dieser Art für alle verfügbar zu machen, haben dieses Projekt möglich gemacht.

Ich wusste schon am Anfang dieses ambitionierten Projekts, dass ich die richtigen Werkzeuge dafür brauchen würde – und ich habe sie mit einer Symbiose von Unreal Engine und Houdini gefunden.

Die Kreaturen

Schauen wir uns zuerst die Kreaturen und das Klettersystem an.
Bild mit freundlicher Genehmigung von Matthieu Fiorilli
Screenshot aus dem Spiel
Ich habe meine Kreaturen mit einer Reihe von Werkzeugen in Houdini erstellt. Für den Oktopus benutze ich zum Beispiel die traditionellen Houdini-Werkzeuge für prozedurale Modellierung und simuliere ihn anschließend mit Houdinis neuestem Multi-Solver Vellum. Durch die Simulation erhalte ich sehr natürliche und fließende Deformationen. Die Herausforderung besteht nun darin, das Ergebnis in die Unreal Engine zu importieren und kletterbar zu machen. Dazu habe ich das leistungsstarke Werkzeug Dem Bones genutzt. Meine Oktopus-Simulation in Houdini ist ziemlich schwer: Jeder Punkt der Geometrie hat seine eigene Animation und eine Spielengine kann das nicht einfach so verarbeiten. Mit Dem Bones kann ich prozedural eine Reihe von Knochen und Skinning generieren, um die Simulation mit spielenginefreundlichen Daten zu rekonstruieren. Anstelle von Animationen für jeden einzelnen meiner 128.000 Scheitelpunkte auf dem Oktopus kann ich also eine Animation von nur ungefähr 600 Knochen nutzen.
Bild mit freundlicher Genehmigung von Matthieu Fiorilli
Baking der Vellum-Simulation mit Dem Bones
Ich kann die Kreatur dann in Unreal importieren und die Animation in Echtzeit abspielen. Hier verwende ich die Zustandsmaschine, um verschiedene Animationen zu mischen. Basierend auf den von Dem Bones erstellten Skinning-Informationen kann ich prozedural konvexe Hüllen für die Kollisionen generieren, die dann mit individuellen Werkzeugen in Unreal importiert werden können.
Bild mit freundlicher Genehmigung von Matthieu Fiorilli
Kollisionsmesh in der Unreal Engine
Für das Klettern wird ein Mesh mit niedrigerer Auflösung generiert und in Unreal importiert. Durch eine Kombination von Blueprint und C++ kann mein Klettersystem das Mesh mit niedrigerer Auflösung dann dazu verwenden, dass der Charakter an den Kreaturen angebracht wird.
Bild mit freundlicher Genehmigung von Matthieu Fiorilli
Klettersystem mit Blueprints und C++

Die Umgebungen

Für die Umgebungen verwende ich fraktale Mathematik und andere prozedurale Techniken. Fraktale sind diese kurzen mathematischen Formeln, die endlose sich wiederholende Formen erzeugen. Eines der bekanntesten Fraktale ist die Mandelbrot-Menge .
Bild mit freundlicher Genehmigung von Matthieu Fiorilli
Mandelbrot-Menge-Bild von Wikipedia
Die Mandelbrot-Menge ist ein 2D-Fraktal, das nach Benoit Mandelbrot benannt ist. Viele Jahre nach ihrer Entdeckung wurde auch eine analoge 3D-Version entdeckt: der Mandelbulb.

Das wirft nun die Frage auf, wie man Fraktale in Videospielen einsetzen kann. Ich konnte dieses Problem durch eine Symbiose von Houdini und der Unreal Engine lösen. In Houdini benutzte ich Juraj Tomoris Abschlussprojekt „VFX Fractal Toolkit“, um die Fraktale zu generieren, und entwickelte anschließend eine Pipeline um sie herum, um die Geometrie darauf vorzubereiten, in der Unreal Engine verarbeitet zu werden. Diese Pipeline wird auf Fraktale und andere prozedurale Mesh-Erstellungsmethoden angewandt (in Abhängigkeit vom Level).
Bild mit freundlicher Genehmigung von Matthieu Fiorilli
Fraktale Meshes, die für ein Spiel-Level generiert wurden
Um die Fraktale für die Unreal Engine vorzubereiten, mussten zunächst verschiedene Aufgaben erledigt werden: Beseitigung der kleinen Details, Erstellung von flachen begehbaren Hängen, Aufteilung der Meshes in Komponenten für eine korrekte Verdeckung in UE, Mesh-Verringerung, LOD-Generation, UVs, Light-Maps und vieles mehr. Dieser gesamte Prozess ist automatisiert und an die Anforderungen der Unreal Engine angepasst.
Bild mit freundlicher Genehmigung von Matthieu Fiorilli
In-Game-Screenshot eines der Level
Nach Abschluss all dieser Prozesse wird das Level schließlich in Unreal konstruiert und ich benutze das Beleuchtungssystem für das Baking der Light-Maps. Da das Level in verschiedene Teile strukturiert ist, leistet Unreals Verdeckungssystem hier hervorragende Arbeit, indem es nur die Meshes einbezieht, die unsere Kamera sieht. Unreals LOD-System bezieht nur Meshes mit der erforderlichen Dichte ein, basierend auf der Kameradistanz. Für die Kollisionen generiere ich ein separates Mesh mit niedrigerer Auflösung.
Bild mit freundlicher Genehmigung von Matthieu Fiorilli
Screenshot aus dem Spiel von einem Spiel-Level

Abschließende Worte

Das ist eine Übersicht meiner Lösungen für die Kreaturen, das Klettern und die Level in meinem Spiel. Es handelt sich hierbei um den primären Arbeitsablauf, den ich für dieses Spiel verwende, wobei ich bei Bedarf auch verschiedene Variationen für einzelne Kreaturen oder Level einführen kann.

Es war eine ziemliche Herausforderung, Lösungen für die Herausforderungen dieses Projekts zu finden, aber die Arbeit als Indie-Entwickler gab mir die Freiheit und Flexibilität, die neuesten Tools zu nutzen, um dies möglich zu machen. Ich hoffe, dass dieser Beitrag dabei geholfen hat, Ihnen einen Einblick in die technischen Abläufe des Projekts zu geben (zumindest aus einer höheren Perspektive) und um Ihnen zu zeigen, was mit den verfügbaren Tools möglich ist.

Danke fürs Lesen! Chasing the Unseen erscheint auf dem PC. Mehr über das Projekt erfahren Sie unter www.chasingtheunseen.com.

    Sichern Sie sich die Unreal Engine noch heute!

    Sichern Sie sich das offenste und fortschrittlichste Werkzeug der Welt.
    Die Unreal Engine wird mit allen Funktionen und vollem Zugriff auf den Quellcode geliefert und ist sofort einsatzbereit.