Die Star Engine, entwickelt von Cloud Imperium Games für Star Citizen, löst eine der größten Herausforderungen der Weltraumsimulation: das Rendern ganzer Städte auf planetarischer Ebene ohne einen einzigen Ladebildschirm. Im Gegensatz zu traditionellen Engines, die die Welt in Level unterteilen, verwendet die Star Engine ein 64-Bit-Objekt-Streaming-System, das Daten dynamisch basierend auf der Position und Geschwindigkeit des Spielers lädt und entlädt. Dies ermöglicht es einem Spieler, aus den Tiefen des Weltraums zur Oberfläche eines Planeten zu fliegen, Atmosphären zu durchqueren und in dichten urbanen Gebieten zu landen – alles in einem nahtlosen und kontinuierlichen Übergang.
Prozedurale Generierung und Echtzeit-Objekt-Streaming 🚀
Der technische Schlüssel liegt in der Kombination zweier Systeme: der prozeduralen Generierung von Planeten und dem Objekt-Streaming. Die Engine speichert nicht jeden Baum oder jedes Gebäude auf der Festplatte; stattdessen verwendet sie Rausch- und Fraktalalgorithmen, um Topographie, Vegetation und Wettermuster in Echtzeit zu generieren. Ergänzt wird dies durch ein System von Interessenszonen (POIs), das das Laden komplexer Assets wie Hangars oder Geschäfte nur dann priorisiert, wenn sich der Spieler nähert. Im Vergleich dazu verwendet Unreal Engine 5 Nanite für virtualisierte Geometrie, ist aber nicht für astronomische Entfernungen optimiert. Unity hingegen benötigt Drittanbieterlösungen wie World Streamer, um sich anzunähern, jedoch ohne die Präzision von 64-Bit-Koordinaten, die Fließkommafehler auf planetarischen Skalen vermeidet.
Der künstlerische Workflow zwischen AAA-Tools 🎨
Um diesen Detailgrad zu erreichen, kombiniert das Team Maya, ZBrush und Substance Designer in einer hochgradig effizienten Pipeline. Die Künstler modellieren die Grundstruktur von Schiffen und Gebäuden in Maya und formen dann hochauflösende Details in ZBrush. Die Magie geschieht in Substance Designer, wo prozedurale Materialien erstellt werden, die sich an die Bedingungen des Planeten (Temperatur, Feuchtigkeit) anpassen, ohne dass einzigartige Texturen erforderlich sind. Diese Materialien werden in die Star Engine exportiert, wo das Shader-System sie mit Streaming-Daten kombiniert, sodass dasselbe Asset auf 10 Meter Entfernung detailliert und auf 10 Kilometer Entfernung erkennbar ist, was die Leistung optimiert, ohne die Immersion zu beeinträchtigen.
Wie schafft es die Star Engine, Milliarden von Polygonen in Echtzeit prozedural darzustellen, um planetarische Städte ohne sichtbare Ladezeiten zu simulieren, und mit welchen spezifischen technischen Einschränkungen hat die Engine in Bezug auf Speicher und Daten-Streaming zu kämpfen?
(PS: Ein Spieleentwickler ist jemand, der 1000 Stunden damit verbringt, ein Spiel zu machen, das die Leute in 2 Stunden durchspielen)