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.
Duncan, a virtual dog that behaves autonomously, created by the Synthetic Characters Group at the MIT Media Lab.
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
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.
Many of Smith's examples came from The Sims.
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!
The 4th Annual AI Programmers Dinner.
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.
Thursday, March 22: "The Basics of Team AI"
This session was a lecture by Clark Gibson and John O'Brian, both who worked for Red Storm Entertainment on products like Rogue Spear and Shadow Watch, respectively. This lecture was of great interest to me, as I've been asked on previous projects to develop group (team) behavior for a RTS, squad (team)-level maneuver for a FPS, and team play for a baseball game. Therefore I attended this lecture with great anticipation and I was not disappointed.
Both speakers were dead on target, as they raised many of the same issues I faced (and issues any computer game AI programmer developing team behavior for the agents in his game). Issues such as "how to cooperate with the player?" and "what roles do the various agents perform?" and "how to move as a team?" were presented and discussed. The speakers offered examples from their games, as well as introduced points from other games, that illustrated these issues (and others too).
I was especially keen to hear the speakers talk of building a solid communication and command structure between the agents of the team. As in all my experience with team AI, that component was key. Also, O'Brian raised the point about architecting a goal-based control process. Again, this is an approach that I feel is critical to achieving a sound interface between a strategic level and a tactical implementation. This lecture was certainly another reason why going to GDC is a must each year.
Thursday, March 22: "Level-of-Detail AI"
This lecture turned out to be quite a pleasant surprise. First, because I had not heard anything about the game Republic; second, because the speaker Demis Hassabis had not shown up in any prior AI-related sessions that I could recall; and third and most important, the concept of "level-of-detail AI" (LoD AI) will probably become an important issue for computer game AI programmers to get right, as games get bigger with more agents to manage within finite computer resources.
For those who may be wondering about LoD AI, I will attempt a simple definition based on my own perception of the issue. LoD AI is the control of agents (autonomous or not) that are out of view of the human player's perspective, in such a manner that the agent's behavior remains believable without the expense of system resources that must be consumed to generate behavior within view of the human player's perspective. In other words, LoD AI is a way to control large numbers of agents that the player can't see, and to do so, without spending the computer cycles that number would normally take.
Getting back to this lecture, Hassabis, with experience on both Theme Park and Black & White, initially presented an overview of previous sims games, which while interesting was incompareable to the rest of his lecture. It was when Hassabis began to describe Republic and the LoD AI techniques he was designing and implementing that the lecture became most interesting to me. Unfortunately for my level of interest, he did not go into sufficient detail about his implementations of detail flipping, consistency guarantees and agent compression to my liking. Nevertheless, I have the feeling that the game Republic will be one game that many computer game AI programmers are going to want to play, and Hassabis will remain a computer game AI speaker that we will want to listen to.
Thursday, March 22, AI Roundtable General Session
This was the first of three AI-related roundtable sessions that I moderated for the GDC this year. This session was sparsely attended (by comparison to previous years) with only 16 attendees. The discussion topics (by design) for this session cover about anything related to computer game AI.
The most lively part of the discussion came about when questions about bot programming were raised, with emphasis on where to find resources for assistance, and examples of impressive bot behavior and where did everyone think that bot programming was going in the future. Once again (as in prior year's conferences) the bot community has demonstrated it is at the forefront of computer game AI development interest.
As a result of an article I wrote for Game Programming Gems (Charles River Media, 2001), about fuzzy state machines, I received a question that I wanted to pose to the group for discussion. That question was, "Is there a fuzzy vs. finite logic issue in the sense that fuzzy logic is not needed and that finite logic could provide all the flexibility an AI programmer would need?" The discussion that ensued, suggested this is not the case for most AI programmers. A lot of AI programmers use fuzzy logic and are quite pleased with its results. Several comments suggested that AI programmers should use whatever tool that fits the job, and not be concerned over favoring one or the other type of logic.
Other topics raised were: the uses and types of scripting, the use of AI specific software development kits, the uses of influence maps, and the use of threads to manage individual agents in a game. As typical, a roundtable like this one is a treasure trove of gems of information that one must attend to in person to be able to appreciate. No written recap can ever do justice to the dynamics that take place during discussion.
Friday, March 23, Creature Smarts: The Art & Architecture of a Virtual Brain
This lecture by Robert Burke and Damian Isla expanded on topics presented by Bruce Blumberg during the "Artificial Life for Computer Games" tutorial held on March 20th. Burke and Isla are students of Blumberg, and used this lecture to present components of the development of Duncan, the autonomous virtual sheepdog developed by the Synthetic Characters Group (SCG) at the MIT Media lab.
The speakers began the lecture with an overview of some of the characters the SCG had developed over the years, and an explanation of why the concept of a dog was selected to be the focus of their work. Being a fellow dog (and cat) lover, I have to say that I thought that using a dog as a model was a great idea from an AI research perspective.
Next, the speakers lifted the kimono and showed what Duncan was made up of, from a virtual AI point-of-view. Duncan's brain is a modular architecture made up of discrete systems. Systems were available for sensing the world, for perceiving what was sensed about that world (actually assigning context to the events that are sensed), for self-perception of Duncan's internal states, for memory (both long term and working), for attention and action selection, for navigation and motor tasks and finally for managing an internal blackboard used jointly by these systems for process communication. This brief outline of the components of Duncan's brain do not do this elegant architecture justice so I would suggest interested readers should visit the URL in the reference section below and read the lecture paper for details. This is a reading well worth the effort.
Duncan in action.
The aspect of this architecture that I liked so much, is the use of discrete systems in a modular fashion, to provide the various functionality. Having used similar approaches in both RTS and FPS games, I can endorse the applicability of this style of architecture for use in computer game AI development. Another feature of Duncan's brain that caught my attention, was the attempt by the SCG to develop some "common sense" reasoning with regard to movement and status (this was also a theme of another fine lecture later in the conference - see Programs, Emotions & Common Sense below). And finally, the borrowing from the work on subsumption architecture by Rodney Brooks [Brooks 1991] to influence SCG's supersumption concept reminds me of work I've done to determine action selection in a RTS and FPS game.
I hope members from the SCG continue to return to the GDC annually and keep us updated on their work.
Friday, March 23, AI Roundtable War Games and RTS Session
This was the second of the three AI Roundtable sessions that I moderated at this year's conference, and it was more crowded than the first, with 26 attendees present. The discussions during this roundtable were restricted (by design) to AI topics relative to war games and real-time strategy games. As such, a popular topic during the session was unit AI, and how to make it better, less stupid, more believable and use less system resources. Also lively discussion erupted on the topic of how to prevent "clicking to win". But probably the longest discussion was relative to how to challenge the human player "just enough", and still let the player win. This session discussed a number of examples and ideas of how this could be done, as well as what was already being tried. Scaleability and LoD AI both seemed to be a part of a discussion on how to manage more and more units in RTS games, without affecting the responsiveness of the user interface, nor affecting the presentation of the graphics. Finally, the session concluded with a discussion on how to make AI more adaptive in RTS games
As usual, recaps of AI roundtables can't possibly reflect the dynamics that take place during discussions, and can only serve to "wet one's whistle" and encourage all readers to try to attend the AI Roundtables on your next visit to a GDC.
Saturday, March 24, AI Roundtable AI for Beginners Session
My final AI Roundtable session during the conference was held with my co-moderators Neil Kirby and Steven Woodcock, and was our best attempt at presenting the long requested "AI for Dummies" question-and-answer session. In years past, we have had non-programmers (game designers, producers and artists) approach us and ask for a very high level, totally non-technical AI Roundtable session where they can come and ask (what they think are dumb) AI questions and get answers. To meet that need, we have proposed this "AI for Beginners Session" for the last several years, and this year's version was the best yet.
Neil gave the opening remarks by covering the prepared handout of basic AI terminology. Steve manned the white board and kept track of the questions asked and noted the answers provided. I helped spot questions and with Neil and Steve, and helped to provide answers. It appeared that we had a lot of AI newbies present, who were able to ask their questions and get some answers regarding basic AI concepts.
A complete list of the questions and answers can be found in Steve Woodcock's AI Roundtable Moderator's report which will be posted on Gamasutra or the Game AI Webpage (see references below).
Saturday, March 24, Programs, Emotions & Common Sense
In a mildly absent-minded, yet charming style offering wit and insight, Marvin Minsky answered the question "Why don't we have HAL yet?" in his keynote lecture. Minsky, whose contributions to artificial intelligence and related fields for the last decades would fill this page, began his lecture with a quote from my good friend and computer game AI colleague, Steven Woodcock. Minsky referenced remarks Woodcock had made in his last year's AI Roundtable Moderator report, to the extent that the usage of the more exotic decision-making techniques in computer games is waning, and that reliance on the more common finite state machines, rule based systems and fuzzy logic is holding fast.
Why don't we have HAL yet?
Minsky spring-boarded from Woodcock's comments into a presentation of "Why don't we have HAL yet?" where he touched on many reasons for this state of affairs. The primary one being, that we (as AI programmers) have yet to figure out how to program for "common sense" reasoning. Minsky went on to offer numerous anecdotes and personal stories and quotations from others notables in the AI computer to reinforce this premise. He also stressed the importance of play and simulations upon our society.
I think for me, the core of what Minsky was telling us (as AI programmers) was that we needed to utilize all the various methodologies for decision-making, in manners that enabled each tool to function for what it does best (ie. Neural Networks used for association problems, Genetic Algorithms for optimization problems, Rules for logic problems, etc.). And not be concerned with producing "buzz-word" AI but instead to focus on producing AI that demonstrated "common sense".
Minsky also offered up his Theory of Causal Diversity [Minsky 1992] as a suggested approach to solving this problem.
The entire video of Minsky's keynote lecture is available on Gamasutra from the URL provided in the reference section of this report. It is most certainly worth viewing although the slides are a little hard to read.
Saturday, March 24, Terrain Reasoning for 3D Action Games
The final AI related lecture I attended at this year's conference was an excellent talk by William van der Sterren. This lecture was a practical presentation of AI evaluation of terrain issues in a 3D action game. Using a Half-Life mod as a basis for examples, van der Sterren presented a practical implementation of Influence Mapping in conjunction with Terrain Waypoint Meshes to produce an effective terrain analysis module. His indepth presentation offered detailed formulas and explanations of the strengths and weaknesses of the evaluation techniques in use, and the steps the module took. And the direct application of these methods with an example that most AI programmers can relate to made it much easier to understand the points van der Sterrent was making.
The well written paper that accompanies this lecture is available within the conference proceeding archieves at the URL below. I also hope to see more lectures by William at future GDCs.
As I stated at the beginning of this report, the sheer magnitude of GDC has grown, and the number of AI-related sessions has risen to levels that make it difficult for a single interested AI programmer (like myself) to attend all the sessions of interest. I hope that this report offered perspective on the sessions that I did mange to see, and gives those of you who missed them, a taste of what was missed, and encourages you to follow up via the references that follow. We (computer game AI programmers) are posed to push the limits of our specialization outward as more games need the differentiation that good computer game AI can bring. Doing so, means we should never stop learning how our fellow AI programmers are succeeding.
[Brooks 1991] Brooks, R., Intelligence Without Reason, "Computers and Thought" IJCAI 1991
[Minsky 1992] Minsky, M., Future of AI Technology, "Toshiba Review, Vol.47, No.7, July 1992, http://www.ai.mit.edu/people/minsky/papers/CausalDiversity.html.
of the proceedings papers and presentation material for the
above lectures and sessions can be found in the proceedings
document itself or on the Internet at:
Game AI Webpage: http://www.gameai.com