I think the idea is the state machine makes you consider every possibility.
For example, what happens when an enemy gets shot when they are in the ‘dead’ state?
For example, what happens when an enemy gets shot when they are in the ‘dead’ state?
Thinking about 'remove default transitions' - are you talking about using a particular state machine library? My default model is writing them. It's kind of like using a feature flag library when a hashtable with features for keys and boolean values will do. OK maybe use a library if the library adds realtime control etc, but not for the basic concept of flags - likewise a state variable and a single transition function work very well for state machines.
https://mitadmissions.org/blogs/entry/designing-a-calculator...
FSM don't help with the bugs. You need analysis on top to actually make a dent in the bug count