Have you ever heard of a finite state machine (FSM)? It’s a term that gets thrown around when folks discuss mathematical models, digital circuits, or computer science. You’ll also see it occasionally in data networking (EIGRP uses the DUAL FSM to determine favorable routes.)
You might be wondering, “What is an FSM?” More likely, you may wonder, “Why is he telling us this?”
Perhaps it’s an oversimplification, but an FSM is basically a logical device used to compute results based on a set of conditions. They can be used to program computers to sort through a diverse array of data and arrive at pertinent conclusions or predictions. They’re called finite state machines because any given FSM can accept only the preset conditions it’s designed to consider, and those preset conditions can only be subjected to a limited number of state transitions.
I’m talking about it because people sometimes ask me questions like, “How do you come up with your plots? How do you keep character behavior consistent? How do you decide what the characters will do next? How do you keep it all straight?”
I like to tell them, “I use an infinite state machine.” Then I laugh when they look at me like I’m nuts. Despite all of the cool things I’ve done (the Rangers, bouncing, etc) I am – and I always have been – a total geek at heart. If someone wants to understand how I write, they need to understand the concept of FSMs, because I don’t believe that I decide what the characters do next. I don’t have to make an effort to keep their behavior consistent. I don’t decide what happens next. The infinite state machine does all of the work.