Mammoth Mod: Minecraft zum MMO: Tausende Spieler in einer Welt
Es ist Montag auf PC Gamer und wir haben noch keinen heißen Server-Chat gehabt: aber keine Sorge! Ein kommender Minecraft-Mod mit ernsthaften Ambitionen ist im Begriff, all das zu ändern, und könnte sogar einen größeren Einfluss auf die Zukunft der Plattform haben. Im Wesentlichen geht es dabei um ein Problem: Minecraft verarbeitet alle Informationen über einen Server auf einer einzigen CPU (single-threaded). Man kann also den größten und leistungsstärksten PC der Welt haben, aber sobald er mit mehreren Dutzend oder gar Hunderten von Spielern zu tun hat, wird die Leistung stark beeinträchtigt, die Tickrate des Servers sinkt bis zu dem Punkt, an dem er unspielbar wird und niemand mehr Spaß hat.
Der „Weltrekord“ für gleichzeitige Minecraft-Spieler
Der „Weltrekord“ für gleichzeitige Minecraft-Spieler in einer einzigen Welt liegt bei 2622, eine chaotische Leistung, bei der keiner dieser Spieler wirklich etwas tun konnte, aber hey, sie waren da. Das war dem Programmierer Jackson Roberts nicht gut genug. Er wollte Anfang 2020 ein Projekt zum Abschließen und beschloss, einen gigantischen Minecraft-Server zu erstellen, der Tausende von Spielern ohne Verzögerung aufnehmen konnte. Die bestehende Single-Thread-Server-Software von Minecraft war der Aufgabe eindeutig nicht gewachsen, und so beschlossen Roberts und sein Mitarbeiter Harvey298, einen eigenen Server zu entwickeln, den sie Mammoth nannten.
Der erste Versuch war, wie Roberts erklärt, ein Proof-of-Concept-System, das eine Minecraft-Welt in 1024 Blöcke unterteilte, die jeweils von einem eigenen Server verwaltet wurden: Die Randbereiche wurden synchronisiert und die Server übertrugen bewegliche Objekte untereinander. Es gab jedoch zu viele Probleme: Spieler konnten sich nicht „serverübergreifend“ sehen, der Ausfall eines Servers machte den betreffenden Teil der Welt unzugänglich, und im Grunde brachte die Lösung nichts, wenn sich viele Spieler in einem kleinen Gebiet versammelten.
Nach dieser Erfahrung setzte sich Roberts eine Reihe von Zielen für Mammoth, darunter: Die Spieler müssen sich gegenseitig sehen können, auch wenn sie sich auf verschiedenen Servern befinden; wenn ein Spieler einen Block platziert oder ein Schild aktualisiert, sollte dies sofort für alle anderen Spieler sichtbar sein; wenn ein Server ausfällt, sollte die gesamte Welt immer noch zugänglich sein; bei Bedarf können Server nach Belieben hinzugefügt oder entfernt werden, um sich an die Anzahl der Spieler anzupassen.
Die Idee, die er hatte, war eine zentralisierte Backend-Datenbank, die zwischen den Minecraft-Servern kommunizieren konnte, während sie auftauchten und verschwanden, und die kontinuierlich Nachrichten, z. B. über Spielerbewegungen, weitergab. Nachdem er einige bestehende Software wie redis und SpatialOS ausprobiert hatte, stellte Roberts fest, dass sie für seine Zwecke ungeeignet waren, und beschloss, seine eigene Software, WorldQL, zu entwickeln, die er als „eine skriptfähige räumliche Echtzeit-Datenbank für Multiplayer-Spiele [beschreibt], die herkömmliche Spielserver ersetzen oder zum Lastausgleich bestehender Server verwendet werden kann.“
Die neue Version von Mammoth
Die neue Version von Mammoth, die am 8. September veröffentlicht werden soll, basiert auf WorldQL, die „alle permanenten Weltveränderungen speichert und Echtzeit-Spielerinformationen (z. B. Standort) zwischen den Servern weitergibt“. Im Grunde meldet jeder Server ständig seine Daten an World QL, das dann auf der Grundlage dieser Berichte Fragen an andere Server stellt: Wenn es weiß, dass sich ein Spieler in der Nähe eines anderen befindet, und der Server des ersten Spielers sagt, dass er sich bewegt hat, fragt WorldQL, was der andere gerade tut.
„In Mammoth ist kein einzelner Minecraft-Server für die Speicherung der Welt verantwortlich. Alle Änderungen an den Blöcken werden zentral in WorldQL gespeichert. Diese Änderungen sind nach Chunk-Koordinaten und Zeit indiziert, so dass ein Minecraft-Server nur die Aktualisierungen anfordern kann, die er seit der letzten Synchronisierung eines Chunks benötigt.“
Jacksons Beitrag geht auf spannende Aspekte wie „Echtzeit-Blocksynchronisation“, Nachrichtenbroker und das zukünftige Potenzial für Minecraft-Minispiele ein, die in der Skripting-Umgebung von WorldQL erstellt werden (weil sie standardmäßig in der Lage sein werden, die Skalierung der Spieler auszunutzen). Hier ist die Github-Seite von Mammoth.
Das Debüt von Mammoth wird für einige der ungewöhnlicheren Minecraft-Communities von besonderem Interesse sein, z. B. für diejenigen, die gerne auf Anarchie-Servern spielen, und es wird eine ganze Reihe anderer groß angelegter Aktivitäten ermöglichen, die bisher nicht möglich waren. Es ist zu erwarten, dass dies auf Servern wie 2b2t getestet wird und, wenn es wie behauptet funktioniert, ohne umzufallen, schnell Teil der Szenerie wird. Wie du in unserer Liste der besten Minecraft-Server sehen kannst, lassen sich die Leute immer wieder verrückte und wunderbare Spielmöglichkeiten einfallen, und wenn Mammoth das hält, was es verspricht, könnte es seinem Namen alle Ehre machen.
Eine schöne Webseite mit Bauideen für Minecraft findet ihr übrigens hier https://minecraft-bauideen.de/