Pros/cons of different state machine designs?
I am currently working on making a fighting game, and I am thinking about all the different ways I could build a state machine for the characters. To be more specific, I'm working on a Traditional 2D fighter, which I'm trying to mix and match my favorite parts of games from the genre.
I am currently making a UML Diagram for how I want the structure of my state machine layed out, and I wanted some personal input from people who have more experience with the engine.
When it comes to a state-rich game such as fighting games, what would be your course of action? Do you prefer your states to be nodes, or just classes you instantiate within your state machine? Also how would you handle similar states such as the difference between crouching and crouch blocking, or back walk and proximity guard? (some hitboxes in fighting games have an additional box that tells the opponent to stop walking back). Or even the difference between a forward jump and a back jump, for example I don't want to allow air specials on back jumps.
I'm mainly just wanting to hear the pros and cons of different approaches, especially when it comes to state-heavy games. Node-based vs object-based, hierarchical (nesting nodes/objects) vs having specific states. Any input is welcome, I'm new to godot but have a good amount of experience in programming otherwise.