EntityCulling
Hides entities and tiles(mainly chests) that players are not able to see due to blocks in the way(occlusion culling), and then blocks packets for these entities. This results in the following:
- Massive client fps improvements in big bases with tons of chests and farms due to the client not correctly culling them clientside(and therefore leaving a lot of performance on the table). Seen up to 500%+ more fps! (from 52fps->270fps at the same location without anything else changed)
- Minimap mods/Hackclients are unable to see mobs/items/chests etc through walls
- Reduces sent packets since the client gets not sent entity movement of hidden entities
- Stuff "pops in" when walking around a corner(kinda the price to pay for this being done serverside)
- You can still hear mobs/chests, even if you can't see them
Basically exchanging server cpu(async calculation)+memory(needs to keep snapshots of everything for the other thread + caching) for client fps and to some degree anti-cheat. Also, I wouldn't recommend this on a server with a ton of players, this is more geared to ur casual+ SMP server with friends or trying to keep up fps when your base becomes too much for your pc.
This will not do anything to the world(modify blocks/entities), so the worst case that could happen is getting attacked by an invisible mob due to some issue. But keep in mind: this is not 100% perfectly tested, so don't yell if an invisible creeper blew up your base or some memory leak crashed the server^^.
Requires
- Bukkit/Paper/Spigot 1.16.4/5!
- ProtocolLib
- Noteworthy: is reload save, but might leave visual artifacts till relog
Warning
This is kinda experimental/proof of concept software. It has not been tested with more than 5 people at once on a server, so I can't tell how well the performance scales(I hope it scales to at least 30 players, but I can't say for sure at the moment). So please don't just throw it on your 80 player SMP server and expect that to go well. This plugin more proves that the client does a bad job at skipping to render stuff that is not visible.
Known issues
- Item frames are visually correct after respawning, but their hitbox is at the wrong location
- Leads visually break when one of the 2 entities is culled
Credits
RoboTricker created the original server-side async raytracing occlusion culling implementation for Transport-Pipes. I took it and optimized it to a point where it's able to do multiple thousands of traces in a second over a predefined sized area(100x100x100 currently with the player in the center of it).