Minetest ist eine Game Engine, auf der man Minecraft ähnliche Spiele spielen kann. Das Standard Spiel für Minetest ist das Minetest Game. Minetest kann man auch im Multiplayer spielen. In diesem Tutorial zeige ich dir, wie du dir einen eigenen Server erstellen kannst. Grundlage dafür ist ein auf Debian basierender Linuxserver wie zum Beispiel ein RaspberryPi. Wie man diesen einrichtet, habe ich hier beschrieben.
Installieren
Abhängigkeiten Installieren
Zunächst werden einige Programme installiert, die später für das kompilieren von Minetest nötig sind:
1 |
sudo apt-get install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev git |
Dies bestätigen wir mit „J“. Nachdem alles installiert wurde, kann Minetest heruntergeladen werden.
Minetest herunterladen
1 |
git clone --branch stable-5 https://github.com/minetest/minetest.git |
--branch stable-5
bedeutet, dass die aktuelle stabile Version 5.X heruntergeladen wird. Möchte man die aktuelle Entwicklerversion haben, kann man diesen Teil einfach weg lassen.
Sobald auch minetest heruntergeladen wurde, wechseln wir in den Ordner, der gerade erstellt wurde:
1 |
cd minetest/ |
und kompilieren minetest:
Minetest kompilieren
1 |
cmake . -DRUN_IN_PLACE=TRUE -DBUILD_SERVER=TRUE -DCMAKE_BUILD_TYPE="Release" |
1 |
make -j4 |
-j4 steht für 4 Prozessorkerne, auf denen kompiliert wird. Das dauert nun je nach Art des Servers einige Minuten. Während dem kompilieren kannst du dir schon einmal Gedanken über das Game und Mods, die du gerne auf deinem Server hättest, machen. Diese kannst du auch schon herunterladen und in den Ordner minetest/games/ bzw. minetest/mods verschieben.
Games und Mods installieren
Wenn du das Standard Minetest Game herunterladen möchtest, kannst du das zum Beispiel mit git machen:
1 |
git clone --branch stable-5 https://github.com/minetest/minetest_game.git games/minetest_game |
für --branch stable-5
gilt wieder das Gleiche, wie bei Minetest selbst. Für das Game MineClone2 sähe die Zeile übrigens so aus:
1 |
git clone https://git.minetest.land/MineClone2/MineClone2.git |
Wenn du mit git noch nicht vertraut bist, kannst du die Datei meistens auch einfach, sowohl bei Mods als auch bei Games, als zip Datei herunterladen und dann in den mods bzw. games Ordner entpacken.
Minetest sollte nun fertig kompiliert sein.
Der erste Start
den Minetestserver kannst du nun einfach mit
1 |
./bin/minetestserver |
starten. Es wird nun eine Welt erstellt. Mods sind aber noch keine aktiviert, dass sollten wir schnell ändern. Beende den Minetestserver wieder mit Strg+C.
Konfiguration
Die world.mt
In deinem Minetest-Ordner findest du nun ein Ordner mit dem Namen „worlds“, in dem sich ein weiterer Ordner mit dem Namen „world“ befindet. Diesen kannst du auch umbenennen, wenn deine Welt anders heißen soll. In diesem Ordner befindet sich die Datei „world.mt“ hier werde ein paar Konfigurationen eingestellt. Das wichtigste sind, denke ich, die mods. Die Datei kannst du zum Beispiel im Terminal mit dem Editor nano öffnen:
1 |
nano worlds/world/world.mt |
In dieser Datei sollte sich jetzt für jede Mod, die du heruntergeladen hast, eine Zeile befinden, die ungefähr so aussieht:
1 |
load_mod_ethereal = false |
Diese Liste wird aber immer nur dann aktualisiert, wenn du deinen minetestserver startest. In meinem Fall, habe ich die Mod „ethereal“ installiert. Wenn du die Mod aktivieren möchtest, musst du ganz einfach nur das „false“ durch ein „true“ ersetzen.
Die minetest.conf
Eine weitere wichtige Konfigurationsdatei ist die minetest.conf
, die sich nicht im Weltordner, sondern im Hauptordner (der mit worlds, games, mods,…) befindet. Diese muss zuerst erstellt werden, zum Beispiel mit:
1 |
touch minetest.conf |
In dieser Datei wird so ziemlich alles eingestellt. Viel zu viel, um es in diesem Tutorial zu erklären. Deshalb hier die meiner Meinung nach wichtigsten Einstellungsmöglichkeiten:
Name der Einstellung | Möglicher Wert | Erklärung | Beispiel |
name = | Text (String) | Der Name des Accounts des Admins | name = jjk1 |
creative_mode = | true/false (Boolean) | Kreativmodus an/aus | creative_mode = false |
enable_damage = | true/false (Boolean) | Schaden an/aus | enable_damage = true |
enable_pvp = | true/false (Boolean) | PVP an/aus | enable_pvp = false |
default_privs = | Privilegien | Privilegien, die ein neuer Spieler bekommen soll | default_privs =shout, interact, home |
static_spawnpoint = | Koordinaten | Stelle, an der der Spieler spawnt, wenn er stirbt oder neu auf den Serrver kommt | static_spawnpoint = 0,11,0 |
server_announce = true | true/false (Boolean) | Soll der Server in der öffentlichen Serverliste erscheinen? | server_announce = true |
server_name = | Text (String) | Name des Servers | server_name = Mein erster super cooler Server |
server_description = | Text (String) | Beschreibung des Servers | server_description = Das ist mein Server. Hier gibt es viele schöne Bauwerke. Admin: jjk1 |
port = | Int (Ganzzahl) | Port, auf dem der Server erreichbar sein soll | port = 30000 |
max_users = | Int (Ganzzahl) | Maximale Anzahl an Spielern, die auf dem Server sein könenn | max_users = 20 |
Das war jetzt nur ein grober Überblick über das, was man alles einstellen kann. Alle weiteren Einstellungsmöglichkeiten von Minetest (Games und Mods bringen oft noch zusätzliche Einstellungen!) findest du in der Datei minetest.conf.example in deinem Minetest Verzeichnis.
Automatisierungen
Minetestserver weiter laufen lassen, aber Terminalfenster schließen
Um mein Terminalfenster auch schließen zu können, ohne, dass der Minetestserver herunterfährt nutze ich screen. Dieses kannst du installieren mit:
1 |
sudo apt-get install screen |
du kannst mit screen -S name
screens erstellen, diese mit Strg+A und dann D verlassen und sie wieder mit screen -r name
betreten.
Minetestserver neustarten, falls er abstürzen sollte
Wenn dein Minetestserver mal abstürzt (was ja hoffentlich nicht zu häufig passiert), dann bleibt er aus. Und zwar so lange, bis du ihn wieder startest. Dabei wäre es doch eigentlich praktisch, wenn er automatisch neu starten würde. Dazu habe ich ein kleines Bash Skript gefunden:
öffnen:
1 |
nano autorestart.sh |
Inhalt einfügen:
1 2 3 4 5 6 7 8 |
#!/bin/bash while true do sleep 5 cd /home/pi/minetest/bin/ ./minetestserver done |
Zeile 5 und 6 könnte angepasst werden müssen.
Und noch ausführbar machen:
1 |
chmod +x autorestart.sh |
Wenn du jetzt, anstatt dem Minetestserver dieses Skript startest (./autorestart.sh
), dann startet der Server automatisch neu, wenn er crasht.
Minetestserver automatisch beim Systemstart starten
So ein Minetestserver sollte ja eigentlich immer laufen. Also auch, wenn der Server mal neu startet. Dazu wird die Datei
1 |
sudo nano /etc/rc.local |
Geöffnet und vor dem exit 0
folgende Zeile eingefügt:
1 |
screen -dmS minetest /home/pi/minetest/autorestart.sh |
Es wird also ein neuer screen mit dem Namen „minetest“ erstellt, in dem das Skript von vorher gestartet wird. Vielleicht musst du den Pfad noch anpassen.
Jetzt ist dein Server schon fast einsatzbereit. Du musst nur noch deinen Port, den du konfiguriert hast, in deinem Router freigeben (UDP). Ab dem Moment ist dein Server öffentlich und jeder kann ihn betreten, es sei denn, du hast das durch Mods verboten.
8. April 2021 um 23:14 Uhr
Sehr gutes Tutorial! Direkt ausprobiert und alles hat funktioniert 🙂 Viele Grüße!
9. April 2021 um 7:31 Uhr
Danke 😉
5. April 2021 um 14:50 Uhr
Vielen Dank für die übersichtliche Anleitung! VG
5. April 2021 um 17:43 Uhr
Auch dir vielen Dank für den Kommentar 😉