I posted this over on answerHub, just reposting here to increase potential reach
Link to AnswerHub
State machines become very ugly to look at and difficult to manage once they reach a certain level of complexity. A major contributing factor is having a state, such as “AirIdle” that a lot of other states will need to go into. creating a myriad of connections that overlap etc.
My suggestion is to implement a proxy/pointer state that can be linked to any other state and transitioned into as if it were that state, i.e “AirIdleProxy” would be visually separate to the “AirIdle” state, however connecting a transition rule to it, or perhaps from it as well, would be functionally the same as connecting it to the “AirIdle” state.
I can even envision having a list of states that aren’t connected to anything, then using proxies to create visually separate but functionally integrated sequences.
Here is a quick mockup that I did to demonstrate the concept
I think this will significantly reduce the visual clutter in state machines and allow them to be the simple, visually flowing tool that they are meant to be.