
Minecraft gehört heute zu den beliebtesten Online-Spielen. In weniger als drei Jahren (die erste offizielle Veröffentlichung fand im Herbst 2011 statt) hat es Millionen von Fans weltweit gewonnen.
Die Entwickler des Spiels orientieren sich bewusst an den besten Beispielen aus vor zwanzig Jahren, als viele Spiele nach heutiger Maßstäben grafisch primitiv und usabilitär unvollkommen waren, aber dennoch wirklich fesselnd waren.
Wie alle Sandbox-Spiele bietet Minecraft den Nutzern enorme kreative Möglichkeiten – das ist letztendlich das Hauptgeheimnis seiner Beliebtheit.
Die Organisation von Servern für das Spiel im Mehrspielermodus liegt in den Händen der Spieler und ihrer Communities. Heute sind zehntausende von Spiel-Servern im Internet aktiv (siehe beispielsweise die Liste hier).
Viele Fans dieses Spiels sind auch unter unseren Kunden und mieten in unseren Rechenzentren Hardware für ihre Gaming-Projekte. In diesem Artikel werden wir darauf eingehen, auf welche technischen Aspekte man bei der Auswahl eines Servers für
Minecraft achten sollte.
Wählen Sie eine Plattform
Die Architektur von Minecraft umfasst folgende Elemente:
- Server – ein Programm, das es Spielern ermöglicht, über ein Netzwerk miteinander zu interagieren;
- Client – ein Programm zur Verbindung mit dem Server, das auf dem Computer des Spielers installiert wird;
- Plugins – Erweiterungen für den Server, die neue Funktionen hinzufügen oder bestehende erweitern;
- Mods – Erweiterungen der Spielwelt (neue Blöcke, Gegenstände, Möglichkeiten).
Für Minecraft gibt es viele Serverplattformen. Die verbreitetsten und beliebtesten sind Vanilla und Bukkit.
Vanilla ist die offizielle Plattform der Entwickler des Spiels. Sie wird sowohl in grafischer als auch in einer Konsolenversion bereitgestellt. Eine neue Version von Vanilla erscheint immer gleichzeitig mit einer neuen Version von Minecraft.
Ein Nachteil von Vanilla ist der hohe Speicherverbrauch (etwa 50 MB pro Spieler). Ein weiterer wesentlicher Nachteil ist das Fehlen von Plugins.
Bukkit wurde von einer Gruppe von Enthusiasten ins Leben gerufen, die versuchten, den offiziellen Minecraft-Server zu verbessern. Der Versuch war durchaus erfolgreich: Funktionalitätstechnisch ist Bukkit viel umfangreicher als Vanilla – vor allem dank der Unterstützung einer Vielzahl von Mods und Plugins. Dabei verbraucht es weniger Arbeitsspeicher pro Spieler – ungefähr 5–10 MB.
Die Nachteile von Bukkit liegen darin, dass es beim Start zu viel RAM verbraucht. Außerdem gilt: Je länger der Server läuft, desto mehr Speicher benötigt er (selbst wenn nur wenige Spieler online sind). Wenn Sie sich für einen Bukkit-Server entscheiden, sollten Sie bedenken, dass die neuen Versionen in der Regel Fehler enthalten; die stabile Version erscheint normalerweise etwa 2-3 Wochen nach der offiziellen Version von Minecraft.
Darüber hinaus gewinnen in letzter Zeit auch andere Plattformen an Beliebtheit (zum Beispiel Spout, MCPC und MCPC+), die jedoch durch ihre eingeschränkte Kompatibilität mit Vanilla und Bukkit sowie ihre äußerst begrenzte Mod-Unterstützung auffallen (zum Beispiel kann man für Spout Modifikationen nur von Grund auf neu schreiben). Wenn man sie nutzt, dann nur zu Experimentierzwecken.
Für die Einrichtung eines Game Servers empfehlen wir die Bukkit-Plattform, da sie die größte Flexibilität bietet; zudem gibt es zahlreiche verschiedene Mods und Plugins dafür. Die stabile Funktion eines Minecraft-Servers hängt entscheidend von der richtigen Wahl der Hardwareplattform ab. Lassen Sie uns dieses Thema näher betrachten.
Hardwareanforderungen
Sowohl der Server als auch der Client von Minecraft sind sehr ressourcenintensiv.
Bei der Auswahl der Hardwareplattform sollte man bedenken, dass ein Multikernprozessor nicht unbedingt große Vorteile bringt: Der Minecraft-Serverkern kann nur einen Rechenprozess nutzen. Ein zweiter Kern ist jedoch nicht unwichtig: Einige Plugins laufen in separaten Prozessen, und auch Java verbraucht viele Ressourcen...
Deshalb für Minecraft-Server ist es besser, einen Prozessor mit höherer Einzelkernerleistung zu wählen. Ein leistungsstarker Dual-Core-Prozessor ist vorzuziehen gegenüber einem weniger leistungsstarken Multikernprozessor. In spezialisierten Foren wird empfohlen, Prozessoren mit einer Taktfrequenz von nicht weniger als 3 GHz zu verwenden.
Für den ordnungsgemäßen Betrieb eines Minecraft-Servers ist eine große Menge an Arbeitsspeicher erforderlich. Bukkit benötigt etwa 1 GB RAM; zudem werden für jeden Spieler, wie bereits erwähnt, zwischen 5 und 10 MB zugewiesen. Auch Plugins und Mods verbrauchen vergleichsweise viel Speicher. Für einen Server mit 30 bis 50 Spielern benötigen Sie daher mindestens 4 GB RAM.
In Minecraft hängt vieles (zum Beispiel das Laden der gleichen Plugins) von der Geschwindigkeit des Dateisystems ab. Daher ist es ratsam, einen Server mit einer SSD zu wählen. Festplattenlaufwerke sind aufgrund ihrer niedrigen Zugriffsgeschwindigkeit kaum geeignet.
Auch die Geschwindigkeit der Internetverbindung spielt eine enorme Rolle. Für 40 bis 50 Spieler reicht eine Bandbreite von 10 Mbit/s völlig aus. Wer jedoch ein größeres Minecraft-Projekt plant, das eine Website, ein Forum und eine dynamische Karte umfasst, sollte über eine Verbindung mit höherer Bandbreite nachdenken.
Welche spezielle Konfiguration ist am besten geeignet? Aus den von uns angebotenen Konfigurationen empfehlen wir, auf die folgenden zu achten:
- Intel Core 2 Duo E8400 3 GHz, 6 GB RAM, 2×500 GB SATA, 3000 Rubel/Monat.
- Intel Core 2 Quad Q8300 2,5 GHz, 6 GB RAM, 2×500 GB SATA, 3.500 ₽/Monat — Diese Konfiguration nutzen wir für unseren Testserver MineCraft, auf dem Sie gerade spielen können (wie das geht, steht unten geschrieben);
- Intel Core i3-2120 3,3 GHz, 8 GB RAM, 2×500 GB SATA, 3.500 ₽/Monat.
Diese Konfigurationen eignen sich gut für einen Minecraft-Server mit 30-40 Spielern. Ein Nachteil ist das Fehlen von SSDs, jedoch bieten wir einen anderen wichtigen Vorteil: eine garantierte Bandbreite von 100 Mbit/s ohne Einschränkungen oder Quoten. Bei Bestellung aller oben genannten Konfigurationen wird keine Einrichtungsgebühr erhoben.
Wir haben auch leistungsstärkere, aber natürlich auch teurere Server (bei der Bestellung dieser Konfigurationen wird ebenfalls keine Einrichtungsgebühr erhoben):
- 2× Intel Xeon 5130, 2 GHz, 8 GB RAM, 4×160 GB SATA, 5.000 ₽/Monat;
- 2× Intel Xeon 5504, 2 GHz, 12 GB RAM, 3×1 TB SATA, 9.000 ₽/Monat.
Wir empfehlen auch, auf das neue Budgetmodell mit SSD auf Basis des Intel Atom C2758-Prozessors zu achten: Intel Atom C2758 2,4 GHz, 16 GB RAM, 2×240 GB SSD, 4.000 ₽/Monat, Einrichtungsgebühr - 3.000 ₽.
Installation und Start des Bukkit-Servers unter Ubuntu OS
Bevor wir den Server einrichten, erstellen wir einen neuen Benutzer und fügen ihn zur Gruppe sudo hinzu:
$ sudo useradd -m -s /bin/bash $ sudo adduser sudo
Als Nächstes legen wir das Passwort fest, mit dem der neu erstellte Benutzer sich am Server anmeldet:
$ sudo passwd
Wir verbinden uns erneut mit dem Server unter dem neuen Konto und beginnen mit der Installation.
Minecraft ist in Java geschrieben, daher muss auf dem Server unbedingt die Java Runtime Environment installiert werden.
Aktualisieren wir die Liste der verfügbaren Pakete:
$ sudo apt-get update
Führen wir dann den folgenden Befehl aus:
$ sudo apt-get install default-jdk
Für die Installation und den Betrieb von Bukkit ist es auch ratsam, einen Terminal-Multiplexer wie screen zu installieren (wir können auch andere Terminal-Multiplexer verwenden – siehe unsere Testbericht):
$ sudo apt-get install screen
Screen wird benötigt, wenn wir uns über SSH mit dem Spielserver verbinden. Damit können wir den Minecraft-Server in einem separaten Terminalfenster ausführen, und selbst wenn der SSH-Client geschlossen wird, bleibt der Server aktiv.
Erstellen wir ein Verzeichnis, in dem die Serverdateien gespeichert werden:
$ mkdir bukkit $ cd bukkit
Danach gehen wir zu der Downloadseite der offiziellen Bukkit-WebsiteIm oberen rechten Bereich der Seite finden Sie einen Link zur letzten empfohlenen Serverkonfiguration (recommended build). 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
Lassen Sie uns erklären, was die verwendeten Parameter bedeuten:
- Xmx1024M — die maximale Menge an RAM für den Server;
- jar craftbukkit.jar — der Schlüssel zum Server;
- o false — erlaubt den Zugriff auf den Server von Raubkopien-Clients.
Der Server wird gestartet.
Um den Server zu stoppen, geben Sie in der Konsole 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 — definiert die Vorlage für die Generierung der superflachen Welt;
- allow-nether — bestimmt die Möglichkeit des Übergangs zur Unterwelt. Standardmäßig ist dieser Parameter auf true gesetzt. Wenn false eingestellt ist, werden alle Spieler aus der Unterwelt in die normale Welt versetzt;
- level-name — der Ordnername mit den Spieldateien, der während des Spiels verwendet wird. Der Ordner befindet sich im gleichen Verzeichnis wie die Serverdateien. Wenn dieses Verzeichnis nicht existiert, erstellt der Server automatisch eine neue Welt und platziert sie in einem Verzeichnis mit dem gleichen Namen.
- enable-query — wenn auf true gesetzt, aktiviert das GameSpy4-Protokoll zur Überwachung des Servers.
- allow-flight — erlaubt Flüge in der Minecraft-Welt. Standardmäßig ist dies auf false (Flüge sind verboten) gesetzt.
- server-port — gibt den Port an, der vom Spielserver verwendet wird. Der Standardport für Minecraft ist 25565. Es wird empfohlen, diesen Wert nicht zu ändern.
- level-type — bestimmt den Weltentyp (DEFAUT/FLAT/LARGEBIOMES).
- enable-rcon — ermöglicht den Remote-Zugriff auf die Serverkonsole. Standardmäßig ist dies deaktiviert (false).
- level-seed — Eingabewerte für den Levelgenerator. Um zufällige Welten zu erstellen, sollte dieses Feld leer gelassen werden.
- force-gamemode — legt den Standardspielmodus für Spieler fest, die sich mit dem Server verbinden.
- server-ip — gibt die IP-Adresse an, die von den Spielern zur Verbindung mit dem Server verwendet wird.
- max-build-height – gibt die maximale Bauhöhe auf dem Server an. Der Wert muss eine Zahl sein, die ein Vielfaches von 16 (64, 96, 256 usw.) ist;
- spawn-npcs – erlaubt (wenn der Wert auf true gesetzt ist) oder verbietet (wenn der Wert auf false gesetzt ist) das Erscheinen von NPCs in Dörfern;
- white-list – schaltet die Verwendung einer Whitelist für Spieler auf dem Server ein oder aus. Wenn der Wert auf true gesetzt ist, kann der Administrator die Whitelist manuell erstellen, indem er Spielernamen hinzufügt. Wenn der Wert auf false gesetzt ist, kann jeder Benutzer, der die IP-Adresse und den Port kennt, den Server betreten;
- spawn-animals – erlaubt das automatische Erscheinen freundlicher Mobs, wenn der Wert auf true gesetzt ist;
- snooper-enabled – erlaubt dem Server, Statistiken und Daten an die Entwickler zu senden;
- hardcore – aktiviert den Hardcore-Modus auf dem Server;
- texture-pack – eine Texturdatei, die verwendet wird, wenn sich ein Spieler mit dem Server verbindet. Der Wert für diese Einstellung ist der Name des zip-Archivs mit den Texturen, das sich im selben Verzeichnis wie der Server befindet;
- Online-Modus — aktiviert die Überprüfung von Premium-Accounts der Benutzer, die sich mit dem Server verbinden. Wenn dieser Parameter auf true gesetzt ist, können nur Premium-Account-Besitzer auf den Server zugreifen. Wenn die Kontoüberprüfung deaktiviert (auf false gesetzt) ist, können alle Benutzer (einschließlich beispielsweise Spieler mit gefälschten Benutzernamen) auf den Server zugreifen, was zusätzliche Sicherheitsrisiken mit sich bringt. Bei deaktivierter Überprüfung kann Minecraft im lokalen Netzwerk ohne Internetzugang gespielt werden;
- PvP — ermöglicht oder verbietet es Spielern, gegeneinander zu kämpfen. Wenn dieser Parameter den Wert true hat, können die Spieler sich gegenseitig angreifen. Wenn er auf false gesetzt ist, können die Spieler einander keinen direkten Schaden zufügen;
- Schwierigkeitsgrad — legt den Schwierigkeitsgrad des Spiels fest. Kann Werte von 0 (am leichtesten) bis 3 (am schwierigsten) annehmen;
- Spielmodus — gibt an, welcher Spielmodus für die Spieler festgelegt wird, die sich auf den Server einloggen. Kann folgende Werte annehmen: 0 — Überleben, 1 — Kreativ, 2 — Abenteuer;
- Inaktivitätszeit des Spielers — Zeit ohne Aktivität (in Minuten), nach deren Ablauf die Spieler automatisch vom Server getrennt werden;
- max-players — die maximal erlaubte Anzahl an Spielern auf dem Server (von 0 bis 999);
- spawn-monsters — erlaubt (wenn auf true gesetzt) das Erscheinen feindlicher Mobs;
- generate-structures — aktiviert (true) / deaktiviert (false) die Generierung von Strukturen (Schatzkammern, Festungen, Dörfer);
- view-distance — reguliert den Radius der aktualisierten Chunks, die an den Spieler gesendet werden; kann Werte von 3 bis 15 annehmen.
Die Protokolle des Minecraft-Servers werden in der Datei server.log aufgezeichnet. Diese befindet sich im gleichen Ordner wie die Serverdateien. Das Protokoll wächst ständig und verbraucht immer mehr Speicherplatz. Die Funktion des Protokollmechanismus kann durch sogenannte Protokollrotation organisiert werden. Hierfür wird ein spezielles Tool verwendet — logrotate. Es begrenzt die Anzahl der Einträge im Protokoll auf eine festgelegte Obergrenze.
Die Protokollrotation kann so eingerichtet werden, dass alle Einträge gelöscht werden, sobald die Protokolldatei eine bestimmte Größe erreicht. Es kann auch eine Frist festgelegt werden, nach der alle alten Einträge als veraltet gelten und gelöscht werden.
Die grundlegenden Rotationseinstellungen befinden sich in der Datei /etc/logrotate.conf; außerdem können für jede Anwendung individuelle Einstellungen erstellt werden. Die Dateien mit den individuellen Einstellungen werden im Verzeichnis /etc/logrotate.d gespeichert.
Erstellen wir eine Textdatei /etc/logrotate.d/craftbukkit und fügen die folgenden Parameter ein:
/home/craftbukkit/server.log {
rotate 2
weekly
compress
missingok
notifempty
}
Lassen Sie uns deren 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 erfolgen soll (es können auch andere Parameter eingestellt werden: monthly – monatlich und daily – täglich);
- compress weist darauf hin, dass archivierte Protokolle komprimiert werden müssen (die entgegengesetzte Option ist nocompress);
- missingok bedeutet, dass die Verarbeitung fortgesetzt wird, wenn die Protokolldatei nicht vorhanden ist, und keine Fehlermeldungen ausgegeben werden;
- notifempty gibt an, dass die Protokolldatei nicht verschoben werden soll, wenn sie leer ist.
Weitere Informationen zu den Logrotationseinstellungen finden Sie hier.
Tipps zur Optimierung
Zunächst möchten wir klarstellen, dass in diesem Abschnitt Tipps zur Optimierung von Spieleservern vorgestellt werden. Die Feinabstimmung und Optimierung des Servers, auf dem Minecraft läuft, ist ein separates Thema, das über den Rahmen dieses Artikels hinausgeht; interessierte Leser können problemlos die benötigten Informationen im Internet finden.
Eines der häufigsten Probleme beim Spielen von Minecraft sind die sogenannten Lags – Situationen, in denen das Programm nicht rechtzeitig auf Benutzereingaben reagiert. Diese können sowohl durch Probleme auf der Client-Seite als auch auf der Server-Seite verursacht werden. Im Folgenden geben wir Empfehlungen, die dazu beitragen, 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 administrativer Plugins überwacht werden – zum Beispiel mit LagMeter..
Achten Sie auf Plugin-Updates.
In der Regel versuchen die Entwickler neuer Plugins mit jeder neuen Version, die Belastung zu verringern.
Vermeiden Sie die Verwendung vieler Plugins mit ähnlicher Funktionalität.
Große Plugins (wie Essentials, AdminCMD, CommandBook) enthalten häufig die Funktionalität mehrerer kleiner Plugins. Zum Beispiel bietet Essentials Funktionen der Plugins iConomy, uHome, OpenInv, VanishNoPacket und Kit. Kleinere Plugins, deren Funktionalität vollständig von einem großen Plugin abgedeckt wird, können in den meisten Fällen entfernt werden, um den Server nicht zu überlasten.
Begrenzen Sie die Karte und laden Sie sie selbstständig.
Wenn die Karte nicht begrenzt wird, erhöht sich die Serverlast erheblich. Die Begrenzung der Karte kann mit dem Plugin WorldBordererfolgen. Dazu müssen Sie dieses Plugin aktivieren und den Befehl /wb 200 ausführen, gefolgt von dem Befehl /wb fill, um die Karte zu rendern.
Das Rendern kann zwar einige Zeit in Anspruch nehmen, aber es ist besser, dies einmal zu tun, während der Server für Wartungsarbeiten geschlossen ist. Wenn jeder Spieler die Karte rendern muss, wird der Server langsam laufen.
Ersetzen Sie ressourcenintensive Plugins durch schnellere und weniger belastende.
Nicht alle Plugins für Minecraft sind wirklich gelungen: Oftmals enthalten sie viele überflüssige und unnötige Funktionen und verbrauchen manchmal auch viel Speicher. Unbrauchbare Plugins sollten besser durch Alternativen ersetzt werden (es gibt ziemlich viele davon). Zum Beispiel kann das Plugin LWC durch Wgfix+MachineGuard ersetzt werden, und das Plugin DynMap durch Minecraft Overviewer.
Entfernen Sie immer die Drops oder installieren Sie ein Plugin für die automatische Entfernung von Drops.
Drops in Spielen sind Gegenstände, die beim Tod eines Mobs oder beim Zerstören bestimmter Blöcke fallen. Die Speicherung und Verarbeitung von Drops verbraucht viele Systemressourcen.
Um den Server schneller zu machen, sollten Drops idealerweise gelöscht werden. Dies geschieht am besten mit speziellen Plugins wie NoLagg oder McClean.
Verwenden Sie keine Anti-Cheat-Programme.
Auf Spielservern werden häufig sogenannte Anti-Cheat-Programme installiert, die versuchen, unfaire Eingriffe in das Spiel zu blockieren.
Es gibt Anti-Cheat-Programme auch für Minecraft. Jedes Anti-Cheat-Programm ist immer eine zusätzliche Belastung für den Server. Es ist besser, Schutzmaßnahmen für den Launcher zu installieren (die jedoch keine absolute Sicherheit garantieren und leicht umgangen werden können – aber das ist ein Thema für ein separates Gespräch) und für den Client.
Abschließend
Alle Anleitungen und Empfehlungen sind viel effektiver, wenn sie durch konkrete Beispiele untermauert werden. Basierend auf den oben genannten Installationsanleitungen haben wir unseren eigenen Minecraft-Server erstellt und etwas Interessantes auf die Karte platziert.
Das ist das Ergebnis:
- Bukkit-Server – stabile empfohlene Version 1.6.4;
- Plugin Statistics – um Statistiken über die Spieler zu sammeln;
- Plugin WorldBorder – um die Karte zu zeichnen 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 freuen uns, 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 einmalige Einrichtungsgebühr für dedizierte Server mit fester Konfiguration um 50 % gesenkt. Nun beträgt die einmalige Einrichtungsgebühr nur noch 3000 Rubel.
Leser, die hier keine Kommentare hinterlassen können, laden wir ein zu блог.
Quelle: habr.com
