Live data from Hacker News

Testing a 1,000 player Minecraft server with Folia

cubxity.dev

101–110 of 166 posts

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

#101

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.

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

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

#102

I know this isn't the point of Folia's test, but: > 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 player…

Do you think a minecraft server (and multiplayer game servers in general) can benefit for running on a soft-realtime OS like Linux with the PREEMPT_RT patch?

Games often use their tick rate (iterations of the event loop per second) as a quality metric, and an rt OS should favor preemption and low scheduling latency over throughput... so maybe that should give a more fluid experience?

But the bottleneck for minecraft seems to be in memory allocations, so an OS that can schedule threads rapidly may not change much after all.

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

#103

Earlier quoted context omitted.

There are three competing standards right now: - Fabric (and Quilt), which uses a mixins system, a really flexible modding API that can do client and server modification - Paper (and Purpur, Pufferfish, Folia), which is similar to the old-school Bukkit/Spigot ecosystem and supports an intuitive API for server-side plugins. If you're aiming for >30 concurrent players you really need the sorts of performance patching t…

I want to use Minecraft as a sort of platform for teaching my kid how to code. Which one is the least headache?

I would say out of those, Paper, mainly due to lack of crazy toolchain complexity or unusual concepts like mixins -- while still being quite capable at more advanced things, including an 'escape hatch' to access raw Minecraft objects in the rare cases where that's needed. It's a very intuitive API. I'd say it's a great introduction to Java.

But other things you should also be looking into:

Skript provides an interesting easy-to-use DSL language for Paper/Spigot servers - https://github.com/SkriptLang/Skript

Scarpet provides an interesting easy-to-use DSL language for Fabric servers - https://github.com/gnembon/fabric-carpet/blob/master/docs/sc...

Opencomputers and Computercraft are mods that adds computers to Minecraft, running Lua. OpenGlasses2 lets you code your own augmented reality glasses in Minecraft, because why not? https://www.curseforge.com/minecraft/mc-mods/opencomputers https://tweaked.cc/

Pneumaticcraft, Psi, and ProjectRed are three other very logic-heavy Minecraft mods

Minecraft Pi Edition was an ARM-only release of Minecraft Pocket Edition that is scriptable using TCP sockets, with APIs for various programming languages. Unfortunately, it was dead by the time it was finished, as it never got any updates after the initial release, doesn't have ARM64 support, and is a very limited version of the game https://www.minecraft.net/en-us/edition/pi

Minecraft Education edition has a Scratch-like programming system, but it's only available to teachers and is another thing they sorta dropped the ball on https://education.minecraft.net/en-us/resources/computer-sci...

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

#104

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.

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.

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

#105
post #41

Earlier quoted context omitted.

Ultima Online, Star Wars Galaxies, and Planetside

Ultima Online is sharded. Biggest shard is ATL, with maybe 150 players.[1] Planetside 2 got up to 2000 or so, and may hold the record for a seamless land world MMO. [1] https://www.reddit.com/r/ultimaonline/comments/tr1r6j/uo_atl...

[deleted]

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

#106

I know nothing about Minecraft servers, but has anyone tried to build one in Elixir/Erlang? Sounds like 1000 players should be a piece of cake.

I think the devil is in the details there - getting the terrain generation right, handling of things like redstone, and replicating the various glitches+bugs that people tend to use. Otherwise you've made a Minecraft-alike, not Minecraft.

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

#107

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.

The hardcore technical folks seem to prefer things that don't alter the vanilla mechanics quite as much as Paper, it's true. But FWIW there are lots of farm and redstone designs that work reliably on Paper.

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

#108

Earlier quoted context omitted.

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

The hardcore technical folks seem to prefer things that don't alter the vanilla mechanics quite as much as Paper, it's true. But FWIW there are lots of farm and redstone designs that work reliably on Paper.

> But FWIW there are lots of farm and redstone designs that work reliably on Paper.

Ah, good to know - been a long while since I last tried Paper.

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

#109

I know this isn't the point of Folia's test, but: > 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 player…

Well, Java isn't really used for perf critical workloads to be fair.
Post reply on HN