1998Q3/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] 1997 CGDC AI Roundtable Moderator's Report -->
<!--X-From-R13: X Q Znjerapr <pynjNhaqre.rate.ftv.pbz> -->
<!--X-Date: Wed, 1 Jul 1998 14:34:22 &#45;0700 -->
<!--X-Message-Id: 199807012132.OAA04539#under,engr.sgi.com -->
<!--X-Content-Type: text/plain -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] 1997 CGDC AI Roundtable Moderator's Report</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:claw#under,engr.sgi.com">
</head>
<body background="/backgrounds/paperback.gif" bgcolor="#ffffff"
      text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000">

  <font size="+4" color="#804040">
    <strong><em>MUD-Dev<br>mailing list archive</em></strong>
  </font>
      
<br>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg00015.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00017.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00017.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00090.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00016">Author</A>
&nbsp;|&nbsp;<A HREF="#00016">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00016">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] 1997 CGDC AI Roundtable Moderator's Report</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
<LI><em>Subject</em>: [MUD-Dev] 1997 CGDC AI Roundtable Moderator's Report </LI>
<LI><em>From</em>: J C Lawrence &lt;<A HREF="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</A>&gt;</LI>
<LI><em>Date</em>: Wed, 01 Jul 1998 14:32:58 -0700</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>

Some of the internal references are utterly fascinating:

  URL:<A  HREF="http://www.cris.com/%7eswoodcoc/cgdc97notes.html">http://www.cris.com/%7eswoodcoc/cgdc97notes.html</A>

1997 CGDC AI Roundtable Moderator's Report 

by Steven Woodcock

Approach

When Neil, Eric, and myself first came up with the idea for expanding
on the AI roundtables from the 1996 CGDC, we did it in part out of a
sense of frustration over the crowded sessions prevalent at the 1996
CGDC. We felt that the large number of sessions we proposed, spread
out over the course of the convention, would greatly increase active
participation and overall satisfaction on the part of the roundtable
attendees. As the 1997 CGDC grew closer, we realized that we could
also use these sessions to "take the pulse" of gaming AI in general by
asking two questions at each session:

     What percentage of the CPU overall do you the AI programmer
     typically get for your processing? 
  
     Who many programmers are typically allocated on a full-time basis
     to build the AI?

Sunday Session, 4/27/97

There were roughly 29 people attending my first AI roundtable, with
two people leaving halfway through the discussion while two others
came in a few moments later. A wide variety of topics were discussed;
I broke the ice with the above two questions:

     CPU Percentage - Answers here varied from 1% - 5%, with the
     agreed-upon average being roughly 3% and the agreed-upon "ideal"
     being 10%. The general consensus was that more and more
     resources are being devoted to AI than in the past.

     Dedicated AI Programmers - Of the 29 attendees there were some
     10 ongoing projects; of those 10 projects, 4 had full-time
     dedicated AI folks. One of those had 2 dedicated AI
     programmers. The general consensus was again that more and more
     resources are being devoted to AI than in the past.

     Real-time vs. Turn-based - The first big topic was the
     discussion of real-time games vs.  Turn-based games and the
     impact this had on AI processing. Most attendees agree that
     real-time games took a heavier toll on AI, since the user was
     far more likely to be tolerant of waiting for a computer AI to
     finish its turn than to see a real-time game AI act stupidly.
     Command &amp; Conquer (of which almost all attendees were fans) was
     often used as an example of a game desperately seeking a better
     AI, and was often used as the example across several of the AI
     techniques discussed. The topic of the impact of real-time games
     on game AI design was a hot one that continued through all three
     sessions which I moderated.

     Planning, Goal Setting, and Cooperative AIs - There was some
     brief discussion on building intelligent, cooperative AIs that
     could both plan and set goals to be achieved. We briefly touched
     on a technology for cooperative AIs called blackboards, and at
     least one developer in the group was using blackboards for an
     upcoming sports game. We discussed the intended use of
     blackboards by Atomic in their Close Combat game as well as why
     they elected not to use them. General consensus was that
     goal-setting and planning will lend a more "realistic" flavor to
     AIs, while cooperative AIs were generally only needed in RPGs
     where several NPCs might be interacting with each other as well
     as the player.

     How Much AI Makes a Difference &amp; Cheating - Another topic that
     spurred excellent discussion was "when is enough enough" in game
     AI, which led in part to a discussion on when to have an AI
     cheat. Nearly every developer had built AIs that cheated for one
     reason or another, mostly to deliver a better gaming experience
     to the player. We agreed that this was perhaps the only reason
     for allowing cheating, though everyone also agreed (being
     engineers) that a non-cheating AI was to be preferred wherever
     possible. Using Warcraft II as an example, it was pointed out
     that the oft-observed problem of "peon traffic jams" could be
     easily solved-and enhance the player's gaming experience-if the
     AI cheated a bit when it detected a traffic jam. The AI could
     easily detect such a jam; if the player could see the jam, then
     presumably he would do something, but if the player is looking
     elsewhere, there's no reason why the AI couldn't simply
     "teleport" some of the peons to their destinations, thus freeing
     up the jam. The player likely would never know the jam occurred,
     and would not feel the frustration of being deeply involved in
     battle only to discover he had no resources with which to build
     reinforcements due to his peons being stuck.

     Cyberlife &amp; Artificial Life - There was some brief discussion on
     both artificial life in general and the Cyberlife technology
     used in the game Creatures in particular. As I had had some
     regular e-mail exchanges with Toby Simpson, one of the Creatures
     developers, I was asked to share some insight on the internal
     technology. (Several of those present are frequent visitors to
     my game AI web page, and so were aware of my admiration for the
     technology in Creatures.) We discussed the possibilities of
     using artificial life techniques in various games, particularly
     RPGs, but as nobody present was using them we quickly moved on.

     Scalability &amp; Adaptability - Some discussion occurred on the
     topic of building AIs which could adapt or "scale" themselves to
     the player as the player's ability at the game improved.  Nearly
     everybody present built their AI from the basis of creating the
     Expert AI first, then altering it as necessary to provide
     Beginner and Intermediate opponents. It was generally agreed
     that the best way to accomplish this was to develop the AI in an
     object-oriented fashion as much as possible, so that (for
     example) a more capable pathfinding algorithm might be
     substituted as the AI difficulty was ramped up. Most agreed that
     "soft" AI technologies, such as neural networks and genetic
     algorithms, offered the most potential for building AIs which
     could truly adapt to the player, though this in turn spawned a
     side discussion regarding whether such a thing was truly what
     the player wanted. The example posed along these lines was that
     of a typical game of Quake: does the player really want the
     enemies in Quake to play smarter and faster, so that he always
     faces the possibility of losing, or does he want to gradually
     get better than those enemies so that he can always vanquish
     them? Which is ultimately more satisfying for the gamer?

Monday Session, 4/28/97

The Monday session was the lightest of the three I moderated, with
only 20 people attending. It stands out as the only session across the
nine with one primary focus throughout, that being artificial life
(A-life) technology in general and the Cyberlife technology used in
Creatures in particular.  This was due both to my desire to revisit
the topic after its brief discussion in the first session and the
participation of Toby Simpson, one of the developers of the Cyberlife
technology:

     CPU Percentage - Answers on Monday were somewhat higher than the
     previous session, ranging from 5% - 10%. The Creatures game used
     roughly 50% of the CPU for pure AI; this was reasonable given
     its intent as a showcase of the Cyberlife technology. The
     general consensus as before was that more and more resources are
     being devoted to developing solid game AI.

     Dedicated AI Programmers - Half of the attendees were dedicated
     AI developers for the various projects they were working on.

         Cyberlife &amp; Artificial Life - This was far and away the main
         topic of conversation of this session, by popular demand. My
         listing of the topic on the board brought up several
         immediate comments, which led to discussion, and we never
         (frankly) had the need to move on to any other topics.

         Toby Simpson was a gracious participant and clearly
         understood his topic well. After the group briefly discussed
         the overall possibilities of using A-life for RPGs and
         strategy games, Toby was asked to discuss the Cyberlife
         technology used in the Creatures game. Toby described it as
         a mixture of neural nets, genetic algorithms, and fuzzy
         state machines, developed over the course of several years
         by a number of British researchers before being adapted into
         the Creatures game as a practical demonstration of its
         capabilities. The AI is self-modifying and can adapt itself
         over time as it interacts with the players, passing down
         various traits and behaviors genetically to offspring from
         generation to generation.

         Toby described in detail several surprising developments
         that have occurred with the Creatures AI engine as customers
         have reported them. Three stand out as evidence of the power
         of this technology and were the subject of much note-taking
         by participants:

                 During the development of the game one programmer
                 came back from lunch to discover over 30 Creatures
                 running around in the game where there had been only
                 one.  Wondering how this could happen, he then saw a
                 Creature come into the "hatchery" with an egg (which
                 are randomly distributed about the environment) and
                 place it into the incubator until it hatched. This
                 Creature had learned by accident that eggs dropped
                 in the incubator made more Creatures, and Creatures
                 like having friends.

                 After the game was shipped developers witnessed what
                 could only be described as a suicide. Two Creatures
                 that were best friends often wandered around the
                 environment together, and eventually one of them
                 "died" of old age (they have a life-span of roughly
                 50 hours). Its friend refused to leave the body,
                 despite increasing biological needs for sleep and
                 food, until it too died of starvation.

                 By design, the Creatures' brain consists of roughly
                 nine "lobes", with each lobe dedicated to a specific
                 aspect of the Creatures' personality (emotions,
                 learning, etc.). A player of the game sent the
                 developers a Creature which had evolved two
                 additional lobes. Examination and testing showed
                 that this "mutant" was slightly better than a
                 "normal" Creature-it learned faster and seemed
                 somewhat more intelligent.

     After much discussion of A-life we moved to quick discussion of
     cheating and the stability of rules-based systems vs. A-life
     systems. It was generally agreed (though perhaps not by Toby)
     that rules-based AIs were probably sufficient, if well designed,
     to provide the player with a fun gaming experience. Rules-based
     systems have the general advantage of making it easier for the
     developer to cheat if necessary, whereas A-life systems, being
     something of "black boxes", could be harder to constrain.

Tuesday Session, 4/29/97

The final session touched on a number of topics that Neil's and Eric's
roundtables had discussed but which hadn't been brought up in any of
my sessions. After hitting the 30 attendees up for their CPU and
dedicated programmer numbers, we then moved on to a topic obviously
inspired by the Adding Extensible Custom Languages to Game Engines
session the previous day:

     CPU Percentage - Most developers felt that they used roughly 5%
     of the CPU for real-time games and 10% for turn-based games. The
     AI developer for the upcoming X-Com 3 reported an astounding 25%
     CPU utilization, easily the highest reported in any of my
     sessions (barring Creatures, which is something of an
     exception).

     Dedicated AI Programmers - Roughly half of the attendees were
     dedicated AI developers for the various projects they were
     working on. Two developers reported two dedicated AI
     programmers, with three others reporting one full-time and one
     half-time developers.

     Extensible AIs - I began by listing a number of topics on the
     board which had not yet been discussed in any of my roundtables,
     and the topic of extensible AIs (that is, AIs which are modular
     and easily modifiable by either the developer of the player) was
     quickly seized upon by a number of participants. Several of us
     had attended the Adding Extensible Custom Languages to Game
     Engines session the previous day and it had obvious applications
     for game AI. Quake offers a method for player-built AIs to be
     created and inserted into the game via their Quake-C interface,
     and was often referred to throughout the course of the
     discussion.  Several developers revealed that they used various
     forms of scripting to build and/or control their game AIs, which
     one revealed that he was implementing the AI for his game (a
     racing game) as a Windows .DLL file which would be accessible to
     the user for modification. A lively debate ensued when several
     attendees opined that an extensible AI was a sign of poor game
     design, indicative of developers focusing more on graphics than
     on gameplay. No consensus was reached, though several excellent
     examples both pro and con were kicked around.

     We also briefly visited the concept of marketability...how much
     does an extensible AI add to the selling power of a game? It was
     generally agreed that it made add-ons and upgrades far easier,
     and that it wouldn't hurt sales and might increase them somewhat
     as people otherwise not interested in the game bought it as an
     AI testbed. This in turn led to a discussion of what kind of
     resources building an extensible AI required in terms of
     manpower and game schedules. The industry-wide pressure to "ship
     it now!" often makes building a "non-stupid" AI difficult, much
     less an extensible one.

     Avoiding Artificial Stupidity - An awful lot of developers were
     less concerned with building a smart AI as simply building one
     that didn't act like a moron. The AI in Command &amp; Conquer was
     often cited as an example of the latter, particularly the
     harvester bug (wherein your harvester will cheerfully blunder
     into an enemy camp looking for Tiberium and get destroyed). With
     very little effort (it was felt) this could have been avoided
     through a number of methods ranging from influence mapping to a
     simple "if you're shot at run away!" rule. It was felt that a
     bad AI will garner much negative press, whereas a good AI might
     never really be appreciated in a multi-player game. Then again,
     as one attendee pointed out, C&amp;C has sold over 4 million units,
     possibly demonstrating that good game AI isn't all that
     important.

     Testing AI - Attendees agreed that this was a difficult
     proposition, and many were looking for answers at the
     roundtable. Most developers of rules-based systems used a
     "tournament" approach, building several AI variations and
     pitting them against each other and playtesters to see which
     fared best. Nearly everybody used extensive debugging and
     runtime information files to dump the AI's "thinking" process
     for later examination for obvious errors. Games using A-life and
     other soft AI techniques (there were four developers present
     building games using A-life, neural networks, or genetic
     algorithms) faced a somewhat tougher testing problem, since the
     behavior of the AI in these cases was often emergent rather than
     programmed. All agreed that the only real way to test was
     playtesting, playtesting, playtesting.

     RPGs - One topic which garnered somewhat more interest in the
     last session than in others was the use of good AI for role
     playing games. In light of the upcoming large online RPGs, some
     developers wondered how to build believable non-player
     characters (NPCs) which could interact with the players
     intelligently. A variety of approaches were discussed, most
     being mixtures of rules-based and A-life. Ultima Online was
     brought up as an interesting example of a quasi A-life approach
     backed up by careful overview of Game Moderators to prevent
     things from getting too wildly out of hand.

Conclusions

By our count the total attendance at the AI roundtables this year was
201 people. We achieved our goals of increasing the number of seats
available while simultaneously increasing overall participation; the
average session size of 25 people in each of my sessions was just
about perfect in my opinion. I strongly urge and recommend that we use
this format again for next years' CGDC, and I know I can speak for
both Neil and Eric that we would be happy to do this again.


Steven Woodcock 

Lockheed-Martin Real3D 

Wyrd Wyrks 

-- 
J C Lawrence                               Internet: claw#null,net
(Contractor)                               Internet: coder#ibm,net
---------(*)                     Internet: claw#under,engr.sgi.com
...Honourary Member of Clan McFud -- Teamer's Avenging Monolith...


</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<ul compact><li><strong>Follow-Ups</strong>:
<ul>
<li><strong><A NAME="00090" HREF="msg00090.html">[MUD-Dev] Re: 1997 CGDC AI Roundtable Moderator's Report</A></strong>
<ul compact><li><em>From:</em> J C Lawrence &lt;claw#under,engr.sgi.com&gt;</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00015.html">[MUD-Dev] Summary: "Influence Mapping"</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00017.html">[MUD-Dev] Summary: Recognizing Strategic Dispositions</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00017.html">[MUD-Dev] Summary: Recognizing Strategic Dispositions</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00090.html">[MUD-Dev] Re: 1997 CGDC AI Roundtable Moderator's Report</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00016"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00016"><STRONG>Thread</STRONG></A></LI>
</UL>
</LI>
</UL>

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<ul><li>Thread context:
<BLOCKQUOTE><UL>
<LI><STRONG>[MUD-Dev] Re: You think users won't number crunch and statis</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<LI><strong><A NAME="00218" HREF="msg00218.html">[MUD-Dev] Re: You think users won't number crunch and statis</A></strong>, 
Katrina McClelan <a href="mailto:kitkat#the486,bradley.edu">kitkat#the486,bradley.edu</a>, Wed 15 Jul 1998, 02:42 GMT
</LI>
</ul>
</ul>
</ul>
</ul>
</ul>
<LI><strong><A NAME="00041" HREF="msg00041.html">[MUD-Dev] Re: You think users won't number crunch and statistise your MUD?</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Fri 03 Jul 1998, 01:54 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00018" HREF="msg00018.html">[MUD-Dev] Re: roleplaying farmers?</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Jul 1998, 21:45 GMT
<LI><strong><A NAME="00017" HREF="msg00017.html">[MUD-Dev] Summary: Recognizing Strategic Dispositions</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Jul 1998, 21:38 GMT
<LI><strong><A NAME="00016" HREF="msg00016.html">[MUD-Dev] 1997 CGDC AI Roundtable Moderator's Report</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Jul 1998, 21:34 GMT
<UL>
<LI><strong><A NAME="00090" HREF="msg00090.html">[MUD-Dev] Re: 1997 CGDC AI Roundtable Moderator's Report</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 08 Jul 1998, 18:39 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00015" HREF="msg00015.html">[MUD-Dev] Summary: "Influence Mapping"</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Jul 1998, 21:25 GMT
<LI><strong><A NAME="00014" HREF="msg00014.html">[MUD-Dev] Elven Language List</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Jul 1998, 21:25 GMT
<LI><strong><A NAME="00013" HREF="msg00013.html">[MUD-Dev] Re: Databases: was Re: skill system</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Jul 1998, 20:47 GMT
</LI>
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>