Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter  –  Chatte im Wiki-Discord  – Noch keinen Server gefunden? Es gibt einen Wiki-Server

Spielstand-Speicherung/Classic Level Format

Aus Minecraft Wiki
Wechseln zu: Navigation, Suche
Dieser Artikel oder Abschnitt enthält Informationen über Funktionen, die entweder veraltet sind oder aus dem Spiel entfernt wurden.
Sie existieren daher nur in älteren Versionen von Minecraft.

Das erste Datenformat zur Spielstand-Speicherung wird rückwirkend Classic Level Format genannt. Es gilt für folgende Entwicklungsphasen des Spiels:

  • In der ersten Entwicklungsphase (Creative Singleplayer) konnte das Spiel nur im Browser gespielt werden und der Spielstand wurde online auf dem Spielstandserver von Mojang gespeichert.
  • Als kurz darauf der Mehrspielermodus entwickelt wurde (Creative Multiplayer), konnten die Spieler zum ersten Mal selbst einen Server starten und die Spielstand-Datei analysieren, die den Namen server_level.dat trug.
  • Im nächsten Entwicklungsschritt (Survival Test) konnte man den Spielstand im Einzelspielermodus lokal speichern. Dazu musste man der Welt einen Namen geben ("Enter level name"). Sie wurde dann in einer Datei mit diesem Namen und der Endung .mine gespeichert. Dies wurde in die Kreativ- und Überlebensmodus-Variante des Spiels eingebaut, sodass man eine Welt im Kreativmodus vorbereiten und im Überlebensmodus spielen konnte. Umgekehrt ging das auch, aber dann verschwanden alle Monster und Gegenstände. Eine .mine-Datei konnte durch Umbenennung in server_level.dat auch zu einer Kreativmodus-Mehrspielerwelt gemacht werden.

In der nächsten Entwicklungsphase wurde das Spiel mit Indev 22. Januar 2010 weiter entwickelt, wobei ein neues Speicherformat verwendet wurde.

Entwicklung: Classic Level Format Pfeil34.png Indev Level Format

Aufbau[Bearbeiten]

Sämtliche Daten des Spiels, wovon die Blöcke den größten Teil ausmachen, werden vom Java-Programm in einem level-Objekt gehalten, das beim Speichern als serialisiertes Java-Objekt in eine Datei geschrieben wird. Da diese Datei sehr groß werden kann, wird sie mit mit gzip komprimiert, was aufgrund der vielen enthaltenen Luftblöcke eine erhebliche Reduzierung der Dateigröße bewirkt. Wenn man die Datei dekomprimiert, hat sie folgenden Aufbau:

Position Länge
(in Byte)
Beschreibung Erklärung
0 4 Magische Zahl Über die magische Zahl wird die Datei als Level-Datei im Classic Format identifiziert. Aktuell hat sie den hexadezimalen Wert 0x271bb788.
4 1 Versionsnummer Die Versionsnummer repräsentiert das aktuelle Format, in dem das Level gespeichert ist. Aktuell wird hier der Wert 2 gespeichert.
5 Variable Serialisiertes Java-Objekt vom Typ com.mojang.minecraft.level.Level Ein serialisiertes Java-Objekt wird üblicherweise mit einem Java-Programm gelesen und verändert, so wie es das damalige Minecraft-Serverprogamm gemacht hat. Zwar kann man auch direkt in die Rohdaten eingreifen, wenn man genau weiß, wo welche Daten stehen, aber da das von der Java-Version abhängt, die die Daten serialisiert hat, ist diese Methode unsicher.

Geschichte[Bearbeiten]