u/KyrosEnder

▲ 24 r/godot

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.

reddit.com
u/KyrosEnder — 3 days ago

Elphelt mains plugging after the exact same rekka mix twice in a row.

It's like they don't know you can press a different order of buttons. You remember the only combination of buttons they know and as soon as you block their double mix, they disappear from the face of your match.

u/KyrosEnder — 6 days ago

I absolutely despise getting 2D when trying to do a throw/throw tech. I know the throw input isn't p+k because Dust is a button that they just want to throw shit on to make it seem like a justified button, but it really does feel like this input is specifically made for the only purpose of being tedious and annoying.

I should be able to throw tech while holding downback. Everytime I've seen someone mention this, the excuse is "Oh well they want the throw input to be vulnerable to lows," which makes sense until you decide to have an actual functioning brain.

You can just do a throw the same frame as you swap from downback to back, and it is functionally the exact same thing as if you could throw while holding downback. The only real difference it makes is the tediousity required to do the input. It's not even like I think 1D should be a throw input, cause theres like maybe 1 character who needs to specifically charge downback after 2D, and thats a stretch, most of the charge characters probably don't have a usage for both of their charge moves after 2D, but on the offchance that someone does, whatever, I get it.

I just wished they had put the throw input as something else. Delay tech is the strike/throw defensive option select with the most leniency in its timing compared to other fuzzies, since the option select works after a throw has connected, while the rest of the option selects cannot take advantage of that window. I have been and will continue to work on my fuzzy block timing, but getting 2D during the times where I decide to delay tech instead is so annoying.

Honestly this rant is part of a larger problem I have with the Dust button existing in general, as a completely useless button because it's a fighting game developer brain bug to think that standing overheads are a system mechanic and every character needs one, no matter how useless/good it is, and they also needed a button for sweep because of course they couldn't make a command normal that is 3K because that would make Guilty Gear players minds break. You guys aren't ready for the Dust conversation yet tho so just ignore that.

reddit.com
u/KyrosEnder — 7 days ago