Original Post
I am making a 2D game and have been using the Separating Axis Theorem for simple AABB. When there is a collision, it uses the "move the objects out of penetration using the shortest vector possible" algorithm. However, if a character is falling and hits a platform, it should never determine that the shortest vector to translate the object out of collision is horizontal, though, right? Also, I do not know how to handle the case of multiple collisions. The way I have it now, if there are multiple collisions, it will only correctly handle the first. The first, however, might cause there to be another collision with another object. Let's say I am walking right and there is a "bump" in the road. When my character hits the bump, he slides right through it. At the point of contact, my collision detection detects that he will fall through the ground, so it stops that, and then the loop continues. Even if I allow for all of the collisions to be "resolved", I don't know how to tell if the resolution of that collision will cause another collision or not. Hopefully that makes sense :)