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.
Of particular note (to me, anyway) are the learning capabilitiess built
into the package. Through the DirectIA
scripting language it is possible to build agents to do various things:
-
To build agents that learn from their successes and failures;
-
To build a player artifact that first learns by imitation, and then
reproduces the player’s behavior;
-
To build an AI that can build a model of the players tactics and strategies,
and then use this model to anticipate them, choose its own strategy
accordingly, etc.
Oddly enough, no pathfinding capabilities are provided. The kit
does come with a suite of debugging and tuning tools to help you build the
perfect game AI.
Definitely an interesting toolkit. In its earlier incarnation I felt that
if you already knew enough to know you needed it, then you probably
didn't need it, but with the newer releasses that's faded away.
Very much a good toolkit with a lot of potential.
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:
-
Flex uses an English-like interface to support forward/backward chaining
AI structures.
-
Agent lets developers built agent-based systems useing a database-
interfacing language named KQML.
-
Flint is perhaps the most useful tool to the gaem developer, providing
a fuzzy logic editor that's fully graphical and interactive.
LPA has a variety of other tools as well, and they're constantly
adding new features. Prices range from a few hundred to several thousand
dollars depending on the application and what features you want in the toolkit.
For more information, hit their website (above).
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.