Make Magazin 2/2017
S. 132
Grundlagen
Aufmacherbild

Eigener Multiplayer-Server für Minecraft

Nach den ersten Schritten im letzten Heft, bei denen es um selbst erstellte Mods ging, setzen Sie dieses Mal einen eigenen Server für Ihre ganz persönliche Welt und mehrere Spieler auf. Mit einer eigenen Befehlsklasse ergänzen Sie die Möglichkeiten, die Sie in dieser Welt haben.

Minecraft-Server erlauben es Spielern, gemeinsam Welten zu erkunden. Jede Version von Minecraft enthält bereits einen einfachen lokalen Server zur Verwaltung der Welten. Üblicherweise kommen aber dedizierte Server zum Einsatz, sobald man mit mehreren Spielern gleichzeitig in einer eigenen Welt spielen möchte. Es gibt einen kostenlosen offiziellen Minecraft-Server für diejenigen, die sich selber um alles kümmern wollen (hosting) sowie ebenfalls offizielle, aber kostenpflichtige gehostete „Königreiche“ (engl. realms). Als das größte deutsche Minecraft Netzwerk mit rund 2 Millionen Spielern gilt GommeHD.net. Hierbei handelt es sich um Minecraft-Server, die bereits um eine Vielzahl zusätzlicher Funktionen ergänzt wurden.

Multiplayer-Server und Plug-ins

Es gibt zahlreiche Projekte für eigene angepasste Server. Die bekannteren umfassen neben dem eigentlichen Server auch eine vereinfachte Programmierschnittstelle. Sie ist Minecraft Forge ganz ähnlich: Es wird der Original-Server dekompiliert, angepasst und wieder kompiliert. Diese inoffizielle und modifizierte Variante des originalen Minecraft-Servers ist dann über sogenannte Plug-ins erweiterbar. Die meisten Projekte orientieren sich dafür am Serversystem Bukkit. Das bekannteste davon nennt sich Spigot.

Das Aufsetzen eines eigenen Spigot-Servers wird auf der Spigot-Website für unterschiedliche Betriebssysteme erklärt. Im Wesentlichen ist es erforderlich, dass die Datei-Versionsverwaltung Git und eine Java-Laufzeitumgebung installiert sind. Anschließend müssen die BuildTools (BuildTools.jar) heruntergeladen und mit Git Bash (Windows) oder innerhalb des Terminals (Linux, MacOS) mit Java ausgeführt werden. Mit java -jar BuildTools.jar –rev latest erhält man die neueste Version, mit java -jar BuildTools.jar –rev 1.8.8 den neuesten zur Minecraft Version 1.8. kompatiblen Server. Es werden nun eine Reihe von Dateien erzeugt. Für den Minecraft Server wird das parallel zu den BuildTools abgelegte Spigot-Java-Archiv benötigt. Der genaue Dateiname hängt von der Version ab. Mit Hilfe der vorherigen Anweisung erhält man beispielsweise spigot-1.8.8.jar.

Der Server lässt sich mit der Anweisung java -Xms512M -Xmx1G -XX:MaxPermSize=128M -XX:+UseConcMarkSweepGC -jar spigot-1.8.8.jar starten. Doch der erste Start schlägt mit der Meldung „You need to agree to the EULA in order to run the server. Go to eula.txt for more info.“ fehl. Dies lässt sich einfach beheben, indem nun in der frisch generierten eula.txt-Datei die Lizenzbedingungen durch das Setzen von eula=true akzeptiert werden. An dieser Stelle bietet es sich außerdem an, in der ebenfalls frisch generierten server.properties-Datei die beiden folgenden Zeilen einzutragen, damit zum einen der Kreativmodus aktiviert ist und zum anderen auch Spieler ohne offizielles Minecraft-Benutzerkonto mitspielen dürfen: gamemode=1 online-mode=false.

In Minecraft kann nun aus dem Hauptmenü heraus der Multiplayer-Modus genutzt werden, indem man sich im nachfolgenden Menü direkt mit dem laufenden Server verbindet. Falls der Server noch nicht bereits bekannt ist, kann hier dessen URL angegeben werden.

Es gibt bereits unzählige Erweiterungen für Minecraft – je nachdem, ob diese mit Forge oder über einen Spigot-Server bereitgestellt werden, spricht man von Mod oder Plug-in. Doch nicht alle Erweiterungen harmonieren mit der verwendeten Minecraft-Version. Und manchmal fehlt auch einfach schlicht die gewünschte Funktionalität. Da ist es gut, dass man selbst Hand anlegen und – wie in unserem Fall – selbst programmieren kann.

Die Erstellung eines eigenen Plug-ins für Spigot wird dadurch erleichtert, dass während des Build-Prozesses eines Spigot-Servers ein Java-Archiv mit vereinfachter Programmierschnittstelle spigot-api-1.8.8-R0.1-SNAPSHOT-shaded.jar im Verzeichnis Spigot/Spigot-API/target erzeugt wird. Somit muss nur noch ein Java-Projekt erstellt, eine Beschreibungsdatei angelegt und diese Schnittstelle hinzugefügt werden.