Live data from Hacker News

Testing a 1,000 player Minecraft server with Folia

cubxity.dev

111–120 of 166 posts

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

#112
post #104

Earlier quoted context omitted.

But each has to do a lot of stuff. People on such big servers build farms with hundreds of mobs dropping thousands of items which then go through redstone sorting systems.

The kind of mental gymnastics that people do here to justify needing 8 GB of RAM with a turnover of 3 GB per ~minute~ second to handle 1000 users.

Per second.

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

#113

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 o…

Well...I searched for ZGC on Folia but I found 0 open and closed issues. Maybe someone discussed about this on Discord?

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

#114

Earlier quoted context omitted.

But each has to do a lot of stuff. People on such big servers build farms with hundreds of mobs dropping thousands of items which then go through redstone sorting systems.

> People on such big servers build farms ~Normally, yeah, but Folia is based on Paper which, AFAIK, is known for its unreliability when it comes to the technical aspects of Minecraft (ie redstone and farms.) Even your bog-standard simple item sorter is apparently a bit hit-or-miss on Paper.~ Edit: Possibly outdated info, things sound better re: technical Minecraft support on Paper now according to 'ocelotpotpie.

Its fine for most stuff the average player does. I wouldnt run a redstone computer on it but I personally never had an issue with my farms.

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

#115

Earlier quoted context omitted.

> Each player loads in a lot of living entities (monsters/animals/...) and block entities (furnaces, redstone, ...) that all need to update. Sure, but that list of entities in the area is close to static (apart from crazy redstone magic). One would expect them to be pooled and not have many allocations for each tick.

But each has to do a lot of stuff. People on such big servers build farms with hundreds of mobs dropping thousands of items which then go through redstone sorting systems.

I wouldn't say "each has to do a lot". There's a few trivial behaviours usually. Especially if you know what behaviours are common, you can optimise entity lists for that.

But that's not even what we're talking about here. This was a short-lived test server with new environment, not huge farms. The super high GC stats we see here are the baseline behaviour. More complex scenarios will push this even more.

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

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

I think EVE wins in this regard. But the sector ends up getting super degraded and going into time dilation to make it happen.

largest multiplayer video game PvP battle (8,825 players) most concurrent participants in a multiplayer video game PvP battle (6,557 participants)

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

#117
post #14

Earlier quoted context omitted.

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?

EVE had some 2020 Guinness records. I'm sure it was time dilated to all hell but I doubt anyone else has come close to this.

largest multiplayer video game PvP battle (8,825 players) most concurrent participants in a multiplayer video game PvP battle (6,557 participants)

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

#118

Earlier quoted context omitted.

> Always fun to continue to see innovation within the Minecraft Java space. Just don't expect that innovation to come out of Mojang/Minecraft

Let's all remember that Notch didn't want any multiplayer and purposefully did everything he could to make it painful. Minecraft would be dead without the community devs and artists.

That can't be true, minecraft already had multiplayer in 2009. He didn't make it intentionally painful and never said anything like that. I remember there being huge issues with multiplayer but that was mostly because of bad architecture, not intentional.

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

#119

Cool stuff. The possibilities of Minecraft if some optimisation work was done would be amazing. It's demotivating just how rotten the internals of Minecraft are. Bedrock edition has really nice performance but nobody wants to play it.

Plenty play bedrock.

It's just.... a very sanitized and corporate experience. And for Java edition players just different enough in mechanics / ux / feel to annoy them.

Very much pushes you to stick to official servers or small friend groups, and is quite aggressive on its monetization.

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

#120
post #77

Earlier quoted context omitted.

Pooling would have been more overhead than allocation + deallocation? Do you have any relevant readings? No idea how to do it in java but a few pointers ought to be enough. You can also omit clearing the memory area between allocations for things that aren't security sensitive, if that is done in java, which I would assume.

Allocation + deallocation might have more overhead together. I'll try to rephrase: Requesting an object from a pool might have more overhead than allocating a fresh object, and deallocating the object doesn't happen on an application thread but on a GC thread (depending on the GC, obviously). Alexksey Shipilev has good resources how GCs in HotSpot typically allocate objects ( https://shipilev.net/jvm/anatomy-quarks/4…

I got that, and thanks for the link. But I'm not convinced a pool would have more overhead. It is basically the same thing (not really, but then again, pretty much) just you can encode more information about the usage than a general GC can possible do.

For sure there are other tradeoffs, and whether it is worth it. But when we actually see many GB/s that is not cheap even if you are able to offload to other cores.

The article also concludes:

>It is funny to consider that having TLABs is the way to experience more frequent GC pauses, just because the allocation is so damn cheap!

Sounds like a nightmare, the problem just snowballs, because now you'll be tempted to get into GC tuning.

Post reply on HN