I'm trying to teach myself how to use the behavior tree design pattern. I think I understand most of it, but am not clear if the tree is supposed to save the current state or not.
In the below tree, how does the sequence node know that Task 1 has finished and move in to Task 2? Does Task 1 remember it has finished and return true every subsequent time it gets the evaluation tick? Does the sequence node keep track of which states have already been done and just start at Task 2 after Task 1 returns true for the first time?
I've read some docs that have the sequence node keeping track of a current index (the last child to evaluate true) and starting evaluation from that point, and others that start at the beginning of the child list each time. Which is the right way to implement this?
