23 December, 2022
A new Minecraft mod with serious ambition may change everything. It could even have a greater impact on the future of the platform. It boils down to this: Minecraft-as is processes all information about servers on one CPU (single thread). You could have the most powerful and fastest PC in the world, but if it has to deal with hundreds or thousands of players, it will take a significant performance hit. The server's tick rate is going to drop to the point that it is unplayable.
2622 is the 'world record for concurrent Minecraft players in one world. This was a messy achievement where none of the players were able to do anything, but it was there. Jackson Roberts, a coder, decided that this was not enough and created a huge Minecraft server that could host thousands without any lag. The Minecraft single-threaded server software was clearly not up to the task so Roberts and Harvey298 decided to create their own. They called the project Mammoth.
Roberts explained that the first attempt was a proof of concept system. It divided a Minecraft world into 1024 blocks. Each block was run by its own server. Servers transferred objects from one to another and border areas were synchronised. It had many problems: players couldn't see each other 'across' servers, one server went down rendering that area inaccessible to them all, and the solution wasn't practical if there were lots of players congregating in a small area.
Roberts established a number of goals for Mammoth after this experience.
He came up with the idea of a centralised backend database that would allow Minecraft servers to communicate as they pop in and out, and continuously pass messages about player movements, among other things. Roberts tried SpatialOS and redis, but found them unsuitable for his needs. He decided to create his own software, WorldQL. This is a real-time, scriptable spatial data base that can be used for multiplayer games and replace or balance traditional game servers.
The new Mammoth version, due to be released on September 8, uses World QL. It stores all permanent world changes and passes real-time player information between servers. Each server reports its data to World QL constantly. WorldQL then asks questions about other servers based upon these reports. WorldQL will ask queries about other servers if the server knows that one player is close to another player and the first player's server states they have moved.
“In Mammoth there is no Minecraft server that can store the entire world. WorldQL stores all block changes starting with the base seed. These changes are indexed according to chunk coordinate and time so that Minecraft servers can only request the latest updates since they last synced a block.
Jackson's post focuses on more exciting aspects such as “real-time blocks synchronisation”, message brokers, and the future potential of Minecraft mini-games created within World QL's scripting environments (because they will be able to take full advantage of player scaling by default).
Mammoth's debut will be of interest to Minecraft's most unusual communities such as those who like playing on anarchy servers. It also allows for a host of large-scale activities previously impossible. This will be tested on 2b2t servers and, if it is successful without falling over, will quickly become part of the scene. You can see that people are always coming up with new and exciting ways to play Minecraft. If Mammoth is able to deliver, it may be a great addition to your Minecraft servers.