I know they're resolved in the same framestep, I was talking about being withheld in the code. The whole "withholding for later" seems like it can be compacted to a single block of code for collision, it would be less messy. But like I said, whatever works. I'm guilty of using the easy way out, ages ago, and even now.
Absolutely, I understand what you're saying. Intuitively it seems simpler and more efficient not to defer collisions, but consider the following example: In a single framestep, object a is on a path of travel that will cause it to collide with both object b and object c. Colliding with either b or c will alter a's path such that it doesn't collide with the other one. In this case, the result changes depending on the order in which you process collisions.
To do the correct thing in an order-independent way, you need to determine which collision happens earlier within the framestep and process it first. Since processing that collision alters the line of travel of one or more objects, any collisions you've found that occur later in the framestep are now invalid. You might as well have discarded them, since you now have to redo all of your intersection tests for the rest of the framestep based on the changes to the simulation caused by the first collision.
ThemsAllTook, how does your collision detection/resolution method compares with the traditional "smallest axis" method in terms of performance?
Not sure which one you mean, are you talking about the Separating Axis Theorem?
I haven't had a chance to profile the entire system with a large number of objects yet, but performance will most heavily depend on how you do your space partitioning. If you know a given object can safely ignore a large portion of the simulation, you save yourself a lot of time. The core technique of processing one collision at a time and subdividing the timeslice is unlikely to have a negative effect on performance in practice, unless your simulation has a large number of very fast-moving objects colliding with each other in a single framestep.
The tutorial is halfway finished. I'll be working hard tonight to try and get it done.