Einleitung: Was ist Minetest?

Minetest ist ein sogenanntes Sandbox-Spiel. Damit ist gemeint, dass es kein direktes Spielziel gibt. Stattdessen definieren die Spieler:innen selbst was sie tun möchten. Minetest ist durch “Mods” (Modifikationen) erweiterbar und kann durch “Texturepacks” (Texturen Pakete) optisch verändert werden. Dies wird durch eine technische Schnittstelle (API) sowie die freie Lizenz (GNU Lesser General Public License, Version 2.1) gewährleistet. Die Menschen, die Minetest stetig weiterentwickeln, gehören zur Minetest-Community und organisieren sich freiwillig und unabhängig. Es existiert also keine Firma oder irgendeine andere Art von juristisch legitimer Organisation. Die Minetest-Community selbst beschreibt ihr Projekt wie folgt.

An open source voxel game engine. Play one of our many games, mod a game to your liking, make your own game, or play on a multiplayer server.1

deutsche Übersetzung:

Eine quelloffene Voxel-Spiel-Engine. Spielen Sie eines unserer vielen Spiele, modifizieren Sie ein Spiel nach Ihrem Geschmack, erstellen Sie Ihr eigenes Spiel oder spielen Sie auf einem Multiplayer-Server.

Minetest stellt also erst einmal nur eine Engine zur Verfügung. Darauf aufbauend gibt es das minetest_game. Dieses ist für die meisten die Grundlage zum Spielen oder um eigene Mods bzw. Texturepacks zu erstellen. Diese Grundvariante bringt bereits eine ganze Reihe von Mods mit. Welche das konkret sind, könnt ihr im Git Repository selbst nachschauen. Für die meisten Spieler:innen stellt dies die Ausgangslage dar, genügt aber in der Regel nicht da bspw. Tiere und Monster fehlen. Diese und weitere Dinge können mit Mods hinzugefügt werden.

Minetest installieren

Minetest ist für diverse Plattformen und Betriebssysteme verfügbar. Wir legen bei diesem Beitrag den Fokus auf Linux, blicken aber auch kurz zu Windows und Android. Eine Übersicht ist im Downloadbereich der Minetest-Webseite zu finden. Aus unserer derzeitigen Erfahrung würden wir die Minetest-Version 5.3.0 als Minimum bezeichnen. Versionen darunter bringen bei der Verwendung von aktuellen Mods unter Umständen einige Probleme mit sich.

GNU/Linux

In den ‘großen’ Distributionen ist Minetest in den Paketquellen enthalten. Je nach Linux-Distribution muss ggf. noch ein Repository aktiviert bzw. hinzugefügt werden. Eine recht gute Übersicht gibt es bei repology.org und eine kleinere bei pkgs.org.

Debian/Ubuntu/Derivate

1
sudo apt install minetest

Wird nur die Server-Komponente benötigt (bspw. auf einem Server):

1
sudo apt install minetest-server

Da Debian berühmt und berüchtigt für seine Stabilität ist, setzen wir es gern ein. Allerdings sind viele Pakete somit oft auch schon bei Release veraltet. Die Version könnt ihr vor einer Installation wie folgt herausfinden.

1
apt policy minetest

Und für die Server-Komponente

1
apt policy minetest-server

openSuse Tumbleweed

Hier kann Minetest mit folgendem Befehl installiert werden.

1
sudo zypper in minetest

Die reine Server-Komponente erhält man mit.

1
sudo zypper in minetestserver

Die Versionen können wie folgt angezeigt werden.

1
zypper se -s minetest

Bzw. für den Server mit

1
zypper se -s minetestserver

openSuse Leap

openSuse Leap stellt den stabilen Zweig von openSuse dar, beinhaltet aber auch veraltete Pakete. Möchte man hier die aktuelle Minetest-Version haben so muss das Repository Games hinzugefügt werden. Im openSuse Wiki findet sich hierzu ein Eintrag, der das ganze recht gut erläutert.

Flatpak

Flatpak ist ein alternatives Paketformat für Linux. Es gibt eine ganze Reihe von Argumenten die dafür aber auch dagegen sprechen. Wer mehr hierüber erfahren möchte findet weitere Informationen unter

Via Flatpak erhält man recht schnell nach Release einer neuen Minetest-Version diese auch ausgeliefert. Voraussetzung für die Nutzung von Flatpak ist die vorherige Installation. Hier ist eine entsprechende Anleitung für diverse Distributionen zu finden.

Ist dies geschehen, kann Minetest mit folgendem Befehl als Flatpak-Paket installiert werden.

1
flatpak install flathub net.minetest.Minetest

Anmerkung: Je nach Distribution und Sicherheitseinstellungen ist die Installation ggf. nur mit root Rechten möglich.

1
sudo flatpak install flathub net.minetest.Minetest

Anschließend kann es, wie alle anderen installierten Anwendungen, einfach gestartet werden.

Für ein Update via Flatpak gibt es folgenden Befehl.

1
flatpak update

Anmerkung: Auch hier gilt, je nach Distribution und Sicherheitseinstellung ist ggf. root erforderlich.

1
sudo flatpak update

AppImage

Eine weitere distributionsunabhängige Methode stellt AppImage dar. Ein entsprechendes AppImage kann hier heruntergeladen werden. Anschließend muss es mit dem Befehl

1
chmod +x <DATEINAME>

noch ausführbar gemacht werden. Anschließend kann Minetest gestartet werden und sollte somit auf allen gängigen Linux Distributionen gleichermaßen laufen.

DIY - kompilieren

Die letzte Möglichkeit ist die DIY-Lösung (Do-it-yourself), Minetest also selbst kompilieren. Auf Github betreibt die Minetest-Community eine Organisation unter der sich diverse Repositorys befinden. Zum selber Bauen oder auch Kompilieren werden folgende drei Repositorys benötigt:

Die weitere Installation erfolgt beispielhaft auf einem ‘Debian Bullseye (Stable)’. Hierfür werden zunächst noch einige Pakete benötigt die folgendermaßen installiert werden können

1
sudo apt install g++ make libc6-dev cmake libpng-dev libjpeg-dev libxi-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev libzstd-dev libluajit-5.1-dev git

Anschließend werden die oben genannten drei Repositorys mit git geklont. Zunächst einmal Minetest selbst aus dem:

1
git clone --depth 1 --branch stable-5 https://github.com/minetest/minetest.git

Anschließend wird noch irrlicht benötigt. Dieses wird mit git clone gleich in das entsprechende Verzeichnis minetest/lib/irrlichtmt geklont.

1
git clone --depth 1 https://github.com/minetest/irrlicht.git minetest/lib/irrlichtmt

Damit alles beim folgenden Kompilieren klappt, benötigen wir irrlichtmt in einer bestimmten Version, die auf Github als Releas-Tag veröffentlicht wird. Hierfür wechseln wir in das Verzeichnis minetest/lib/irrlichtmt und holen uns das entsprechende Release.

1
2
cd minetest/lib/irrlichtmt/
git fetch --all --tags; git checkout 1.9.0mt8

Das Kompilieren kann zu erheblichen Leistungseinbußen führen. Mithilfe von nproc kann die Anzahl der zur Verfügung stehenden Kerne des Prozessors ausgegeben werden. Im weiteren HowTo werden stets alle zur Verfügung stehende Kerne zum Kompilieren genutzt. Sollte es sich um ein älteres System handeln oder aber weitere Programme laufen so kann es ratsam sein make nicht mit allen Kernen auszuführen. Anstelle von make -j$(nproc) kann die Anzahl der zu nutzenden Kerne mit make -j<ANZAHL-KERNE> gesetzt werden.

1
cmake . -DBUILD_SHARED_LIBS=OFF; make -j$(nproc)

Nach erfolgreichem Kompilieren wird mit Hilfe von cd wieder in das minetest Verzeichnis gewechselt.

1
cd ../../

Nun fehlt nur noch das minetest_game im Verzeichnis minetest-5.6.1/games/:

1
git clone --depth 1 --branch stable-5 https://github.com/minetest/minetest_game.git games/minetest_game

Abschließend wird nun Minetest selbst mit CMake vorbereitet und anschließend mit make gebaut.

1
2
cmake . -DRUN_IN_PLACE=TRUE -DBUILD_CLIENT=TRUE -DBUILD_SERVER=TRUE -DIRRLICHT_INCLUDE_DIR=lib/irrlichtmt -DENABLE_LUAJIT=ON -DENABLE_SOUND=ON -DENABLE_CURL=ON
make -j$(nproc)

Nach erfolgreichem Kompilieren finden sich im Verzeichnis bin/ zwei ausführbare Binärdateien.

  • minetest ist der Minetest-Client
  • minetestserver ist der Minetest-Server

Tipps & Hinweise

Wird nur der Client benötigt kann das Flag -DBUILD_SERVER=FALSE gesetzt werden. Ebenso kann verfahren werden wenn nur der Server benötigt wird -DBUILD_CLIENT=FALSE.

Minetest-Client:

1
cmake . -DRUN_IN_PLACE=TRUE -DBUILD_CLIENT=TRUE -DBUILD_SERVER=FALSE -DIRRLICHT_INCLUDE_DIR=lib/irrlichtmt -DENABLE_LUAJIT=ON -DENABLE_SOUND=ON -DENABLE_CURL=ON

Minetest-Server:

1
cmake . -DRUN_IN_PLACE=TRUE -DBUILD_CLIENT=FALSE -DBUILD_SERVER=TRUE -DIRRLICHT_INCLUDE_DIR=lib/irrlichtmt -DENABLE_LUAJIT=ON -DENABLE_SOUND=ON -DENABLE_CURL=ON

Anschließend muss, wie oben auch, noch kompiliert werden.

1
make -j$(nproc)

All-in-One

Folgendes Shell-Skript führt alle oben beschriebenen Befehle der Reihe nach aus und erstellt die beiden Dateien minetest(Client) sowie minetestserver(Server).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash

# clone minetest & irrlichtmt
echo -e "\n"; echo -e "\033[32mklone Minetest & Irrlichtmt"; echo -e "\033[0m"
git clone --depth 1 --branch stable-5 https://github.com/minetest/minetest.git; git clone --depth 1 https://github.com/minetest/irrlicht.git minetest/lib/irrlichtmt; 

# compile Irrlichtmt
echo -e "\n"; echo -e "\033[32mkompiliere Irrlichtmt"; echo -e "\033[0m"
cd minetest/lib/irrlichtmt; git fetch --all --tags; git checkout 1.9.0mt8; cmake . -DBUILD_SHARED_LIBS=OFF; make -j$(nproc); cd ../../;

# minetest_game
echo -e "\n\033[32mklone minetest_game"; echo -e "\033[0m\n";
git clone --depth 1 --branch stable-5 https://github.com/minetest/minetest_game.git games/minetest_game;

# compile minetest Client & Server
echo -e "\n\033[32mkompiliere Minetest Server & Clinent"; echo -e "\033[0m\n"
cmake . -DRUN_IN_PLACE=TRUE -DCMAKE_BUILD_TYPE=5.6.1 -DBUILD_CLIENT=TRUE -DBUILD_SERVER=TRUE -DIRRLICHT_INCLUDE_DIR=lib/irrlichtmt -DENABLE_LUAJIT=ON -DENABLE_SOUND=ON -DENABLE_CURL=ON;
make -j$(nproc);

# EOF

Links & Quellen