
Minecraft gehört heute zu den beliebtesten Online-Spielen. In weniger als drei Jahren (die erste offizielle Veröffentlichung fand im Herbst 2011 statt) haben Millionen von Fans auf der ganzen Welt gewonnen.
Die Entwickler des Spiels orientieren sich bewusst an den besten Beispielen vor zwanzig Jahren, als viele Spiele aus heutiger Sicht primitiv in Bezug auf Grafik und unvollkommen in Bezug auf Benutzerfreundlichkeit waren, aber dennoch mitreißend waren.
Wie alle Sandbox-Spiele bietet Minecraft den Nutzern enorme kreative Möglichkeiten – darin liegt letztlich das Geheimnis seiner Popularität.
Die Organisation von Servern für das Spiel im Mehrspielermodus übernehmen die Spieler selbst und ihre Communities. Heute gibt es im Internet Zehntausende von Spieleservern (siehe z.B. die Liste hier).
Unter unseren Kunden gibt es viele Fans dieses Spiels, die in unseren Rechenzentren Hardware für Spieleprojekte mieten. In diesem Artikel werden wir darüber sprechen, auf welche technischen Aspekte man bei der Auswahl eines Servers für
Minecraft achten sollte.
Wählen wir die Plattform
Die Spielarchitektur von Minecraft umfasst die folgenden Elemente:
- Server – das Programm, mit dem Spieler online miteinander interagieren;
- Client – das Programm zur Verbindung mit dem Server, das auf dem Computer des Spielers installiert ist;
- Plugins – Erweiterungen für den Server, die neue Funktionen hinzufügen oder bestehende erweitern;
- Mods – Ergänzungen zur Spielwelt (neue Blöcke, Gegenstände, Möglichkeiten).
Für Minecraft gibt es viele Serverplattformen. Die gebräuchlichsten und beliebtesten sind Vanilla und Bukkit.
Vanilla ist die offizielle Plattform der Spielentwickler. Sie wird sowohl in einer grafischen als auch in einer Konsolenversion verbreitet. Neue Versionen von Vanilla werden immer gleichzeitig mit neuen Versionen von Minecraft veröffentlicht.
Ein Nachteil von Vanilla ist der übermäßige Speicherverbrauch (etwa 50 MB pro Spieler). Ein weiterer wesentlicher Nachteil ist das Fehlen von Plugins.
Bukkit wurde von einer Gruppe von Enthusiasten erstellt, die versuchten, den offiziellen Minecraft-Server zu verbessern. Der Versuch war überaus erfolgreich: In Bezug auf die Funktionalität ist Bukkit viel umfangreicher als Vanilla – vor allem dank der Unterstützung vielfältiger Mods und Plugins. Dabei wird weniger Speicher für jeden Spieler benötigt – etwa 5–10 MB.
Die Nachteile von Bukkit liegen darin, dass er beim Start zu viel Arbeitsspeicher verbraucht. Darüber hinaus benötigt der Server immer mehr Arbeitsspeicher, je länger er läuft (auch wenn wenig Spieler online sind). Wenn man sich für Bukkit als Server entscheidet, sollte man bedenken, dass die neuen Versionen in der Regel Fehler enthalten; eine stabile Version erscheint normalerweise etwa 2-3 Wochen nach der Veröffentlichung der offiziellen Minecraft-Version.
In letzter Zeit gewinnen außerdem andere Plattformen an Popularität (zum Beispiel Spout, MCPC und MCPC+), sie unterscheiden sich jedoch in der eingeschränkten Kompatibilität mit Vanilla und Bukkit und haben eine äußerst begrenzte Unterstützung für Mods (zum Beispiel kann man für Spout grundsätzlich nur Mods von Grund auf neu erstellen). Wenn man sie verwendet, dann nur für Experimente.
Für die Einrichtung eines Spielservers empfehlen wir die Plattform Bukkit, da sie die größte Flexibilität bietet; außerdem gibt es zahlreiche verschiedene Mods und Plugins dafür. Die stabile Funktionsweise des Minecraft-Servers hängt stark von der richtigen Wahl der Hardware-Plattform ab. Lassen Sie uns dieses Thema näher betrachten.
Hardware-Anforderungen
Sowohl der Server als auch der Client von Minecraft sind sehr ressourcenintensiv.
Bei der Auswahl der Hardware-Plattform sollte man beachten, dass ein Mehrkernprozessor keine großen Vorteile bietet: Der Minecraft-Server kann nur einen Verarbeitungs-Thread nutzen. Ein zweiter Kern wäre jedoch nicht überflüssig: Einige Plugins laufen in separaten Threads und auch Java benötigt eine Menge Ressourcen…
Deshalb ist es für Minecraft-Server besser, einen Prozessor mit höherer Leistung eines Kerns zu wählen. Ein leistungsstärkerer Dual-Core-Prozessor ist gegenüber einem weniger leistungsstarken Mehrkernprozessor vorzuziehen. In spezialisierten Foren wird empfohlen, Prozessoren mit einer Taktrate von nicht weniger als 3 GHz zu verwenden.
Für den normalen Betrieb eines Minecraft-Servers wird eine große Menge an RAM benötigt. Bukkit benötigt etwa 1 GB RAM; außerdem wird für jeden Spieler, wie bereits erwähnt, zwischen 5 und 10 MB reserviert. Plugins und Mods verbrauchen ebenfalls ziemlich viel Speicher. Für einen Server mit 30 bis 50 Spielern sind somit mindestens 4 GB RAM erforderlich.
In Minecraft hängt vieles (zum Beispiel das Laden derselben Plugins) von der Geschwindigkeit des Dateisystems ab. Daher ist es vorzuziehen, einen Server mit SSD zu wählen. Festplatten mit Spindelmotoren sind aufgrund der niedrigen Geschwindigkeit beim zufälligen Lesen kaum geeignet.
Die Geschwindigkeit der Internetverbindung ist ebenfalls von großer Bedeutung. Für 40-50 Spieler reicht eine Verbindung mit 10 Mb/s völlig aus. Wer jedoch ein größeres Minecraft-Projekt plant, das eine Website, ein Forum und eine dynamische Karte umfasst, sollte dringend über eine Verbindung mit höherer Bandbreite verfügen.
Welche spezifische Konfiguration ist am besten zu wählen? Aus den von uns angebotenen Konfigurationen wir empfehlen, auf Folgendes zu achten:
- Intel Core 2 Duo E8400 3GHz, 6GB RAM, 2×500GB SATA, 3000 Rub./Monat;
- Intel Core 2 Quad Q8300 2.5GHz, 6GB RAM, 2×500GB SATA, 3500 Rub./Monat – diese Konfiguration verwenden wir für unseren Testserver MineCraft, auf dem Sie gerade spielen können (wie das geht, steht weiter unten);
- Intel Core i3-2120 3.3GHz, 8GB RAM, 2×500GB SATA, 3500 Rub./Monat.
Diese Konfigurationen sind durchaus geeignet, um einen Minecraft-Server für 30-40 Spieler einzurichten. Ein kleiner Nachteil ist das Fehlen von SSDs, aber wir bieten einen anderen nicht minder wichtigen Vorteil: einen garantierten Kanal von 100 Mb/s ohne jegliche Beschränkungen oder Verhältnisse. Bei der Bestellung aller oben genannten Konfigurationen wird keine Einrichtungsgebühr erhoben.
Wir haben auch leistungsstärkere, aber auch teurere Server (bei der Bestellung dieser Konfigurationen wird ebenfalls keine Einrichtungsgebühr erhoben):
- 2× Intel Xeon 5130, 2GHz, 8GB RAM, 4×160GB SATA, 5000 Rub./Monat;
- 2× Intel Xeon 5504, 2GHz, 12GB RAM, 3×1TB SATA, 9000 Rub./Monat.
Wir empfehlen auch, auf das neue Budgetmodell mit SSD auf Basis des Intel Atom C2758 Prozessors zu achten: Intel Atom C2758 2.4GHz, 16 GB RAM, 2×240GB SSD, 4000 Rub./Monat, Einrichtungsgebühr – 3000 Rub.
Installation und Betrieb des Bukkit-Servers unter OC Ubuntu
Bevor wir den Server einrichten, erstellen wir einen neuen Benutzer und fügen ihn der sudo-Gruppe hinzu:
$ sudo useradd -m -s /bin/bash $ sudo adduser sudo
Als Nächstes setzen wir ein Passwort, mit dem der neu erstellte Benutzer sich mit dem Server verbindet:
$ sudo passwd
Wir melden uns mit dem neuen Benutzerkonto wieder am Server an und beginnen mit der Installation.
Minecraft ist in Java geschrieben, daher muss auf dem Server unbedingt die Java Runtime Environment installiert werden.
Wir aktualisieren die Liste der verfügbaren Pakete:
$ sudo apt-get update
Dann führen wir den folgenden Befehl aus:
$ sudo apt-get install default-jdk
Für die Installation und den Betrieb von Bukkit ist es ratsam, auch einen Terminal-Multiplexer zu installieren – zum Beispiel screen (andere Terminal-Multiplexer können ebenfalls verwendet werden – siehe unser Überblick):
$ sudo apt-get install screen
Screen wird benötigt, wenn wir uns über ssh mit dem Spieleserver verbinden. Damit können wir den Minecraft-Server in einem separaten Terminalfenster starten, und selbst nach dem Schließen des ssh-Clients bleibt der Server aktiv.
Legen wir ein Verzeichnis an, in dem die Serverdateien gespeichert werden:
$ mkdir bukkit $ cd bukkit
Danach gehen wir auf die Download-Seite der offiziellen Bukkit-Website. In der oberen rechten Ecke der Seite finden Sie den Link zur letzten empfohlenen Serverversion (empfohlene Version). Wir empfehlen, diese herunterzuladen:
$ wget
Jetzt starten wir screen:
$ sudo screen
und führen den folgenden Befehl aus:
$ java -Xmx1024M -jar craftbukkit.jar -o false
Wir erklären, was die verwendeten Parameter bedeuten:
- Xmx1024M – maximaler Arbeitsspeicher, der auf dem Server verfügbar ist;
- jar craftbukkit.jar – der Pfad zum Server;
- o false – erlaubt den Zugriff auf den Server von Raubkopien.
Der Server wird gestartet.
Um den Server zu stoppen, geben Sie im Terminal den Befehl stop ein.
Einrichtung und Konfiguration des Servers
Die Servereinstellungen werden in der Konfigurationsdatei server.properties gespeichert. Diese enthält folgende Parameter:
- generator-settings – legt das Vorlagenschema zur Generierung der Superflat-Welt fest;
- allow-nether – bestimmt die Möglichkeit, in die Nether-Welt zu wechseln. Standardmäßig ist für diesen Parameter der Wert true eingestellt. Wenn der Wert false gesetzt ist, werden alle Spieler aus der Nether-Welt in die normale Welt verschoben.
- level-name — der Name des Ordners mit den Karten-Dateien, die während des Spiels verwendet werden. Der Ordner befindet sich im gleichen Verzeichnis wie die Server-Dateien. Wenn ein solches Verzeichnis nicht existiert, erstellt der Server automatisch eine neue Welt und platziert sie im Verzeichnis mit dem gleichen Namen;
- enable-query — aktiviert das Protokoll GameSpy4 zur Überwachung des Servers, wenn der Wert auf true gesetzt ist;
- allow-flight — erlaubt Flüge in der Welt von Minecraft. Standardmäßig ist der Wert false (Fliegen ist verboten);
- server-port — gibt den Port an, der vom Spieleserver verwendet wird. Der Standardport für Minecraft ist 25565. Es wird empfohlen, diesen Parameter nicht zu ändern;
- level-type — bestimmt den Typ der Welt (DEFAULT/FLAT/LARGEBIOMES);
- enable-rcon — öffnet den Fernzugriff auf die Server-Konsole. Standardmäßig ist dieser deaktiviert (false);
- level-seed — Eingabewerte für den Level-Generator. Um zufällige Welten zu erstellen, muss dieses Feld leer bleiben;
- force-gamemode — legt den Standard-Spielmodus für Spieler fest, die sich mit dem Server verbinden;
- server-ip — gibt die IP-Adresse an, die von den Spielern zum Verbinden mit dem Server verwendet wird;
- max-build-height — gibt die maximale Bauhöhe auf dem Server an. Der Wert muss eine Zahl sein, die durch 16 teilbar ist (64, 96, 256 usw.);
- spawn-npcs — erlaubt (wenn der Wert true ist) oder verbietet (wenn der Wert false ist) das Erscheinen von NPCs in Dörfern;
- white-list — aktiviert und deaktiviert die Verwendung einer weißen Liste von Spielern auf dem Server. Wenn der Wert auf true gesetzt ist, kann der Administrator die weiße Liste manuell erstellen, indem er die Spielernamen hinzufügt. Ist der Wert false, kann jeder Nutzer, der die IP-Adresse und den Port kennt, auf den Server zugreifen;
- spawn-animals — erlaubt das automatische Erscheinen von freundlichen Mobs, wenn der Wert auf true gesetzt ist;
- snooper-enabled — erlaubt es dem Server, Statistiken und Daten an die Entwickler zu senden;
- hardcore — aktiviert den Hardcore-Modus auf dem Server;
- texture-pac — die Texturdatei, die verwendet wird, wenn sich ein Spieler mit dem Server verbindet. Der Wert dieses Parameters gibt den Namen der Zip-Datei mit den Texturen an, die sich im gleichen Verzeichnis wie der Server befindet;
- Online-Modus - aktiviert die Überprüfung der Premium-Accounts von Benutzern, die sich mit dem Server verbinden. Wenn dieser Parameter auf true gesetzt ist, können nur Besitzer von Premium-Accounts auf den Server zugreifen. Ist die Überprüfung der Konten deaktiviert (Wert false), können alle Benutzer (einschließlich beispielsweise Spieler, die ihren Namen gefälscht haben) auf den Server zugreifen, was zusätzliche Sicherheitsrisiken mit sich bringt. Bei deaktivierter Überprüfung kann man Minecraft im lokalen Netzwerk ohne Internetzugang spielen;
- PVP - erlaubt oder verbietet es Spielern, gegeneinander zu kämpfen. Hat dieser Parameter den Wert true, können die Spieler sich gegenseitig vernichten. Ist der Wert false, können die Spieler einander keinen direkten Schaden zufügen;
- Schwierigkeitsgrad - legt das Spielniveau fest. Kann Werte von 0 (am leichtesten) bis 3 (am schwersten) annehmen;
- Spielmodus - gibt an, welcher Spielmodus für die einloggenden Spieler auf dem Server festgelegt wird. Kann folgende Werte annehmen: 0 - Überleben, 1 - Kreativ, 2 - Abenteuer;
- Spieler-Inaktivitäts-Timeout - Zeit der Inaktivität (in Minuten), nach deren Ablauf die Spieler automatisch vom Server getrennt werden;
- Maximale Spieleranzahl - maximale zulässige Anzahl von Spielern auf dem Server (von 0 bis 999);
- Monster erscheinen lassen - erlaubt (wenn der Wert true gesetzt ist) das Erscheinen feindlicher Mobs;
- Strukturen generieren - aktiviert (true)/deaktiviert (false) die Generierung von Strukturen (Schatztruhen, Festungen, Dörfer);
- Sichtweite - regelt den Radius der aktualisierten Chunks zur Übertragung an den Spieler; kann Werte von 3 bis 15 annehmen.
Die Logs des Minecraft-Servers werden in der Datei server.log aufgezeichnet. Diese wird im selben Ordner wie die Serverdateien gespeichert. Das Log wächst ständig und benötigt immer mehr Speicherplatz. Die Funktionsweise des Logging-Mechanismus kann durch die sogenannte Log-Rotation geordnet werden. Für die Rotation wird ein spezielles Tool - logrotate - verwendet. Dieses begrenzt die Anzahl der Einträge im Log auf ein bestimmtes Limit.
Die Log-Rotation kann so eingestellt werden, dass alle Einträge gelöscht werden, sobald die Logdatei eine bestimmte Größe erreicht hat. Es kann auch eine Frist festgelegt werden, nach der alle alten Einträge als veraltet gelten und gelöscht werden.
Die Haupteinstellungen zur Rotation befinden sich in der Datei /etc/logrotate.conf; zusätzlich können für jede Anwendung individuelle Einstellungen erstellt werden. Dateien mit individuellen Einstellungen werden im Verzeichnis /etc/logrotate.d gespeichert.
Lassen Sie uns eine Textdatei /etc/logrotate.d/craftbukkit erstellen und die folgenden Parameter eintragen:
/home/craftbukkit/server.log {
rotate 2
weekly
compress
missingok
notifempty
}
Lassen Sie uns ihre Werte näher betrachten:
- Der Parameter rotate gibt die Anzahl der Rotationen an, bevor die Datei gelöscht wird;
- weekly gibt an, dass die Rotation wöchentlich erfolgt (es können auch andere Parameter festgelegt werden: monthly - monatlich und daily - täglich);
- compress gibt an, dass die Archivierungsprotokolle komprimiert werden müssen (die entgegengesetzte Option ist nocompress);
- missingok gibt an, dass die Arbeit fortgesetzt werden soll, wenn die Protokolldatei fehlt, und dass keine Fehlermeldungen ausgegeben werden;
- notifempty gibt an, dass die Protokolldatei nicht verschoben werden soll, wenn sie leer ist.
Nähere Informationen zu den Einstellungen der Protokolldrehung finden Sie hier.
Tipps zur Optimierung
Wir möchten gleich darauf hinweisen, dass in diesem Abschnitt Ratschläge zur Optimierung nur für die Spielserver gegeben werden. Fragen zur Feinabstimmung und Optimierung des Servers, auf dem Minecraft installiert ist, sind ein separates Thema, das den Rahmen dieses Artikels sprengt; interessierte Leser werden problemlos die benötigten Informationen im Internet finden.
Eines der häufigsten Probleme, die beim Spielen von Minecraft auftreten, sind die sogenannten Lags - Situationen, in denen das Programm nicht rechtzeitig auf die Benutzereingaben reagiert. Diese können sowohl auf der Client- als auch auf der Serverseite verursacht werden. Im Folgenden geben wir Empfehlungen, die dabei helfen, die Wahrscheinlichkeit von Problemen auf der Serverseite zu verringern.
Überwachen Sie regelmäßig den Speicherverbrauch des Servers und der Plugins
Der Speicherverbrauch kann mithilfe spezialisierter Administrationsplugins überwacht werden - beispielsweise LagMeter.
Achten Sie auf die Aktualisierung der Plugins
In der Regel versuchen die Entwickler neuer Plugins mit jeder neuen Version, die Last zu reduzieren.
Vermeiden Sie die Verwendung vieler Plugins mit ähnlicher Funktionalität
Große Plugins (zum Beispiel Essentials, AdminCMD, CommandBook) beinhalten oft die Funktionalität vieler kleinerer Plugins. So enthält beispielsweise das gleiche Essential Funktionen der Plugins iConomy, uHome, OpenInv, VanishNoPacket, Kit. Kleinere Plugins, deren Funktionalität vollständig durch die eines großen Plugins abgedeckt wird, können in den meisten Fällen entfernt werden, um den Server nicht zu überlasten.
Grenzen Sie die Karte ein und laden Sie sie selbstständig nach
Wenn Sie die Karte nicht begrenzen, wird die Serverlast erheblich steigen. Die Karte kann mithilfe des Plugins WorldBorderbegrenzt werden. Dazu muss dieses Plugin aktiviert und der Befehl /wb 200 ausgeführt werden, gefolgt von der Kartenerstellung mit dem Befehl /wb fill.
Die Kartenerstellung wird natürlich einige Zeit in Anspruch nehmen, aber es ist besser, dies einmal zu tun, indem Sie den Server für technische Arbeiten schließen. Wenn jeder Spieler die Karte erstellt, wird der Server langsam arbeiten.
Ersetzen Sie schwere Plugins durch schnellere und ressourcenschonendere
Nicht alle Plugins für Minecraft sind gelungen: Oft enthalten sie viele überflüssige und unnötige Funktionen und verbrauchen manchmal auch viel Speicher. Missratene Plugins sollten besser durch Alternativen ersetzt werden (es gibt davon recht viele). Zum Beispiel kann das Plugin LWC durch Wgfix+MachineGuard ersetzt werden, und das Plugin DynMap durch Minecraft Overviewer.
Entfernen Sie immer Drops oder installieren Sie ein Plugin zur automatischen Löschung von Drops
Drops in Spielen sind Gegenstände, die beim Sterben eines Mobs oder beim Zerstören bestimmter Blöcke fallen. Die Speicherung und Verarbeitung von Drops beansprucht sehr viele Systemressourcen.
Damit der Server schneller läuft, sollten Drops idealerweise entfernt werden. Dies geschieht am besten mit speziellen Plugins – zum Beispiel NoLagg oder McClean.
Verwenden Sie keine Anticheats
Auf Gaming-Servern werden oft sogenannte Anticheats installiert – Programme, die versuchen, unerlaubte Eingriffe in das Spiel zu blockieren.
Es gibt auch Anticheats für Minecraft. Jedes Anticheat stellt immer eine zusätzliche Belastung für den Server dar. Es ist vorzuziehen, Schutzmaßnahmen für den Launcher zu installieren (die allerdings keinerlei absolute Sicherheitsgarantie geben und leicht umgangen werden können – aber das ist ein eigenes Thema) und für den Client.
Zum Abschluss
Jede Anleitung und Empfehlung ist umso effektiver, wenn sie durch konkrete Beispiele untermauert wird. Basierend auf den obigen Installationsanleitungen haben wir unseren eigenen Minecraft-Server erstellt und etwas Interessantes auf die Karte gesetzt.
Das ist das Ergebnis:
- Bukkit-Server – empfohlene stabile Version 1.6.4;
- Plugin Statistics – um Statistiken über die Spieler zu sammeln;
- Plugin WorldBorder – um die Karte zu rendern und zu begrenzen;
- Plugin WorldGuard (+WorldEdit als Abhängigkeit) – um bestimmte Bereiche zu schützen.
Wir laden alle Interessierten ein, darauf zu spielen: Um sich zu verbinden, fügen Sie einen neuen Server hinzu und geben Sie die Adresse an mncrft.slc.tl.
Wir würden uns freuen, wenn Sie in den Kommentaren Ihre eigenen Erfahrungen mit der Installation, Konfiguration und Optimierung von Minecraft-Servern teilen und erzählen, welche Mods und Plugins Sie interessieren und warum.
Tolle Neuigkeiten: Ab dem 1. August wurde die Einrichtungsgebühr für dedizierte Server mit fester Konfiguration um 50 % gesenkt. Jetzt beträgt die einmalige Einrichtungsgebühr nur noch 3000 Rubel.
Leser, die hier keine Kommentare hinterlassen können, laden wir ein, zu uns zu kommen in Blog.
Quelle: habr.com
