Minecraft mod Mammoth will allow servers to host thousands of players without keeling over

Minecraft mod Mammoth will allow servers to host thousands of players without keeling over

Releases in a couple of days.

Minecraft mod Mammoth will allow servers to host thousands of players without keeling over - image1
(Image credit: Mojang)

It's Mᴏɴᴅᴀʏ ᴏɴ PC Gaᴍᴇr ᴀɴd ᴡᴇ ʜᴀᴠᴇn't ʜᴀᴅ ᴀɴy ʜᴏᴛ sᴇʀᴠᴇr chᴀᴛ ʏᴇᴛ: ʙᴜᴛ fᴇᴀʀ ɴᴏt! An ᴜᴘcomɪɴg Mɪɴecraft mod ᴏꜰ serioᴜs amʙɪᴛiᴏɴ ɪs ᴀʙᴏᴜᴛ ᴛᴏ chᴀɴge ᴀʟʟ thᴀᴛ, ᴀɴd ᴍᴀʏ ᴇᴠᴇɴ ʜᴀᴠᴇ a ᴡɪᴅᴇr impᴀᴄᴛ ᴏɴ tʜᴇ plᴀᴛꜰᴏʀm's future. Essᴇɴᴛiᴀʟʟy, ɪᴛ ᴄᴏᴍᴇs ᴅᴏwn ᴛᴏ ᴏɴe ᴘʀᴏʙʟᴇᴍ: Mɪɴecraft-ᴀs-ɪs ᴘʀᴏᴄᴇsses ᴀʟʟ ɪɴꜰᴏʀmᴀᴛiᴏɴ ᴀʙᴏᴜᴛ a sᴇʀᴠᴇr ᴏɴ a sɪɴgle CPU (sɪɴgle-thʀᴇᴀᴅed). So ʏᴏᴜ ᴄᴏᴜʟᴅ ʜᴀᴠᴇ tʜᴇ ʙɪɢgest ᴀɴd ʙᴇefiest PC ɪɴ tʜᴇ wᴏʀld ʙᴜᴛ, ᴀs sᴏᴏɴ ᴀs ɪᴛ's havɪɴg ᴛᴏ ᴅᴇᴀʟ wɪᴛh multiple ᴅᴏzens ᴏʀ ᴇᴠᴇɴ ʜᴜɴᴅʀᴇᴅs ᴏꜰ pʟᴀʏers, ʏᴏᴜ're ɢᴏɪɴg ᴛᴏ ɢᴇᴛ a ʜᴜɢᴇ perꜰᴏʀmᴀɴce ʜɪᴛ, tʜᴇ sᴇʀᴠᴇr's tick rᴀᴛe ᴡɪʟʟ decreᴀse ᴛᴏ tʜᴇ poɪɴt ɪᴛ's unpʟᴀʏᴀʙʟᴇ, ᴀɴd ɴᴏ-ᴏɴe's havɪɴg ꜰᴜɴ.

The 'world record' for concurrent Minecraft players in a single world is 2622, a messy accomplishment where none of those players was able to actually do anything but, hey, they were there. This just wasn't good enough for coder Jackson Roberts, who at the beginning of 2020 wanted a lockdown project, and decided to create a gigantic Minecraft server that could host thousands of players without lag. Minecraft's existing single-threaded server software clearly wasn't up to the job so Roberts and collaborator Harvey298 decided they would work out how to build their own, calling the project Mammoth.

The first attempt, as Roberts explains, was a proof-of-concept system that chopped up a Minecraft world into 1024 blocks which were each run by their own server: the border areas synchronised and servers transferred moving objects between one another. However, it had too many issues: players couldn't see each other 'across' servers, one server going down rendered that portion of the world inaccessible, and fundamentally the solution didn't solve anything if lots of players congregated in a small area.

After this experience Roberts set a bunch of goals for Mammoth, including: Players must be able to see each other, even if on different server processes; When a player places a block or updates a sign, it should be immediately visible to all other players; If one server is down, the entire world should still be accessible; If needed, servers can be added or removed at-will to adapt to the amount of players.

The idea that he came up with was a centralised, backend database that could communicate between Minecraft servers as they popped in and out of existence, and continually pass messages about, for example, player movements. After trying some existing software such as redis and SpatialOS Roberts found it unfit for his purposes and, as you do, decided to build his own software, WorldQL, which he describes as "a real-time, scriptable spatial database built for multiplayer games [which] can replace traditional game servers or be used to load balance existing ones."

So: the new version of Mammoth, which is due to release on September 8, is built on World QL which stores "all permanent world changes and pass[es] real-time player information (such as location) between servers." Basically, each server is constantly reporting its data to World QL, which is then asking questions of other servers based on these reports: if it knows one player is near another, and the first player's server says they've moved, WorldQL asks what the other one is doing.

"In Mammoth, no single Minecraft server is responsible for storing the world. All block changes from the base seed are centrally stored in WorldQL. These changes are indexed by chunk coordinate and time, so a Minecraft server can request only the updates it needs since it last synced a chunk."

Jackson's post goes into more detail on exciting aspects like "real-time block synchronisation", message brokers and the future potential for Minecraft mini-games created in World QL's scripting environment (because, by default, they'll be able to take advantage of the player scaling.) Here is Mammoth's github page.

The debut of Mammoth will be of particular interest to some of Minecraft's more unusual communities, such as those that like playing on anarchy servers, as well as enabling a whole host of other large-scale activities that previously just weren't possible. Expect to see this being tested out on servers like 2b2t and, if it works as claimed without falling over, quickly becoming part of the scenery. As you can see in our list of the best Minecraft servers, people never stop coming up with weird and wonderful ways to play and, if Mammoth can deliver on the talk, its impact may well live up to the name.

Author's other posts