Useful tools or pointless wastes of resources? The debate over game AI
toolkits and SDKs has heated up in recent
years with the debut of several tools hoping to win over developer's
hearts and minds. The success of these initial tools will help determine
whether this page becomes one of the most used
on these pages, or a mere footnote
in the game industry's history.
If you know of an AI toolkit or
SDK I don't have here, please
drop me a line.
AI.Implant --
Once known as ACE, this toolkit developed by Biographic Technologies
out of Canada was originally released in March, 2001 and then upgraded
(and renamed) just prior to the GDC in March, 2002.
AI.Implant is basically an AI Software
Development Kit (SDK) that
bills itself as 'the world's first real-time 3D Artificial Intelligence (AI)
SDK'. The product is basically a middleware (software library) that allows
game developers to quickly and effectively add advanced artificial intelligence
(AI) technology to their games in order to make smarter characters.
This "Brain In A Box" solution integrates very well into PC, X-Box, and PS2
games (a Linux version is under development as of this writing)
The SDK really works best with as a plug-in used with Maya
(the 3D rendering tool), though that's not necessary since there's also
a straightforward library for the programmers to use. As a plug-in it provides
animators a quick way to animate large number of characters within Maya.
"The fact that we were able to rapidly and seamlessly integrate
our real-time AI technology into such an advanced 3D application like
Maya is a fantastic proof of the openness of our SDK. Moreover,
since our SDK is designed to integrate into advanced game engines, we
provide tools for everyone in the game creation pipeline from artist to
level builder to programmer," according to Dr. Kruszewski.
AI.Implant was recently upgraded to version
1.1 and now includes some interesting new features, including more
intelligent path-finding, "surface hugging" technology so agents can move along
any arbitrary surface rather than just terrain, updated plug-in support for
3DS-Max users, and a "periodic solver control" which lets programmers
and artists control how often their characters are "called" to do their
thinking (thus allowing more control over the game's AI cycle than before).
Future versions plan to add 3D path-finding technologies, finite-state
machines, and learning systems
(ala Black & White).
Well worth a look, and definitely a mature system now that the 1.1 SDK has
hit the market.
Braniac --
An interestly named toolkit from the
Twilight Minds design group, the Braniac Behavior Engine (BBE)
is an open source AI "engine" that promises to provide "real-life behavior".
BBE has an interesting feature set, allowing for what appears to
be a goal-based hierarchy using scripts and simple
Finite State Machines. Of particular interest to me is that it has
a new approach to verbal conversations that gives it a functionality rather
akin to those found in many of the more sophisticated
MUD 'bots....very
interesting indeed.
There's quite a bit of online documention, downloads of the source code,
and a nice user forum for support. I don't know much about this at the
moment but I do plan to explore it in greater detail.
Worth a look particularly if you want your RPG characters to have a bit more
"depth" than one finds in many of today's games!
DirectIA --
Built by Mathematiques Appliquees,
a French-based company, DirectIA an interesting SDK. The initials
stand for Direct Intelligent Adaptation) and
it's really a pretty ambitious undertaking.
I first saw it at the 1999 GDC and spoke extensively with its
creators. DirectIA is, essentially, an SDK
which allows developers
to build autonomous agents (or groups of agents) that have the capacity to
learn, anticipate, and select their actions. Agents controlled by this SDK can
reportedly adapt to their environments and learn in realtime. A variety
of modules come with the SDK supporting such things as Reactive Behaviors,
Perception, and Motivations. Of course, you can add your own custom-rolled
bits of code.
At first glance I had thought that DirectIA
supported agents built with rules-based approaches or Finite/Fuzzy State
Machines, but after some correspondence with the
DirectIA folks I see that I
was in error. DirectIA instead uses a
biological approach of sorts, using a proprietary technology developed
by Mathematiques Appliquees themselves. To quote:
"DirectIA...uses both biological and cognitive modeling. These
two models define the current state of the agent in real time.
Analogous to the discrete state used in finite state machine, the
dynamical state used in DirectIA SDK generates the behavior of the
agent, but in a more realistic and non deterministic manner. To
summarize, one could compare the behavioral system of DirectIA SDK
with an "infinite state machine".
The DirectIA package also provides an
English-like scripting language for use by the developer in building his
own AIs, through which he can access many of the SDK's internal methods.
This language uses production rules that differ from somewhat from traditional
AI rules in that they are not used to directly create the behavior of an
agent; rather, they are define the influence of external or internal
factors in the evolution of the agent's internal dynamic state. These
rules can be activated at each time step and can influence behavior at
any point. Effects are carried over
from time step to time step so that one rule can have a large influence on
the resulting behavior in one context and a smaller in another context.
GALib -- The kind folks at MIT (who have an excellent AI research program, I might add) have placed a nice little set of C++ classes implementing all of the standard genetic algorithm stuff. Free for non-profit use but requiring permission if you plan to use it in a game, GALib is still an excellent code example that runs across a variety of platforms. The page also has a robust set of links to other sites with GA information.
KDCalc --
At one of the 2003 GDCi AI roundtables, Neil Kirby asked developers what
was the most used middleware (i.e., toolkits) that they used in building
their AIs. After a bit of uncomfortable silence, one guy piped up and
said, "Microsoft Notepad" and then quickly added "...or Excel.".
Well, the guys who make
KDCalc have just the thing for
that kind of developer.
KDCalc is basically a tool for
Excel that lets you build AIs of various kinds and give them a whirl.
Plugins and templates let you experiment with fuzzy
logic, NNs, or your basic
rules based system while keeping the AI
in a sort of "black box". When you're all done and have something you like,
you can embed the AI in a web page, put it on a server (great for those
online games), or stick the whole thing into a code module accessed via
a (provided) API.
I haven't played with the tool much but it is kind of neat. As of this writing
there's both a Java and a .Net version available, and the developers have
several demonstrations available that mostly focus on agent learning.
This could be useful if you really do use Excel extensively
in the development and tuning of your AI, or if you want a quick-and-easy
interface to the AI for your online game masters to get to.
Logic Programming Associates --
These folks offer a series of AI programming tools that I'd somehow missed
completely for years.
Providing a package of tools, LPA is now striving to make their toolkit
more attractive to the game development community. They have a variety of
utilities that programmers might find useful:
Spark! --
is a cool product from an interesting company named LouderThanABomb! that
I first ran into at the 1999
GDC.
Their stated purpose is to "Put the 'AI' in Entertainment Software", and
from what I've seen they mean it. Their first tool towards that end
is called Spark! (obviously these guys like exclamation points).
Spark! is realtime fuzzy logic editor,
designed to let developers integrate such AIs into their games and
applications. Using its Windows-based GUI, developers are able to lay
out the interconnections and parameters of their AIs in realtime,
then integrate it into their application through either a C library or
ActiveX/COM. Developers can then tweak their constructions and see
the results in their applications immediately without the need to recompile.
There's a mailing list on the site to which interested parties can subscribe
to get updates on Spark!'s development,
and a beta-test signup page if you'd like to get a chance to play with it
before it hits the market. As of this posting the LouderThanABomb!
folks haven't set a price yet; as soon as they do I'll update this
information accordingly.
If you're using it, or considering using it, please
let me know how it's
working out for you.
NightFall --
Built by Altor Systems NightFall is an AI engine that I really
don't know much about. Pointed out to me by a fan of these pages, the
NightFall engine is
interesting from an AI perspective is that it ships with a variety of
tools to help developers with their world-building, including an AI editor
and library.
There's not a ton of info about the AI tools on the site, but it does
list enough features to make it of potential interest: