<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.aigamedev.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.aigamedev.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Game AI for Developers</title>
	<link>http://aigamedev.com</link>
	<description>Game AI for Developers</description>
	<image><url>http://files.aigamedev.com/LOGO-FEED.png</url><title>Game AI for Developers</title></image>
	<pubDate>Fri, 14 Nov 2008 20:56:34 +0000</pubDate>
	<language>en</language>
			<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.aigamedev.com/AiGameDev" type="application/rss+xml" /><feedburner:emailServiceId>933920</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.aigamedev.com%2FAiGameDev" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.aigamedev.com%2FAiGameDev" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.aigamedev.com%2FAiGameDev" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.aigamedev.com/AiGameDev" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.aigamedev.com%2FAiGameDev" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.aigamedev.com%2FAiGameDev" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.aigamedev.com%2FAiGameDev" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>Real-Time Planning for Parameterized Human Motion</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/453356972/planning-parameterized-human-motion</link>
		<comments>http://aigamedev.com/theory/planning-parameterized-human-motion#comments</comments>
		<pubDate>Fri, 14 Nov 2008 20:56:34 +0000</pubDate>
		<dc:creator>Alex J. Champandard</dc:creator>
		
		<category><![CDATA[Theory]]></category>
<category>artificial intelligence</category><category>character animation</category><category>game ai</category><category>game development</category><category>motion capture</category><category>motion graph</category><category>planning</category><category>reinforcement learning</category><category>white paper</category>
		<guid isPermaLink="false">http://aigamedev.com/theory/planning-parameterized-human-motion</guid>
		<description><![CDATA[ 
The latest addition to list of white papers on game AI in the AiGameDev.com wiki and to our growing collection of technical videos is a new research project on the subject of motion planning.  Special thanks to Lucas Kovar for pointing it out.  (Reminder: We&#8217;re running a masterclass on animation with Lucas this [...] ]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<img hspace="1em"  align="left"  src="http://files.aigamedev.com/theory/rtpphm-icon.jpg"  alt=""  class="left"   style="float: left; margin-right: 1em;"/>
<p>The latest addition to list of <a href="http://wiki.aigamedev.com/Papers/" >white papers on game AI</a> in the <tt>AiGameDev.com</tt> wiki and to our growing collection of <a href="http://www.youtube.com/aigamedev" >technical videos</a> is a new research project on the subject of motion planning.  Special thanks to <i>Lucas Kovar</i> for pointing it out.  (Reminder: We&#8217;re running a masterclass on animation with Lucas this weekend if you&#8217;re a member.)</p>
<p>This paper by Wan-Yen Lo and Matthias Zwicker, presented at this year&#8217;s Symposium on Computer Animation 2008, shows how to apply reinforcement learning to the problem of planning motion based on parameterized animations.  Technically, this is quite a challenging problem, so it&#8217;s nice to see people trying to address this and find efficient solutions that can potentially be used for controlling game characters.</p>
<p><span id="more-843" ></span></p>
<div class="image"   style="text-align: center;">
<object width="425"  height="344" >
<param name="movie"  value="http://www.youtube.com/v/eBKMkzVRl6E&#038;hl=en&#038;fs=1" /></param>
<param name="allowFullScreen"  value="true" /></param>
<param name="allowscriptaccess"  value="always" /></param><embed src="http://www.youtube.com/v/eBKMkzVRl6E&#038;hl=en&#038;fs=1"  type="application/x-shockwave-flash"  allowscriptaccess="always"  allowfullscreen="true"  width="425"  height="344" ></embed></object>
</div>
<h3>Motivation</h3>
<p>Increasingly, games rely on more and more motion capture data &mdash; which causes many problems in practice:</p>
<ol>
<li><p>Building motion controllers manually to decide, for example, how you can move to a specific location or pick up and object can take a lot of work.  Automating this, however can be difficult in practice.</p></li>
<li><p>Planners provide one approach to automatically working out valid sequences of motion segments, but they struggle with the size of motion graphs used in modern games.</p></li>
<li><p>Solutions based on reinforcement learning can be a little unstable, and also have trouble dealing with the complexity of the problem in practice.</p></li>
</ol>
<p>The paper described here addresses these issues by automatically calculating a reactive policy for deciding which animations to play.</p>
<h3>Contributions</h3>
<p>The main contribution of this work is to apply reinforcement learning to the problem, with many improvements.  In particular:</p>
<ul>
<li><p>The RL technique is based on a &#8220;tree-based fitted iteration algorithm&#8221; which approximate the optimal long-term reward function using a planning like approach.</p></li>
</li>
<li><p>The system presented here can deal with parametric motions, so it&#8217;s possible to learn a policy to control an actor to reach the exact point in space.  (Applying reinforcement learning to such continuous problems is not a trivial task.)</p></li>
</ul>
<p>This solution can help automatically craft locomotion controllers based on an underlying parametric graph, and even plan to pick up and interact with arbitrary objects in space.</p>
<div class="image"   style="text-align: center;">
<img src="http://files.aigamedev.com/theory/rtpphm-space.png"  alt="" />
<p  style="font-style: italic;"><br/><u>Figure 1</u>: Partitioning of space to help guide the algorithm when searching for control policies.</p>
</div>
<h3>Abstract &#038; References</h3>
<p>The abstract of the paper is the following:</p>
<blockquote><p>&#8220;We present a novel approach to learn motion controllers for real-time character animation based on motion capture data. We employ a tree-based regression algorithm for reinforcement learning, which enables us to generate motions that require planning. This approach is more flexible and more robust than previous strategies. We also extend the learning framework to include parameterized motions and interpolation. This enables us to control the character more precisely with a small amount of motion data. Finally, we present results of our algorithm for three different types of controllers.&#8221;</p></blockquote>
<p>You can download the paper from the website:</p>
<pre class="paper"   style="padding-left: 72px; background: #e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Real-Time Planning for Parameterized Human Motion</b>
Wan-Yen Lo and Matthias Zwicker
Eurographics Symposium on Computer Animation, 2008.
<a href="http://graphics.ucsd.edu/~wanyen/data/sca08.pdf" >Download PDF</a> (3.3 Mb)
</pre>
<h3>Evaluation</h3>
<p>In practice, here&#8217;s how it all applies to artificial intelligence in game development.</p>
<dl>
<dt  style="font-weight: bold;">Applicability to games: 6/10</dt>
<dd>Game developers typically try to create predictable solutions technically to solve problems in AI and animation.  Such a reinforcement learning system could help craft animation policies offline, and seems like a natural complement to any solutions based on planning.  However, the down side is that it&#8217;s not sure how well this solution scales up to handling many motions and many parameters &mdash; which makes it a bit of a risk for game developers.</dd>
<dt  style="font-weight: bold;">Usefulness for character AI: 7/10</dt>
<dd>The general idea of pre-calculating reactive policies from a motion graph search is particularly useful, since many game actors will require tight control over the movement without too much replanning.  Though, these kinds of precalculations can be done in many different ways, and it&#8217;s arguable whether a manually crafted controller wouldn&#8217;t be worth the investment even if it did require more time.</dd>
<dt  style="font-weight: bold;">Simplicity to implement: 3/10</dt>
<dd>This kind of animation technology stack in general takes a lot of time to get up and running, and even if you&#8217;ve done this kind of work before it can take months before you&#8217;re ready to provide interactive control.  On top of the parametric motions, you&#8217;ll then need to build a reinforcement learning system as well as the basic tree search, so adopting the solution presented in this paper is not an easy decision to make.</dd>
</dl>
<div class="image"   style="text-align: center;">
<img src="http://files.aigamedev.com/theory/rtpphm-param.png"  alt="" />
<p  style="font-style: italic;"><br/><u>Figure 2</u>: Encoding of continuous motion parameters so they can be solved using reinforcement learning.</p>
</div>
<p><b>What do you think about this technology and its application to game AI?  <a href="#comment" >Post a comment</a> below.</b></p>
<div style="padding-top: 2em; text-align: center;"></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/453356972" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/theory/planning-parameterized-human-motion/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Ftheory%2Fplanning-parameterized-human-motion</feedburner:awareness><feedburner:origLink>http://aigamedev.com/theory/planning-parameterized-human-motion</feedburner:origLink></item>
		<item>
		<title>Game AI Roundup Week #45 2008: 13 Stories, 1 Video, 1 Paper</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/447919506/2008-week-45</link>
		<comments>http://aigamedev.com/links/2008-week-45#comments</comments>
		<pubDate>Mon, 10 Nov 2008 01:47:26 +0000</pubDate>
		<dc:creator>Novack</dc:creator>
		
		<category><![CDATA[Roundup]]></category>
<category>aigamedev</category><category>animation</category><category>behavior</category><category>behaviors</category><category>conference</category><category>design</category><category>game ai</category><category>game development</category><category>industry</category><category>middleware</category><category>navigation</category><category>next-gen</category><category>pathfinding</category><category>programming</category><category>sensory system</category>
		<guid isPermaLink="false">http://aigamedev.com/links/2008-week-45</guid>
		<description><![CDATA[Weekends at AiGameDev.com are dedicated to rounding up smart links from the web relating to artificial intelligence and game development.  This roundup, we have as much of content, as we did&#8217;nt have in weeks: many very good articles and blog posts around the web! Remember, there’s also lots of great content to be found [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<p>Weekends at <tt>AiGameDev.com</tt> are dedicated to rounding up smart links from the web relating to artificial intelligence and game development.  This roundup, we have as much of content, as we did&#8217;nt have in weeks: many very good articles and blog posts around the web! Remember, there’s also lots of great content to be found in the <a href="http://aigamedev.com/forums/" >forums</a> here! (All you have to do is introduce yourself.) Also don&#8217;t forget the <a href="http://twitter.com/aigamedev" >Twitter</a> account for random thoughts!</p>
<p>This post is brought to you mostly by <i>Marcos Novacovsky</i> (aka &#8220;Novack&#8221;). If you have any news or tips for next week, be sure to email them in to <tt>editors</tt> at <tt>AiGameDev.com</tt>.  Remember there’s a mini-blog over at <a href="http://news.AiGameDev.com" >news.AiGameDev.com</a> (<a href="http://feeds.aigamedev.com/GameAiNews" >RSS</a>) with game AI news from the web as it happens.</p>
<div class="image"   style="text-align: center;">
<img src="http://files.aigamedev.com/splash/LINEUP.jpg" />
</div>
<p><span id="more-834" ></span></p>
<h3>BrainWorks: Do Not Want!</h3>
<p>As often, we open this week stories Roundup with an article from <em>Ted Vessenes</em>, who posted in his blog an article on how the BrainWorks bots perform <em>dodging</em>.</p>
<blockquote><p>When a bot needs to dodge a missile, the bot considers the eight possible directions it can move in (forward, backward, left, right, and each diagonal), plus the “dodge” of standing still. Any movement direction that collides with an incoming missile is considered completely off limits. Yes, it’s bad to get “herded” where the enemy wants you to go, but that’s a situation the bot can deal with later. There’s no sense in eating a rocket now so that the bot might not take other damage later. Priority number one is always avoiding incoming damage.</p></blockquote>
<ul>
<li><p><a href="http://brainworks-ai.blogspot.com/2008/11/do-not-want.html" >BrainWorks: Do Not Want!</a></p></li>
</ul>
<h3>Marcus Fenix don&#8217;t cheat this time</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/11/gearsofwar2.JPG" />
<br/><br/>
</div>
<p>Good points for <strong>Gears of War 2</strong>&#8217;s AI, in a short paragraph that can be read at <u>WorthPlaying</u>.</p>
<blockquote><p>Enemies react intelligently to your advances. You’ll find them taking cover as well as using flanking tactics when appropriate. The AI is by no means perfect, but it does an excellent job of being challenging rather than simply being hard. This is a key point of differentiation that really stands out on the higher difficultly levels. Playing through the entire single-player experience on hardcore took us about 17 hours. While there were plenty of deaths mixed in there, the vast majority of them felt like honest mistakes. There was never a sense of, “Hey, the game is cheating.”</p></blockquote>
<ul>
<li><p><a href="http://www.worthplaying.com/article.php?sid=57291" >WorthPlaying - Xbox 360 Review - &#8216;Gears of War 2&#8242;</a></p></li>
</ul>
<h3>AIIDE Dan’s Diary: Reloaded</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/11/aiide-logo-small.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p>Two weeks ago, on the <a href="http://aigamedev.com/links/2008-week-43" >43th Roundup</a> I commented about a post at the <em>Dan Kline</em>&#8217;s blog <u>Game of Design</u>, where he wrote a series of articles about his experiences at the <acronym title="Artificial Intelligence and Interactive Digital Entertainment Conference" >AIIDE</acronym>. Now he refactored those posts, and managed to turn them even better:</p>
<blockquote><p>I’m editing these notes a week after the fact, just making it readable, but I’ve left the original voice in this piece and roughness intact because I feel the live-blogging depth is more interesting then a concise, thoughtful analysis would be. I’m happy to answer any questions people have, though, and I encourage you to contact the original presenters as well for more thorough details.</p></blockquote>
<ul>
<li><p><a href="http://dankline.wordpress.com/2008/11/03/aiide-day-3-live-blogging/" >Game of Design - AIIDE 2008 Day 3: Live Blogging</a></p></li>
</ul>
<h3>Sanjeev and his Green Destiny</h3>
<p><em>Sanjeev Chandran</em> posted in his blog and interesting article on Game AI, related to design and gameplay essence.</p>
<blockquote><p>Generally, most research done by academics is of some use commercially. And naturally, one would expect the same to be the case in game AI research also. Only, its not. Commercial games concentrate more on the graphics, and the user experience part of the game, when compared to AI. If there is a bold announcement from the industry stating that the next edition of their game is to have the ‘next-generation-human-like-AI’, they have mostly been huge let-downs, and miserable failures. The strongest AI, in commercial games, these days are those that ‘cheat’. Have you never wondered in-game, at least in the harder levels, ‘When did he get so much points?’,’Does his nitrous never.</p></blockquote>
<ul>
<li><p><a href="http://thegreendestiny.wordpress.com/2008/11/03/game-ai/" >Game AI « Sanjeev and his Green Destiny</a></p></li>
</ul>
<h3>Semi-Official PlayStation Blog: AI series</h3>
<p><u>Three Speech</u>, a blog produced in partnership with PlayStation, published an awesome series of articles on Game AI, entitled &#8220;Intelligent design: where is AI going?&#8221;. The series, starting with a post on Autonomy, continues to -currently- up to five articles on Perception, Appearance and Deception, Navigation, and Unpredictability.</p>
<h4>Autonomy</h4>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/11/deadspace.JPG" />
<br/><br/>
</div>
<blockquote><p>We all know what bad AI is. That moment a soldier gets stuck behind a small piece of foliage, doomed to complete the same running animation for the rest of eternity. Or when a group of aliens just leaps at you, spurning any opportunity for cover, in order to sacrifice themselves to your whirring mini-canon. And even if they do disappear behind a clump of rocks, they’ll usually end up poking their heads up every eight seconds in exactly the same place, allowing you to pick them off like sickly elephants at an illegal safari hunt.</p></blockquote>
<ul>
<li><p><a href="http://threespeech.com/blog/2008/11/intelligent-design-where-is-ai-going-part-one-autonomy/" >Part one - Autonomy…</a></p></li>
</ul>
<h4>Perception</h4>
<blockquote><p>Simulated sensory systems have been a part of enemy AI for several years. In the classic Thief series, guards were able to investigate noises and glimpsed movements, a feature later refined in the likes of Halo and Crysis. Nowadays, sensory data seems ever more complex, with enemies following blood trails (Alone in the Dark) or even sniffing you out on the wind (Metal Gear Solid 4). Is this a vital development? Where will it lead? Today we ask a selection of developers about bringing AI characters to their senses…</p></blockquote>
<ul>
<li><p><a href="http://threespeech.com/blog/2008/11/intelligent-design-where-is-ai-going-part-two-perception/" >Part two - Perception…</a></p></li>
</ul>
<h4>Appearance and Deception</h4>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/11/prototype.JPG" />
<br/><br/>
</div>
<blockquote><p>Programming advanced AI is only part of the equation for game developers - players have to actually appreciate the intelligence of their enemies in order for it to have value; for it to be fun. Today, we’re looking at how animation and audio are being used to accentuate great AI.</p></blockquote>
<ul>
<li><p><a href="http://threespeech.com/blog/2008/11/intelligent-design-where-is-ai-going-part-three-appearance-and-deception/" >Part three: appearance and deception</a></p></li>
</ul>
<h4>Navigation</h4>
<blockquote><p>Beneath all the higher ambitions for artificial intelligence in games, one basic, fundamental task remains: pathfinding. Simply telling a character how to get from A to B is a complex mathematical undertaking, and the perfect, foolproof solution remains elusive.</p></blockquote>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/11/wheelman.JPG" />
<br/><br/>
</div>
<ul>
<li><p><a href="http://threespeech.com/blog/2008/11/intelligent-design-where-is-ai-going-part-four-navigation/" >Part four: navigation</a></p></li>
</ul>
<h4>Unpredictability</h4>
<blockquote><p>This is the controversial one. Emergent behaviours are non-scripted, un-planned activities that intelligent game characters learn through their interactions with the game world. Even the programmer won’t know what they’re going to do. There have been some amazing examples – the giant beasts in Black and White, the cute critters in the mid-nineties artificial life experiment, Creatures… But can true enemy unpredictability work in games? Today’s AI coders aren’t so sure.</p></blockquote>
<ul>
<li><p><a href="http://threespeech.com/blog/2008/11/intelligent-design-where-is-ai-going-part-five-unpredictability/" >Part five - unpredictability</a></p></li>
</ul>
<h3>Stanford Conference Explores The State Of AI</h3>
<p>Dan Kline, also wrote another summary of the <acronym title="Artificial Intelligence and Interactive Digital Entertainment Conference" >AIIDE</acronym> activities for <u>Gamasutra</u>.</p>
<blockquote><p>Late last month, international AI developers and researchers alike flocked to the annual Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford University. </p>
<p> Led by researchers Michael Mateas of <i>Facade</i> fame and Chris Darken of the Naval Postgradual School, the AIIDE conference focused specifically on bringing AI game programmers together with AI academics to share findings and discuss future collaborations.</p></blockquote>
<ul>
<li><p><a href="http://www.gamasutra.com/php-bin/news_index.php?story=20917" >Gamasutra - In-Depth: Stanford Conference Explores The State Of AI</a></p></li>
</ul>
<h3>PathEngine hits version 5.18</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/11/pathengineicon.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p><u>Develop</u> brought us the news of the latest version release of the pathing middleware solution.</p>
<blockquote><p>PathEngine has updated its pathfinding middleware to version 5.18. The latest edition brings with it significant optimisations in the pre-processing pipeline, adding a 2D overlap analysis phase to bypass BSP generation of non-overlapped terrain detail elements, and it now splits overlapping geometry into clumps for smaller BSP generation.</p></blockquote>
<ul>
<li><p><a href="http://www.developmag.com/news/30782/PathEngine-hits-version-518" >PathEngine hits version 5.18 | Game Development | News by Develop</a></p></li>
</ul>
<h3>Believability and attributional intentionality</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/11/believability.JPG" />
<br/><br/>
</div>
<p>An interesting post at the <em>Ian Horswill</em>’s blog, <u>Title TK</u>, on simple behaviors and perceived intelligence.</p>
<blockquote><p>The image above is a screenshot of what appears to be two child characters playing with one another while being watched by an adult. However, in actuality, what I’ve been implementing is attachment behavior, which is the response of children to stress by seeking out their caregiver (more on this another day). To implement that, I need to have something to stress the kids out. The right way to do it is to implement a real social engagement system with wariness and coy behaviors, play, turn-taking, etc. However, the first step in that is simply to make a second child and then hack the children’s appraisal systems to assign negative valence to strangers (i.e. to each other). All that does is make the kids watch one another and keep their distance from one another. For example, one won’t approach the ball if the other is too close to it. There’s no real sociality going on there.</p></blockquote>
<ul>
<li><p><a href="http://ianhorswill.wordpress.com/2007/08/04/believability-and-attributional-intentionality/" >believability and attributional intentionality « Title TK</a></p></li>
</ul>
<h3>Synthesizing Behavioral Animation</h3>
<img hspace="1em"  align="left"  src="http://aigamedev.com/wp-content/uploads/2008/11/playball.JPG"  class="left"   style="float: left; margin-right: 1em;"/>
<p><em>Nick Porcino</em>, in his blog <u>meshula.net</u>, posted an article commenting the post by <em>Ian Horswill</em> (see above).</p>
<blockquote><p>Despite the apparently complex behavior, under the covers there are simple motivators driving the animation. The children want to approach the ball, but not each other. If they get close to the ball they kick it, and since they have been backing away from each other, they appear to kick it between themselves. If they get too far from the parent, a behavior kicks in where they run to the parent for a moment, then run back to play.</p></blockquote>
<ul>
<li><p><a href="http://meshula.net/wordpress/?p=215" >Synthesizing Behavioral Animation</a></p></li>
</ul>
<h3>Paper: Lightweight Procedural Animation&#8230;</h3>
<p>Also, related with the two stories above, a paper from <em>Ian Horswill</em>, presented at the <acronym title="Artificial Intelligence and Interactive Digital Entertainment Conference" >AIIDE</acronym>.</p>
<pre class="paper"   style="padding-left: 72px; background: #e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
Lightweight Procedural Animation with Believable Physical Interactions
Ian Horswill
2008
<a href="http://www.cs.northwestern.edu/~ian/AIIDE%20Twig%20paper.pdf" >Download PDF</a>
</pre>
<ul>
<li><p><a href="http://www.cs.northwestern.edu/~ian/" >Ian Horswill</a></p></li>
</ul>
<h3>Video: Searching Game Trees</h3>
<div class="image"   style="text-align: center;">
<object width="425"  height="344" >
<param name="movie"  value="http://www.youtube.com/v/SO-oXQgvJt4&#038;hl=es&#038;fs=1" /></param>
<param name="allowFullScreen"  value="true" /></param>
<param name="allowscriptaccess"  value="always" /></param><embed src="http://www.youtube.com/v/SO-oXQgvJt4&#038;hl=es&#038;fs=1"  type="application/x-shockwave-flash"  allowscriptaccess="always"  allowfullscreen="true"  width="425"  height="344" ></embed></object><br/>
<br/>
</div>
<blockquote><p>Lecture Series on Artificial Intelligence by Prof. P. Dasgupta, Department of Computer Science &#038; Engineering, I.I.T,kharagpur. For More details on NPTEL visit http://nptel.iitm.ac.in</p></blockquote>
<ul>
<li><p><a href="http://www.youtube.com/watch?v=SO-oXQgvJt4" >Searching Game Trees</a></p></li>
</ul>
<p><br/><br/>
<i>Stay tuned next week for more smart links from around the web!</i></p>
<div style="padding-top: 2em; text-align: center;"></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/447919506" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/links/2008-week-45/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Flinks%2F2008-week-45</feedburner:awareness><feedburner:origLink>http://aigamedev.com/links/2008-week-45</feedburner:origLink></item>
		<item>
		<title>AI &amp; Squad Movement in Dawn of War 2 with Chris Jurney</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/446908054/squad-ai-dawn-of-war-2</link>
		<comments>http://aigamedev.com/interviews/squad-ai-dawn-of-war-2#comments</comments>
		<pubDate>Sat, 08 Nov 2008 22:31:26 +0000</pubDate>
		<dc:creator>Alex J. Champandard</dc:creator>
		
		<category><![CDATA[Interviews]]></category>
<category>combat</category><category>engine</category><category>game ai</category><category>game development</category><category>pathfinding</category><category>real-time strategy</category><category>squad</category><category>strategy</category><category>video</category>
		<guid isPermaLink="false">http://aigamedev.com/interviews/squad-ai-dawn-of-war-2</guid>
		<description><![CDATA[ 
A few weeks ago, I had the pleasure of interviewing Chris Jurney, Senior AI Programmer on Dawn of War 2.  The interview took place online in front of a virtual audience in AiGameDev.com&#8217;s new members area.  Chris shared his thoughts and experiences for over an hour, and covered many fascinating topics around real-time [...] ]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<img hspace="1em"  align="left"  src="http://aigamedev.com/wp-content/uploads/2008/11/dawnofwar2.jpg"  class="left"   style="float: left; margin-right: 1em;"/>
<p>A few weeks ago, I had the pleasure of interviewing <i>Chris Jurney</i>, Senior AI Programmer on Dawn of War 2.  The interview took place online in front of a virtual audience in <tt>AiGameDev.com</tt>&#8217;s new members area.  Chris shared his thoughts and experiences for over an hour, and covered many fascinating topics around real-time strategy AI, path-finding in dynamic worlds, squad movement, vehicle turns, etc.</p>
<p>Below are two excerpts of the interview where Chris talks about applying and extending the AI system built for the highly acclaimed <i>Company of Heroes</i> game to the upcoming <i>Dawn of War 2</i>.</p>
<h3>About Chris</h3>
<p><i>Chris Jurney</i> is a Senior Programmer at Relic Entertainment, working on the AI for Dawn of War II. He previously wrote the path-finding system for Company of Heroes, and worked at Kaos Studios also as a Senior Programmer.</p>
<p><span id="more-832" ></span></p>
<h3>Audio / Video Recording</h3>
<div class="image"   style="text-align: center;">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  codebase=""  id="FEATURE"  width="512"  height="308" ></p>
<param name="movie"  value="http://files.aigamedev.com/videos/player.swf" />
<param name="allowfullscreen"  value="true" />
<param name="flashvars"  value="file=http://files.aigamedev.com/videos/dawn-of-war-2.mp4&amp;backcolor=0x000000&amp;frontcolor=0xCCCCCC&amp;lightcolor=0xFFFFFF" />
<embed name="FEATURE"  src="http://files.aigamedev.com/videos/player.swf"  width="512"  height="308"  type="application/x-shockwave-flash"  allowfullscreen="true"  flashvars="file=http://files.aigamedev.com/videos/dawn-of-war-2.mp4&amp;backcolor=0x000000&amp;frontcolor=0xCCCCCC&amp;lightcolor=0xFFFFFF" ></object><br/>
<br/><br/>
</div>
<p><b>Alex J. Champandard:</b> Were there any particular aspects to the pathfinding that turned out to be much better than you were expecting when you started? For example, the complexity of the maintaining of the higher level sector might have been something where you didn&#8217;t foresee the complexity of. On the other side of the scale did you have anything that worked out much better than you thought it would?</p>
<p><b>Chris Jurney:</b> Yes, a couple of things, I guess. One, the use of multiple copies of the map to support different pass types. In the Company of Heroes engine and in Dawn of War the designers can actually add new movement capabilities to the units based entirely on the data. So if they decide they want to add a burrowing unit then all they have to do is to add the burrowing type to the data and specify which buildings and terrain features block burrowing units or not. And then all of a sudden the pathfinding supports burrowing. So that was really handy and that propagates through all the maps, the sector maps and the grids and everything.</p>
<p>I was also really happy with the formations system worked out really well. We worked really hard to make the group movement in Company of Heroes look non-robotic. We were observing our previous RTSs and a lot of other RTSs on the market. When you issue a move order to units or whenever they&#8217;re moving across the terrain, they don&#8217;t really look like real living things. They look like little blips on a radar, with legs spinning under them. We spent a lot of time getting that motion to be organic. I thought that worked out really well.</p>
<p><b>Alex J. Champandard</b> So here is your chance to sell the game to us! What features in Dawn of War 2 in the AI are you particularly fond of?</p>
<p><b>Chris Jurney: </b> I think my favorite part is how the squad plans evolve to handle the universe of Dawn of War. One of the tough things about this game was, that there is vastly more unit types. So in Company of Heroes, when we make one animation, it applies to every character in the game. All humans run the same and all our characters are human in that game. Whereas in Dawn of War all the characters&#8230; the characters are vastly different. Scales, even when they&#8217;re bipeds, some of them have more legs than others, more arms. So it made it&#8230; it was a bit limiting in the range of animation that we could get.</p>
<p>But on the upside, and the thing that I think came out really great&#8230; is that the units have drastically wider capabilities. For example the Eldar have the ability to teleport. So that plays into how they react in a squad combat situation. I they&#8217;re going to move up to cover, they&#8217;re not going to run there. They&#8217;ve got a teleport pack on. That plays out really interestingly. I think it looks super cool when instead of doing leapfrogging as a walk they&#8217;ll teleport from cover to cover until they can finally kill you the way they want. And the same goes&#8230; some of our units have flight. Space marines have jetpacks on. If they&#8217;re going to run up to you in combat, they&#8217;re not going to run, right? They&#8217;re going to charge in, use their jetpacks. They might bounce from cover to cover on the way in. So, all those really extreme unit types combined with the squad AI system make for a lot of fun.</p>
<div class="image"   style="text-align: center;">
<a href="http://aigamedev.com/go/amazon/B0018KM6GM" ><img src="http://files.aigamedev.com/videos/dawn-of-war-2.jpeg"  alt="Dawn of War 2" /></a><br/>
<br/><br/>
</div>
<p><b>If you have any thoughts or comments about this interview, feel free to post them below!</b></p>
<div style="padding-top: 2em; text-align: center;"></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/446908054" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/interviews/squad-ai-dawn-of-war-2/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Finterviews%2Fsquad-ai-dawn-of-war-2</feedburner:awareness><feedburner:origLink>http://aigamedev.com/interviews/squad-ai-dawn-of-war-2</feedburner:origLink></item>
		<item>
		<title>Research into C++ Object / Attribute System for Low-Level Game Frameworks</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/443513648/research-object-attribute-systems</link>
		<comments>http://aigamedev.com/programming-tips/research-object-attribute-systems#comments</comments>
		<pubDate>Wed, 05 Nov 2008 18:28:24 +0000</pubDate>
		<dc:creator>Alex J. Champandard</dc:creator>
		
		<category><![CDATA[Programming Tips]]></category>
<category>CPP</category><category>debugging</category><category>engine</category><category>framework</category><category>game ai</category><category>game development</category><category>language</category><category>library</category><category>programming</category><category>scripting</category><category>tools</category>
		<guid isPermaLink="false">http://aigamedev.com/programming-tips/research-object-attribute-systems</guid>
		<description><![CDATA[ 
Most commercial games have their own object / attribute system.  From one engine to another, these frameworks provides more or less features depending on the style of C++ that&#8217;s used.  In general, the job of an object / attribute system is to provide a variety of features which help building the rest of [...] ]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<img hspace="1em"  align="left"  src="http://aigamedev.com/wp-content/uploads/2008/11/objects.jpg"  class="left"   style="float: left; margin-right: 1em;"/>
<p>Most commercial games have their own object / attribute system.  From one engine to another, these frameworks provides more or less features depending on the style of <tt>C++</tt> that&#8217;s used.  In general, the job of an object / attribute system is to provide a variety of features which help building the rest of the game code on top.</p>
<p>For instance, there are a bunch of common game development tasks that you can use an object / attribute system for automating the process of:</p>
<ul>
<li><p>Binding an object to a <strong>scripting language</strong> or console commands.</p></li>
<li><p><strong>Serializing</strong> an object to disk in binary form and restoring it.</p></li>
<li><p>Packing up attributes of an object to send over a <strong>network</strong>.</p></li>
<li><p>Providing runtime <strong>introspection</strong> facilities to the game code.</p></li>
</ul>
<p>There&#8217;s a variety of articles on this topic, and here&#8217;s my research on the subject.  Big thanks go to <a href="http://meshula.net/" >Nick Porcino</a> for both providing source to his experiments and blogging about his reading.  Also, credits go to <a href="http://bjoernknafla.de/" >Bjoern Knafla</a> and <a href="http://www.iguanademos.com/Jare/" >Javier Arévalo</a> for providing useful pointers in the <tt>AiGameDev.com</tt> forums.  Read <a href="http://forums.aigamedev.com/showthread.php?t=1575" >this thread</a> in our forums for more details (free registration and introduction required).</p>
<p><span id="more-830" ></span></p>
<p class="message"   style="border: 1px dashed #444; background-color: #ddd; padding: 1em;">This posts looks at the background research behind such object systems.  <a href="http://aigamedev.com/feed/" >Stay tuned</a> for a follow-up article on the subject as these ideas are applied to the <tt>AiGameDev.com</tt> Sandbox!</p>
<h3>How Does It Work?</h3>
<p>The basic idea is to use a subset of C/C++ to help expose variables.  This is almost like a domain specific language for the kind of attributes you need to expose, and what information each attribute needs to have (e.g. name, type, description, version, accessor / mutator, etc.).</p>
<p>For example, the code could look like this for a simple object that needs to have meta-data about attributes:</p>

<div class="wp_syntax" ><div class="code" ><pre class="cpp" ><span style="color: #e07000;" >struct</span> MyObject
<span style="color: #000000;" >&#123;</span>
  BEGIN_ATTRIBUTES<span style="color: #000000;" >&#40;</span>MyObject<span style="color: #000000;" >&#41;</span>;
    BIND<span style="color: #000000;" >&#40;</span>MyObject, a, <span style="color: #e07000;" >int</span>, <span style="color: #666666;" >&quot;Space for A.&quot;</span><span style="color: #000000;" >&#41;</span>;
    BIND<span style="color: #000000;" >&#40;</span>MyObject, b, <span style="color: #e07000;" >float</span>, <span style="color: #666666;" >&quot;Variable of B.&quot;</span><span style="color: #000000;" >&#41;</span>;
    BIND<span style="color: #000000;" >&#40;</span>MyObject, c, <span style="color: #e07000;" >double</span>, <span style="color: #666666;" >&quot;Contains C.&quot;</span><span style="color: #000000;" >&#41;</span>;
    BIND<span style="color: #000000;" >&#40;</span>MyObject, d, std::<span style="color: #dc1b01;" >string</span>, <span style="color: #666666;" >&quot;Stores D.&quot;</span><span style="color: #000000;" >&#41;</span>;
  END_ATTRIBUTES<span style="color: #000000;" >&#40;</span>MyObject<span style="color: #000000;" >&#41;</span>;
&nbsp;
  <span style="color: #e07000;" >int</span> a;
  <span style="color: #e07000;" >float</span> b;
  <span style="color: #e07000;" >double</span> c;
  std::<span style="color: #dc1b01;" >string</span> d;
<span style="color: #000000;" >&#125;</span>;</pre></div></div>

<p>There are a few online articles you can read on the subject, to get more information about different implementations:</p>
<ul>
<li><p><a rel="nofollow"  href="http://www.gamasutra.com/view/feature/3683/a_templated_c_attribute_library_.php" >A Templated C++ Attribute Library for Object Persistence and Export</a></p></li>
<li><p><a href="http://meshula.net/wordpress/?p=172" >Smallest Possible Useful C++ Attribute System, Part 1</a></p></li>
<li><p><a href="http://meshula.net/wordpress/?p=174" >Smallest Useful Attribute System Part 2</a></p></li>
<li><p><a href="http://meshula.net/wordpress/?p=184" >Smallest Possible Attribute System, Part 3</a></p></li>
</ul>
<p>It&#8217;s useful to realize that you can start with a pretty simple system, and as long as it can be easily introspected, new features can be added on top without too much work.  The basic information required is an array of attributes that&#8217;s stored per-class and accessible per-instance, such that data can be retrieved from objects at runtime after they have been initialized.</p>

<div class="wp_syntax" ><div class="code" ><pre class="cpp" ><span style="color: #e07000;" >struct</span> Attribute
<span style="color: #000000;" >&#123;</span>
  Type type;  <span style="color: #808080;" >// Enumeration of possible types.</span>
  <span style="color: #e07000;" >void</span>* pointer;  <span style="color: #808080;" >// Member variable pointer.</span>
  <span style="color: #e07000;" >const</span> <span style="color: #e07000;" >char</span>* name; <span style="color: #808080;" >// String for debugging.</span>
<span style="color: #000000;" >&#125;</span>;
&nbsp;
<span style="color: #e07000;" >class</span> Object
<span style="color: #000000;" >&#123;</span>
<span style="color: #e07000;" >public</span>:
  <span style="color: #e07000;" >static</span> std::<span style="color: #dc1b01;" >vector</span>&lt;Attribute&gt; attributes;
<span style="color: #000000;" >&#125;</span>;</pre></div></div>

<p>That&#8217;s the gist of it in theory; it&#8217;s not complex since it&#8217;s the kind of stuff other more dynamic languages provide by default, but in practice when you implement it at a low-level in <tt>C++</tt>, there are many choices to make.</p>
<h3>Implementation Choices</h3>
<p>Many of the decisions of how you build the system will depend on your programming style.  These may not affect the end-result, but such decisions often have an impact on efficiency and usability.  For instance:</p>
<ol>
<li><p>How extensively to use C++ templates vs. macros and function pointers.</p></li>
<li><p>Whether to require inheriting from a base class to provide core functionality.</p></li>
<li><p>If you should support versioning of the attributes or not, and how to fallback.</p></li>
<li><p>Whether variables can be bound under different names if necessary.</p></li>
<li><p>How to expose the code, in a class header or hidden in the <tt>.cpp</tt> file.</p></li>
<li><p>If the overhead for attributes should per instance or once per class.</p></li>
<li><p>Whether to reimplement C++ language features more simply and efficiently.</p></li>
<li><p>How to reduce declarations and redundancy when the attributes are declared.</p></li>
<li><p>If you should rely on external tools or parsers to help create the definition.</p></li>
</ol>
<p><i>Nick Porcino</i> has a lot to say on this subject, in particular he asks <a href="http://meshula.net/wordpress/?p=182" >Why Roll Your Own RTTI?</a>, he ponders about a <a href="http://meshula.net/wordpress/?p=177" >A Simple Type Mechanism</a> and finally he considers using an efficient <a href="http://meshula.net/wordpress/?p=183" >StringMap</a> for attribute lookups.</p>
<p>If you decide to go for the meta-programming approach outside of C++, there are some other systems you might want to look into.  In particular, check out <i>Naughty Dog</i>&#8217;s<br/>
<a href="http://www.naughtydog.com/corporate/press/GDC%202008/AdventuresInDataCompilation.pdf" >Adventures in Data Compilation</a> (PDF).  <i>Trolltech</i> also uses an external tool to pick up some of the event tables and other declarations inside the code; for details see <a rel="nofollow"  href="http://doc.trolltech.com/4.2/metaobjects.html" >Meta-Object System in Qt</a>.  Finally, you might want to check out the <a href="http://seal-reflex.web.cern.ch/seal-reflex/index.html" >Reflex</a> project which provides this kind of functionality for <tt>C++</tt> code.</p>
<h3>Other References</h3>
<pre class="paper"   style="padding-left: 72px; background: #e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Dynamic Type Information</b>
Scott Wakelin
<a href="http://aigamedev.com/go/amazon/1584500549" >Game Programming Gems 2</a>, 38-45.
</pre>
<pre class="paper"   style="padding-left: 72px; background: #e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b> A Property Class for Generic C++ Member Access</b>
Charles Capelli
<a href="http://aigamedev.com/go/amazon/1584500549" >Game Programming Gems 2</a>, 46-50.
</pre>
<pre class="paper"   style="padding-left: 72px; background: #e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>A Generic Tweaker</b>
Kasse Staff Jensen
<a href="http://aigamedev.com/go/amazon/1584500549" >Game Programming Gems 2</a>, 118-126.
</pre>
<p><b>If you have any comments, references or additions feel free to post them in the comments below!</b></p>
<div style="padding-top: 2em; text-align: center;"></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/443513648" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/programming-tips/research-object-attribute-systems/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Fprogramming-tips%2Fresearch-object-attribute-systems</feedburner:awareness><feedburner:origLink>http://aigamedev.com/programming-tips/research-object-attribute-systems</feedburner:origLink></item>
		<item>
		<title>Game AI Roundup Week #44 2008: 9 Stories, 1 Video, 1 Quote</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/441697751/2008-week-44</link>
		<comments>http://aigamedev.com/links/2008-week-44#comments</comments>
		<pubDate>Tue, 04 Nov 2008 03:59:10 +0000</pubDate>
		<dc:creator>Novack</dc:creator>
		
		<category><![CDATA[Roundup]]></category>
<category>architecture</category><category>behavior</category><category>bot</category><category>conference</category><category>design</category><category>game ai</category><category>intelligent</category><category>language</category><category>pattern</category><category>scripting</category><category>simulation</category>
		<guid isPermaLink="false">http://aigamedev.com/links/2008-week-44</guid>
		<description><![CDATA[Weekends at AiGameDev.com are dedicated to rounding up smart links from the web relating to artificial intelligence and game development.  This week, we brought to you a variety of topics; as always, there are some good articles and blog posts for you to read. Remember, there’s also lots of great content to be found [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<p>Weekends at <tt>AiGameDev.com</tt> are dedicated to rounding up smart links from the web relating to artificial intelligence and game development.  This week, we brought to you a variety of topics; as always, there are some good articles and blog posts for you to read. Remember, there’s also lots of great content to be found in the <a href="http://aigamedev.com/forums/" >forums</a> here! (All you have to do is introduce yourself). Also don&#8217;t forget the <a href="http://twitter.com/aigamedev" >Twitter</a> account for random thoughts!</p>
<p>This post is brought to you mostly by <i>Marcos Novacovsky</i> (aka &#8220;Novack&#8221;). If you have any news or tips for next week, be sure to email them in to <tt>editors</tt> at <tt>AiGameDev.com</tt>.  Remember there’s a mini-blog over at <a href="http://news.AiGameDev.com" >news.AiGameDev.com</a> (<a href="http://feeds.aigamedev.com/GameAiNews" >RSS</a>) with game AI news from the web as it happens.</p>
<div class="image"   style="text-align: center;">
<img src="http://files.aigamedev.com/splash/LINEUP.jpg" />
</div>
<p><span id="more-821" ></span></p>
<h3>Dodging The Question</h3>
<p>Another interesting article by <em>Ted Vessenes</em>, exploring the aspects behind the decisions of his design: Brainworks.</p>
<blockquote><p>First person shooter games like Quake 3 are really games of questions and answers. Every shot you take at an opponent asks the question, &#8220;How will you survive this hit?&#8221; And your opponent would prefer to respond, &#8220;You aren&#8217;t going to hit me&#8221;.</p></blockquote>
<ul>
<li><p><a href="http://brainworks-ai.blogspot.com/2008/10/dodging-question.html" >Dodging The Question</a></p></li>
</ul>
<h3>How do the opponent characters think and act in games?</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/11/opponent.JPG" />
<br/><br/>
</div>
<p>In his blog, <em>Praveen Koduru</em> posted about an article he found, entitled <em>How AI Works In FPS Games</em>. It is an old, but interesting text wrote by <em>Mark Hachman</em> for <u>ExtremeTech</u>.</p>
<blockquote><p>When I play computer games that have AI opponents, I always had the questions and doubts lingering in mind about the game engines.</p>
<p>In the earliest games that I have been involved with like Doom or Quake, the game play was much like a storyboard and the meanies were programmed to use the linear sight of view to shoot at you. However, in the past decade the games have evolved much and the straightforward kind of intelligence has been overtaken by better and smarter engines. Even though, there have been instances in games where you might suddenly jump to conclusions that the opponents are really smart or really stupid.</p>
<p> In this quest I found this nice article that explains how the game engines work and how they have to follow the computational constraint to enable uninterrupted game play. Do give this a read.</p></blockquote>
<ul>
<li><p><a href="http://pkoduru.com/node/4" >How do the opponent characters think and act in games? | Praveen Koduru</a></p></li>
</ul>
<h3>Scenegraphs: Past, Present and Future</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/11/scenegraphs.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p>An interesting discussion of world models.  This is explained in the context of rendering, but given the recent discussions about the MVC pattern (model-view-controller), you should see how these ideas can be applied to develop models useful for the AI.</p>
<blockquote><p>To help understand where scenegraphs came from, it’s useful to take a quick look at the evolution of graphics languages like OpenGL and DirectX. Early on, real-time graphics existed on special image generation (IG) hardware that contained entire visual databases in closed proprietary form. Modellers created their databases and loaded them onto the hardware IG. Programmers were generally limited to modifying elements of these databases, like the position and rotation of a helicopter or setting the time-of-day.</p></blockquote>
<ul>
<li><p><a href="http://www.realityprime.com/articles/scenegraphs-past-present-and-future" >Scenegraphs: Past, Present and Future</a></p></li>
</ul>
<h3>Lionhead title to be unveiled in &#8216;08</h3>
<p>On a very short post, <u>play.tm</u> wrote about Peter Molyneux&#8217;s ambitious new game.</p>
<blockquote><p>Artificial Intelligence is said to be the focus of Lionhead&#8217;s next Microsoft-backed product, and Molyneux has previously confirmed that his next offering will be on &#8220;on the front cover of Nature&#8221;.</p>
<p>Nature is of course not a gaming publication, which suggests Lionhead have really gone to town and crafted something of interest to the scientific and nature community, too.</p>
</blockquote>
<ul>
<li><p><a href="http://play.tm/news/22017/lionhead-title-to-be-unveiled-in-08/" >Lionhead title to be unveiled in &#8216;08 - News - play.tm</a></p></li>
</ul>
<h3>Turning dumb dialogue into intelligent conversation</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/11/endwar.JPG" />
<br/><br/>
</div>
<p>A good article by <em>Keith Stuart</em> for the Technology section of the <u>The Guardian</u> online, about the incidence of dialog in the simulation and the game&#8217;s immersion.</p>
<blockquote><p>Things are advancing: enemy soldiers are becoming proactive, formulating and verbalising simple strategies. In Ubisoft’s Far Cry 2, you can hear your opponents helping each other. As the game’s technology director Dominic Guay explains: “One AI can tell two others to flank the player while a third rushes him and the first takes care of suppression fire.”</p>
<p>This sort of chatter increases the sense of immersion - and it also provides clues about enemy operations. Is that shrub you’ve just dived behind providing sufficient cover? If your enemies are yelling “I’ve lost him!”, the chances are it is.</p>
</blockquote>
<ul>
<li><p><a href="http://www.guardian.co.uk/technology/2008/oct/30/games-artificial-intelligence-ai" >Turning dumb dialogue into intelligent conversation</a></p></li>
</ul>
<h3>Game Developer&#8217;s Conference 2009</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/11/gdc.JPG" />
<br/><br/>
</div>
<p>The registration for the next year&#8217;s <acronym title="Game Developer's Conference" >GDC</acronym>is open. The conference will now feature an Artificial Intelligence Summit!</p>
<blockquote><p>The AI Summit at GDC features panels and lectures from more than a dozen of the top game AI programmers in the industry. Organized as a collective effort by the newly formed AI Game Programmers Guild, this event promises to give you an inside look at key architectures and issues within successful commercial games, as well as let you eavesdrop on conversations, debates, and rants on how game AI can move forward. This summit is targeted toward the intermediate to advanced programmer who wants deeper insight into the world of game AI, however anyone who is interested in what AI can offer next generation games will find invaluable insights and lessons from the speakers.</p></blockquote>
<ul>
<li><p><a href="http://www.gdconf.com/conference/ait.html" >Game Developer&#8217;s Conference 2009 - NEW! Artificial Intelligence Summit</a></p></li>
</ul>
<h3>.NET surprisingly makes a fast game scripting engine</h3>
<p>An open source project to make a common language runtime for Linux, Mac, and iPhone that’s .NET-compatible, has ended up succeeding in an area no one may have expected at first: as an artificial intelligence provider for gaming engines. </p>
<blockquote><p>&#8220;One of the problems that people were talking to us about was, it turns out that a lot of games have limitations on how much AI they can put on a game, because it&#8217;s the slowest piece of everything,&#8221; de Icaza continued. &#8220;So it turns out that the display, the simulation, and the supporting infrastructure tend to be built on C, C++, or assembly language. There are people tuning shaders, tuning physics, using templates and that sort of thing. But when it came to the game logic, this is not something that you want to render in C++. This is something that you wanted to keep high-level, you want a different team of people to actually build that, so you have people from MIT doing the graphics and the simulations and the physics. But you want an artist to be tweaking the behavior of light, and you don&#8217;t want those guys forgetting to free a blob of memory, so you give them a safe language.&#8221;</p></blockquote>
<ul>
<li><p><a href="http://www.betanews.com/article/PDC_2008_Crossplatform_NET_surprisingly_makes_a_fast_game_scripting_engine/1225435699" >BetaNews | PDC 2008: Cross-platform .NET surprisingly makes a fast game scripting engine</a></p></li>
</ul>
<h3>Funny Quote of the Week</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/11/farcry2.JPG" />
<br/><br/>
</div>
<p>The blog <em>May Contain Gamers</em> is the winner, with some interesting words for the Ubisoft&#8217;s title <strong>Far Cry 2</strong>.</p>
<blockquote><p>That AI is unbelievable. I’m all for smart AI and I love the way they flank you or hide behind bushes however their god-like ability to spot you from a mile off and hit the target is a bit over the top. Whatever happened to confirming identity before shooting? I’m sorry, there is no way on earth they could know who I am in my dust-trailing jeep the size of a quarter of a pixel to them.</p></blockquote>
<ul>
<li><p><a href="http://maycontaingamers.blogspot.com/2008/11/games-that-people-play.html" >May Contain Gamers: The Games That People Play</a></p></li>
</ul>
<h3>AIIDE 08 Post-mortem</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/11/aiide-logo-small.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p>In his blog <u>Words on Play</u>, <em>Malcolm Ryan</em> posted an article about his experiences at the <acronym title="Artificial Intelligence and Interactive Digital Entertainment Conference" >AIIDE</acronym> 08.</p>
<blockquote><p>The best thing about AIIDE has to be the industry participation. In my experience, AI researchers are prone to a kind of hubris that expresses itself as “Here is a problem (in games or engineering or medicene) that could be solved using AI. I know all about AI. Therefore, I can solve this problem.” The ’solutions’ that are thus produced are often laughably innapropriate or otherwise bad when examined by someone who actually works in the field.</p></blockquote>
<ul>
<li><p><a href="http://wordsonplay.wordpress.com/2008/10/28/aiide-08-post-mortem/" >AIIDE 08 Post-mortem « Words on Play</a></p></li>
</ul>
<h3>Playing with Time</h3>
<p>An awesome lecture in the mood of a friendly chat, between <em>Brian Eno</em> and <em>Will Wright</em>.</p>
<div class="image"   style="text-align: center;">
<br/>
<br/>
  <object width="430"  height="284"  type="application/x-shockwave-flash"  id="W484573217c08a2f7"  data="http://widgets.clearspring.com/o/48233d8496b41f26/484573217c08a2f7/48233d8496b41f26/8af8c27f/sViewClip/355/sWebHost/fora.tv" ><br/>
</p>
<param name="wmode"  value="transparent" />
<param name="allowScriptAccess"  value="always" />
<param name="allowNetworking"  value="all" />
</object><br/>
<script type="text/javascript"  src="http://widgets.clearspring.com/o/48233d8496b41f26/484573217c08a2f7/48233d8496b41f26/8af8c27f/sViewClip/355/sWebHost/fora.tv/widget.js" ></script><br/>
<br/>
</div>
<blockquote><p>In a dazzling duet Will Wright and Brian Eno give an intense clinic on the joys and techniques of &#8220;generative&#8221; creation.</p>
<p>Back in the 1970s both speakers got hooked by cellular automata such as Conway&#8217;s &#8220;Game of Life,&#8221; where just a few simple rules could unleash profoundly unpredictable and infinitely varied dynamic patterns. Cellular automata were the secret ingredient of Wright&#8217;s genre-busting computer game &#8220;SimCity&#8221; in 1989. Eno was additionally inspired by Steve Reich&#8217;s &#8220;It&#8217;s Gonna Rain,&#8221; in which two identical 1.8 second tape loops beat against each other out of phase for a riveting 20 minutes. That idea led to Eno&#8217;s &#8220;Music for Airports&#8221; (1978), and the genre he named &#8220;ambient music&#8221; was born.</p>
<p>The Long Now Foundation was established in 01996* to develop the Clock and Library projects, as well as to become the seed of a very long term cultural institution. The Long Now Foundation hopes to provide counterpoint to today&#8217;s &#8220;faster/cheaper&#8221; mind set and promote &#8220;slower/better&#8221; thinking. We hope to creatively foster responsibility in the framework of the next 10,000 years - The Long Now Foundaton</p>
</blockquote>
<ul>
<li><p><a href="http://fora.tv/2006/06/26/Will_Wright_and_Brian_Eno" >FORA.tv - Will Wright and Brian Eno</a></p></li>
</ul>
<h3>Debate on Spore’s Dumbed-Down Gameplay</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/11/spore.JPG" />
<br/><br/>
</div>
<p>To close this week, an interesting thread at the EA title Spore oficial forums.</p>
<blockquote><p>“Seed Magazine wrote: “Steve Grand, who made the big sim-life hit of the 1990s, Creatures, also faced the task of reconciling the limited behavioral range of virtual life-forms with the advanced expectations of players. “There are two ways to tackle this problem,” Grand says. “Try to make the behavior look more real, or stop lying to people. As far as I can tell, Spore takes the former approach, to gently and quite openly fool the user into thinking she’s engaging with real living things, while Creatures took the latter — I did my best not to fool anyone, even if that meant the results weren’t so playable.”</p></blockquote>
<ul>
<li><p><a href="http://forum.spore.com/jforum/posts/list/8555.page;jsessionid=DE78B786ADC36D0C324BFC4DDFE4C725.240059#93713" >We Found Who to Tar and Feather!</a></p></li>
</ul>
<p><br/><br/>
<i>Stay tuned next week for more smart links from around the web!</i></p>
<div style="padding-top: 2em; text-align: center;"></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/441697751" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/links/2008-week-44/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Flinks%2F2008-week-44</feedburner:awareness><feedburner:origLink>http://aigamedev.com/links/2008-week-44</feedburner:origLink></item>
		<item>
		<title>Goal-Driven Player Experience (Video, Part 2)</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/437196447/goal-driven-player-experience</link>
		<comments>http://aigamedev.com/design/goal-driven-player-experience#comments</comments>
		<pubDate>Thu, 30 Oct 2008 18:00:23 +0000</pubDate>
		<dc:creator>Alex J. Champandard</dc:creator>
		
		<category><![CDATA[Game Design]]></category>
<category>design</category><category>experience</category><category>game ai</category><category>game development</category><category>goal architecture</category><category>multiplayer</category><category>player feedback</category><category>video</category>
		<guid isPermaLink="false">http://aigamedev.com/design/goal-driven-player-experience</guid>
		<description><![CDATA[ This audio / video highlight from the AiGameDev.com Member&#8217;s area was brought to you thanks to the sponsorship of PathEngine, a middleware company that specializes in navigation.
In part 1 of this Q&#038;A, I discussed the benefits of old-school player-centric AI that is built specifically to make its decisions based on what the player is doing. [...] ]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<p class="message"   style="border: 1px dashed #444; background-color: #ddd; padding: 1em;"><a href="http://www.pathengine.com" ><img hspace="1em"  align="right"  src="http://files.aigamedev.com/sponsors/pathengine.png"    class="right"   style="padding-top: 1ex;float: right; margin-left: 1em;"/></a>This audio / video highlight from the <tt>AiGameDev.com</tt> Member&#8217;s area was brought to you thanks to the sponsorship of <a href="http://www.pathengine.com" >PathEngine</a>, a middleware company that specializes in navigation.</p>
<p>In part 1 of this Q&#038;A, I discussed the benefits of old-school <a href="http://aigamedev.com/design/player-centric-ai" >player-centric AI</a> that is built specifically to make its decisions based on what the player is doing.  In part 2 below, I discuss the idea of taking this further by modeling the player&#8217;s experience as a set of goals which are used to drive the NPCs &mdash; using traditional AI techniques.</p>
<p>The video is 6:56 minutes long, and weighs about 5.3 Mb.  You can watch it here:</p>
<div class="image"   style="text-align: center;">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  codebase=""  id="FEATURE"  width="512"  height="340" >
<param name="movie"  value="http://files.aigamedev.com/videos/player.swf" />
<param name="allowfullscreen"  value="true" />
<param name="flashvars"  value="file=http://files.aigamedev.com/videos/qa-goal-driven-experience.mp4&amp;backcolor=0x000000&amp;frontcolor=0xCCCCCC&amp;lightcolor=0xFFFFFF" />
<embed name="FEATURE"  src="http://files.aigamedev.com/videos/player.swf"  width="512"  height="340"  type="application/x-shockwave-flash"  allowfullscreen="true"  flashvars="file=http://files.aigamedev.com/videos/qa-goal-driven-experience.mp4&amp;backcolor=0x000000&amp;frontcolor=0xCCCCCC&amp;lightcolor=0xFFFFFF" ></object><br/>
<br/><br/>
</div>
<p  style="font-style: italic;">Do you think these systems with AI directors, like the one in Left 4 Dead or Resistance 2&#8217;s Multiplayer are the way to go?  What&#8217;s your take on driving the AI according to goals based on the game design or the desired experience of the player?</p>
<div style="padding-top: 2em; text-align: center;"></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/437196447" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/design/goal-driven-player-experience/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Fdesign%2Fgoal-driven-player-experience</feedburner:awareness><feedburner:origLink>http://aigamedev.com/design/goal-driven-player-experience</feedburner:origLink></item>
		<item>
		<title>Public Seminars on Game AI, Thanks to Our Sponsors</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/436351019/seminars-november</link>
		<comments>http://aigamedev.com/site/seminars-november#comments</comments>
		<pubDate>Wed, 29 Oct 2008 23:12:29 +0000</pubDate>
		<dc:creator>Alex J. Champandard</dc:creator>
		
		<category><![CDATA[Announcements]]></category>
<category>game ai</category><category>game development</category><category>industry</category><category>middleware</category><category>planning</category><category>workflow</category>
		<guid isPermaLink="false">http://aigamedev.com/site/seminars-november</guid>
		<description><![CDATA[ 
A few months ago, I contacted all the game AI middleware companies to see if they&#8217;d be interested in working with us at AiGameDev.com. The response we got was amazing &#8212; which is a solid confirmation that the industry has matured over the last few years.  Middleware vendors are increasingly keen to connect with [...] ]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<img hspace="1em"  align="left"  src="http://files.aigamedev.com/announcements/microphone.jpg"  class="left"   style="float: left; margin-right: 1em;"/>
<p>A few months ago, I contacted all the game AI middleware companies to see if they&#8217;d be interested in working with us at <tt>AiGameDev.com</tt>. The response we got was amazing &mdash; which is a solid confirmation that the industry has matured over the last few years.  Middleware vendors are increasingly keen to connect with developers directly, and obviously for game AI, <tt>AiGameDev.com</tt> is the best place for this to happen!</p>
<p>What this means for you, in practice, is free seminars about artificial intelligence and game development.  Over the next few months we&#8217;ll be featuring a few Live Seminars about diverse subjects of game AI &mdash; ranging from planners to emotions.</p>
<p><span id="more-819" ></span></p>
<dl>
<dt  style="font-weight: bold;">Planning and Design Worflows</dt>
<dd>On November 5th (<a href="http://timeanddate.com/worldclock/fixedtime.html?month=11&#038;day=5&#038;year=2008&#038;hour=21&#038;min=0&#038;sec=0&#038;p1=195" >exact time</a>), we&#8217;ll be holding a seminar with <i>Spir.Ops</i> about planners in games, in particular how we can get designers to use the technology in such a way that workflows are better than traditional scripting solutions.</dd>
<dt  style="font-weight: bold;">Emotions in Game Characters</dt>
<dd>In December, the makers <i>EKI One</i> will also join us for a seminar about emotional interaction and how they approach the problem from a developer&#8217;s perspective.</dd>
</dl>
<p>You can either check the <a href="http://live.aigamedev.com/" >AiGameDev.com Live!</a> page, which will be updated with the link 15 minutes before the sessions start, or if you&#8217;ve signed up as an <tt>AiGameDev.com</tt> Insider (free) you can subscribe to get notifications from this <a href="http://forums.aigamedev.com/forumdisplay.php?f=26" >forum</a>.</p>
<h3>Thanks to Our Sponsors</h3>
<p><a href="http://www.spirops.com" ><img hspace="1em"  align="left"  src="http://aigamedev.com/ads/www/images/logo_spirops_150x150.png"  class="left"    alt="Spir.Ops"   style="padding-right: 1em; padding-bottom: 3em;float: left; margin-right: 1em;"/></a></p>
<p><a href="http://www.spirops.com" >SpirOps</a> is a middleware development team focused on AI. Their ultimate goal is to allow video games and simulations development teams to enter what we call &#8220;the Living Game era&#8221;. To design more realistic behaviors with a never reached complexity, the SpirOps developed an artificial intelligence design paradigm called &#8220;Drive Oriented&#8221; which allows designing AI with graphical tools and keeping a linear complexity during the brain creation process.</p>
<p><br style="clear: both;" /></p>
<p><a href="http://www.pathengine.com" ><img hspace="1em"  align="left"  src="http://aigamedev.com/ads/www/images/pathengine_logo_150x150_white.png"  class="left"    alt="PathEngine"   style="padding-right: 1em; padding-bottom: 3em;float: left; margin-right: 1em;"/></a></p>
<p><a href="http://www.pathengine.com" >PathEngine</a> provides a sophisticated toolkit for agent movement, built around an advanced points-of-visibility pathfinding core. This gives you powerful paired path planning and collision against a sophisticated, continuous space, pathfinding movement model, with robust integrated dynamic obstacle functionality and exact representation of agent shape, for seamless movement over overlapping ground geometry.</p>
<p><br style="clear: both;" /></p>
<p><a href="http://www.ekione.com" ><img hspace="1em"  align="left"  src="http://aigamedev.com/ads/www/images/eki_art_150x150px.jpg"  class="left"    alt="EkiOne"   style="padding-right: 1em; padding-bottom: 3em;float: left; margin-right: 1em;"/></a></p>
<p>We bring bytes alive! This is the vision and motivation that drives Artificial Technology GmbH. Graphically, many computer games already emulate the real world quite faithfully. The behavior of the characters, on the other hand, is often less authentic. <a href="http://www.ekione.com" >EKI One</a> Middleware (emotional &#038; artificial intelligence) is a new solution by Artificial Technology GmbH which allows game developers to bestow on their characters with emotional behavior.</p>
<p><br style="clear: both;" /></p>
<p><a href="http://www.havok.com" ><img hspace="1em"  align="left"  src="http://aigamedev.com/ads/www/images/havok_logo_150x150.png"  class="left"    alt="Havok"   style="padding-right: 1em; padding-bottom: 3em;float: left; margin-right: 1em;"/></a></p>
<p><a href="http://www.havok.com" >Havok</a> is the premier provider of interactive software and services for digital media creators in the games and movie industries. With world leading expertise in physics, animation and tools, Havok&#8217;s business is to turn customers&#8217; creative aspirations into technical realities. Havok&#8217;s modular suite of tools gives power to the creator, making sure that clients can reach new standards of realism and interactivity, while mitigating the overall cost and risks associated with creating today&#8217;s leading video games and movies.</p>
<p><br style="clear: both;" /></p>
<p><a href="http://www.xaitment.com" ><img hspace="1em"  align="left"  src="http://aigamedev.com/ads/www/images/xaitment_logo_150x150_2.jpg"  class="left"    alt="Xaitment"   style="padding-right: 1em; padding-bottom: 3em;float: left; margin-right: 1em;"/></a></p>
<p>A spin-off of the world-renowned German Research Center for Artificial Intelligence (DFKI), <a href="http://www.xaitment.com" >xaitment</a> was founded in 2004 with the mission to create lifelike AI for games and simulations. Their mission led to the development of the xaitEngine, a highly customizable and highly modular multi-agent system that enables bots to learn from their mistakes, coordinate activities, compete with each other and achieve their goals with uncanny realism.</p>
<p><br style="clear: both;" /></p>
<p><a href="http://www.trusoft.com" ><img hspace="1em"  align="left"  src="http://aigamedev.com/ads/www/images/ac-logo-150.jpg"  class="left"    alt="TruSoft"   style="padding-right: 1em; padding-bottom: 3em;float: left; margin-right: 1em;"/></a></p>
<p><a href="http://www.trusoft.com" >TruSoft</a> provides behavior-capture AI technology, AI middleware and tools that empower game developers and gamers to create humanlike, learning, adaptive AI agents, simply by playing the role of the agent, which then replicates the behavior of human players. TruSoft&#8217;s clients include SONY, Lockheed Martin, and Electronic Arts, plus many universities and research centers worldwide.</p>
<p><br style="clear: both;" /></p>
<div style="padding-top: 2em; text-align: center;"></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/436351019" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/site/seminars-november/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Fsite%2Fseminars-november</feedburner:awareness><feedburner:origLink>http://aigamedev.com/site/seminars-november</feedburner:origLink></item>
		<item>
		<title>Game AI Roundup Week #43 2008: 8 Stories, 1 Video, 1 Quote, 1 Paper</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/434725620/2008-week-43</link>
		<comments>http://aigamedev.com/links/2008-week-43#comments</comments>
		<pubDate>Tue, 28 Oct 2008 13:45:35 +0000</pubDate>
		<dc:creator>Novack</dc:creator>
		
		<category><![CDATA[Roundup]]></category>
<category>aigamedev</category><category>artificial intelligence</category><category>board games</category><category>conference</category><category>development</category><category>open source</category><category>paper</category><category>simulation</category><category>talk</category><category>video</category>
		<guid isPermaLink="false">http://aigamedev.com/links/2008-week-43</guid>
		<description><![CDATA[Weekends at AiGameDev.com are dedicated to rounding up smart links from the web relating to artificial intelligence and game development.  This week, the Roundup has been delayed a bit; however, we brought to you some very good articles and blog posts. Remember, there’s also lots of great content to be found in the forums [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<p>Weekends at <tt>AiGameDev.com</tt> are dedicated to rounding up smart links from the web relating to artificial intelligence and game development.  This week, the Roundup has been delayed a bit; however, we brought to you some very good articles and blog posts. Remember, there’s also lots of great content to be found in the <a href="http://aigamedev.com/forums/" >forums</a> here! (All you have to do is introduce yourself.) Also don&#8217;t forget the <a href="http://wiki.aigamedev.com/" >Wiki</a>, a repository of knowledge about artificial intelligence in game development!</p>
<p>This post is brought to you mostly by <i>Marcos Novacovsky</i> (aka &#8220;Novack&#8221;). If you have any news or tips for next week, be sure to email them in to <tt>editors</tt> at <tt>AiGameDev.com</tt>.  Remember there’s a mini-blog over at <a href="http://news.AiGameDev.com" >news.AiGameDev.com</a> (<a href="http://feeds.aigamedev.com/GameAiNews" >RSS</a>) with game AI news from the web as it happens.</p>
<div class="image"   style="text-align: center;">
<img src="http://files.aigamedev.com/splash/LINEUP.jpg" />
</div>
<p><span id="more-811" ></span></p>
<h3>Groupthink</h3>
<p>And yet another very good article by <em>Ted Vessenes</em> on his blog <u>BrainWorks</u> (Go Ted!). This time he wrote about group thinking, some sort of flocking-like thinking, and the problems it brings to game AI.</p>
<blockquote><p>There is a psychological concept known as groupthink, where members of a group discussing a topic gravitate towards a consensus based on a desire to minimize conflict rather than rationally discussing the subject. The play and film 12 Angry Men is a famous view of groupthink in action. A jury must decide whether a man is guilty or innocent, and the general group consensus is that he is guilty. But one juror refuses to ignore his intuition, even though it differs from the other jurors. The drama of the film is primarily based on how the other 11 jurors come to change their minds and eventually find the man innocent. Groupthink is a dangerous phenomenon because it can cause rational people to make irrational choices purely because it is the most common choice made by other group members. Just because a decision is right for everyone else in the group doesn’t mean it’s right for you.</p></blockquote>
<ul>
<li><p><a href="http://brainworks-ai.blogspot.com/" >Groupthink - BrainWorks</a></p></li>
</ul>
<h3>Cliff Bleszinski on Designing Gears of War 2</h3>
<img hspace="1em"  align="left"  src="http://aigamedev.com/wp-content/uploads/2008/10/cliff.JPG"  class="left"   style="float: left; margin-right: 1em;"/>
<p><u>Gamasutra</u> talked with one of the industry&#8217;s best known designers, <em>Cliff Bleszinski</em>. The result is an insightful interview, showing some really interesting things on the process of design.</p>
<blockquote><p>With Gears of War 2 complete and releasing next month, Gamasutra sat down with Bleszinski to discuss his development process, the divide between games and Hollywood, the role of a designer in modern game development, and why as a well-known personality it’s important to pick your battles.</p></blockquote>
<ul>
<li><p><a href="http://www.gamasutra.com/view/feature/3823/new_better_more_epics_cliff_.php?page=1" >Gamasutra - New, Better, More: Epic&#8217;s Cliff Bleszinski on Designing Gears of War 2</a></p></li>
</ul>
<h3>New Paper</h3>
<pre class="paper"   style="padding-left: 72px; background: #e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
Social Learning Methods in Board Games
Vukosi N. Marivate and Tshilidzi Marwala
Oct 2008
<a href="http://aps.arxiv.org/pdf/0810.3474v1" >Download PDF</a>
</pre>
<blockquote><p>This paper discusses the effects of social learning in training of game playing agents. The training of agents in a social context instead of a self-play environment is investigated. Agents that use the reinforcement learning algorithms are trained in social settings. This mimics the way in which players of board games such as scrabble and chess mentor each other in their clubs. A Round Robin tournament and a modified Swiss tournament setting are used for the training. The agents trained using social settings are compared to self play agents and results indicate that more robust agents emerge from the social training setting. Higher state space games can benefit from such settings as diverse set of agents will have multiple strategies that increase the chances of obtaining more experienced players at the end of training. The Social Learning trained agents exhibit better playing experience than self play agents. The modified Swiss playing style spawns a larger number of better playing agents as the population size increases.</p></blockquote>
<ul>
<li><p><a href="http://arxiv.org/abs/0810.3474" >Social Learning Methods in Board Games</a></p></li>
</ul>
<h3>Funny Quote of the Week</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/10/deadrising.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p>This heavy flak shooted in the <strong>Dead Rising</strong>&#8217;s direction, from a site about horror movies -heh-, is still, pretty hilarious.</p>
<blockquote><p>The game’s AI is simply dreadful. Path finding is horrendous, and if you are escorting several survivors that are wielding weapons (either melee or firearm) they will have no moral qualm about hitting you or other survivors. Several times I had survivors accidentally killing other survivors that were low on health.</p>
<p>Survivors aren’t satisfied with you bringing them to the security room. Occasionally, a few decide they want more out of you (such as food, alcohol, or even wanting to leave the mall and go for help). If you ignore them, they will seek these things on their own. Due to their own ineptitude, they will die.</p>
</blockquote>
<ul>
<li><p><a href="http://horrorsnotdead.com/wpress/2008/review-dead-rising-video-game/" >Review: Dead Rising (Video Game) | HorrorsNotDead.com &#8212; The next big Horror movie blog for twenty-two years running.</a></p></li>
</ul>
<h3>xaitment Wins GIANTS Software as New Client</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/10/xaitment.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p>Swiss video game developer licenses the xaitEngine for their upcoming game.</p>
<blockquote><p>Saarbrücken, Germany (PRWEB) October 23, 2008 — xaitment GmbH, one of the leading developers and service providers of artificial intelligence for the games and simulation industries, announced today that they have partnered with Swiss game developer, GIANTS Software GmbH, to incorporate artificial intelligence into their upcoming business simulation game, Farmer Simulator 2009. The game will be published by astragon Software GmbH and will be available in April 2009.</p></blockquote>
<ul>
<li><p><a href="http://www.prweb.com/releases/2008/10/prweb1517854.htm" >xaitment Wins GIANTS Software as New Client</a></p></li>
</ul>
<h3>New ‘Puzzle Quest’ AI Doesn’t Cheat</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/10/galactrix.JPG" />
<br/><br/>
</div>
<p>The MTV&#8217;s videogame blog <u>Multiplayer</u> quoted <em>Marcus Savino</em> producer of the <strong>Puzzle Quest: Galactrix</strong>.</p>
<blockquote><p>“What I can say about the AI more than anything else is that, for sure, it doesn’t cheat — guaranteed,” he said. “One of the cool things about the way this game works is it there is a sort of randomness. The way the puzzles pieces come on the board at the beginning of the battle is random — it’s like a roulette wheel or something like that. The logic of how the pieces come together doesn’t always favor the enemy or the player; sometimes it favors you and sometimes it favors the AI.”</p></blockquote>
<ul>
<li><p><a href="http://multiplayerblog.mtv.com/2008/10/23/producer-says-new-puzzle-quest-ai-doesnt-cheat/" >MTV Multiplayer » Producer Says New ‘Puzzle Quest’ AI Doesn’t Cheat</a></p></li>
</ul>
<h3>AI IDE 2008: Dan&#8217;s Diary</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/10/aiide-logo-small.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p>In his blog <u>Game of Design</u>, <em>Dan Kline</em> posted recently various articles summarizing his adventures on the <acronym title="Artificial Intelligence and Interactive Digital Entertainment Conference" >AIIDE</acronym> 2008.</p>
<blockquote><p>Well, the conference is over, and I think each day was more enjoyable then the last. Big thanks to Michael Mateas and Chris Darken and the organizers for setting it up.</p></blockquote>
<ul>
<li><p><a href="http://dankline.wordpress.com/" >AI IDE 2008: Day 3 - Game of Design</a></p></li>
</ul>
<h3>Erratic, but immersive&#8230;?</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/10/saintsrow2.JPG" />
<br/><br/>
</div>
<p><u>XboxOZ360-gamer</u> published a review on <strong>Saints Row 2</strong> where talks about the game&#8217;s AI like this:</p>
<blockquote><p>My largest issue with the game was the AI. There was just far too many times that for no reason a civilian would swerve and run into me. The worst of these was when I was defending a building and a van that did not belong to any gang and was simply a civilian drove up two sets of stairs just to run me over. This erratic AI behavior although frustrating, never really broke the experience for me.</p></blockquote>
<ul>
<li><p><a href="http://xboxoz360gamer.com/2008/10/21/saints-row-2-review-our-resident-gansta-checks-it-out/" >Saints Row 2 Review « XboxOZ360-gamer</a></p></li>
</ul>
<h3>Comments on Fable II</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/10/fable2.JPG" />
<br/><br/>
</div>
<p>Here there are a pair of quotes from the media, summarizing the past week&#8217;s buzz on the release of the latest <em>Peter Molyneux</em>’s game.</p>
<h4>Xbox 360 Review - WorthPlaying</h4>
<blockquote><p>The attempts to make you care about your spouse and child work significantly better than the game’s attempts to make you care about your dog, probably because you interact with them less, so their weird AI doesn’t stand out quite as much. I had a few weird glitches, including a strange moment when my character’s spouse got angry, divorced him, and then quickly changed her mind, existing in a weird state of being happy and content until I left the area, at which point the game informed me that a divorce had occurred. It was very strange indeed.</p></blockquote>
<ul>
<li><p><a href="http://www.worthplaying.com/article.php?sid=56831" >Xbox 360 Review - &#8216;Fable II&#8217; - WorthPlaying</a></p></li>
</ul>
<h4>washingtonpost.com</h4>
<blockquote><p>“Nothing’s perfect, but it’s somewhat baffling that the tactical AI does such an able job challenging you at close quarters, but that you can needle enemies at a distance with bolts and bullets and only the ones getting shot ever seem to react.”</p></blockquote>
<ul>
<li><p><a href="http://www.washingtonpost.com/wp-dyn/content/article/2008/10/20/AR2008102002588.html" >Fable II is Peter Molyneux’s Smartest Game Yet - washingtonpost.com</a></p></li>
</ul>
<h3>A Sudoku Solver</h3>
<p>The following Sudoku solver uses a simple but effective strategy. Even puzzles rated as “very hard” require no more than 15 milliseconds and 30 Kbytes on a 500 MHz Pentium 3 computer.</p>
<blockquote><p>Sudoku is a popular puzzle in Japan (su is number, doku is place), to where it was imported from the U.S. It was popularized in the West by Wayne Gould, a New Zealander living in Hong Kong. […] In a November 2004 article in the Times,  Gould was quoted as saying that some Sudoku puzzles are so difficult that you can’t solve them if your life depended on it.</p></blockquote>
<ul>
<li><p><a href="http://www.vector.org.uk/archive/v214/sudoku.htm" >A Sudoku Solver</a></p></li>
</ul>
<h3>Massively Multiplayer Open Source Game Development</h3>
<p>Another Google Talk video on <u>YouTube</u>, this time on mmog development. </p>
<div class="image"   style="text-align: center;">
<object width="425"  height="344" >
<param name="movie"  value="http://www.youtube.com/v/tKSYJYV_RGs&#038;hl=es&#038;fs=1" /></param>
<param name="allowFullScreen"  value="true" /></param><embed src="http://www.youtube.com/v/tKSYJYV_RGs&#038;hl=es&#038;fs=1"  type="application/x-shockwave-flash"  allowfullscreen="true"  width="425"  height="344" ></embed></object><br/>
<br/>
</div>
<blockquote><p>An MMORPG project is challenging for any development team, let alone a distributed team of “amateur” volunteers. This talk will explore the internal design of the FOSS MMO project called PlaneShift, and how that design was influenced by the strengths and weaknesses of the team structure and the community. Topics will include server design, network topology, NPC AI and management and player security, among others.</p></blockquote>
<ul>
<li><p><a href="http://www.youtube.com/watch?v=tKSYJYV_RGs" >YouTube - Massively Multiplayer Open Source Game Development</a></p></li>
</ul>
<p><br/><br/>
<i>Stay tuned next week for more smart links from around the web!</i></p>
<div style="padding-top: 2em; text-align: center;"></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/434725620" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/links/2008-week-43/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Flinks%2F2008-week-43</feedburner:awareness><feedburner:origLink>http://aigamedev.com/links/2008-week-43</feedburner:origLink></item>
		<item>
		<title>Everybody Dies, Except the Bots: An API for DEFCON</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/430684511/defcon-bots-api</link>
		<comments>http://aigamedev.com/essays/defcon-bots-api#comments</comments>
		<pubDate>Fri, 24 Oct 2008 12:41:05 +0000</pubDate>
		<dc:creator>Robin Baumgarten</dc:creator>
		
		<category><![CDATA[Essays]]></category>
<category>bot</category><category>design</category><category>game ai</category><category>game development</category><category>interface</category><category>programming</category><category>real-time strategy</category><category>student</category>
		<guid isPermaLink="false">http://aigamedev.com/essays/defcon-bots-api</guid>
		<description><![CDATA[In this exclusive article, Robin Baumgarten introduces the new bot API for the popular nuclear war game, which will be released in a few weeks.
&#8220;How about a nice game of chess?&#8221;
If you&#8217;d opt for total thermonuclear war instead, too, then you surely know DEFCON. It&#8217;s a real-time strategy game by Introversion where you control a [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<p class="message"   style="border: 1px dashed #444; background-color: #ddd; padding: 1em;">In this exclusive article, <a href="http://www.doc.ic.ac.uk/~rb1006/" >Robin Baumgarten</a> introduces the new bot API for the popular nuclear war game, which will be released in a few weeks.</p>
<p><em>&#8220;How about a nice game of chess?&#8221;</em></p>
<p>If you&#8217;d opt for total thermonuclear war instead, too, then you surely know <a href="http://everybody-dies.com" >DEFCON</a>. It&#8217;s a real-time strategy game by Introversion where you control a nuclear superpower in its struggle to lose the least people when the cold war becomes hot. If you&#8217;re interested in AI &mdash; and I take that for granted, given that you&#8217;re reading this &mdash; you might have been wondering how difficult it is to build your own <a rel="nofollow"  href="http://en.wikipedia.org/wiki/WOPR" >WOPR</a> or Skynet. Well, wonder no more, soon there will be an AI interface that allows you to build your own AI overmind and launch first strikes against the feeble bots of your foes!</p>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/10/shot1.jpg"  alt="Screenshot of DEFCON" />
<br/><br/>
</div>
<p>For the last three months, I was in the lucky position to get paid by the British Government to write the AI API for Introversions computer game DEFCON. Now, as many of you are game developers, that might be nothing special, but for me as a PhD student, thats a welcome opportunity to have a peek into how the gaming industry works and what <em>real</em> code actually looks like.</p>
<p>In this article, I&#8217;ll describe what design choices I&#8217;ve made and what difficulties arose while working on this project.</p>
<p><span id="more-806" ></span></p>
<h3>In the Beginning&#8230;</h3>
<p>Thanks to the increased interest of the UK Government, or at least the Technology Research Board, in the creative industries and especially games industries, <a href="http://introversion.co.uk" >Introversion Software</a> has received a grant to collaborate with <a href="http://www3.imperial.ac.uk/computing/" >Imperial College London</a> to create an AI API for DEFCON. The indy developers have published four games so far and are still quite a small company with only 9 or so employees, which made it easy for me to understand what was going on and get hold of the right people when I had a problem during this project. Now, as I don&#8217;t want to let this become one big advertising article, I&#8217;ll focus on my work instead.</p>
<p>The money provided by the TSB for a &#8220;creative industries feasibility study&#8221; allowed me to write an Interface for DEFCON. It is not one of those epic build-up and resource management games, but instead, you have a small fixed army from the beginning that battles it out in a thermonuclear war.</p>
<p>Unfortunately, my education didn&#8217;t involve a proper C++ course (universities really like Java and such nasty little things as Prolog), so my only protection was a C++ book when i dived into the source code. Most of the time, that is no problem, but when it comes exotic constructs such as functionoids, variadic functions and template classes, I had to spend a day or two looking hard at any help my book and google spilled out for me. However, the code of the game is really well written and structured, so I found my way around without too much difficulties.</p>
<p>Having never written an API before, this project was quite an adventure. Careful planning with a month without writing a single line of code helped me a lot in figuring out what to do. I found the following topics most important and/or challenging.</p>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/10/europe.jpg"  alt="AI War Games in Europe" />
<br/>
</div>
<h3>Embodied AI or Game AI?</h3>
<p>This was recently a topic in one of Alex&#8217; Q&amp;A sessions [<a href="#note" >1</a>]. Usually the difference manifests in the goal of the software: Do I want a realistic AI or a fun AI? At first glance, there seems to be no difference. However, it is often much more difficult to make a realistic AI fun instead of just ditching the realism and cheat the way to maximum enjoyment. A realistic AI is embodied, which means, it has the same abilities as the player: A fog of war hides opponent activities, targets and positions of opposing units are largely unknown. In the case of games (especially RTS games) it is often much easier to let the AI see everything. Soren Johnson gave an <a href="http://www.intrinsicalgorithm.com/IAonAI/2008/02/gdc-2008-soren-johnsons-lecture-on-civ.html" >interesting talk</a> about that at this years GDC, in essence the Civilization 4 AI has to cheat to be challenging. Writing an embodied AI that can beat good players proved just too difficult.</p>
<p>For researchers, however, the situation is often a bit different. They can use games as simulations for real-world scenarios. If you want to simulate a robot, and then construct it in the real world, cheating gets you nowhere. Embodied AIs are also better suited to be used in competitions, where advanced algorithms are pitted against each other.</p>
<p>In this project, I address both the interest of academic researchers and game developers by providing the optional choice between an embodied AI and a game AI. This means that the sensory system can be switched between embodied and full information mode. We&#8217;re in talks with the organisers of the 2009 IEEE Symposium on Computational Intelligence and Games to create a competition for DEFCON (similar to this years <a href="http://botprize.org/" >UT Bot competition</a>, although the prize money wont be that high, I&#8217;m afraid).</p>
<p id="note" ><i>[1] Editor&#8217;s note: The audio and slides for this part of the Q&amp;A will be released shortly in the <tt>AiGameDev.com</tt> Insider&#8217;s area, <a href="http://aigamedev.com/members/signup.php" >join here</a> free.</i></p>
<h3>Interface Design</h3>
<p>How elaborate should the interface be? In RTS games, a sensible way to store information is in a hierarchical object structure: there are general objects, and derived objects such as flying objects, naval objects, gunshots and so on. A conceptually straightforward way to get this information to the bot (linked in through a DLL) would be to just forward read-only versions of these objects to it. However, there are a couple of complications here. It requires a complex object structure that accurately mirrors the object structure in the main program, objects have to be copied, created and destroyed in the right places at the right times. And if you decide to use Java, Lua or Python in your bot, the whole object translation game starts again. So I went for the opposite: The interface is as simple and small as possible. It virtually only sends (vectors of) numbers. The slightly higher number of required get- and set-functions (one for each object attribute) is easily compensated by simplified error checking and less possibilities for memory leaks.</p>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/10/shot2.jpg"  alt="DEFCON AI Bots" />
</div>
<h3>Network Stability</h3>
<p>Another concern was the network. DEFCONs network code heavily relies on deterministic local computations, which means that it only sends commands (such as &#8220;move to this location&#8221;) over the network and everything else is calculated locally, i.e., path-finding, hit probabilities, movement and so on. Although this reduces network traffic, it is very easy to produce desynchronisations by careless programming. And what do you do when packages are delayed or lost? There has to be some mechanism that checks for time-outs and notifies the bot of any delays. This doesn&#8217;t have to be complicated, a simple state-machine did the trick for DEFCON.</p>
<h3>Debugging Tools</h3>
<p>This is an important part of game development, and judging by <a href="http://forums.aigamedev.com/showthread.php?t=551" >several</a> <a href="http://forums.aigamedev.com/showthread.php?t=1502" >threads</a> in the AiGameDev.com Forum (free <a href="http://aigamedev.com/members/signup.php" >sign-up</a> and introduction required) an often not sufficiently existing part. As I&#8217;m still developing the debugger, the feature list for the first release is subject to change. Full control over the game speed (including pausing and instant replays), lots of visual highlighting (drawing paths, targets, lines of sight, displaying all object attributes on a mouse over) and a console that plots out all commands and information there is, with easy tagging and filtering capabilities are desired features, and I&#8217;m implementing most of them. Let me know if you have feedback, the development process is not finished yet!</p>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/10/shot3.jpg"  alt="Whoops, there goes London … so much for gratefulness!" />
</div>
<h3>When, Where, How?</h3>
<p>The initial release will be available from <a href="http://www.introversion.co.uk/defcon/bots/" >Introversions website</a><a href="http://www.introversion.co.uk/defcon/bots/" ></a> after the 7th November 2008. This page also contains links to other resources such a paper on a learning bot for DEFCON and a <a href="http://lists.introversion.co.uk/listinfo/defconapi" >mailing list</a> for updates on the API development.</p>
<p>I&#8217;ll add Java, Lua and Python support via dlls that integrate the particular languages. Also, the original AI from DEFCON will be ported, which can serve as a good starting point for modifications. This bot has a really lightweight AI with a very linear finite state machine that is quite predictable and not much of a challenge for experienced gamers, so don&#8217;t expect too much from it. But that&#8217;s where you come in to show the rest of the world how a real AI should look like!</p>
<p><b>Let Robin know if you have last minute feedback, and what you think about the design of this API and post a comment below.</b></p>
<div style="padding-top: 2em; text-align: center;"></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/430684511" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/essays/defcon-bots-api/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Fessays%2Fdefcon-bots-api</feedburner:awareness><feedburner:origLink>http://aigamedev.com/essays/defcon-bots-api</feedburner:origLink></item>
		<item>
		<title>Player-Centric AI Design (Video, Part 1)</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/427928189/player-centric-ai</link>
		<comments>http://aigamedev.com/design/player-centric-ai#comments</comments>
		<pubDate>Tue, 21 Oct 2008 22:09:33 +0000</pubDate>
		<dc:creator>Alex J. Champandard</dc:creator>
		
		<category><![CDATA[Game Design]]></category>
<category>design</category><category>embodiment</category><category>game ai</category><category>game development</category><category>industry</category><category>knowledge</category><category>programming</category><category>sensory system</category>
		<guid isPermaLink="false">http://aigamedev.com/design/player-centric-ai</guid>
		<description><![CDATA[ This audio / video highlight from the AiGameDev.com Member&#8217;s area was brought to you thanks to the sponsorship of Spir.Ops, a game AI middleware company based in Paris.

In the &#8220;old days&#8221; of the games industry, everyone built their whole AI around what the player did.  Not only was it cheap to do, but it [...] ]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<p class="message"   style="border: 1px dashed #444; background-color: #ddd; padding: 1em;"><a href="http://www.spirops.com" ><img hspace="1em"  align="right"  src="http://files.aigamedev.com/sponsors/spirops.png"  class="right"   style="float: right; margin-left: 1em;"/></a>This audio / video highlight from the <tt>AiGameDev.com</tt> Member&#8217;s area was brought to you thanks to the sponsorship of <a href="http://www.spirops.com" >Spir.Ops</a>, a game AI middleware company based in Paris.<br/>
<br style="clear: both;" /></p>
<p>In the &#8220;old days&#8221; of the games industry, everyone built their whole AI around what the player did.  Not only was it cheap to do, but it was also a great way to get bang-for-buck on your programming time, and it was very easy to build a game with a strong design.  These days, however, when AI characters are built of hundreds of thousands of lines of script and hundreds of behaviors, that information gets lost amidst lots of AI-centric concerns such as embodiment, sensory systems, knowledge representation, memories, etc.</p>
<div class="image"   style="text-align: center;">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  codebase=""  id="FEATURE"  width="512"  height="340" >
<param name="movie"  value="http://files.aigamedev.com/videos/player.swf" />
<param name="allowfullscreen"  value="true" />
<param name="flashvars"  value="file=http://files.aigamedev.com/videos/qa-player-centric.mp4&amp;backcolor=0x000000&amp;frontcolor=0xCCCCCC&amp;lightcolor=0xFFFFFF" />
<embed name="FEATURE"  src="http://files.aigamedev.com/videos/player.swf"  width="512"  height="340"  type="application/x-shockwave-flash"  allowfullscreen="true"  flashvars="file=http://files.aigamedev.com/videos/qa-player-centric.mp4&amp;backcolor=0x000000&amp;frontcolor=0xCCCCCC&amp;lightcolor=0xFFFFFF" ></object><br/>
<br/><br/>
</div>
<p  style="font-style: italic;">Is there a balance to be found here?  Could &#8220;modern&#8221; AI be made more fun by going back to its roots and focusing more on what the player wants or  needs?</p>
<p  style="font-style: italic;"><i>Stay tuned next week for Part 2 of this highlight where goals and planners come into the picture.  In the meantime, post your comments below!</i></p>
<div style="padding-top: 2em; text-align: center;"></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/427928189" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/design/player-centric-ai/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Fdesign%2Fplayer-centric-ai</feedburner:awareness><feedburner:origLink>http://aigamedev.com/design/player-centric-ai</feedburner:origLink></item>
		<item>
		<title>Game AI Roundup Week #42 2008: 8 Stories, 1 Video, 1 Quote</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/426025576/2008-week-42</link>
		<comments>http://aigamedev.com/links/2008-week-42#comments</comments>
		<pubDate>Mon, 20 Oct 2008 03:17:35 +0000</pubDate>
		<dc:creator>Novack</dc:creator>
		
		<category><![CDATA[Roundup]]></category>
<category>aigamedev</category><category>aiide</category><category>animation</category><category>computational intelligence</category><category>conference</category><category>game ai</category><category>game development</category><category>middleware</category><category>planning</category><category>video</category>
		<guid isPermaLink="false">http://aigamedev.com/links/2008-week-42</guid>
		<description><![CDATA[Weekends at AiGameDev.com are dedicated to rounding up smart links from the web relating to artificial intelligence and game development.  This week, there are some good articles and blog posts for you to read. Remember, there’s also lots of great content to be found in the forums here! (All you have to do is [...]]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<p>Weekends at <tt>AiGameDev.com</tt> are dedicated to rounding up smart links from the web relating to artificial intelligence and game development.  This week, there are some good articles and blog posts for you to read. Remember, there’s also lots of great content to be found in the <a href="http://aigamedev.com/forums/" >forums</a> here! (All you have to do is introduce yourself). Also don&#8217;t forget the <a href="http://twitter.com/aigamedev" >Twitter</a> account for random thoughts!</p>
<p>This post is brought to you mostly by <i>Marcos Novacovsky</i> (aka &#8220;Novack&#8221;). If you have any news or tips for next week, be sure to email them in to <tt>editors</tt> at <tt>AiGameDev.com</tt>.  Remember there’s a mini-blog over at <a href="http://news.AiGameDev.com" >news.AiGameDev.com</a> (<a href="http://feeds.aigamedev.com/GameAiNews" >RSS</a>) with game AI news from the web as it happens.</p>
<div class="image"   style="text-align: center;">
<img src="http://files.aigamedev.com/splash/LINEUP.jpg" />
</div>
<p><span id="more-796" ></span></p>
<h3>Personality For AI</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/10/boargar.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p><em>Jorma Auburn</em> (Lead Animator at NCsoft) posted in his blog an article about adding personality to the NPCs without a line of code.</p>
<blockquote><p>In video game production, more often then not there is an assumption that any attack or motion will do for an AI as long as it is “cool”. A lot of this has to do with the fact that animation is often created before design has finalized the game plan. I find this workflow very frustrating. I understand that games are about the fun play factor and animation is the icing on the cake, but with a little staggering of roles I think both can be achieved. In games there are very few places to show personality for AI that doesn’t rely on cinematics. If possible I try to milk as much personality into every available piece of motion. The attack of a character should compliment its personality as much as the idle or fidget. An example of this can be seen in my TR creature reel.</p></blockquote>
<ul>
<li><p><a href="http://jormajorma.animationblogspot.com/2008/10/14/personality-for-ai-in-video-games/" >jormajorma’s blogblog » Personality For AI in Video Games</a></p></li>
</ul>
<h3>Stay on Target: Real Life Tron on an Apple IIgs</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/10/tron.JPG" />
<br/><br/>
</div>
<p>An excellent [real]story about the AI of a Tron-like cycle game escaping from the game and subsequently crashing the system.</p>
<blockquote><p>One day, when Marco and I were playing against two computer opponents, we forced one of the AI cycles to trap itself between its own walls and the bottom game border.  Sensing an impending crash, it fired a missile, just like it always did whenever it was trapped.  But this time was different – instead of firing at another trail, it fired at the game border, which looked like any other light cycle trail as far as the computer was concerned.  The missile impacted with the border, leaving a cycle-sized hole, and the computer promptly took the exit and left the main playing field.  Puzzled, we watched as the cycle drove through the scoring display at the bottom of the screen.  It easily avoided the score digits and then drove off the screen altogether.</p>
<p>Shortly after, the system crashed.</p>
<p>Our minds reeled as we tried to understand what we had just seen.  The computer had found a way to get out of the game.  When a cycle left the game screen, it escaped into computer memory – just like in the movie.</p>
</blockquote>
<ul>
<li><p><a href="http://blog.danielwellman.com/2008/10/real-life-tron-on-an-apple-iigs.html" >Stay on Target: Real Life Tron on an Apple IIgs</a></p></li>
</ul>
<h3>Chatbots take the ultimate AI test - and fail</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/10/loebnerprize.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p>Remember the Loebner Prize, the annual test of artificial intelligence that we mentioned some weekends ago? Well, it took place featuring five chatbots but none of them convinced the judges it was human.</p>
<blockquote><p>Elbot emerged as the winner, after scooping a 25% success rate at convincing the judges that it was actually human. That’s not enough to please the ghost of Turing, but it was enough to pick up Elbot’s owner, Fred Roberts, a cash prize. Fred’s invention had a few tricks up his sleeve, including trying to the judges off their game by explicitly referring to itself as a machine.</p></blockquote>
<ul>
<li><p><a href="http://www.guardian.co.uk/technology/blog/2008/oct/13/turing-test" >Chatbots take the ultimate AI test - and fail | Technology | guardian.co.uk</a></p></li>
</ul>
<h3>Player rant of the week</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/10/the-elder-scrolls-iv-oblivion.JPG" />
<br/><br/>
</div>
<p>In the <u>Blog of Lutonaut</u> in a post with no text capitalization whatsoever, we found a particular rant about the general state of the last times game releases, with one paragraph dedicated to a well know game&#8217;s AI.</p>
<blockquote><p>in elder scrolls 4: oblivion, we were led to believe in “radiant ai,” an artificial intelligence so powerful that we would believe that these non-player characters (npcs) lived lives entirely separate from our own player character; eating, sleeping, conversing &#038; interacting with the environment as though they were actually real. the reality, of course, was that the programmers bit off far more then they could chew - their radiant ai was so ‘radiant’ that it constantly broke the game in their tests, both in in-game believability &#038; game stability itself to the point where the ai had to be toned down to the point of impotence. ai, as delivered, walked around all day, delivering canned &#038; random conversations, not acknowledging dead people next to them &#038; not interacting with events unless they were scripted to do so (apparently, killing two trolls in front of townspeople isn’t newsworthy enough, nor is an impending crisis of doom from demonic-esque dimensions invading the countryside).</p></blockquote>
<ul>
<li><p><a href="http://lutonaut.wordpress.com/2008/10/17/less-is-more/" >less is more… « Blog of Lutonaut | Player rant of the week</a></p></li>
</ul>
<h3>AIIDE 2008 News</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/10/aiide.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p><u>Gamasutra</u> and <u>Develop</u> brought us the announcement from the organisers of the annual event (to be placed in Stanford, next week): the Conference Line-Up is finalized.</p>
<blockquote><p>The final line-up of speakers at the fourth Artificial Intelligence and Interactive Digital Entertainment (AIIDE) conference has been announced, with the event due to take place at Stanford University, California on October 22nd to 24th.</p></blockquote>
<ul>
<li><p><a href="http://www.gamasutra.com/php-bin/news_index.php?story=20703" >Gamasutra - AIIDE 2008 Game AI Conference Line-Up Finalized</a></p></li>
</ul>
<h3>High Voltage Interview</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/10/highvoltagehotrodshow.JPG" />
<br/><br/>
</div>
<p><em>Darren Calvert</em> from <u>WiiWare World</u> interviewed the <strong>High Voltage Hot Rod Show</strong> game&#8217;s producer <em>Josh VanVeld</em> who said this about the racing game AI:</p>
<blockquote><p><b>WW: How will the AI play out in Hot Rod Show? Will it be rubber banded like in Mario Kart?</b></p>
<p><b>JV:</b> Great question! While we can appreciate how a good rubber-banding system keeps you in the middle of the action, the team decided that we wanted the racing to feel really competitive and never cheap. In almost any racing game, there’s nothing worse than losing a race on the last corner to an AI that was obviously cheating the laws of the game. We built our AI to obey all of the game rules during a race (although I do admit that we give our hard AI a special edge at the start of a race).</p>
<p>We then plotted multiple racing lines along each track for the AI to try to follow and gave them decision-making abilities similar to the player’s. We also built in error percentages, so hard AI will never misjudge a trick, where easy AI does a lot of crashing. We ended up with a result that we’re happy with, namely easy AI that beginners can beat, and hard AI that provides a challenge even for veteran players.</p>
</blockquote>
<ul>
<li><p><a href="http://www.wiiware-world.com/news/2008/10/high_voltage_interview_high_voltage_hot_rod_show" >High Voltage Interview: High Voltage Hot Rod Show - WiiWare World</a></p></li>
</ul>
<h3>Tomb Raider: Underworld Uses NavPower</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/10/tomb_raider_underworld.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p>Lara Croft will plan his adventures using the BabelFlux LLC&#8217;s AI motion-planning middleware, NavPower.</p>
<blockquote><p>MOUNTAIN VIEW, Calif. – October 15, 2008 - Middleware developer BabelFlux LLC announced today that its NavPower AI middleware package has been licensed by Crystal Dynamics for their upcoming game, Tomb Raider: Underworld.</p></blockquote>
<ul>
<li><p><a href="http://news.teamxbox.com/xbox/17851/Tomb-Raider-Underworld-Uses-NavPower-AI/" >Tomb Raider: Underworld Uses NavPower AI - Xbox</a></p></li>
</ul>
<h3>Paul T.: I&#8217;ve Moved</h3>
<p>On other news, Paul Tozour, AI designer and active poster at Game/AI will be away from the blog for a time, as he is now part of Intel&#8217;s Project Offset team. The best luck in his new adventures.</p>
<blockquote><p>Just a quick note to mention that I’ll no longer be able to update this blog. I joined the Project Offset team at Intel a little while ago, and I’ll no longer have time to post here.</p></blockquote>
<ul>
<li><p><a href="http://www.ai-blog.net/archives/000155.html" >Game/AI: I&#8217;ve Moved</a></p></li>
</ul>
<h3>Call for Papers</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/10/lucas.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p>Through the <em>Lindsay Grace</em>&#8217;s blog, we knew that the IEEE Transactions on Computational Intelligence and AI in Games journal is now open for submissions, with the first issue due to be published in March 2009 and <em>Simon M. Lucas</em>, in the Editor-in-Chief chair.</p>
<blockquote><p>The IEEE TRANSACTIONS ON COMPUTATIONAL INTELLIGENCE AND AI in GAMES (T-CIAIG), published four times a year, publishes archival journal quality original papers in computational intelligence and related areas in artificial intelligence applied to games, including but not limited to video games, mathematical games, human-computer interactions in games, and games involving physical objects. Emphasis will also be placed on the use of these methods to improve performance in and understanding of the dynamics of games, as well as gaining insight into the properties of the methods as applied to games. It will also include using games as a platform for building intelligent embedded agents for the real world. Papers connecting games to all areas of computational intelligence and traditional AI will be considered.</p></blockquote>
<ul>
<li><p><a href="http://blog.mindtoggle.com/2008/10/13/ieee-transactions-on-computational-intelligence-and-ai-in-games/" >IEEE Transactions on Computational Intelligence and AI in Games</a></p></li>
</ul>
<h3>Interview Video: Spore Inventor on Artifical Intelligence</h3>
<p><u>Popular Mechanics</u> interviewed <em>Will Wright</em> about the current status of the Artificial Intelligence&#8230; not only in games.</p>
<div class="image"   style="text-align: center;">
<object data="http://video.popularmechanics.com/services/player/bcpid1859729679"  type="text/html"  width="500"  height="400" ></object><br/>
<br/>
</div>
<blockquote><p>In the future, Wright sees plot-driven videogames—which he sees as an unfortunate result of “film envy”—giving way to a kind of personalized gaming experience, based on a computer’s ability to read you. The more you play, the more defined the game will become. “The computer can sit back and say, you’re doing a comedy, or a drama, or a thriller,” says Wright. “The computer will start building a model of you, figuring out things you like, things you’re good at, things that intrigue you.” The computer might start tweaking game elements, from the graphics to the background music. “Computers will recognize the story the player is trying to play out, and up the ante,” he says. “It will be more like the Truman Show. The computer is in the background, adjusting the environment.” The player, meanwhile, is blissfully ignorant of the customized storyline reconfiguring itself around their every decision. </p>
<p> The point of this kind of self-writing game is to push gaming past linear attempts to blend the passive business of watching a movie with the interactivity of mashing buttons. Instead of, “Find the red key to get through the door to slay the dragon,” as Wright puts it, everyone will play through a different story, based on the computer’s reading of his mood.</p></blockquote>
<ul>
<li><p><a href="http://www.popularmechanics.com/technology/industry/4287680.html?series=60" >Spore Inventor on Artifical Intelligence - Will Wright Interview Video - Popular Mechanics</a></p></li>
</ul>
<p><br/><br/>
<i>Stay tuned next week for more smart links from around the web!</i></p>
<div style="padding-top: 2em; text-align: center;"></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/426025576" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/links/2008-week-42/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Flinks%2F2008-week-42</feedburner:awareness><feedburner:origLink>http://aigamedev.com/links/2008-week-42</feedburner:origLink></item>
		<item>
		<title>A Critique of Case-Based Reasoning for Games</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/423964819/critique-case-based-reasoning</link>
		<comments>http://aigamedev.com/editorial/critique-case-based-reasoning#comments</comments>
		<pubDate>Fri, 17 Oct 2008 18:38:16 +0000</pubDate>
		<dc:creator>Alex J. Champandard</dc:creator>
		
		<category><![CDATA[Editorial]]></category>
<category>architecture</category><category>artificial intelligence</category><category>bottleneck</category><category>combat</category><category>first-person shooter</category><category>game development</category><category>real-time strategy</category><category>research</category><category>scripting</category><category>sequence</category><category>white paper</category><category>workflow</category>
		<guid isPermaLink="false">http://aigamedev.com/editorial/critique-case-based-reasoning</guid>
		<description><![CDATA[ 
Generally speaking, I&#8217;m very impressed with case-based reasoning (CBR) and the research that&#8217;s being done applying it to games.  It&#8217;s arguably one of the most promising avenues of academic research I&#8217;ve seen in a while.
In particular, there are a few key issues that CBR tackles head on that make it interesting for the future [...] ]]></description>
			<content:encoded><![CDATA[<div style="padding: 1em; float: right;"></div>
<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<img hspace="1em"  align="left"  src="http://aigamedev.com/wp-content/uploads/2008/10/case-based.jpg"  class="left"  alt="Special Case Samples"   style="float: left; margin-right: 1em;"/>
<p>Generally speaking, I&#8217;m very impressed with case-based reasoning (CBR) and the research that&#8217;s being done applying it to games.  It&#8217;s arguably one of the most promising avenues of academic research I&#8217;ve seen in a while.</p>
<p>In particular, there are a few key issues that <acronym title="Case-Based Reasoning" >CBR</acronym> tackles head on that make it interesting for the future of game development:</p>
<ul>
<li><p>It focuses heavily on workflows and methodology for developing AI.</p></li>
<li><p>It tries to remedy the content bottleneck at the behavioral level.</p></li>
<li><p>It emphasizes human assistance not just raw AI technology.</p></li>
</ul>
<p>All three of these topics are critical to game AI, so from my perspective I&#8217;d say that <acronym title="Case-Based Reasoning" >CBR</acronym> is on the right track.  However, as you&#8217;ll see shortly, some of its core principles are questionable when applied to AI in games&#8230;</p>
<p><span id="more-792" ></span></p>
<p><i>Note: I&#8217;m writing this editorial mainly to encourage research to address these problems, even if it involves adapting the useful ideas of CBR into a different kind of technology altogether.  So if you have any comments or ideas feel free to post them below!</i></p>
<h3>What is CBR?</h3>
<p>Case-Based Reasoning works by combining knowledge acquired from experts during development, expressed as a database of special cases, with automated reasoning at runtime to find the most applicable example from the expert and apply it to the current situation.</p>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/10/darmok.png" />
<p  style="font-style: italic;"><br/><u>Figure 1</u>: Overview of the Darmok system, which applies case-based planning to the strategy game Wargus. (See paper below.)</p>
</div>
<p>Generally speaking the workflow can be summarized as follows:</p>
<ol>
<li><p>Let an the expert play a few games in the same conditions as the AI would.</p></li>
<li><p>Monitor and track all the actions of the player and log them for later.</p></li>
<li><p>Annotate each of the actions in terms of the expert&#8217;s strategy.</p></li>
<li><p>Store each of these cases in a database that can be used at runtime.</p></li>
<li><p>Use a nearest-neighbor algorithm to retrieve the best case for each situation.</p></li>
</ol>
<p>The algorithm works when there are sufficient cases, since it can figure out that <i>&#8220;the expert did this in a similar situation, so I&#8217;ll try this now to achieve the same objective.&#8221;</i>  So far, so good.  But where does <acronym title="Case-Based Reasoning" >CBR</acronym> start to struggle when applied to game AI?</p>
<p>I will assume you are familiar with the <a href="http://aigamedev.com/essays/anatomy-ai-architecture" >anatomy of a game AI architecture</a> for characters, which I wrote about previously on this blog.  The article describes the different kinds of problems that are common in game AI, ranging from highly constrained decisions to almost unrestricted choices.</p>
<h3>Precise Sequential Control</h3>
<p>The first thing to note is that very constrained problems &mdash; either because of design requirements or asset restrictions &mdash; require accurate control over the behaviors.  In the games industry, that&#8217;s typically done by sequences of actions (akin to small scripts) which handle special cases very well.  Most often, you&#8217;ll find such sequences at the level just above animation control (e.g. move into cover first, then crouch down) or to deal with story element or level goals in the correct order (e.g. play line of dialog, then attack).</p>
<p>Modern <acronym title="Case-Based Reasoning" >CBR</acronym> techniques go through a lot of trouble to capture these sequences from the expert annotations.  I&#8217;m using the following paper as a reference, which basically works out the dependencies of actions with a little help from the expert&#8217;s annotations:</p>
<pre class="paper"   style="padding-left: 72px; background: #e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>On-Line Case-Based Plan Adaptation for Real-Time Strategy Games</b>
N Sugandh, S Ontañón, A Ram
23rd AAAI Conference on Artificial Intelligence (AAAI-08)
Download <a href="http://www.cc.gatech.edu/faculty/ashwin/papers/er-08-04.pdf" >PDF</a>
</pre>
<p>The down side of <acronym title="Case-Based Reasoning" >CBR</acronym> is that even with the hard work to generate dependency graphs, there are no guarantees that the system has figured out specific sequences that are required for the game AI to function correctly when the decisions are highly constrained.  As a result, it&#8217;s left to either <acronym title="Quality-Assurance" >QA</acronym> or the expert himself to go in after the <acronym title="Case-Based Reasoning" >CBR</acronym> analysis has run and check that the correct sequence was induced correctly.  You could add automated tests for this also, but at this stage, you&#8217;ve reached a poin