Collision handling turned out to be harder than expected… To get it working quickly, I relied on a bounding sphere for every models. The spheres are centered on the isobarycenter of the model and have for radius the distance of this point to the farthest vertex of the model. This is far from the perfect fit possible for a given model, but was faster to code. The way it works is that game objects register themselves during their update pass to the collision handler. Afterwards, the collision handler solves collision of the registered assets.

Game objects colliding
Collisions calculated in 3D with 2D movements, after a while models drifted on the Y axis...
Time spent for this | Time spent so far |
---|---|
8 h | 41 h |
Adding collision handling was nice, but the bounding sphere fit is very poor for most models, I will need to improve that later. Also, our objects only have current data for position, nothing about current speed or acceleration. This makes the collision resolution quite janky as seen in the illustration below:

Correcting position after collision using only position info
Not a very good way to do it... but quickest to implement!