Behavior Trees for Next-Gen Game AI
(Video, Part 3)

Here’s the 3rd and final of my lecture at the GDC in Lyon a few weeks ago. Be sure to view the overview of behavior trees in part 1, as well as the following discussion of goal architectures and planning in part 2. This video is exactly 15:03 minutes long, and is worth roughly 5.5 Mb of bandwidth!




In the video, I discuss how to use parallel tasks which handle logical forks and joins to create concurrent subtrees. Then I show how you can use read-only concurrency to monitor the assumptions of a tree which can help it bail out if something goes wrong. Also, I explain how decorators can be used as resource allocators to help synchronize independent trees that were edited modularly. Finally, I sum up the whole talk and give you some ideas for expansion.

2 Comments ↓

#1 Gabriele Farina on 12.21.07 at 3:28 am

Great lesson! I really appreciate the way you discussed this really interesting argument.
Is there any library out there that implements Behaviour Trees as you suggested ?
How do you suggest to handle concurrency if you are working in an environment which is not multithread ?

#2 alexjc on 12.21.07 at 11:00 am

Gabriele,

There’s not much out there in terms of behavior tree library. I’m currently working on Game::AI++ but it does more than the simple implementation mentioned here, so it’s not as easy to work with…

The ideas I present in the talk are not designed for multi-threaded environments. As I mentioned, it’s all in a single hardware thread only using logical concurrency in a Windows 3.1 cooperative scheduling way.

Alex

Leave a Comment

Game AI Character