A naive collision system in 3D RPGs can lead to mobs getting stuck on geometry that they would realistically step over and can be a major nuisance to many players. For most games, the solution is fairly simple: disable collisions on small objects since they don't matter from a gameplay perspective.
This works, but on the assumption that the mobs are all roughly the same size. Introducing more "size categories" from gnome to dragon would require carefully managing collision lists and would likely break on weird corner-cases. The same holds true for nav meshes in 3D games that are mechanically 2D.
Therefore, I'm curious about how one can make an adaptive system to handle collisions automatically.
Constraints & Considerations:
- We can assume all the relevant geometry is static, allowing the use of acceleration structures.
- Small object colliders assembled into larger structures should collide as a large structure.
- The solution should be performant enough to use on a large number of mobs, not just hero characters.
- The goal is specifically to allow passage depending on mob scale. A solution that results in mobs moving on top of objects instead of passing through them is acceptable, if less desirable.
- Short obstacles may not be self-contained objects, but part of a larger mesh.
- The method should work in fully-3D games. "Draping" a navmesh would break for situations involving ledges and interiors.