AI in Computer Games
|
AI in Computer Games
|
 |
Find out more on 'smart' computer games that incorporate verious AI techniques and learn about new AI-based SDKs for game developers.
Almost two years ago I published an article on AI in computer games industry,
starting with the claim that "knowledge about Artificial Intelligence techniques
tend to be somewhat limited within the game-programming community". Fortunately
enough, the advances in both hardware and software technologies have contributed
to the overall acceptance of AI-related technologies. To quote Steven Woodcock
and his excellent two-part report on the state of game AI in Gamastura,
game AI has finally "made it" in the minds of developers, producers, and
management. It is recognized as an important part of the game design process.
Good old fashioned AI, state-machines, rule-based AI, etc., have made their
way to every game programmer's toolbox. "Nontraditional" AI techniques
like Artificial Life are starting to be used to create realistic, lifelike behavior
in games like q and Creatures.
The main goal of every game developer has always been to fully leverage the
increased computing power, in order to produce games that are different enough
to be noticed on the market. So, let's explore various software development
kits and similar tools available to AI developers - maybe you can try to create
your new masterpiece in just few weeks?
For an easy start, just relax and play with several extensible computer games
that allow creating editable, rule-based strategies. Age of Kings is an excellent example of a strategy game that allows users to
edit the rules that control their strategic opponents. Quake II, on the other hand, is a best known example of an action game that can
be modified by writing various DLL extensions. CogniToy
recently announced MindRover,
a game that encompasses the depth of play found in strategy games with a new
concept in player control. This 3D strategy/programming game requires that you
equip the vehicle (hovercraft, wheeled or treaded) with various sensors, movement
components and weapons and program its behavior in a graphical interface where
you wire the components together and set their properties. It is an advanced
descendant of various "games for programmers" like Crobots. The scenario
for Jrobots is very simple: you'll
have to develop the AI algorithms of your own robot using the Java language,
then upload it in the arena and follow on-line its fights against other robots.
More "hands-on" approach for writing a successful commercial product
requires use of various commercial SDKs in order to speed up the development
process. One of the most powerful tools available to developers today is Mathmatiques
Appliques' DirectIA. This agent-based
toolkit gives lifelike characteristics to the game characters, including physiological,
psychological and emotional states. These internal states motivate the agents:
they give them needs, desires, and emotions which are all taken into account
simultaneously. Probably the most innovative feature of DirectIAs technology
is its learning capability, with artificial characters that can benefit from
their past experiences, optimizing the current behavior and learning new, complex
ones. Another advanced application is DirectIA Embedded, a version of
DirectIA that fits on a dedicated, low cost hardware card. Their new adaptive
toys such as Tekio will serve as a prime example of such adaptive objects,
putting the main focus of development upon the interaction with the user. All
this power comes with a hefty price tag, though: you'll need around $2500 for
a start, and $50000 at signature with publisher. Similar technologies from MASA
are heavily used in military applications, control of autonomous flying devices
and similar high-end applications. To see DirectIA in action, you can download
Life@MASA, a sample
application (2.0 Mb) created in a couple of weeks (it currently supports only
Windows NT and 9x platforms).
The Motion Factory's Motivate is
another AI-based SDK that is based on the several years of research in robotics
and real-time process control. Their Intelligent Digital Actor technology
is a result of the integration of Real-time Motion Synthesis (robotics) and
Dynamic Event-based Behavior Programming (real-time process control). Using
this technology, the movement of 3D characters is not a playback of stored motion
sequences: it is generated on the fly in response to a dynamically changing
environment. The logic of game characters is not a long sequence of if-then-else
statements, but a Hierarchical Finite State Machine (HFSM) system that is specifically
designed to model the behavior of a complex real-time systems. Motivate development
environment consist of the Actor Editor, Skill Editor, and Behavior Editor.
It allows experienced C++ programmers to extend the Intelligent Digital Actor
technology by providing access to the Motivate runtime engine for writing custom,
Javascript-like Piccolo plug-ins for the actors.
The Spark! Fuzzy Logic Editor from Louder
Than A Bomb! Software (now in its beta release) promises to provide low
cost tools to quickly integrate AI techniques into applications, especially
in video games. It integrates with target applications using simple C function
calls or by using ActiveX and COM, allowing integration into any ActiveX enabled
programming language such as Visual Basic, Delphi, etc. Readers familiar with
fuzzy logic principles will recognize familiar triangle, trapezoid,
singleton and S curve membership function that are available in
Spark!. Real-time graphical debugging and visual rule creation tools allows
you to see exactly what rules are firing while debugging. Unfortunately, nothing
is currently available for download from their Web site, but you can sign up
for the mailing list to be notified
when things change.
Another newcomer to the field of AI-based game SDKs is the Nevrax Library,
or NeL for short. This open source library is technically available for all
forms of Internet virtual environments, but is clearly aimed toward making a
Massively MultiPlayer Online Role Playing Game as its first commercial
application. It is used as the core for client and server software to create
various forms of Internet entertainment, and contains a general framework, a
3D engine, an AI engine and a network engine. NeL supports both Unix and Windows
systems, using appropriate C++ development environments. The main purpose of
its AI library is to provide a pragmatic approach to creating distributed agent
platform. When finished, it will provide tools for building autonomous agents,
a dedicated object-oriented scripting language and several general AI techniques,
including 3D pathfinding algorithms, basic expert system framework, fuzzy logic
operations and evolutionary algorithms. Clearly, this will be a very ambitious
task, and can join this enthusiastic group at Nevrax
Web site or their mailing list.