AI Roundtable Moderator's Report
Steven Woodcock
swoodcoc@concentric.net
Wednesday, March 17th
My first session of the conference was attended by 35 people,
a huge increase of previous CGDC first-session turnouts
(25 in 1998, 29 in 1997). Every seat was filled and a few attendees
had to take wall seats. A quick survey revealed that five of
these attendees counted themselves as "newbies", a surprisingly
small percentage when compared to previous years. (This was a
trend that held true throughout the conference; it is apparent
that industry interest in good game AI is increasing rapidly.)
I began by discussing why we had scheduled "topic specific"
sessions for Thursday and an "AI for Dummies" session
for Friday, then invited anyone who was interested in coming to
our Second Annual AI Programmer's Dinner (scheduled for Friday
the 19th). With this bit of business out of the way,
we got down to discussing AI topics of interest. Over the course
of the hour the topics ranged widely:
Discussion on these topics was most interesting, no doubt due
in part to the large percentage of experienced developers present.
A number of remarkable points were brought forth by the group
at large:
Thursday, March 18th
My second session was billed as being a "theme" session
focusing on wargames and real-time strategy games, and it was
packed to capacity. A whopping 44 people arrived for the session
and we had to turn away several after the roundtable began due
to lack of space; seven people rated themselves as "newbies".
Several people had to stand throughout the hour, though nobody
seemed to mind it due to the extremely energetic nature of the
discussion. The room filled up so quickly that we began 15 minutes
early
.topics were suggested almost immediately and
our discussion went non-stop until we ran out of time. This session
was the most difficult to control because of the sheer pent-up
energy that seemed to infuse everyone present; these people really
wanted to talk to somebody about their AI issues!
Our topics ranged all over the map, but the most significant
were:
The level and energy in the discussion was amazing; Eric has
used the term "horse race" in his report and it's an
apt description. Developers were tripping over each other to
speak, and every comment raised three or four more. Some of the
comments coming out of the above topics included:
Friday, March 19th
Our third day featured our specialized "AI for Dummies"
session. Originally proposed to Miller Freeman for a panel format,
it was billed as a roundtable (obviously not the best format for
this kind of presentation). Due to the relatively low turnout
that always marks the last day of the conference (we had only
33 or so attendees), Neil Kirby and I combined our sessions while
Eric led a spin-off roundtable of AI experts. Of our 33 attendees,
fully 25 identified themselves as "complete newbies",
and several were producers or other non-programmer types. We
had four or five experts in the session, which greatly helped
our Q&A format. Neil conducted most of the moderation while
I took real-time notes and offered various references, web pages,
etc. where more detailed answers to various questions could be
found.
Being a Q&A style of session aimed at developers new to game
AI, we tended to discuss topics in a broader, more instructional
style. Some of the questions we fielded included:
Q: How do I calculate the CPU my AI is using?
A: Several tools are available to calculate CPU usage,
including Intel's Vtune and the Windows timeGetTime()
and QueryPerformanceCounter() timers. Most console platforms
had some form of debugging tool that could compute CPU usage as
well.
Q: What are threads and how are they used for game AI?
A: Conceptually threads are independent programs that share
memory space with the main program. Many developers use threads
in order to make the AI more independent of, and less intertwined
with, the rest of the game. They're very good for ensuring your
AI and your game physics are in sync.
Q: How do I avoid doing lots of physics or AI calculations on objects or units that aren't anywhere near the player?
A: Your graphics guys have had to worry about not wasting
processing on distant objects for a long time. Ask them how they
do this quickly; the same techniques can be used to partition
your AI processing.
Q: How do I handle the conflict between game designer and AI programmer?
A: Good question! Designers need to understand that the
AI developer needs a fairly stable game platform before he can
really focus on building a good game AI, while the AI developer
needs to realize that the designer needs to see behavior early
in the game's development so he can modify the design as necessary
if things aren't working out as envisioned. "Bad" features
that are very difficult to implement need to be identified as
early as possible in the development process. The best thing
the AI developer can do is to build incrementally rather than
trying to add every feature at once. The best thing the game
designer can do is to clearly define what he wants the AI to do,
and give the developer time to actually do it.
Q: What technologies/methodologies are AI developers using to build game AI?
A: Everything, though the most commonly used techniques
are rules-based, finite state machines, and fuzzy state machines.
Techniques such as neural networks, genetic algorithms, etc.
are all great in theory but not often used in practice (and certainly
shouldn't be attempted by someone new to the field). Several
developers present suggested that books on game theory, dynamic
programming, and probability theory could be very useful at generating
ideas for fledgling AI developers.
Q: What kinds of games are hard to do AI for? What kinds are easy?
A: It's never "easy". RPGs are often the hardest
to develop good AI for, due to the need for believable "conversational"
AI; developers would do well to steal ideas from MUD "chatter'bots"
and the classic Eliza program. Real-time strategy games
are also tricky due to CPU restrictions. Sports games are tough
because if you get anything wrong, 100,000 angry fans will
write in to let you know. Boardgames with known, fairly simple
rules (chess, Risk, etc.) are fairly simple by comparison,
as were nearly any turn-based games (you get tons of CPU).
Q: Is cheating okay?
A: If it makes for a better game and the player can't catch
you doing it, yes!
Conclusions
Attendance in all our roundtable sessions was up significantly
from the 1998 CGDC sessions (236 vs. 190), indicating an upswing
in interest in good game AI across the industry. The variety
of topics and depth of discussion increased significantly from
last year, driven in part by the apparent easing of CPU restrictions
for most developers (thus allowing them to indulge in more detailed
approaches). The roundtables seem to have become a very popular
GDC feature.
The topic-specific sessions on Thursday and the "AI for
Dummies" panel session on Friday were all very well received,
and we got several specific requests for a similar format next
year. While Neil, Eric, and myself are still kicking around ideas
on the subject, we're generally in agreement that the "Dummies"
panel probably needs to be broken up into parallel sessions aimed
at programmers and non-programmers respectively. The success
of Eric's "Experts" session on pathfinding indicates
a need for sessions focused on that segment of the developer community
as well. We'll be giving serious thought to these requests as
we think over our proposal for GDC 2000.