Minecraft auf dem Steam Deck installieren

Da Minecraft nicht über Steam installiert werden kann, läuft es im ersten Moment nicht auf dem Steam Deck. Allerdings kann hier schnell Abhilfe geschaffen werden. Im ersten Schritt muss hierzu in den Desktop-Modus gewechselt werden. Dieser wird erreicht in dem im Steam Deck-Menü der Punkt Ein/Aus ausgewählt wird. Dort findet sich dann der Punkt Zum Desktop wechseln.

Die Installation des GDLauncher

Im Desktop-Modus angekommen, sollte die Softwareverwaltung (Discover) gestartet werden und dort nach der Applikation GDLauncher gesucht werden. Wird im Desktop-Modus eine Tastatur benötigt, so kann diese über einen Druck auf die Steam-Taste in Verbindung mit dem X-Button aktiviert werden. Anschließend sollte die Applikation installiert werden.

Nach einigen Minuten ist der Launcher installiert und kann gestartet werden. Im ersten Schritt möchte der Launcher Java installieren. Hier empfiehlt es sich Automatic Setup auszuwählen. Anschließend werden die benötigten Java-Versionen heruntergeladen und installiert. Danach kann sich über den GDLauncher in den Account eingeloggt werden. Bei bereits umgestellten Konten sollte hier auf Sign in with Microsoft geklickt werden. Nachdem Nutzername und Passwort eingegeben wurde und die App autorisiert wurde, kann über den GDLauncher die passende Minecraft-Version installiert werden.

Dazu müssen einige einführende Worte weggeklickt und anschließend über den Plus-Button eine neue Minecraft-Version installiert werden. Der Download der entsprechenden Version sollte nach einigen Minuten abgeschlossen sein. Nach der Installation sollte das Menü im Desktop-Modus wieder aufgerufen werden und dort nach GDLauncher gesucht werden. Nach einem rechten Mausklick auf das Symbol kann dort Add to Steam ausgewählt werden. Mit der Verknüpfung Return to Gaming Modus, welche sich direkt auf dem Desktop befindet, kann wieder in den normalen Standardmodus des Steam Deck zurückgekehrt werden.

Die Controllereinstellungen müssen für Minecraft sinnvoll definiert werden

Nachdem GDLauncher, als Icon hinterlegt wurde, muss im nächsten Schritt eine sinnvolle Controllereinstellung definiert werden. In meinem Fall habe ich das Community-Layout Minecraft Xbox Style von Rasin Bar genutzt. Anschließend kann der GDLauncher gestartet werden und dort dann die gewünschte Minecraft-Version ausgewählt und gestartet werden. In Minecraft selbst können entsprechende Einstellungen wie die gewünschte Auflösung vorgenommen werden.

Minecraft auf dem Steam Deck

Direkt auf dem Steam Deck sollte diese immer 1280 x 800 Pixel betragen und kann somit direkt über die Einstellungen des GDLauncher vorgenommen werden. Dies ist auch die sinnvollere Variante um Letterbox-Effekte zu verhindern. Da Minecraft von sich aus keine sinnvolle Gamepad-Unterstützung mitbringt; ist die Nutzung über die Dockingstation und ein separates Gamepad ohne entsprechende Mods nicht sinnvoll. Der Chat hingegen kann in der Theorie über die Bildschirmtastatur genutzt werden.

Spieler in Minecraft zufällig teleportieren

In Minecraft ist es möglich mit dem Teleport-Kommando (tp) und Kommandoblöcken Teleporter zu bauen. Schwieriger wird es allerdings wenn ein Teleporter gebaut werden soll, welcher zu zufälligen Koordinaten führen soll.

Nachdem das Kommando gesetzt wurde, ist der Teleporter einsatzbereit

Hier ist der tp-Befehl nicht sonderlich hilfreich, da feste Koordinaten vergeben werden müssen. In diesem Fall kann allerdings der spreadplayers-Befehl genutzt werden:

/spreadplayers 0 0 0 50000 false @p

Dieser verteilt die gewünschte Entität auf einem festgelegten Bereich. Der Bereich selbst wird im Kommando definiert. Daneben setzt er die Entität auch immer auf einem sicheren Grund ab, sodass diese Art des teleportierens sicher ist.

Mapcrafter unter Ubuntu aufsetzen

Eine Welt in Minecraft hat die Angewohnheit, mit der Zeit immer größer zu werden. In einem solchen Fall ist eine Karte natürlich sehr praktisch. Mithilfe des Tools Mapcrafter kann eine solche Karte erstellt werden. Der Mapcrafter erzeugt neben den Kartenkacheln auch eine JavaScript-Anwendung, mit der diese betrachtet werden können.

Eine Mapcrafter-Karte

Im ers­ten Schritt muss das Mapcrafter-Repository mittels:

git clone https://github.com/mapcrafter/mapcrafter.git

auf den Ser­ver geholt werden. Mit dem Befehl wird das Git-Repository, in welchem sich der Quelltext befindet, auf den Server geklont. Im Git-Kontext bedeutet dies, dass das gesamte Repository heruntergeladen wird. Falls Git nicht installiert ist, muss das entsprechende Paket mittels:

apt install git

installiert werden. Die aktuelle Entwicklung findet im Branch world113 statt, so das in diesen gewechselt werden muss:

cd mapcrafter
git checkout world113

Bevor die Software kompiliert werden kann, müssen einige Abhängigkeiten installiert werden:

apt install build-essential cmake libboost-all-dev libjpeg-dev libpng-dev

Anschließen kann die Software kompiliert und installiert werden:

cmake .
make 
make install
ldconfig

Nach der Installation könnte Mapcrafter über den Befehl:

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

ausgeführt werden. Allerdings muss vor dem ersten Start noch eine Konfigurationsdatei erstellt werden. In dieser Konfigurationsdatei ist definiert, wie die Karte gerendert werden soll. Die Datei und die Skripte zur Aktualisierung werden im Kontext des Nutzers minecraft angelegt:

su minecraft
cd
mkdir map
nano example.conf

Exemplarisch könnte die Konfigurationsdatei wie folgt aussehen:

output_dir = /home minecraft/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:world]
input_dir = world
world_name = Example

[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 = world

Nachdem die Konfigurationsdatei angelegt wurde, kann die Karte testweise mittels des Befehls:

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

erzeugt werden. Damit die Aktualisierung später automatisch geschieht, werden die Befehle zur Aktualisierung der Skripte in eine Skript-Datei geschrieben:

nano updateMap.sh

Diese Datei wird mit folgendem Inhalt befüllt:

#!/bin/bash
/usr/local/bin/mapcrafter -c example.conf -b -j 4
/usr/local/bin/mapcrafter_markers -v -c example.conf

Anschließend soll ein Cronjob eingerichtet werden. Dazu wird der Crontab-Editor geöffnet:

crontab -e

In der sich öffnende Datei muss nun folgende Zeile hinzugefügt werden:

0    1    * * *   (. ~/.profile; /usr/bin/screen -dmS mapcrafter /home/minecraft/updateMap.sh)

Danach kann die Datei geschlossen werden. Der Cronjob startet nun um 1 Uhr die tägliche Aktualisierung der Karte.

Minecraft Server aufsetzen

Das Spielprinzip von Minecraft, welches mittlerweile von Microsoft aufgekauft wurde, lässt sich am besten als LEGO für Erwachsene beschreiben. In einer Welt, die nur aus Blöcken besteht, kann sich der Spieler ausleben und seiner Kreativität freien Lauf lassen.

Vor einigen Jahren schrieb ich einen Artikel, wie ein Minecraft-Server unter Ubuntu aufgesetzt wird. Da der Artikel mittlerweile etwas veraltet ist, wird die Anleitung mit diesem Artikel aktualisiert.

Um einen Minecraft-Server aufzusetzen, muss im ersten Schritt Java mittels:

apt install openjdk-11-jre

installiert werden. Nun kann die Version des installierten Javas mittels des Befehls:

java --version

bestimmt werden. Für die Ausführung von Minecraft wird hierbei Java 7 oder höher benötigt. In der Ausgabe des Befehls finden sich die notwendigen Informationen:

openjdk 11.0.3 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu218.04.1)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu218.04.1, mixed mode, sharing)

Nachdem damit die Grundvoraussetzungen erfüllt sind, wird mittels:

adduser --disabled-login --gecos "" minecraft
su minecraft

ein Nutzer für den Server angelegt und in diesen Nutzer gewechselt. Im Kontext des Nutzer muss nun der Server heruntergeladen werden. Die aktuelle URL des Server ist über die Minecraft-Webseite in Erfahrung zu bringen:

wget https://launcher.mojang.com/v1/objects/d0d0fe2b1dc6ab4c65554cb734270872b72dadd6/server.jar

Nachdem der Server heruntergeladen wurde, kann er für einen ersten Tests gestartet werden:

java -Xmx1024M -Xms1024M -jar server.jar nogui

Beim ersten Start wird folgende Meldung erscheinen:

[13:36:13] [main/ERROR]: Failed to load properties from file: server.properties
[13:36:14] [main/WARN]: Failed to load eula.txt
[13:36:14] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

Im Home-Verzeichnis des Nutzers findet sich nun eine Datei mit dem Namen eula.txt. Diese Datei muss bearbeitet werden:

nano eula.txt

Der Wert:

eula=false

muss hierbei auf den Wert true gesetzt werden. Anschließend kann die Datei gespeichert werden und der Editor verlassen werden. Nach dem abermaligen Start des Servers mittels:

java -Xmx1024M -Xms1024M -jar server.jar nogui

sollte derselbe nun hochfahren. Nachdem der Server erfolgreich hochgefahren wurde, sollte er wieder beendet werden. Damit der Service automatisch hochfährt, muss eine sogenannte systemd-Unit angelegt werden. Dazu wird der Nutzer minecraft verlassen und die systemd-Unit angelegt:

exit
nano /etc/systemd/system/minecraft.service

Die neu angelegte Datei wird nun mit folgendem Inhalt befüllt:

[Unit]
Description=Minecraft Server
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/minecraft
User=minecraft
Group=minecraft

Restart=always

ExecStart=/usr/bin/screen -DmS minecraft-server java -Xmx4096M -Xms2048M -jar server.jar nogui

ExecStop=/usr/bin/screen -p 0 -S minecraft-server -X eval 'stuff "save-all"15'
ExecStop=/usr/bin/screen -p 0 -S minecraft-server -X eval 'stuff "stop"15'
ExecStop=/bin/sleep 2

[Install]
WantedBy=multi-user.target

Nachdem die Datei gespeichert wurde, kann die systemd-Unit aktiviert werden:

systemctl enable minecraft
systemctl start minecraft

Damit ist der Minecraft-Server eingerichtet und startet automatisch und läuft anschließend im Hintergrund.

Im Home-Verzeichnis des Nutzers minecraft finden sich einige Dateien, welche der Konfiguration des Servers dienen. In der Datei ops.json werden die Operatoren für den Server hinterlegt. Die Datei server.properties enthält die grundlegenden Einstellungen des Servers. Wurde die Option white-list auf den Wert true gesetzt, so können die berechtigten Nutzer in der Datei whitelist.json hinterlegt werden.

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.