Diese Seite enthält Inhalte, die nur in veralteten Versionen von Minecraft existieren. Diese Funktion war früher im Spiel vorhanden, wurde aber inzwischen entfernt.
|
Das vierte Datenformat zur Spielstand-Speicherung ist das Region Format. Seine wesentliche Neuerung war die Zusammenfassung der bisher einzeln existierenden Chunkdateien zu größeren Regiondateien.
Das Region Format wurde in Beta 1.3 eingeführt. Erstmalig wurden Gruppen von 32×32 Chunks in einer gemeinsamen Datei gepeichert. Das System basiert auf der McRegion-Mod von Ryan Hitchman (aka Scaevolus)[1], der diese Minecraft-Modifikation entwickelt hatte, weil das ständige Aktualisieren der Chunkdateien unschöne Verzögerungen im Spielfluss verursachte. Mojang hat verschiedene Alternativen zur Speicherung getestet und sich dann für das das McRegion-Format entschieden. Notch übernahm es nahezu unverändert und fügte nur noch eine Tabelle mit den Zeitstempeln der Chunk-Updates hinzu. Das neue Format erzeugte 500 bis 1000 mal weniger Dateien und war bis zu sieben mal schneller bei der Speicherung[2][3]. Als mit Vollversion 1.2 (12w07a) die Bauhöhe von 128 auf 256 Blöcke erhöht wurde, wurde das Region Format durch ein neues Format ersetzt.
Entwicklung: Alpha Level Format Region Format Anvil Format
Regiondateien[]
Die im bisherigen Alpha Level Format verwendeten maximal 64×64 Verzeichnisse zur Speicherung der Chunkdateien werden durch ein einziges Verzeichnis namens region ersetzt, in dem alle Regiondateien ihren Platz finden. Eine Regiondatei fasst maximal 32×32 = 1024 Chunks zusammen, es können aber auch weniger sein, je nachdem wie weit die Welt in dieser Region erforscht ist.
Berechnung des Regiondateinamens[]
Eine Regiondatei hat die Endung .mcr (für Minecraft Region) und enthält in ihrem Dateinamen den X- und Z-Index der Region. Das Zentrum der Welt ist der Block mit der Koordinate 0/0. Er liegt in der nordwestlichen Ecke des Chunks 0/0, welcher wiederum in der nordwestlichen Ecke der Region 0/0 liegt (Datei "r.0.0.mcr"). Um den Regiondateinamen zu einer beliebigen Koordinate zu ermitteln, ist jeweils getrennt für X und Z wie folgt zu rechnen:
(positive Koordinate / 512) ohne Nachkommastellen ((negative Koordinate + 1) / 512 ) ohne Nachkommastellen - 1 Der Dateiname hat ein "r." als Präfix
Beispiel:
- Koordinate X = 2083, Z = -177
- X-Regionindex = (2083 / 512) ohne Nachkommastellen = 4
- Z-Regionindex = ((-177 + 1) / 512) ohne Nachkommastellen - 1 = -1
Der Dateiname lautet: "r.4.-1.mcr"
Berechnung des Chunkindex[]
Jeder Chunk hat innerhalb der Region einen stets positiven X- und Z-Index zwischen 0 und 31, der so berechnet wird:
(Koordinate - Regionindex×512) / 16 ohne Nachkommastellen
Beispiel:
- Koordinate X = 2083, Z = -177
- X-Chunkindex = (2083 - 4×512) / 16 ohne Nachkommastellen = 2
- Z-Chunkindex = (-177 - (-1)×512) / 16 ohne Nachkommastellen = 20
Der Chunkindex innerhalb der Region ist [2,20].
Interner Aufbau[]
Die Kenntnis des internen Aufbaus einer Regiondatei wird benötigt, wenn man ein Tool zur Anzeige von Regiondateien programmieren möchte[4][5].
Bytebereich | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|
0 - 4095 | Die ersten 4 Kilobyte der Regiondatei enthalten für jeden der 32×32 = 1024 Chunks in XZ-Sortierung eine vier Byte große Information, wo die jeweiligen Chunkdaten beginnen. Ist ein Chunk nicht in der Regiondatei vorhanden (z. B. weil er noch nicht generiert wurde), sind alle vier Bytes Null.
| ||||||||
4096 - 8191 | Die zweiten 4 Kilobyte enthalten für jeden der 32×32 = 1024 Chunks einen vier Byte (Big-Endian) großen Zeitstempel in Millisekunden seit dem 1.1.1970, wann die jeweiligen Chunkdaten zuletzt geändert wurden. | ||||||||
ab 8192 | Jeder Chunk beginnt mit einer Größeninformation, gefolgt von den komprimierten eigentlichen Chunkdaten.
|
Konvertierung[]
Die Datei level.dat mit den Weltdaten, die Sperrdatei session.lock und der Unterordner DIM-1 für die Netherdaten bleiben unverändert. Geändert wird nur die Speicherung der Chunkdaten für Oberwelt und Nether. Als mit Vollversion 1.0 das Ende als weitere Dimension hinzukam, wurde der Unterordner DIM1 hinzugefügt, der die Ende-Chunkdaten enthielt.
Die Konvertierung der Chunkdaten vom Alpha Level Format zum Region Format wird von Minecraft Beta 1.3 automatisch vorgenommen. Dies geschieht einmalig beim Laden der Welt für alle bisher existierenden Chunks dieser Welt. Nach der Konvertierung werden in den Weltdaten die neuen Eigenschaften version mit dem Wert 19132 und LevelName mit leerem Wert hinzugefügt, wodurch die Welt zukünftig als konvertiert erkannt wird.
Falls man statt der automatischen Konvertierung durch das Minecraft-Programm lieber ein eigenes Konvertierungsprogramm schreiben möchte, hat Mojang dazu einige Programmiertipps gegeben[2]
Einzelnachweise[]
Geschichte[]
Versionsgeschichte der Java Edition | ||||
---|---|---|---|---|
|
Standard-Ressourcen |
| ||||
---|---|---|---|---|---|
Standard-Weltdaten |
| ||||
Spielwelt | |||||
Software | |||||
Speicherformate |
| ||||
Einstellungen | |||||
Mehrspieler | |||||
Historisch |