Pluton
Pluton ist unter anderem der Name des Weltgenerators, der auf Neostralis verwendet wird. Dieser Generator ist selbst programmiert und closed-source.
Anders als oft angenommen, kann Pluton kein Gelände generieren, sondern generiert aus Gelände eine Minecraftwelt. Der Generator nimmt als Eingabe diverse Heightmaps und gibt mehrere MCA-Dateien aus.
Folgende Heightmaps sind besonders wichtig:
Komponenten[Bearbeiten | Quelltext bearbeiten]
Pluton besteht aus mehreren Programmen und Libraries.
pluton-gen[Bearbeiten | Quelltext bearbeiten]
Beinhaltet die komplette Logik zur Generierung der Map, inklusive Biome, Gesteine, Bäume und sonstige Objekte. Die Welt wird in einer Repräsentation ausgegeben, in der Chunks 32*256*32 groß sind und BlockIDs 16bit lang sind, wobei sich eine ID aus einem 11bit Typwert, einem 4bit Datenwert und einem waterlogged Bit zusammensetzt. IDs von Blöcken vor 1.13 sind identisch mit denen in Minecraft (Birkenstämme sind 17:2, Cobblestone ist 4.), während IDs für neuere Blöcke beliebig gewählt sind und deren Datenwerte günstig organisiert sind.
Ist ebenso zuständig für das Speichermanagement und richtige Scheduling der Operationen. Je nach Arbeitsspeicher können in der Regel 2048*2048 Blöcke große Regionen auf einmal generiert werden.
pluton-zeus[Bearbeiten | Quelltext bearbeiten]
Zuständig für das Übersetzen der obigen Repräsentation in MCA Dateien und Minecraft Chunks. Berechnet die Beleuchtung, Minecraftspezifische Heightmaps und übersetzt die internen IDs in Namespaced IDs.
pluton-map[Bearbeiten | Quelltext bearbeiten]
Generiert direkt eine Übersichtskarte aus den Heightmaps ähnlich wie Dynmap.
pluton-effhm[Bearbeiten | Quelltext bearbeiten]
Generiert eine effektive Heightmap, die schwebende Inseln, Felsen und Eisberge berücksichtigt. Dies ist für die Generierung von Dungeons relevant.
pluton-hm[Bearbeiten | Quelltext bearbeiten]
Eine Q3 Library, die Funktionen zum Erstellen, Transformieren und Konvertieren von Heightmaps zur Verfügung stellt.
pluton-oretest[Bearbeiten | Quelltext bearbeiten]
Ein Simulator für die Verteilung der Erze. Generiert Mock-Gelände und analysiert die dortigen Häufigkeiten.
pluton-mcagrind[Bearbeiten | Quelltext bearbeiten]
Tool zum Schneiden und Verschieben von Chunks von einer MCA Datei in eine andere. Wird verwendet beim Reset der Wildnis bei Updates.
pluton-utils[Bearbeiten | Quelltext bearbeiten]
Basisfunktionen und Konstanten, die von anderen Komponenten verwendet werden.
Generierung[Bearbeiten | Quelltext bearbeiten]
Die Performance hängt davon ab, ob Höhlen und schwebende Inseln aktiviert sind. Die Hauptwelt nimmt bei 8 Kernen und 30GiB RAM etwa 24h in Anspruch.
Geschichte[Bearbeiten | Quelltext bearbeiten]
Erstmals wurde CraftinationGen für die Generierung der Survival14 programmiert. Dabei handelte es sich um ein Bukkit-Plugin, das einen Weltgenerator anbietet. Diese Welt kam Anfang 2014 online. Für die Hauptwelt wurde 2015 schließlich Platon entwickelt, der von Bukkit unabhängig läuft und zur Generierung der Survival18 Welt eingesetzt wurde. 2021 wurde Platon zu Pluton umgeschrieben, wobei es große Änderungen an der Architektur des Programms gab, um die neuen Blöcke generieren zu können.