Want to discuss something that isn't related to 0 A.D. or Wildfire Games? This is the place. Come on in and introduce yourself. Get to know others who are using 0 A.D.
Here is where you can get help with your questions. Also be sure to tell us how we are doing. What can we improve? What do you wish we could do better? Your opinion matters to us!
This is the place to post general stuff concerning the game. Want to express your love for hoplites or find people to play the game with? Want to share your stories about matches you have played or discuss historical connections to the game? These and any other topics which are related to the game, but don't have their own forums belong in this forum.
Discuss the game play of 0 A.D. Want to know why the game plays the way it does or offer suggestions for how to improve the game play experience? Then this is the forum.
Do you have any questions about modifying the game? What will you need to do what you want to? What are the best techniques? Discuss Modifications, Map Making, AI scripting and Random Map Scripting here.
Forums for decision-making on issues where a consensus can't be reached or isn't sufficient. The committees are chosen from among the official team members, but to ensure an open and transparent decision process it's publically viewable.
We don't decompose the collision vector. We calculate the resulting impulse from the contact normal, and the spin actually comes from calculating the torque given the impact position to the center.
Since the shape is (almost) a rectangle, then it's just about calculating the lever effect on a axis - the contact point projected on it.
Velocities are also calculated based on this closest point.
I think to apply your idea it would be to add a scaling to the lever effect? But I'm not sure it's always desirable, for example on the choke point wouldn't that create more units facing the wrong direction of movement?
@Atrik maybe you consider something already, I haven't delved deep enough into the code. In collisions, you would have radial and perpendicular components, the last one making the body rotate. Is that last one also scaled by relative velocity? I thought only the first one. But even if both are, their scaling could be treated differently, and what I'm saying is that if the perpendicular component were to depend even more strongly on relative velocity, it would rotate static objects blocking the way more easily, while (hopefully) not affecting those marching shoulder to shoulder, which are the problems mentioned. I'm not sure how it would behave if objects collided head on (high relative velocity), but the dependency could be defined in a way that the resulting behaviour is also what is wanted.