Small dev-log-ish :
- Still working on AI. I'm trying to re-create what i've done some decades ago. Using tilemaps and collision shapes helps a lot. I have to build movement segments based on normals. It identifies were an entity can walk/wall grab/wall jump/hang on. Hopefully, in my game, there's only walk for the moment. Other movement might appears as passive special abilities of some characters
- Once you've some the movement segments, you place navigation node accordingly. Each node has a purpose (walk-to, jump-to, etc.). Finally, there's some dark magic to take into account dynamic environement (moving platform, closing doors, for example).
- Then, the fun begins : fuzzy-pathfinding using the graph. BUT, it's only for common purpose to travel from A to B. It doesn't take into account dog-fighting.
- Dog-fighting is the fast-pacing movement chain when you encounter your opponent. It is restricted to empty sub-areas (in godot, Area2D), the AI movement computation is more realtime (in opposition to planned when using the navigation graph). But at some point, either the fight concludes to a death, else, it transitions to fleeing/following using the classic pathfinding. More fun ? 3-way/4-way dogfighting.
- Dynamic environment (moving platforms). It can be painful in numerous way : First, you have to use a flexible navigation supervisor allowing graph local reconstruction in case of obstruction. The movement segment may or may not change (collapsing platform). But, it can be managed as another kind of movement. But the key for dynamic environment is "waiting". Your entity computes the fact that it has to wait for a navigation node to be accessible.
- Other 'fun stuff' : additional gameplay (aka. arena puzzle). I plan to had puzzle and traps in th arenas. It's additionnal gameplays that are to be taken into account. Else, the "human" players will have a big advantage over the bots.
Can't wait to see an 'all-bot' brawling session :scream:
But it will definitly take me more than one week :)