Earlier quoted context omitted.
> 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.
Testing a 1,000 player Minecraft server with Folia
31–40 of 166 posts
Re: Testing a 1,000 player Minecraft server with Folia
#32Interesting 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
#33Mineplex has won the Guinness World Records award on January 28, 2015 for having 34,434 concurrent players, the most on a Minecraft server at the time.
Re: Testing a 1,000 player Minecraft server with Folia
#34I'll just drop this factoid: Mineplex has won the Guinness World Records award on January 28, 2015 for having 34,434 concurrent players, the most on a Minecraft server at the time.
Mineplex had the most concurrent players but they weren't on a single individual bare metal server or single server jar instance.
A lot of large "servers" like Mineplex, Hypixel, etc run a proxy which sits in front of a bunch of other servers. The concept of a "server" can have many meanings in Minecraft so it gets fuzzy quickly.
I'm not sure if this 1,000 person test is a record but I'm not aware of any other test running so many concurrent players on a single dedicated box with a single instance of Minecraft running. Folia takes advantage of more CPU threads so everyone is in sitting in the same server instance.
Hypixel beat out Mineplex later on, BTW.
Re: Testing a 1,000 player Minecraft server with Folia
#35I am interested in multithreading and parallelism. So I have a journal entry to explore which is about deliberately desynchronizing and resynchronizing game loops for performance.
* For the number of clients can use epoll or liburing.
* Can multiplex multiple sockets per thread my epoll-server does this.
* Can split out recv and send across threads so you can send while receiving and receive while sending
* For the game loops can divide the territory covered to a different game loop.
My question becomes how do you synchronize game loops across threads, you could latch on each thread for partial causality between game loops.
Re: Testing a 1,000 player Minecraft server with Folia
#36>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
As I understand, Folia can't help you if all your players are bunched together, but unlike having separate servers connected by Velocity or Bungee, it is a seamless experience -- everyone is in the same world and can visit anyone else without having to use commands, go through portals, or even wait for a loading screen. The "bubbles" that make up the world merge and split seamlessly, with special attention paid to av…
Re: Testing a 1,000 player Minecraft server with Folia
#37I'll just drop this factoid: Mineplex has won the Guinness World Records award on January 28, 2015 for having 34,434 concurrent players, the most on a Minecraft server at the time.
Re: Testing a 1,000 player Minecraft server with Folia
#38> During the period when 1,000 players were online, we reached a maximum of ~7.9GB/s heap allocation and our GC was hovering around 2-3GB/s when averaged over a minute.
As someone who dealt with soft-realtime telephony stuff, this makes me want to scream in horror. It seems like the platform really hurts the performance here. In an average second with that many players, most (all?) of them will not do any action apart from changing their position. (Just moving around would ideally only use preallocated per-player space only; extra in-game events, npc AI, etc. could still use some allocs) It's great Folia can get more out of the bad situation, but... oofff.
(not a criticism of Minecraft by the way, it's better to be popular and inefficient than not exist - I just didn't realise quite how much overhead there is due to the runtime)
Re: Testing a 1,000 player Minecraft server with Folia
#39I'll just drop this factoid: Mineplex has won the Guinness World Records award on January 28, 2015 for having 34,434 concurrent players, the most on a Minecraft server at the time.
This is where things start to get a little fuzzy. Mineplex had the most concurrent players but they weren't on a single individual bare metal server or single server jar instance. A lot of large "servers" like Mineplex, Hypixel, etc run a proxy which sits in front of a bunch of other servers. The concept of a "server" can have many meanings in Minecraft so it gets fuzzy quickly. I'm not sure if this 1,000 person test…
Re: Testing a 1,000 player Minecraft server with Folia
#40Is it safe to say that this isn't possible? Which flavor of minecraft server is the best documented to write mods for, Spigot?