|
With
each year that I attend the conference (I have attended 14
of the 16 conferences that have been held so far) there are
conflicts with sessions, networking opportunities and just
the sheer magnitude of the conference, which prevents me from
attending all the great sessions that I am interested in.
I am most disappointed about being unable to attend "Design
Plunder" (lecture by Will Wright) and "Those Darn
Sims: What Makes Them Tick?" (lecture by Jamie
Doornbos), both which discussed The Sims game AI.
That being said, I was able to attend many other excellent
computer game AI related sessions. The following represents
the perspective I obtained, from the computer game AI related
sessions I did attend during the recent GDC 2001 in San Jose.
Tuesday,
March 20, Tutorial:"Artificial Life for Computer Games"
This
tutorial was an update from the tutorial by the same name,
presented first at last year's GDC. The same speakers were
present: Bruce Blumberg, John Funge, Craig Reynolds and Demetri
Terzopoulos. With its focus on applications of artificial
life techniques, this tutorial offered the new-to-ALife attendee
a comprehensive look at some of the research work of these
noted ALife experts.
Since
I had sat through the same entire tutorial last year, and
from attending the first hour of this year's tutorial, and
having a conflict with another tutorial at the same time,
I can only comment on one speaker's presentation. That speaker
was Bruce Blumberg who described the latest status of the
work on virtual creatures done by the Synthetic Characters
Group at the MIT Media Lab. Specifically, Blumberg reviewed
the status of the research and development on Duncan, a virtual
dog that behaves autonomously. In a session to be held later
in the conference (that I discuss later in this report) two
of Blumberg's students presented more detail regarding the
architecture and development of Duncan.
Because
I had to dash off to the conflicting tutorial, I was not able
to attend the presentations by Funge, Reynolds or Terzopoulos.
So, I can only speculate that Reynolds offered an update of
his work with steering behaviors and flocking (for which he
is credited with being the "Father of Flocking")
and probably demonstrated his hockey game application of these
low level behaviors. Also, I would suggest that Terzopoulos
provided an update of his work with physics based locomotion
learning.
Tuesday,
March 20, Tutorial: "Cutting Edge Techniques for Modeling
& Simulation III"
This
is the tutorial that conflicted with the Artificial Life for
Computer Games tutorial and was a presentation by Roger Smith,
of the status of techniques used in military simulations.
I had missed the GDC 2000 version of this tutorial because
I had sat through the complete Artificial Life for Computer
Games tutorial for GDC 2000. [As I mentioned in the beginning
of this report, the sheer magnitude of the GDCs means that
conflicts arise in what sessions a person wants to see.]
Much
of the first part of this tutorial, was more relevant to game
design (primarily war game, flight sim and FPS game design)
as Smith went into some detail regarding the history and design
of military training simulations. In doing so, Smith presented
some interesting parallels between game and simulation development.
Smith further reviewed some code models, interface specifications
and object declarations found in use in today's military simulations.
As
Smith discussed modeling concepts, many of his examples came
from The Sims computer game by Maxis, which was the
most successful sim game released last year. And as he presented
an AI Vehicle Movement Model, I found myself relating to my
own current work in developing an artificial driver for a
soon-to-be-released Trans-Am car racing game.
Probably
the part of the presentation that related the most widely
to computer game AI was when Smith reviewed behavioral modeling.
The design needs of an intelligent agent for a military simulation
are very much like those for most computer games (where behavior
is to be expected to appear intelligent). During this part
of the presentation, Smith reviewed: simple reflex agents,
goal-based agents and utility-based agents (all of which I
personally have seen in use in computer game AI implementations).
Smith further discussed finite state machines (both in singular
and hierarchal usage), expert systems, Markov chains, constraint
satisfaction and fuzzy logic. All of these concepts are widely
used in computer game AI development. (Well, maybe not hidden
Markov chains.) Perhaps the best take-away for an AI programmer
attending this tutorial, was the opportunity to see a variety
of techniques "and how they were being used" in
the way the military designs and implements its training simulations.
As a result, this was certainly a tutorial well worth attending,
for this AI programmer.
Tuesday, March 20: 4th Annual AI Programmers Dinner
Fast
becoming a GDC institution and tradition, is the Annual AI
Programmers Dinner hosted by Neil Kirby, Steve Woodcock and
myself. Four years ago, at the only GDC held in Long Beach,
we (the "Three AI Guys") decided that an informal
gathering of AI programmers and those game developers interested
in AI was needed, and so the AI Programmers Dinner was born.
From that first gathering, each dinner has been fun and enlightening.
Complete AI systems have been designed and dissected on napkins
and tablecloths during the event. All manner of computer game
AI questions have been posed and answered and then refuted
during the dinner, all in a good natured and community spirited
manner. At this fourth AI Programmers Dinner, we enjoyed Italian/American
cuisine at Milos Restaurant in the Crowne Plaza Hotel with
42 developers and AI programmers. And rumor has it, that the
fifth AI Programmers Dinner during the GDC 2002 will be held
at a popular San Jose Chinese restaurant. So, if you are an
AI Programmer or interested in informal discussion about computer
game AI (and can pay your share of the bill) then make your
plans to attend this event during GDC 2002. I know I will!
Wednesday, March 21, Tutorial: "Artificial Intelligence:
Tactical Decision-Making Techniques"
This
tutorial by John Laird and Michael van Lent was worth the
price of admission for the new computer game AI programmer,
all by itself. The first part of the session was a review
of many of the traditional AI decision-making techniques:
finite state machines, decision trees, fuzzy logic, neural
networks, genetic algorithms and others. Even though I'm familiar
with all of these techniques and have used most of them for
one aspect or another of a computer game AI or test bed, it
is still good for me to attend a review such as this. For
the new computer game AI programmer or someone just becoming
familiar with computer game AI, this review would be an invaluable
summary of all the tools available to be used in developing
computer game AI.
Using
the work Laird and van Lent have done for developing a SOAR-based
NPC control process for bots, using Quake II as a backdrop,
the speakers presented these various techniques and how they
related to computer game AI, then analyzed each technique
for its strengths and weaknesses and provided references to
more information on each technique.
The
section of the tutorial that covered planning was especially
interesting to me, as the speakers described the planning
process of a bot playing Quake II. Various selection
criteria were reviewed, and multi-step look-ahead techniques
were suggested. Since my AI development tends to produce agents
that are very goal-oriented (a component of planning) this
section was very relevant to me.
The
speakers concluded the tutorial with a presentation of components
of their SOAR-based Quake bot work. During this section a
variety of 'bot behaviors were described and the SOAR approach
presented. What stood out for me, within this section, was
the approach by the SOAR-based bot to anticipate its enemy's
actions.
While
this tutorial was interesting and enlightening, I am sure
I still would be fragged if I encountered the SOAR-based bot
in a death match, despite now knowing more about the processes
that it uses to make decisions.
|