SteerSuite

A suite of test cases, tools, and libraries for steering behaviors

 

SteerSuite 1.3 is released!

March 29, 2010

SteerSuite 1.3 is released! Download it here. There are several major changes and additions that should make SteerSuite more useful to a wider audience:

  • SteerSuite is now licensed under GPL version 3.
  • A flexible best-first search planner has been added to SteerLib.
  • A more elaborate steering AI, called PPR (plan, predict, react) AI, is available.
  • It is now possible to load and control a simulation engine (and all modules) in your own programs. This opens a lot of possibilities! Use our steering AI in your open source game, use benchmarking on agents that you already have in your own code, or just use the simulation engine as additional infrastructure in your code, that you don't have to create on your own!

Some users have reported that SteerSuite compiles successfully but crashes on Mac OS X. We have tested it on our Mac OS X machines, and have not experienced any crashing issue. Please contact us with more details if you have any problems with running SteerSuite, and we will try to address the issue.

For this release the Qt GUI is not supported. Please let us know if you were actually using the Qt GUI, and if there is enough feedback, we will revive it!

What is SteerSuite?

SteerSuite is a suite of tools, code, and test cases for developing and evaluating steering behaviors. It provides an easy but powerful framework to develop your own AI, evaluate behaviors, share results with the community, and more. The main components are:

  • Test Cases: a set of broad and challenging test cases to help test and develop your own steering algorithm, and a simple but functional XML format for creating your own test cases.
  • SteerSim: visualizes real-time or pre-recorded simulations of steering agents. Provides several built-in modules to configure the simulations and analyze the results, and an easy-to-use plugin architecture to make extensions.
  • SteerBench: benchmarks and scores simulations using a variety of benchmark techniques.
  • SteerLib: a C++ library to read the XML test cases and record simulations in your own code, and much more, to help developers and researchers focus on steering AI instead of time-consuming irrelevant infrastructure.

SteerSuite Features

Current features include:

  • Works on Windows XP, Windows Vista, Linux, Solaris, and Mac OS X
  • More than 40 test cases, specified in XML, to challenge your steering AI.
  • An XML schema for test cases, to easily make and share custom test cases.
  • A C++ test case reader to make it easy to load test cases in your code
  • A C++ "rec file" reader and writer to make it easy to create/playback recordings of the AI
  • A C++ grid-based spatial database that supports ray tracing, approximate nearest neighbor queries, and a traversal cost for each grid cell
  • Two benchmark techniques, and one more currently being developed
  • Several built-in modules, including modules for playing back recordings ("rec files"), benchmarking, and more
  • A powerful, easy-to-use plugin architecture to extend SteerSim.

Features coming soon include:

  • More complete documentation.
  • Support for multithreaded agent updates using a thread-pool model.
  • A new component, SteerBug, to allow interactive analysis of single behaviors.
  • A SteerSim plugin to allow interactive creating/editing/saving test cases.
  • SteerSim plugins that demonstrate example steering AI.
  • Several small command-line utilities for managing rec files and test cases.
  • A binary installer for Windows users.

Why SteerSuite?

SteerSuite was created to facilitate more rigorous evaluation of steering AI, and to facilitate sharing results. So far there has been no widely accepted conventions for how to present results and evaluation of a steering algorithm. To address this, SteerSuite includes a broad and very challenging set of openly specified test cases, intended to be examined and improved by the community. Furthermore, SteerSuite provides a way of creating recordings of steering behaviors so that developers can more easily share their results with others.

With this goal, an interesting question arises: how can we objectively evaluate steering behaviors? This question does not yet have a solid answer, and it may never have one, but SteerSuite tries to address this question by providing several ways to benchmark and evaluate steering behaviors. In addition, SteerSuite makes it easy for others to experiment with their own benchmarking ideas as well.

Additionally, there are very few steering frameworks with available source code, especially ones intended for use by the community. Perhaps the most popular steering software has been OpenSteer, by Craig Reynolds. SteerSuite aims to provide similar functionality, so that developers have an environment to quickly and easily prototype steering ideas without re-inventing the entire infrastructure needed.

Join the discussion group!

SteerSuite has a discussion group using Google Groups. There you can share custom test cases, report benchmark results, and share recordings of your steering AI simulations (all of which are easy to create with SteerSuite). If there is enough interest and enough content, we will organize user-submitted test cases and benchmark results as part of this web page. There are also many interesting issues to discuss: How can we objectively evaluate steering behaviors? How could SteerSuite's benchmarking process be improved? What do you feel are the important problems to address in steering these days? Share your opinions with the discussion group!

If you would like to join, subscribe here , or contact us for an invitation. You can view and post from the forum through a web browser, and you can choose whether to receive emails.