To be fair I’m being a dickhead.
I’m sure Minecraft’s slowness has more to do with how it was built/tech debt and such than Java itself, as the mods that massively boost performance show.
You know why villagers cause so much lag if there’s too many and they’re allowed to roam free? Well, rather than optimise their pathfinding logic they just… recalculate their paths every goddamn frame. They also take shortcuts in calculating their paths to reduce this overhead, so their movement is derpy and frequently kills them.
You could make the path then record all the blocks they will interact with, and only recalculate if one of those blocks changes. Boom, millions of operations eliminated, and you’ve got some spare time to make sure the paths will actually work. You could also stagger pathfinding so if a bunch of villagers need a path all at once - like you just blocked a path to where they were all going - you could spread out that load, and prevent lag spikes.
But they don’t do that, so people end up sticking them in tiny boxes on top of carpets so they stop trying to pathfind. Just absurd stuff.
Real talk what’s wrong with Java? It’s runtime is rock solid at this point and it’s a very mature lang with a great ecosystem.
To be fair I’m being a dickhead.
I’m sure Minecraft’s slowness has more to do with how it was built/tech debt and such than Java itself, as the mods that massively boost performance show.
You know why villagers cause so much lag if there’s too many and they’re allowed to roam free? Well, rather than optimise their pathfinding logic they just… recalculate their paths every goddamn frame. They also take shortcuts in calculating their paths to reduce this overhead, so their movement is derpy and frequently kills them.
You could make the path then record all the blocks they will interact with, and only recalculate if one of those blocks changes. Boom, millions of operations eliminated, and you’ve got some spare time to make sure the paths will actually work. You could also stagger pathfinding so if a bunch of villagers need a path all at once - like you just blocked a path to where they were all going - you could spread out that load, and prevent lag spikes.
But they don’t do that, so people end up sticking them in tiny boxes on top of carpets so they stop trying to pathfind. Just absurd stuff.
Fair.