Background: I’m using NodeCanvas for a simulation project. I’m a new NC user, with some Unity Experience.
My goal is to create a simulation that shows aircraft boarding, taxiing, taking off, and also landing and de-boarding, with many aircraft operating at once. The simulation will be used as a tool to explore ideal operational metrics.
Question: Would it be better to use Behavior Trees or Finite State Machines for this kind of project? I generally understand the difference between them but am not sure which is a better fit for my application. Advice much appreciated!
Thanks for the link @dave. I really hope it helps the OP!
The word “simulation” by itself, urge me to say that Behaviour Trees in general would be a good fit, but that certainly does not mean Behaviour Trees only. What I mean by that, is that a BT, due to being more dynamic than an FSM, can be used for the “algorithmic” simulation of the aircraft for example, but most than probably, that simulation can also be separated into different states, like for example per your post, “Boarding”, “Taking Off” etc.
As such, I think that those “states” are best to be modeled by the use of a root FSM, where each of those states is a Nested/Sub Behaviour Tree, modeling what is happening within every state more specifically.
Thus, I think that the combination of an FSM as a root (for each aircraft), where each state (of that aircraft) is a Sub Behaviour Tree can be a very good fit here! This is also pretty much the workflow I usually suggest and I indeed did so in that post @dave linked 🙂
If you need any more clarifications or further help, please don’t hesitate to ask.
Thanks!