Back to the Game AI SIG


AI Interface Standards: First Specifications
A Roundtable Discussion of the 2005 Game Developers Conference

Moderated by Alexander Nareyek and Nathan Combs

March 11, 2005, 9:00am - 11:00am
San Francisco, CA, USA


(Please follow this link for the call for participation for the meeting)

 

OVERVIEW
This roundtable is organized every year by the AI Interface Standards Committee (more information on the committee can be found at: http://www.igda.org/ai/) of the IGDA to discuss and present the current state of affairs for creating interface standards for game AI. Most of the attendees of this year's roundtable were game developers, with only a few people from academia and middleware companies mixed in. However, the number of attendees (15) was much lower than in previous years. [Note to self: Try to avoid giving a session in parallel to a talk from Will Wright!]
Because it is hardly possible to cover all of the committee's work, we focused most of the discussions and presentations on only a subset of the committee's working groups: pathfinding, rule-based systems and goal-oriented action planning.
 
GENERAL DISCUSSION
Like last year, hardly anyone of the participants was yet using middleware solutions, let alone for AI. We did not go into more specific discussions on this, but you can have a look at last year's roundtable report for a similar discussion. Some general comments from game developers on requirements on middleware solutions were that they would like to have access to the source code - not only to tweak behavior but also for situations when something goes wrong (bugs etc). None of the represented game studios, however, had general policies/rules for requirements on adoption of middleware.
While our current approach is to have C++ interfaces (including some XML structures for function parameters), C was brought into the discussions again. Interestingly, this went into the opposite direction from the discussions of last year's roundtable. Concerns with C++ interfaces included (non-)compatibilities between compilers, and missing support for C++ on some platforms (like loadable modules for the PlayStation). We certainly need to evaluate this topic within the committee again, and have a closer look at options like a C interface with a C++ wrapper layer.
General discussions also included the topics of callback realization and behavior/action packages. The question of how to realize callbacks is very important for many parts of the interfaces because middleware often needs to call functions from the game. Approaches that were discussed include direct callback functions (like in DirectX), message passing, and inheritance (using virtual or overridden functions).
Behavior/action packages was another topic that was discussed. Behavior components, such as scripts, animations and sounds, are centrally packaged together including conditions/requirements in order to have one central repository for managing potential behaviors/actions. AI sub-systems, like a finite state machine or a planner, can then reference/trigger these behavior objects. However, roundtable participants were quite unsure about the benefits of such a feature. Behaviors/actions that need parameters were seen as a potential problem.
 
SPECIFIC GROUP PRESENTATIONS/DISCUSSIONS
We only briefly touch the specific group presentation here because the discussions are hard to follow without the details of the proposed interface specifications. Please check the yearly report of the committee for specifics, which is to appear in June.
The first working group of the committee that presented their approaches was the pathfinding group. They showed their current API draft and discussed it. Comments were mostly related to the graph structure, e.g., that each graph connection should be given a unique ID so that the connections can easily be manipulated after the graph has been built.
The rule-based systems group was next, and discussed why they adopted the JSR-94 pattern as basic building block for their API. Further extensions, e.g., for greater control of the execution of the RBS and for handling real time, as well as a translation to C/C++ are on the group's agenda.
Finally, the current interface for goal-oriented action planning was presented. Issues that were brought up by the audience included the need to have a very first action determined as quickly as possible, graded quality results for plan optimization, and a mechanism for integration with scripting.
 
We got some very good feedback from the roundtable's audience, and hope that we were able to provide a useful picture of the current state and direction of the interface standards. While we will most likely focus on a different set of working groups next year (like steering and FSMs), there will surely also be a brief update on the progress of the working groups that were presented this year. Thanks to everyone who helped with the preparations and to the very engaged participants!

 


Last update:
April 14, 2005 by Alexander Nareyek