Die prozedurale Entstehung der Welten

Was steckt eigentlich dahinter, wenn Sean Murray in Bezug auf NMS auf die Prozedurale Generierung des Universums hinweist? Wikipedia liefert eine präzise Definition:

Prozedurale Synthese oder Prozedurale Generierung bezeichnet in der Informatik Methoden zur Erzeugung von Programminhalten wie Texturen, virtuellen Welten, 3D-Objekten und sogar Musik in Echtzeit und während der Ausführung des Computerprogramms, ohne dass diese Inhalte vor der Benutzung vom Entwickler fest angelegt und in ihrer endgültigen Form an den Nutzer weitergegeben werden. Dabei werden die Inhalte keineswegs zufällig erzeugt, sondern die Generierung folgt deterministischen Algorithmen, um bei gleichen Ausgangsbedingungen immer wieder dieselben Inhalte erzeugen zu können. Dadurch eröffnet sich dem Entwickler die Möglichkeit, äußerst umfangreiche und komplexe Inhalte zeit- und platzsparend zu entwickeln und weiterzugeben.

Wie das Ganze praktisch funktioniert, hat der Programmierer Marian Kleineberg in einem Online Tool gezeigt. Hier eines der generierten Bilder, den Hinweis verdanken wir dem Standard:

canvas

Doch kehren wir zu NMS zurück: Das Onlinemagazin Gamespot hat den Entwickler Sean Murray befragt, wie denn die Grundmechanismen der Entstehung von NMS beschaffen seien. Wir stellen am Ende des Beitrags das gesamte Video in englischer Sprache zur Verfügung: und haben das Interview sinngemäß  auf Deutsch zusammengefaßt:

Das Universum von NMS entstehe laut Sean Murray auf verfahrenstechnische Weise (procedural) und nicht regellos zufällig (random). Random kann aus seiner Sicht Chaos und Unordnung bedeuten. Procedural hingegen basiert auf mathematischen Formeln deren Resultat unmittelbar auf dem Bildschirm zu sehen sind und die ein korrektes Resultat liefern. Die Bilder sähen dann fast so aus, wie von Hand gezeichnet. Anstatt etwa einen Planeten random zu generieren und ihm eine beliebige Farbe zuzuweisen, schaffen wir Algorithmen, die festlegen. daß der Planet in der gewünscht Distanz zur Sonne liegt mit der darauf aufbauenden Ausstattung von Wasser, den entsprechenden Flüssen, Seen und Meere. Dies hat natürlich Auswirkungen auf die Atmosphäre und die Farbe des Lichtes auf diese Planeten, der ja von der Brechung der Lichtwellen abhängig ist.

Anders als in der realen Welt, wo man davon ausgehe, daß ein fallender Baum auch ein Geräusch produziere, wenn man nicht anwesend sei, verhält es sich bei NMS anders. Wenn niemand anwesend sein gäbe es keinen Baum, ja überhaupt keinen Planeten. Murray gibt dazu ein Beispiel. Trifft man auf einem Planeten auf einen Baum auf einem Berggipfel, so ist dieser das Resultat einer mathematischen Formel, die grundsätzlich immer gleich bleibt. Wenn der Besucher wiederkommt, wird die entsprechende Formel und ihr Ergebnis (=der Baum) exakt wieder so dargestellt. Das gilt auch für andere Besucher. Aber diese Formel ist nicht gespeichert, weder auf der Festplatte, der Disk oder in der Cloud, sie wird für den Moment generiert. Verläßt man den Ort, wird die Formel (der Baum, der Berg) „weggeworfen“. Gleiche Inputs („Ich bin da“) bedingen gleiche Outputs.

Alles werde in verschiedenen Detaillierungsgraden (Level of Detail, LOD) generiert, allerdings in der Form, daß beim Übergang zwischen den Detaillierungsgraden kein Popping Effekt zu bemerken sei, sondern sich der Detaillierungsgrad stufenlos ergäbe. Der Planet in der Ferne gewinne beim Anflug stufenlos an Detaillierungsgrad und erreiche sein höchstes LOD beim Betreten desselben.

Aber nicht nur Deteillierungsgrad werde generiert sondern auch Varietät. Alles was gesehen werden kann (Lebewesen, Raumschiffe, Pflanzen), ist einzigartig. Aus einer Katze etwa könnten verschiedene Typen von Löwen oder Tigern erzeugt werden, aber auch sehr phantasievoll mutierte Lebewesen. Auch die Bewegungsmuster der Lebewesen (oder Raumschiffe) würden nach mathematischen Formeln generiert werden. Käme man später wieder zur selben Stelle, so wären diese Abläufe weiter fortgeschritten.

Dadurch würden unterschiedliche Ebenen an einfachen Algorythmen generiert, die in ihrer Summe dazu tendieren, kompolexe (und chaotische) Systeme zu schaffen. Ändere man einen Bestandteil des Kodes, so könne dies unerwartete Folgen haben.Das sei eine der großen Herausforderungen bei der Programmierung.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s