Ha, nice, thanks. I've never looked into this deeper than accepting the fact that it's doable. Now, if only I had the spare time to look into how did they shard the servers...
We tend to call those "networks", when they have a bunch of different gametypes and servers interconnected. At a smaller scale of a few hundred players it's pretty easily handled by off the shelf software like Velocity for the proxy and a few server instances running Paper.
You generally want good performing (not VPS or "cloud" instances) but you can run a bunch of different worlds and have people with cross server talk, the ability to warp between worlds, etc. Most of the larger networks and nearly all of the smaller networks use a variation of this kind of model.
* https://papermc.io/software/velocity - Newer, more performant, maintained by the team that makes Paper, one of the leading performance MC server implementations.
For context of scale btw, when Hypixel had 200k+ players online at peak we had something like 2,000+ 1U E3-1271v3's each with 32GB RAM, all colo'd in a single DC in Chicago. Egress is 70-80gbps or so 95th percentile, with most months (at high peak) egressing 10PB/mo+ of real-time, uncacheable data.
I used to play Minecraft as a child years ago, I also got into mod and plugin development as a kid.
I thoroughly enjoyed creating different game modes, similar to Hypixel. Whenever I would play on Hypixel I’d think about how the games had been implemented.
Seeing this thread brings back a lot of nostalgia. Reading through these comments makes me realise that a lot more work went into these servers than I had ever imagined. Naive me thinking it was just a bunch of spigot servers with bungeecord thrown on top.
I’d love to revisit and get back into it all. Alas, I’m stuck working on software nowadays instead.
That is 100 players per server = 12.5 players per hardware thread. The linked article got 31 players per available hardware thread, but was only able to saturate part of the CPU landing at about 70 players per used hardware thread. The TPS also dropped by a factor of 3. If you were running at 50% utilisation and maintained 20 TPS, then I don't see a significant increase in performance. I imagine I'm missing the point ;)
You generally want good performing (not VPS or "cloud" instances) but you can run a bunch of different worlds and have people with cross server talk, the ability to warp between worlds, etc. Most of the larger networks and nearly all of the smaller networks use a variation of this kind of model.