
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 Blog.
Quelle: habr.com
