Games with Extensible AIs
Somewhere near the cutting edge of game AI technology are a few hardy
individuals and companies that have built various degrees of "extensibility"
into their AI, accessible to the user. That is these games provide some
functionality through which the user can "roll his own" AI for the game, or
at least modify it heavily on a scenario-by-scenario basis.
This is of particular interest to game AI folks, both for the possibilities
such a design opens up and the sheer technological challenges it presents
to the game designer.
If you know of other games that permit users to develop their own AI, or
heavily modify the behavior of the existing AI, please
let me know. This is an
important concept, and one which I hope will become more popular
with developers.
Links to software and design tips pages are provided where I know them,
but the Web's a big place and I'm sure I've missed something.
-
Abuse --
Abuse sports a LISP-based
interface you can do some things with. I haven't played with it much myself
though; if anybody out there does know more about it, please
email me some info.
-
AI Wars --
AI Wars is an interesting
game which allows allows
you to develop an Artificial Intelligence for a little critter called a
Cybug...basically an insect-like mechanized unit...using a
scriptable proprietary AI command/programming language. You can then pit
your creations against each other, trade them with folks on the Net, and
generally engage in ever-increasing levels of warfare and mayhem.
The scripting AI language appears to be fairly simple to learn but provides
quite a bit of control. After programming your "bug", you plunk him into a
battle simulator so you can watch it attempt to survive and destroy Bugs
developed by others. There are even sound effects and the option of a MIDI
soundtrack or (if you prefer) you can play your own audio CD. There's also
an option to observe the battle in 2D or to sprig for 3D if your graphics
card and connection are up to the task.
After combat you may view a play by play summary which details every
event that took place in the battle as well as unit scores and standings.
Each AI Bug can be encrypted and traded as ASCII text via E-Mail or cut
and pasted from web pages etc., and there are already pages springing
up to organize tournaments and swap Bugs. There is a shareware version
and a registered version which allows for more mayhem and control over
your "brood". Definitely a fun little toolkit, and a great way to get
some experience developing an AI if you're new to the field.
Related info:
-
Bolo --
Bolo is a classic tank
"programming" game supported on a wide variety of platforms. Specifically
designed to be fully player-programmable,
Bolo allows players to build
their own AIs and pit them against one anohter in a variety of combat
conditions. Both "brains" (independently thinking AIs) and "borgs"
(AI assistants to Human players) can be built, and there is a great deal
of existing theory and documentation on how these things work. There are
a variety of web pages devoted to the game, and regular tourneys being
held throughout the year.
Rather than going into nauseating detail here, you can find massive amounts
of info, source code, design guides, etc. at the link above...
-
Bot Epidemic --
This site is focused on one thing and one thing only...'bots for various
games. Whether is's Daikatana or Doom or Quake or
Hexen II or....heck, this site has it all.
Heck, I didn't know so many games had 'bots...sheesh!
If you have any interest whatsoever in 'bots for one of these games, either
to play against or take apart and study, this is the site. Go there and
soak in the knowledge. (Then write a better 'bot, put it out there, and
tell me about it!
-
bSerene --
With intentionally unusual capitaliztion,
bSerene is a most interesting game.
Falling under the GNU license, the game sports an AI
which drives monsters that try to hunt down and kill your player. The
monsters don't know where you are; they only gain information based on
line-of-sight observations and communications with other monsters that
might have seen or fought you. The way the monsters use such information
can be used to manipulate their behavior, and a good player of
this game will have to observe how the monsters react to his doings
and learn to lead them into traps and split their groups.
AI aspects of the game, besides the monsters communicating on your location
and learning it from one another, include an
A-Life component in which the monsters can
spawn baby monsters if sufficient numbers of them get together. Left to
themselves the new monsters can quickly outmatch the player's ability to
fight them, so the player is forced to move against them and try to break their
spawning groups up.
The monsters themselves apparently use genetic
algorithms between games to slowly evolve strategies of movement
and search to engage the player. This makes the game somewhat like
CDDNA which also uses
GAs for similar purposes. The monsters will slowly adapt to the player's
style of play over time, which can make for some formidable opponents.
As mentioned earlier the whole game is available under the GNU license,
so you can download and play with it yourself if you want. The code is of
course freely available as well for tinkerers (which is why I've put this
into the categoy of ExAI games).
-
Carriers At War --
This series of games has a solid scenario
builder/construction kit which allows fairly extensive adjustments to the
game AI for any scenario you want. You can set aggressivenss factors, tweak
the levels of losses each commander (down to the ship level, I think) will
accept, etc. Very nice and powerful toolkit.
-
C-evo --
An interesting turn-based strategy game rather like the classic
Civilization, but with a twist...you can get into the code base
and roll your own AI. There's an active forum about the game populated
by both avid players and active AI builders, and a files section where you
can post your latest AI in a fashion similar to the Quake-like 'bots.
The author has clearly spent some time thinking through the design as he's
even got a AI design document with tips for building AIs on the site.
Not bad, not bad at all.
If you're looking for a good platform to build an AI for a turn-based
strategy game, this is a good way to go. I don't think you'll be disappointed.
Note: This is not the same as FreeCiv..that's another (though
similar) project.
-
Cloak, Dagger, and DNA --
A Risk-like game that uses genetic algorithms,
CDDNA is interesting from an
AI perspective in that it offers a little "lab" for breeding new and better
AIs. You have some control over the breeding and evolution of your AIs,
being able to tailor them to be more aggressive, more risky, etc. You can
also code in your own basic genetic sequence if you prefer rather than
using one of the many defaults as a basis (though you'll definitely want to
refer to them to get some ideas on how it all works).
The concept does indeed work and fairly well at that. You can find a more
detailed writeup about the game over on
the games page. There's also a great article
on the game's AI and logic written by the game's developer in the
February/March, 1996 issue of
Game Developer magazine.
-
Duke Nuke'em 3D --
As with Quake,
Duke Nuke'em 3D and its
various incarnations provide a tool which permits modification of the
"monster AI" within the game. Based on the C++ language, the editor
permits tinkerers to change any number of enemy behaviors as well as tweak
weapons. The web contains a huge variety of web sites dedicated to
"Duke bots"; the link above is a start.
-
Half-life --
As with Quake, its cousin in the FPS arena,
Half-life offers its players
a rich kit to allow them to write their own AI 'bot code. There are about
a zillion mods and 'bots on the Web for folks to download and enjoy; start
at the link above or simply do a
Google search on it.
I usually recommend one of the FPS games and their associated toolkits as
the best way for a novice to experiment with game AI. This is an excellent
way to start.
-
Galactic Civilizations --
Originally an OS/2 game (a Windows version is in the works and should
enter playtesting in early 2003) featuring an AI
programming kit, GalCiv has a
huge cult following and is easily as popular as some of the better know
"conquer the universe" games. There are regular contests between players who
have developed new and nastier AIs, and the publisher provides occasional
updates. I myself haven't played with the game much so, again, I'm no
expert. I urge anybody who can provide me with more info
and/or pointers to web sites to
email me the information.
Master of the Empire --
Another OS/2 game (from the same company
as Gal Civ, I think) with an AI
programming kit. That's all I know about it....
-
Mindrover: The Europa Project --
This is a realtime strategy/action game with a bit of a difference--rather
than depend on what the AI programmer who
made the game thinks is good combat behavior, the player can
"roll his own" AIs for his robotic units. In fact, the AI is just one of many
components that make up a unit in
Mindrover...the player must build his
robotic army from parts both bought and salvaged.
The game uses a powerful scripting language named ICE to make all
this as simple as possible, and that's what makes the whole thing extensible
in the final analysis. The player can control how various components
are wired together and build the AI for his units either through direct
file editing or through the program's fairly intuitive graphical user
interface. (Note that direct editing of ICE files isn't supported
just yet, but is coming in a future patch/release.) A series of tutorial
walks the user through the potentially confusing aspects of programming
and wiring together components in a slick fashion.
Of course none of this would be much fun if you couldn't pit your inventions
in mortal combat agaisnt those created by others, and CogniToy has gone out
of their way to make that fairly easy. There's a large support area on the
Cognitoy web site, where
users can trade files, swap information, download new components from
Cognitoy, and organize combat sessions. Several indepedent web sites have
sprung up around the Internet, and the company has been talking "sequel".
The ability to build what amounts to your own
"virtual robots" and then program them for exploration and combat recalls the
kind of fun programmers had with the venerable
Omega.
Mindrover certainly does have a lot going
for it. The ICE interface is clean and easy to use, and it's a snap
both to build your robots and to trade them with others.
From an AI perspective Mindrover isn't
doing anything terribly sophisticated. The ICE interface is
essentially a fancy Finite State Machine
editor with some options for random decision making tossed in. The challenge
lies in learning what various components can do when wired to various
other components, and in designing your robot's FSM flexibly enough to
handle unexpected circumstances.
Still, the game is fun and a great way to fiddle with "roll your own"
AI concepts. A lot of other games could learn a lesson or two from
Mindrover.
-
Omega --
This game came out in the early '80s and has become
something of an "underground" hit.
Omega is a tank game
featuring a rich scripting language for rolling your own tank AI. Players
can develop very intricate tactics, then pit their creations against each
other in a variety of combat arenas. There's no "learning" per se built
into the game...you the player/programmer observe the results and modify
your AI script accordingly... but it's perhaps the most open of all games
that allow the player adjust the AI.
There's a large support mechanism of user-supplied AIs and the like
available on the Net, as well as a variety of "leagues" that have sprung
up around the planet. Some of the better sites:
-
PocketWar --
A turn-based strategy game in the flavor of the venerable
Empire Deluxe,
PocketWar
sports an interesting interface based on a simple scripting language. This
lets you the player modify nearly anything about the game--new units, new
maps, and of great interest to this page, the AI. There's a simple scripting
guide and plenty of examples, and of course you can ask questions over at
the PocketWar web site.
Pretty neat if you like strategy games (and I'm a huge fan of
Empire Deluxe).
-
Quake --
Every variation of the venerable
Quake series offers a
variety of options. Quake I
itself comes with a kit which allows you to write your own code, modify
the behavior of enemies and weapons, etc., while
Quake II
extends the engine's capabilities with a full Java scripting language
interface. Quake III expands on
the capabilities even more.
Several "reaperbots" for the games have appeared on the
Net which can apparently offer quite a lot of challenge to "merely
human" players. They are capable of picking up weapons and supplies,
stalking and/or ambushing other players, etc. A very powerful capability
to provide players indeed.
There are several programming kits available that allow users to
write their own computer players for either game. I can't possibly do them
justice by listing them all; try the link above for a zillion references.
I usually recommend one of the FPS games and their associated toolkits as
the best way for a novice to experiment with game AI. This is an excellent
way to start.
-
Red Alert --
The successor to Command and Conquer
series, the Red Alert series
offers a variety of AI-related options for player tuning in its special
rules.ini file. More along the
lines of what the Carriers at War
series offers than a truly extensible AI, it nevertheless has proven a
popular method for tuning and tweaking the AI to perform at its best.
-
Robocode --
Robocode (RC) has a cool motto:
"Build the best. Destroy the rest."
A neat "battling robots" kind of toolkit built using Java,
Robocode lets you put together a robot
tank of sorts that you can then send into battle against those created
by others. It's semi-sponsored by IBM.
The API is based on JDK 1.3 (as of this writing) and is fairly slick. The
documentation is unfinished (and they're looking for help if you're so
inclined), but it's quite servicable. There are quite a few 'bots already
available on the main site or on the various links listed on the site.
There are of course forums covering every aspect of robot design, merits of
various code approaches, things the developers should add to the API, etc.
There's a lot to learn about 'bot design here and the interface makes it
pretty easy to experiment. It's a little annoying that you have to download
some things since it's Java but that is fairly painless these days. A
first-rate place to start trying out some of your ideas before you
start interviewing with some game company about why they ought to hire you....
-
Roboforge --
Roboforge (RF) is a neat game
that's part shoot'em up, part action extravaganza, and part AI programming
exercise. Roboforge lets you construct
giant robots, train them to think and fight, and them
pit them against each other in massive tourneys.
AI comes in when you move to train your robot. There's an "AI
Wizard" of sorts that can help you build your AI or select from some
existing approaches, but you can customize anything it comes up with
yourself. You can also download AIs from a variety of web sites if you've
found one from somebody else that you like better. The robot can process
any information it receives from its sensors (one of the components mentioned
above) and then make decisions bout what to do. The AI is generally
rules-based; i.e., "If my opponent is in front of me and within 3 meters,
throw a punch". You can of course test your robot and its AI before you
send it away to actual combat.
There are a variety of useful web sites associated with this game; you
can find them all off of the
Roboforge site itself.
-
Spacewars --
A product of the ongoing TeamHack
competition, Spacewars (SW) is a neat
little Asteroids-style game with an AI
scripting component that's kinda fun to fiddle with. The source code is
even free to use if you tell'em what you did with it.
Scripts control the AI for your ships in the game and are written in a
C-like language that's easy to pick up. You can enter battle with as many
scripts as you'd like, and you can control up to six ships at once. It's
fairly easy to pick up and a fun way to test out some basic AI principles.
The scripts that come with the game are fairly basic, but there are others
at the game's site. Check it out!
-
Terrarium --
Probably the one bit of software I've been pinged about recently by more
people than anything else. It's certainly got a lot of fans.
Those of you who are already experimenting with Microsoft's .Net know
what Terrarium is all about. It's
basically a multiplayer "world" of sorts in which user can create their own
creatures with their own AIs and set them loose in the environment. The
object is to build a creature that out-survives all the others.
The support group available is extensive, as are the creatures other developers
have created that you can download and experiment with. Plus this one certainly
looks much nicer than many. This is a great way to play around with
A-Life in general and the .Net framework
in particular. Very nifty....
-
Unreal --
Much like Quake
before it, Unreal has
enormous flexibilty in modifying its AI. There are more sites on the Web
dedicated to swapping AI modules than anybody could list.
I usually recommend one of the FPS games and their associated toolkits as
the best way for a novice to experiment with game AI. This is an excellent
way to start.
-
Warzone 2100 --
A wargame/RTS from 1999, this game featured an extensible AI
that used a basic C-like language in external scripts. The AI itself
is all very rules-based but the scripting language provides quite a bit of
flexibility, and many hobbyists have taken up the challenge to build a number
of mods and such. The most active (as of this writing) is probably over at the
at the N.E.W.S.T. site...
Well worth a look if you would like to try your hand at crafting an AI for
a wargame rather than an FPS such as Quake or
Unreal.