I'm very proud of myself right now.
This sprint started off well but got very rocky pretty quickly.
I set off to correct by collision handling so the rocks weren't just reversing direction when they collided.
Turns out that the gravity wasn't working anywhere nearly as well as I'd hoped. Some problem with my implementation made managing collisions impossible.
So once again I found myself working on the gravity forces instead of moving on with the project.
Anyway, I've revamped my gravitations, it now less resembles real gravitational forces and more resembles a very simple pursuit model. Basically all of the objects encourage the other objects to chase them at speeds calculated by their mass.
Once that was completed the collision work went relatively smoothly. I say relatively because at the level where the collision responses are being handled I only had access to one of the objects velocity, which made working out the forces pretty challenging. But what I did have was both their masses and positions. So my algorithm assumes that all colliders are moving at least a little bit, it then works out the trajectories of the collision from both object positions and combines, multiplies that by the collidee's mass and applies the result to the collider's speed with a 40% reduction to make it feel a little more real, and controlled.
It's still not perfect but it's much better than it was, I'm hoping that as I get more practice with my vector math I'll be able to more finely tune it.
What I would do differently?
Don't worry so much about getting stuck. Even if you find yourself redoing work, of course it's not ideal, but it's still a step toward completion.
What did I learn?
Smaller bites certainly works. I pretty much chose a single thing and went for it. Now here I am having completed what I wanted to right on schedule.
No comments:
Post a Comment