After being unable to come up with a satisfying way to model angles, footwork and the effect of reach in a grid or hex system I settled on a continuous space for a top-down boxing sim. As far as the punching goes, it should be simple enough, attach an area to each fighter to detect the effective range of each punch, rig the arms and set up hitboxes on the animations, etc. I explain this in order to state what I already think I have figured out, unless anybody knows an easier or more intuitive way.
On the other hand, the three issues I'm having so far are
Figuring out the movement: Pretty much the whole reason I gave up on a hex or grid system. Every stance gives you a different array of offensive and defensive possibilities, as well as movement, but fighters rarely stay in the stance the whole time, their feet are constantly on the move, and emphasis is placed on which foot moves first in order to push to what direction.
What's more, some fighters deliberately change stances mid combination to cover more space or defend an attack. How can I make sure that a fighter with, say, a squared up stance, can more easily move laterally? How can I make sure that a fighter with a traditional stance (back foot pointed out, front foot pointed to the opponent) moves with his front foot first and pushes with the back when advancing, and vice versa when retreating? How can I represent the "step in" stage and its momentum to make sure that the opponent can capitalize on it with an opposite force?
Figuring out the angles and rotation: Tying in with that last point, orthodox fighters facing off against southpaws often have a foot positioning battle, setting up angles in order to land punches from places where the other can't return fire. Also, fighters getting hit with punches coming from a direction perpendicular to their stance (as if they were squared up) are more prone to getting hurt. Are there tools to model such a rotation without having fighters floating in their regular stance? Does the engine provide a convenient tool to convey enough information to the agent planner about those positions, so it can evaluate if it wants to move there? Something like an influence map.
Height in a top down space: This is more of a design question rather than an engine one because I'm kind of stumped, since boxers punch to the body as well as the head, is there a way to abstract it in a 2D, top-down representation? I'd rather not have the
headache of having to account for another dimension unless absolutely needed.
Thanks beforehand for the patience as well as any answers!