NovaverseMC / TileCulling

Hides tiles that players are not able to see due to blocks in the way, preventing cheaters from seeing chests behind walls.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TileCulling

Build Status

Hides 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 therefor 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 items/chests etc through walls
  • Stuff "pops in" when walking around a corner(kinda the price to pay for this being done serverside)

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

Requires

  • Paper/Spigot 1.16.5 ~ 1.18.2!
  • ProtocolLib

Known issues

  • Itemframes are visually correct after respawning, but their hitbox is at the wrong location (To be verified)

Credits

Tr7zw created EntityCulling and later on EntityCulling-Fabric, this project is heavily based on his work. EntityCulling-Fabric and TileCulling share a common core module maintained by both tr7zw and sgdc3 called OcclusionCulling, you can find it under the LogisticsCraft organization.

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

About

Hides tiles that players are not able to see due to blocks in the way, preventing cheaters from seeing chests behind walls.

License:MIT License


Languages

Language:Java 100.0%