Custom Culling System

Hello, I’d appreciate some feedback on a custom culling system I created, and will probably open-source if enough people deem it useful.

information

  • Uses tags, which in itself, is a plus (for me at least), compared to CullingService which uses Parts as “AnchorPoints”, which means you can’t have your map in studio, only the placeholder AnchorPoints.

  • Only takes the HumanoidRootPart’s position into consideration. (decided against camera rotation / position due to my specific use case).

  • Neighbor cluster style approach, indexes the adjacent neighboring clusters instead of iterating through each cluster or god forbid, each instance.

  • High, medium, and low, culling settings for each instance.

  • Customizable for the use of BOTH :Destroy() and parent removing for each instance. (Perfect because stationary instances could be destroyed and cloned, while things such as Humanoid models could use the latter)

Here’s the video, somewhat of a stress test for my junk ass computer.


(if it appears to be laggy, it’s the video, not studio).

This was specifically created for client sided cases such as determining, whether to animate NPCs, visualize VFX, visualize “constant” effects (wind shaking trees, grass, bones, etc) , and provide customization for players in-game on how their game behaves and looks.

Cool, already hard-coded into roblox as well as streaming enabled but nice.

I’m aware Roblox obviously has a built-in culling system, as well as StreamingEnabled. I stated this was created for managing client side cases such as VFX, “constant” vfx, and especially NPCs.

I suppose a better question would be, is culling humanoid models client side (for purposes such as animations, weapon holstering, etc) worth it? Or would the culling calculation be more expensive?