Sponsored By

AI Middleware: Getting Into Character, Part 5: Conclusion

AI middleware is a new category of commercial tools for controlling the behavior of NPCs in games. This article, the last in a five-part series, looks back at the four products and compares them.

Eric Dybsand, Blogger

July 25, 2003

8 Min Read

After some 16 years of designing and developing AI solutions for many different genres of computer games, I was admittedly skeptical that commercial AI middleware could help the game development process in any significant way. After all, I thought, the AI for every game is unique, and thus requires a craftsman such as myself to design and develop good AI solutions. While that might be true to some degree, this week's survey of AI middleware revealed to me that these tools offer viable game development solutions.

The four previous installments of this week's series focused on the capabilities of each product. Today's concluding installment summarizes these products and offers some thoughts on where you should go next. Admittedly, because this is just a summary, the article does not do justice to these products. So I encourage you to check the web sites of these products and learn more about their specifics.

A Brief Recap

AI.implant: An Animation Control System

AI.implant is a sophisticated animation and character control engine from BioGraphic Technologies in Montreal, Canada. The most unique aspect of AI.implant is the use of Maya and 3DS Max plug-ins to allow AI to be added to the character during the modeling process. Once a character has been created in Maya/3ds max, the AI.implant plug-in can be used to set animation control for the character, add attributes to the character, set default and initial state values, add sensors and assign behaviors to the character and create decision trees that manage the character's behavior.

Characters can be grouped and coordinated using AI.implant, and default behaviors can be assigned in lieu of complex decision-making. Decisions are made using binary decision trees; a system that supports sophisticated rule-based processing. AI.implant also offers waypoint editing (via the plug-ins) and automatic waypoint-network generation.

DirectIA: An Adaptive Behavior SDK

DirectIA (which stands for "Direct Intelligent Adaptation") was developed by Mathematiques Appliquees S.A. of Paris, France. DirectIA relies on several built-in engines for processing:

  • A motivation engine to model the emotions and needs of the agents

  • A behavior engine to mode the agent's decision processes

  • An action engine to enable the agent to interact with the game world

  • A knowledge engine to organize the agent's understanding of the game world.

DirectIA offers real-time decision and action behavior modeling tools. Within the high-level tools is support for complex agents and reactive agents. The low-level tools offer pathbuilding, hierarchical pathfinding and steering tools (which are currently in beta).

DirectIA is very agent-centric. Its sophisticated behavior engine relies on its own built-in functionality tuned via script files to meet the needs of your agent's decision-making system. Agent communication and perception can be integrated via user-defined callback routines accessed from the scripts. The tools decision-making process is very "state" oriented, and should appeal to developers who favor the use of finite state machines.

RenderWare AI: C++ Base Classes For AI

RenderWare AI Middleware (RWAI) was developed by Kynogon, a French company specializing in game AI (the Kynogon Artificial Intelligence Modules, or KAIM), and is packaged as a part of the RenderWare Platform suite of game development tools marketed by Criterion Software of Austin, Texas. The entire RenderWare suite includes modules for handling graphics, audio and physics, but I only looked at the module for AI.

The RWAI SDK focuses on designing and implementing character behavior. RWAI views the objects in the world as entities, in two basic forms: thinking entities (which contain a Brain object) and passive entities (objects that exist in the world and interact with thinking entities). RWAI provides several layers of services:

  • Decisions - supports the Brain objects of thinking entities

  • Agents - supports behavior carried out by entities

  • Services - provides specialized manager objects useful to entities

  • Architecture - provides interface to the game and configuration services

RWAI is a powerful AI Middleware SDK to the game developer, and when used in combination with the other RenderWare Platform components, is a very complete solution for game developers.

SimBionic: Authoring Tool & Run-Time Engine For Complex Behaviors

SimBionic is a visually oriented tool for defining characters, implementing their decision-making capabilities, and assigning their behaviors. It was developed by Stottler Henke of San Mateo, California.

Like DirectIA, SimBionic is very state-oriented. This means that most control flow is influenced by the state or condition of some object or process. The SimBionic state systems have many components that can be classified as descriptors and declarations:

  • Descriptors - help to describe objects and attributes

  • Declarations - create symbolic associations to use in definitions

  • Entities - define NPCs and agents and objects in the world

  • Actions - declare behaviors that entities can perform

  • Behaviors - dynamically determine decisions and actions performed by entities

  • Predicates - built-in and user defined access functions

SimBionic provides a sophisticated framework for creating and debugging state systems. The SimBionic Visual Editor makes developing these state systems easy and accessible to level designers and other staff who may not have deep programming skills. Since FSMs are so widely used in game development, SimBionic could be an alternative to custom FSM development.

Wrapping up this review of AI Middleware

In his article "Effective Middleware Evaluation" in the May, 2003 issue of Game Developer magazine, Alex Macris made several valid points about the process of evaluating middleware as a solution to computer game development issues. They were:

  • Evaluate your needs. Really examine what you want AI middleware to do in your game. This is the most important step, because not understanding your game's requirements can lead you to make a poor decision.

  • Evaluate the product. All of the products discussed in this survey have evaluation versions. Get them, install them, try them and use them.

  • Evaluate the vendor. Candidate vendors should be examined for the level of support that they offer. All the vendors discussed in this survey were available by email and phone and provided adequate documentation.

As more games tout AI as a selling point, and if the "not invented here" syndrome wanes and more third-party middleware is embraced by developers, then I believe AI middleware can become an important solution for game developers.

Read more about:


About the Author(s)

Eric Dybsand


Eric Dybsand ([email protected]) has consulted on an extensive list of computer games, including designing and developing the AI for Full Spectrum Command, a tactical command simulator used by the US Army. And he has designed strategic AI for MOO3, AI for Racing, Baseball and Wrestling games, he developed the AI opponents for the RTS game ENEMY NATIONS, and for the FPS games REBEL MOON REVOLUTION and the WAR IN HEAVEN, and a number of turn-based wargames. Eric has been involved with computer game AI since 1987, doing game design, programming and testing, and is a contributing author on AI to the Game Programming Gems and AI Wisdom series.

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like