I'm working on a relatively generic 2D AABB collision detection system for a game engine, and I've re-written it more times than I'd like to admit due to not calculating/recording specific details of each collision. Right now this is what I'm collecting:
- Collsion Time (the fraction of an update cycle in the game loop)
- Location of the collision
- ID of the colliding object
Each object has a Set that holds this data for each collision (I'm working with a Component/Entity System) so other Systems can use the data recorded. The problem I just ran into was I needed to know which side of the object the collision takes place on.
Now, my question isn't how to determine this, but rather what other values/points of interest should I calculate/record per collision? Or, what do you look for in a standard collision detection system?