Live data from Hacker News

Testing a 1,000 player Minecraft server with Folia

cubxity.dev

21–30 of 166 posts

Re: Testing a 1,000 player Minecraft server with Folia

#21
post #4

>Players were spread into 49 different teams across the map. Each team consisted of around 20 players. How is that different from sharding into mini 20 player servers? I was hoping for 1000 players all in visual range :) Eve Online record is >6000 players all in visual range, but they cheat by lowering server tick from 1Hz down to 0.1Hz https://wiki.eveuniversity.org/Time_dilation

That is a completely different problem that is mostly bottlenecked by bandwidth and not CPU time. Every players data has to be sent to every other player. This requires a CDN like architecture to increase bandwidth.

Sure you need fast tick updates for dynamic models right in front of you, but something ~100 virtual meters away? can at least halve it, 500m maybe even 1/10 will suffice.

Re: Testing a 1,000 player Minecraft server with Folia

#23

What about ZGC?

Somewhat orthogonal to what Folia is doing, and already explored by the community.

Folia's main trick is to dynamically split the "main game tick loop", where logic and actions are processed into several threads based on location.

Such that processing for say a mob farm in the South of the map does not impede on processing for a hopper based storage system in the North West etc.

This doesn't solve the everyone's at one place problem (or "Jita problem", in EvE online parlance) but does solve some issues with populated servers where player density isn't extreme.

Re: Testing a 1,000 player Minecraft server with Folia

#24
post #14
post #12

Interesting to see how they scale a multiplayer big world. Not many systems try to do this. Improbable, Minecraft, Second Life, and Roblox are the ones I know about. Almost everybody else shards. Any other examples of really big shared seamless multiplayer worlds?

EVE Online

I believe they shard each sector and their inability to sub-divide their hosting on a sector level has created their infamous timewarped battles?

Re: Testing a 1,000 player Minecraft server with Folia

#25
post #22

It would be interesting to have blog posts about the optimizations that were made.

If you want to read more, some technical details that were previously only covered by scattered blog posts and github gists have been consolidated into the project's documentation - https://docs.papermc.io/folia/reference/overview

Re: Testing a 1,000 player Minecraft server with Folia

#26
post #8

Earlier quoted context omitted.

Keep in mind that the entities-in-viewing-range scales quadratically with players. 10 players in view distance is (at 20 ticks per second) 180 packets per second *per player*, or ~2k pps on the server. 100 players, ~200k pps. 1000 players, ~20m pps. All on a single Java thread, hence why Minecraft typically performs better on high clock-speed low(er) core count CPUs. Folia splits the load for the world into multiple…

> Folia splits the load for the world into multiple threads, but only on a per-region basis, with each 512x512 being (potentially) on a different thread. A small correction - Folia regions are not Minecraft regions. They don't necessarily align with the 512x512 region grid, and can take different shapes and sizes depending on what the regionizing algorithm is doing. The term "bubble" is used in some of the documentat…

Ohhh, very interesting. I'll admit I only took a cursory glance at the code when it was first announced on the Paper discord since I'm not as much involved with MC anymore, but that's good to know. I'll need to dive in again one of these days.

Re: Testing a 1,000 player Minecraft server with Folia

#27
post #8
post #4

>Players were spread into 49 different teams across the map. Each team consisted of around 20 players. How is that different from sharding into mini 20 player servers? I was hoping for 1000 players all in visual range :) Eve Online record is >6000 players all in visual range, but they cheat by lowering server tick from 1Hz down to 0.1Hz https://wiki.eveuniversity.org/Time_dilation

Keep in mind that the entities-in-viewing-range scales quadratically with players. 10 players in view distance is (at 20 ticks per second) 180 packets per second *per player*, or ~2k pps on the server. 100 players, ~200k pps. 1000 players, ~20m pps. All on a single Java thread, hence why Minecraft typically performs better on high clock-speed low(er) core count CPUs. Folia splits the load for the world into multiple…

[deleted]

Re: Testing a 1,000 player Minecraft server with Folia

#29
post #12

Interesting to see how they scale a multiplayer big world. Not many systems try to do this. Improbable, Minecraft, Second Life, and Roblox are the ones I know about. Almost everybody else shards. Any other examples of really big shared seamless multiplayer worlds?

Ultima Online, Star Wars Galaxies, and Planetside
Post reply on HN