I tried to write this topic in a bug report, but I didn't post it because construct3 might have a reason to do this.
This is a simple example, so I did not attach a link to the example project.
Let's say you have two boxes of size 32x32.
One is Solid (0, 0).
The other is an 8direction (player) located at (32, 64).
Now if you move the player up, it should finally be at (32, 0).
However, the player stops at (32, 32).
This is because we believe the game engine has collided with Solid.
Since it doesn't collide visually, this can be thought of as a bug from the player's point of view.
Of course, game developers can circumvent this, but in this case it's not good for game developer UX.
I don't know the engine's internal logic, but suppose the x coordinate of Solid's last point (32, 32) is A.
Suppose the starting x coordinate of the player is B.
I now assume that the engine logic is IF (A> = B) IS COLLISION.
I think this should be IF (A> B) IS COLLISION.
Should I see this as a bug?
Or maybe there's an internal reason for optimizing OBB or polygon collision logic, so should I just use it?