Do you want to know more? The powerful game AI technique behavior trees is well known and respected in the industry, but so far has received little attention in academia. This project aims at alleviating some of these problems by providing a formalization of behavior trees, along with proposing measurements of behavior tree appropriateness. To achieve this goal, a large collection of supporting support has been created, and this has been explained in some depth as well, including a revised and extended version of the SMARTS behavior tree system.

The report found below contains a thorough explanation of the project, but the various products of the Perceived Challenge project are:

SMARTS Designer
The tool used to create behavior trees in a visual manner.
SMARTS Library
The core of the behavior tree system, and that which allows for calculations to be made on and decisions made by the behavior trees created using SMARTS Designer. The version found here is the revised edition, which contains a new scheduler-based execution system, and a newly developed general perception system.
Gluon plugins
The completion of a set of plugins for the Gluon game development system which was begun in the previous project, so that the SMARTS framework can be used from the game engine with as little effort as possible.
The Quantum Sea
A game based around the concept of particle collision events, in which the player's character can be controlled by behavior trees. This ability was used for testing out the methods for behavior tree evaluation.
Perceived Challenge
The report which extensively documents both the process and the data which came from the investigations into measuring and working with behavior trees.

Screenshots


In Gluon Creator, editing The Quantum Sea

In SMARTS Designer, editing a behavior tree

In The Quantum Sea, just after a collision

Downloads

Go »

SMARTS source code (1.7MB)

This is the package containing the SMARTS system, both the library and the designer. It contains the source code for the project, and is in fact a git clone of the repository on the 3rd of June, 2010.

Requirements:
Go »

Gluon plugins for SMARTS (214KB)

The SMARTS components and assets for Gluon in the version used in the tests. This contains two branches: master which contains the game as it is developed, and the hackhack branch which contains the code used for the tests. The hackhack branch is currently checked out, switch to master by checking it out.

While this ominous sounding name might indicate horrors are to be found, it is simply the case that code not directly relevant to performing tests has been removed from the game, and as such it is decidedly less interesting to look at and listen to, but faster to load, which of course is important when tests are being condicted at the speed we were.

Requirements:
Go »

Gluon snapshot (26MB)

An archive of the version of Gluon which was used for the actual tests. This version is also available from the project site on gitorious, but we believe it is advantageous to simply have a version stored here as well.

Go »

The Quantum Sea (13MB)

This package contains not only The Quantum Sea, but also the git resository. This contains two branches: master which contains the game as it is developed, and the hackhack branch which contains the code used for the tests. The hackhack branch is currently checked out, switch to master by checking it out.

While this ominous sounding name might indicate horrors are to be found, it is simply the case that code not directly relevant to performing tests has been removed from the game, and as such it is decidedly less interesting to look at and listen to, but faster to load, which of course is important when tests are being condicted at the speed we were.

Requirements:
Go »

The Quantum Sea, with test data (16MB)

This version of The Quantum Sea has, unlike the above version, not been stripped of test data. The reason this is not the top level item is that the 16 megabytes of this package thanks to the xml-contained test data expand into 727 (yes, seven hundred and twenty seven) rather than the 24 that The Quantum Sea itself takes up, which may be an unpleasant surprise to some.

Go »

Project Report (21MB)

Documenting the process of arriving at the measurements for behavior tree appropriateness, as well as the decisions made during the thorough revision of SMARTS and the test conducted using The Quantum Sea, the project report is an thorough explanation of the process of the work performed during the four month period.

Go »

Test tool (145KB)

The various small tools used to perform the calculations as found in the report.


External Data

Go »

Visit the Project Site

The Gluon SMARTS project is hosted on gitorious, which is a free open source project hosting system based around the distributed versioning system Git. The project contains three repositories: The gluon-bt repository (SMARTS itself, both editor and library), the btcomponents repository (containing the Gluon plugins) and thequantumsea (which as the name indicates contains The Quantum Sea).

Go »

Visit the Gluon Site

The Gluon game creation and distribution system was used as a central part of the Perceived Challenge project, as it was through this the various pieces of test systems were impemented. Through Perceived Challenge, all three members have become involved with development of Gluon at one level or another.

Go »

Visit AiGameDev.com

The AiGameDev website is a website run by Alex J. Champandard, and it is dedicated to the furthering and exploration of artificial intelligence in games, and one of the main sources of information on industry use of behavior trees, as well as one of the main sources of inspiration for the authors of this project.


The Authors

The three people who produced this project come from very different educational backgrounds, even though they all study at the Computer Science institute. This section contains a short introduction to each of them.

Go »

Morten Justesen

Morten Justesen

Chicken! Chicken chicken-chicken chicken... Chicken? Chicken chicken, chicken chicken chicken chicken. Chicken chicken-chicken chicken... Chicken? Chicken chicken, chicken chicken chicken chicken. Chicken chicken-chicken chicken... Chicken? Chicken chicken, chicken chicken chicken chicken. Chicken chicken-chicken chicken... Chicken? Chicken chicken, chicken chicken chicken chicken. Chicken chicken-chicken chicken... Chicken? Chicken chicken, chicken chicken chicken chicken. Chicken chicken-chicken chicken... Chicken? Chicken chicken, chicken chicken chicken chicken. Chicken chicken-chicken chicken... Chicken? Chicken chicken, chicken chicken chicken chicken. Chicken chicken-chicken chicken... Chicken? Chicken chicken, chicken chicken chicken chicken. Chicken chicken-chicken chicken... Chicken? Chicken chicken, chicken chicken chicken chicken. Chicken chicken-chicken chicken... Chicken? Chicken chicken, chicken chicken chicken chicken.

Go »

Dan Leinir Turthra Jensen

Dan Leinir Turthra Jensen

Dan, known to most people as Leinir, is a software developer who started out by ruining his possibilities for the next few years by learning Visual Basic 3 as his first language. However, from there he jumped later to PHP, which he worked on as a part of a Multimedia Designer course, and finally decided to learn properly, starting at Aalborg University's informatics course, which now, five years later, has culminated in attending the Master's course in software construction, specializing in game and engine programming. His active involvement with the open source community began when he joined the Amarok team as usability guy in 2006, and finally in 2009 he joined the Gluon team. Here he helped refine the library layout, and was primus motor for developing the Gluon Vision, as well as being one of two core developers on the Gluon Engine system. In June 2010 he finishes his Master's Thesis, and following this he will be moving to England, where he will move in with his partner through three years.

Go »

Kim Jung Nissen

Kim Jung Nissen

Kim is a software developer who is finishing his Master of Science in Computer Science with Specialisation in Game and Engine Programming. After working at the Aalborg based mobile games company Progressive Media as a student programmer, He finishes his Master's Thesis in June 2010, where he afterwards will start as freelancer at Kiloo Aps.