Live data from Hacker News

Testing a 1,000 player Minecraft server with Folia

cubxity.dev

11–20 of 166 posts

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

#11
post #2

Always fun to continue to see innovation within the Minecraft Java space. At Hypixel we ran (and I believe they still do run) a custom fork of Spigot from 2014-ish, with features from each sequential update to Minecraft being added to our fork via our Spigot fork. This let us diverge greatly and customize the Minecraft protocol to our own needs, saving hugely on internal bandwidth and letting us optimize crap out of…

That sounds cool as hell. I was always impressed when I jumped on hypixel just how much custom server work must've gone into it.

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

#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?

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

#13
post #10

Worth mentioning that this requires mods which break many in-game devices. The official in-game behavior was not able to be scaled. That's an interesting and legitimate strategy to the scaling problem, but good to know the downsides with the upsides when trying to take lessons from this.

Do you know any redstone incompatibilities that Folia has that Paper doesn't? From what I've heard, the goal is to have very good redstone compatibility, but I haven't yet heard much about actual testing with complicated machines.

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

#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

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

#16
post #10

Worth mentioning that this requires mods which break many in-game devices. The official in-game behavior was not able to be scaled. That's an interesting and legitimate strategy to the scaling problem, but good to know the downsides with the upsides when trying to take lessons from this.

(Disclaimer: I'm on the Paper team, and Paper is the org under which Folia sits.)

Paper (and Folia) have differences from "vanilla" (official) Minecraft, which is part of how they improve performance to begin with.

So it is true that there are differences from vanilla. Most "in-game devices" - if you mean builds, redstone machines, mob farms, etc - have versions that people have found will work on Paper and Folia. They might require some tweaking but complex redstone and mob farms are definitely very doable.

The goal is to have a close-to-vanilla experience while fixing bugs, patching exploits, and improving performance to run more people on a given piece of server hardware.

The biggest issue with Folia right now is that it's very new so there aren't a lot of plugins that support it just yet. That's changing every day! And of course it still has some crashing issues because it's still in development. :)

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

#17
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…

> 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 documentation and may be a more accurate description.

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

#18
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.

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

#19
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…

That scaling sounds quadratic and not exponential.

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

#20
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?

Runescape has sharded worlds, but the worlds go up to 1500 players, which is decently high.
Post reply on HN