|
Features

AI
Middleware: Getting into Character
Conclusion
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.
|
|
|
|
Product
|
|
Feature
|
AI.implant
|
DirectIA
|
RWAI
|
SimBionic
|
|
User
Decision Support
|
Binary
decision trees
|
Motivated
decision graphs
|
Finite
state machines, neural networks
|
Finite
state machines
|
|
Other
Services
|
Auto
path generation, pathfinding
|
Pathfinding
|
Graphics
and physics in other modules, auto path generation,
pathfinding
|
Inter-agent
communication
|
|
Behavior
Support
|
Pre-packaged
behaviors
|
Templated
behavior scripts
|
Pre-packaged
behaviors
|
User
developed behaviors
|
|
Engine
Source Code Availability
|
Some
|
No
|
Yes
|
Some
|
|
Extensibility
|
User-developed
behaviors
|
User-developed
scripts, callback functions
|
User-developed
behaviors, callback functions
|
User
developed behaviors, callback functions
|
|
Production
Tools
|
Maya/3ds
max plug-ins
|
Script
templates, tuning GUI
|
AI
skeleton code, XML configuration
|
Visual
editor, visual debugger
|
|
 |
 |
 |
Table
1. Summary of common features of reviewed AI Middleware
Products.
|
______________________________________________________
|