integration tests: Simultaneous collisions do not occur in a consistent order #17
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Meshes created in the way as seen in
fn test_scene()fromtest_scenes.rsdo not collide in a consistent order when hit simultaneously. This is especially noticeable in a 3-way collision where one part is a floor, as this means the test may or may not fail due to a bnum div-by-zero crash related to ground contactIt's hard to know if this is also the case outside of the test_scenes setup, or if it's just the way this specific piece of code does it that leads to the inconsistent behaviour, as I've not yet tried to pin down what exactly is the inconsistent part of this process internally
Repro code can be found in the commit df1b224 at https://git.itzana.me/aidan9382/strafe-project/src/branch/simul-collision-3way
There is a proposed fix at https://git.itzana.me/aidan9382/strafe-project/src/branch/consistent-collision-order (I can't PR it due to gitea 500ing on me)
This implementation will prioritise all contacts over intersects, and if they're the same type, collisions are prioritised by model id