Behavior trees are increasingly used to allow large software teams to collaborate
on complex agent behaviors, but there are a few key choices in their implementation
which can either make them much harder to architect than they need to be - or much
more flexible, easy to extend, and easy to reuse. Anthony Francis got his start in
AI implementing task architectures much like behavior trees, execpt before they
were cool, and in this article he describes some of the tricks needed to apply
behavior trees to robotic systems, including a few C++ template tricks that made
the system much more extensible.