DaemonEngine / Daemon

The Dæmon game engine. With some bits of ioq3 and XreaL.
https://unvanquished.net
BSD 3-Clause "New" or "Revised" License
298 stars 61 forks source link

Passing through seemingly solid patches #1307

Open sweet235 opened 3 days ago

sweet235 commented 3 days ago

This bug has been known for some time. Recently, we found a way to reproduce it on an open source map: https://github.com/Masmblr/map-staratcs_src

A dretch can pass through this wall, where this screenshot is aiming at:

unvanquished_2024-09-16_080638_000

I inspected the map source and found noting suspicious. The map was built from commit 4e1501a.

This particular instance was discovered because a bot fell down to the bottom of the surrounding box, and the game would not end without admin intervention.

slipher commented 2 days ago

The collision geometry of the offending patch surface can be visualized by setting /surfSC 437 on my branch:

unvanquished_2024-09-16_191552_000

I thought decreasing SUBDIVIDE_DISTANCE, which is supposed to produce more precise collision geometry, could be a quick fix. But after changing it to 16 to 4 the same hole was still there. Maybe there is a bug in the algorithm where it is wrongly pruning points.

I also saw such a bug on map Watah, in the tube leading out of the antigravity zone. Maybe #950 is also about the same thing, but it's so poorly reported, it's hard to tell.