[0.18.5.0] Minigolf SDK: Collision issues on seams between two minigolf pieces

When testing/playing a created minigolf map, moving the golf ball over the seam of two connected minigolf course pieces at a high speed may cause a collision as if the ball bumped an invisible piece of geometry. The faulty collision will occasionally either send the ball bouncing upwards or, in some rare occasions, bounce the ball back as if it had hit a wall on the seam.

Steps to Reproduce

Place two straight pieces together and place a minigolf starting pad on one side. “Fish” for the correct spot on the geometry seam that causes the issue by repeatedly hitting the ball at full power across the seam at random angles until the glitch occurs.


What I expected to happen

The ball should glide smoothly across the seam of the two connected pieces as if it was one continuous piece.

What happened

The ball occasionally was bounced upwards into the air or bounced back as if hitting a wall.


Media

Link to a video showing off the bug
The first putt in the video shows the ball bouncing upwards while the last putt shows the ball being bounced back.

Notes

*The bug seems to occur on any supposedly aligned seam: I have witnessed the same bug on ramps, half pipes, straight pieces, corners and loops. All pieces were sitting perfectly on the grid with no issues in location or rotation.


*The bug is not entirely random but location specific on the geometry as the same full power shot at the same angle can repeatedly yield the same result.

*The bug only happens if the ball is moving above a certain speed. Full power shots can cause the bug along with boost volumes but I have yet to witness a bounce back at lower speeds.

*I cannot entirely confirm this as I have not found a reliable setup to recreate, but the spots on the seam that cause the bug seem to be evenly spaced across the seam.

*There’s a high likelihood that this bug is the same issue as this bug report

2 Likes

A potential workaround exists on courses where you are only going across pieces in one direction. You can lower each piece’s position on the z axis by 0.1 units relative to the piece behind it. So a one way course’s starting piece could be z150, and the next piece would be z149.9, then z149.8, etc.

However this fix obviously wont work in cases where the course has you going back across the same pieces in the opposite direction as well.

Can confirm I also ran into this bug, even with a correct grid snap value of 25. It seems like the tileable pieces might have some very small gap remaining once snapped into place, which you can see if you move your camera very close to the seam. It may also be more visible with anti-aliasing disabled, as I was immediately able to tell things weren’t quite aligned correctly when testing with a friend earlier, due to an incredibly small brown line being visible on the seam between two pieces.

It’s purely speculation, but maybe there’s some floating point inaccuracy causing the pieces to not be truly aligned. Or perhaps the issue lies with the pieces themselves not being exactly true with the 25x25 grid. It does appear that this issue is the same as the one linked above, however I can confirm that there are gaps between pieces even when using only flat ones, like in the demo video you shared.

2 Likes

The tile pieces themselves have no gaps or seams. The issue is a floating point precision issue with rotation and our gizmos.

3 Likes

I appreciate you looking into this! You’re the best!

3 Likes