Mapcrafter für Minecraft 1.14 nutzbar

Minecraft 1.14 ist bereits seit einigen Tagen veröffentlicht und nun wurde die freie Software Mapcrafter soweit nachgezogen, das sie mit der Minecraft-Version 1.14 genutzt werden kann. Mapcrafter dient der Erzeugung einer interaktiven Karte einer Minecraft-Welt. Unter Ubuntu kann das Projekt aus dem Repository geklont werden und anschließend kompiliert und installiert werden:

git clone https://github.com/mapcrafter/mapcrafter.git
cd mapcrafter
git checkout world113
cmake .
make 
make install

Anschließend kann Mapcrafter ausgeführt werden:

/usr/local/bin/mapcrafter -c akaria.conf -b -j 4

Die Konfiguration (in diesem Fall: akaria.conf) legt fest, welche Ebenen und Dimensionen wie gerendert werden sollen. Beispielhaft könnte die Konfiguration wie folgt aussehen:

output_dir = /var/www/map
background_color = #000000

[marker:teleporter]
name = Teleporter
prefix = Hauptteleporter
icon = beacon.png
icon_size = [32, 32]
show_default = false
title_format = %(textp)

[marker:signs]
name = Signs
icon = sign.png
icon_size = [32, 32]
show_default = false
title_format = %(textp)

[world:akaria]
input_dir = akaria
world_name = Akaria

[world:akaria_without_liquid]
input_dir = akaria
block_mask = !8 !9 !10 !11
world_name = Akaria

[global:map]
image_format = png
png_indexed = true
rotations = top-left
texture_size = 16

[map:day_isometric]
name = Day (isometric)
render_view = isometric
render_mode = daylight
world = akaria

[map:day_withoutliquid_isometric]
name = Day (without liquid, isometric)
render_view = isometric
render_mode = daylight
world = akaria_without_liquid

[map:day_spawn_isometric]
name = Day (spawn, isometric)
render_view = isometric
render_mode = daylight
overlay = spawnday
world = akaria

...

Im Zuge der Umstellung von Mapcrafter auf Minecraft 1.13 und jetzt 1.14, kam es bei Mapcrafter zu größeren Umbauten, welche leider noch nicht abgeschlossen sind. So fehlt im Moment noch die Möglichkeit der Blockfilter und auch beim Rendering von Schildern scheint es Probleme zu geben. Es bleibt zu hoffen, dass das Release in nächster Zeit fertiggestellt wird. Der aktuelle Status kann in dem entsprechenden Pull-Request eingesehen werden.

Blöcke welche mit 1.14 eingeführt wurden, werden nun ebenfalls gerendert

Die offizielle Seite des Projektes ist unter mapcrafter.org zu finden. Der Quelltext kann über GitHub bezogen werden. Lizenziert ist das Projekt unter der GPL3-Lizenz und damit freie Software. Wer eine Mapcrafter-Karte in Aktion sehen möchte, kann dies unter map.akaria.q1z.net tun.

Konvertierung der Map von Minecraft 1.12 auf 1.13 durchführen

Vor einigen Wochen erschien Version 1.13 des Open-Word-Spieles Minecraft. Im Zuge dieser Aktualisierung wurden unter anderem die Daten der Blöcke verändert. Beim Erzeugen der Weltkarte über die freie Minecraft-Rendersoftware Mapcrafter traten nach dem Update Probleme auf.

Nur die bereits konvertierten Chunks werden gerendert

Während der Server ohne Probleme lief, wurden in der Karte nur bestimmte Chunks gerendert. Der Grund hierfür war das nur die Chunks in das neue Format der Version 1.13 konvertiert wurden, die von den Spielern auf dem Server besucht worden waren. Alle anderen Chunks lagen noch im Format der Version 1.12 vor. Eine Lösung für dieses Problem schafft der mit 1.13 neu eingeführte Kommandozeilen-Parameter –forceUpgrade des Minecraft-Servers. Wenn man diesen entsprechend startet:

java -Xmx4096M -Xms2048M -jar minecraft_server.jar nogui --forceUpgrade

beginnt der Server alle Chunks in das neue Format zu überführen:

[06:42:34] [Server thread/INFO]: Starting minecraft server version 1.13.1
...
[06:42:34] [Server thread/INFO]: Forcing world upgrade!
[06:42:34] [Server thread/INFO]: Counting chunks...
[06:42:48] [Server thread/INFO]: Upgrading structure data...
[06:42:48] [Server thread/INFO]: 0% completed (0 / 1630135 chunks)...
[06:42:49] [Server thread/INFO]: 0% completed (0 / 1630135 chunks)...
..
[08:52:58] [Server thread/INFO]: 99% completed (1629866 / 1630135 chunks)...
[08:52:59] [Server thread/INFO]: 99% completed (1630017 / 1630135 chunks)...
[08:53:00] [pool-4-thread-1/INFO]: World optimizaton finished after 7812721 ms

Je nach der Größe der eigenen Welt kann dieser Vorgang durchaus einige Stunden in Anspruch nehmen. Nachdem alle Chunks konvertiert wurden, funktioniert das Rendering der Weltkarte wieder wie gewohnt.

Minecraft-Karten mittels Mapcrafter rendern

Bis vor einiger Zeit nutzte ich zum Rendern von größeren Minecraft-Karten den Minecraft Overviewer. Bei immer größer werdenden Karten lässt die Performance beim Minecraft Overviewer leider zu wünschen übrig. Abhilfe schafft hier der Mapcrafter, welcher unter mapcrafter.org zu finden ist. Mapcrafter wurde von Anfang an auf eine hohe Rendergeschwindigkeit optimiert. Dies merkt man vor allem dann, wenn eine komplette Karte neu gerendert werden muss. Gegenüber dem Minecraft Overviewer kann man hier teilweise Tage sparen.

Eine mittels des Mapcrafter gerenderte Minecraft-Karte

Neben der Unterstützung von isometrischen Karten können auch Karten in 2D-Perspektive (Draufsicht) gerendert werden. Die darzustellenden Blöcke können dabei fein konfiguriert werden, so das z.B. eine Karte ohne Wasser und Lava möglich ist. Der Quellcode des Mapcrafter ist auf GitHub zu finden. Lizenziert ist das Projekt unter der GPL3-Lizenz und damit freie Software.