Live data from Hacker News

How we built an auto-scalable Minecraft server for 1000+ players

worldql.com

81–90 of 145 posts

Re: How we built an auto-scalable Minecraft server for 1000+ players

#82
post #74
post #20

Earlier quoted context omitted.

Is there a specific reason why Minecraft hasn’t been “adapted” from the original game to a robust design that could scale to larger worlds and player populations before your project ?

The development priorities of Minecraft are a little strange. They have had a lot of opportunities to increase extensibility and performance (see modding API, cubic chunks, etc) but were too slow about it or focused on other things. AFAIK the long-term vision is to move the game entirely to the C++ clients which are much more performant, but a lot of the core playerbase is still on Java for modding and platform compa…

That would be fine, but there's substantial UI, graphical and gameplay (!) differences between the C++ and Java clients. Crafting recipes are different, redstone has very different connection rules... If the plan is to gently ease Java users to Bedrock, then I would have thought the first step would be to actually port the game, rather than rewrite it with many small pointless changes.

Re: How we built an auto-scalable Minecraft server for 1000+ players

#83

Interesting timing. I play with a few friends on a modded 1.7.10 server and we’ve decided to restart with 1.16 due to the lag having become untenable. We run it on an i7 machine at my house dedicated to it, so it’s not a hardware issue. Like clockwork the server would freeze for about 5s about every 30s. Using opus our best guess is that it’s unloading chunks and the GC is happening. We’re going to run 1.16 now which…

I run it on a headless Ghost Canyon Nuc with a Xeon and plenty of ram. There are only 2 of us and if one of us types a message you know it’s about to come in as the game lags so hard.

There is something not quite right. 1.7.10

Re: How we built an auto-scalable Minecraft server for 1000+ players

#84

There are very few servers that would really benefit from this. But perhaps the reason is that it's incredibly difficult to form large communities in minecraft. I could see this really changing how users interact with each other.

Perhaps, but the comments here suggest a lot of players would love to try it.

Re: How we built an auto-scalable Minecraft server for 1000+ players

#85
post #31
post #12

Earlier quoted context omitted.

I rent a small Linode to run a minecraft server for my extended family. Sometimes it struggles to keep up with just a half dozen of us, and when I tried swapping from a spigot based system to a forge one so the kids could have mods it was basically unplayable. I can't imagine scaling out to thousands of users, this was some amazing work. While developing this did you come up with any best practice recommendations for…

It might be too pricy, but if you go to about 25usd/month, you can get a dedicated server with an i7 from hetzner server auction. These cheap boxes don't have ecc ram etc - but should work well for things like this. https://www.hetzner.com/sb?country=us

The cheapest available right now was 140 euro. When do the 25 dollar server come out?

Re: How we built an auto-scalable Minecraft server for 1000+ players

#86
post #67

Being able to serve 1000+ players in a spatial "MMO" game is like the holy grail of netcode programming... > Here's a demonstration showcasing 1000 cross-server players, this simulation is functionally identical to real player load. The server TPS never dips below 20 (perfect) and I'm running the whole thing on my laptop. If it can run on one laptop, why does it need horizontal server scaling? :P You don't really kno…

The laptop can run multiple copies of a single threaded program (and spread those on diff cores)

Re: How we built an auto-scalable Minecraft server for 1000+ players

#87
post #67

Being able to serve 1000+ players in a spatial "MMO" game is like the holy grail of netcode programming... > Here's a demonstration showcasing 1000 cross-server players, this simulation is functionally identical to real player load. The server TPS never dips below 20 (perfect) and I'm running the whole thing on my laptop. If it can run on one laptop, why does it need horizontal server scaling? :P You don't really kno…

Thanks for your comment!

That demo is primarily meant to demonstrate the efficiency of the message broker and packet code as if there were 1000 players on different MC servers all forwarding their positions through WorldQL. I’ll make it more clear.

Re: How we built an auto-scalable Minecraft server for 1000+ players

#88
post #87
post #67

Being able to serve 1000+ players in a spatial "MMO" game is like the holy grail of netcode programming... > Here's a demonstration showcasing 1000 cross-server players, this simulation is functionally identical to real player load. The server TPS never dips below 20 (perfect) and I'm running the whole thing on my laptop. If it can run on one laptop, why does it need horizontal server scaling? :P You don't really kno…

Thanks for your comment! That demo is primarily meant to demonstrate the efficiency of the message broker and packet code as if there were 1000 players on different MC servers all forwarding their positions through WorldQL. I’ll make it more clear.

I would be a bit cautious about inferring server tick rates from the performance on one machine unless you are mostly planning to scale to lots of cores rather than lots of servers, since dealing with access latency can otherwise kill many promising attempts at parallelization even when the contention itself is no big deal. It's likely you are already aware of this and have designed the benchmark to compensate, of course :)

Re: How we built an auto-scalable Minecraft server for 1000+ players

#89

Hmm, I still think spatially allocated servers offer the best scalability. You would just have to approach it a little differently. Server boundaries could move based on where the population is via delaunay triangulation (instead of fixed boundaries), and servers could share high-importance information with their immediate bordering neighbours. (This would be recognized as ghost data on the neighbouring servers.) You…

This appears to be spatially allocated system that an acquaintance of mine worked on https://github.com/PureGero/MultiPaper

Re: How we built an auto-scalable Minecraft server for 1000+ players

#90
post #12
post #6

Hi, I made this! Was gonna wait until it was downloadable and the documentation was more complete before posting it on HN. Thanks for sharing it though. The Minecraft setup will be available and useable by anyone Wednesday of next week. More documentation and a roadmap will follow shortly after.

I rent a small Linode to run a minecraft server for my extended family. Sometimes it struggles to keep up with just a half dozen of us, and when I tried swapping from a spigot based system to a forge one so the kids could have mods it was basically unplayable. I can't imagine scaling out to thousands of users, this was some amazing work. While developing this did you come up with any best practice recommendations for…

> a small Linode [...] it struggles to keep up with just a half dozen of us

I run my server on a 32GB Ryzen5 PC with the world on an SSD and it often struggles with just 2 players no matter what options I tweak. Keep dreaming of the day the Java parts get the same performence as the Bedrock parts (but I know it'll likely never happen.)

Post reply on HN