<?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"?><!-- generator="wordpress/2.2" --><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>Wed, 27 Aug 2008 14:48:06 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2</generator>
	<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://aigamedev.com/feed/" 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%2Faigamedev.com%2Ffeed%2F" 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%2Faigamedev.com%2Ffeed%2F" 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%2Faigamedev.com%2Ffeed%2F" 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.rojo.com/add-subscription?resource=http%3A%2F%2Faigamedev.com%2Ffeed%2F" src="http://blog.rojo.com/RojoWideRed.gif">Subscribe with Rojo</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://aigamedev.com/feed/" 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%2Faigamedev.com%2Ffeed%2F" 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%2Faigamedev.com%2Ffeed%2F" 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%2Faigamedev.com%2Ffeed%2F" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>Programming, Pictures, Presentations or Prose?</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/376246166/pictures-presentations-prose</link>
		<comments>http://aigamedev.com/discussion/pictures-presentations-prose#comments</comments>
		<pubDate>Wed, 27 Aug 2008 14:48:06 +0000</pubDate>
		<dc:creator>Dave Mark</dc:creator>
		
		<category><![CDATA[Discussion]]></category>
<category>aiide</category><category>book</category><category>conference</category><category>event</category><category>game ai</category><category>game development</category><category>information</category><category>learning</category><category>paper</category><category>sdk</category><category>talk</category><category>teaching</category>
		<guid isPermaLink="false">http://aigamedev.com/discussion/pictures-presentations-prose</guid>
		<description><![CDATA[For this week&#8217;s discussion, Dave Mark introduces the subject of learning from different forms of media &#8212; in the context of game AI.  Do you think reading code is valuable or a waste of time?  Prefer downloading powerpoint slides?  Let us know below!

In early July, I wrote in this space about how [...]]]></description>
			<content:encoded><![CDATA[<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;">For this week&#8217;s discussion, <a href="http://intrinsicalgorithm.com/" >Dave Mark</a> introduces the subject of learning from different forms of media &mdash; in the context of game AI.  Do you think reading code is valuable or a waste of time?  Prefer downloading powerpoint slides?  <a href="http://aigamedev.com/discussion/pictures-presentations-prose#comment" >Let us know</a> below!</p>
<img hspace="1em"  align="left"  class="left"  src="http://aigamedev.com/wp-content/uploads/2008/08/crayons.jpg"  alt="From now on, all AI papers should be written in crayon!"   style="float: left; margin-right: 1em;"/>
<p>In early July, <a href="http://aigamedev.com/discussion/storm-books-papers" >I wrote in this space</a> about how I was feeling a little inundated by the massive amount of research and discussion material that was out there lately. (My metaphor complained about how we had been getting hammered by severe weather in the plains states. My concerned readers will be happy to know that it hasn&#8217;t so much as rained here in a month. Be careful what you wish for, I suppose&#8230; I&#8217;m spending a fortune on watering my lawn.) My point was, it&#8217;s hard to decide what or how much to read. There must be a way of filtering things down so that I only use time on the most meaningful information. Do you try to touch on everything a little or do you just pick and choose things that you can get elbows deep into.</p>
<p>However, there has been something that has kind of fallen out of that original lament. I have begin realizing that a part of my filtering algorithm has been based around what format the information is delivered in. There are some things that work better in some formats whereas others are better delivered in other ways. Unfortunately, sometimes the information isn&#8217;t presented in that preferable format. Of course, sometimes that just isn&#8217;t possible. Still, I like it when people go the lengths to make digestion easy for me.<br/>
<span id="more-685" ></span></p>
<h3>Less Code, Please</h3>
<p>There are a few recent examples of how I just don&#8217;t have the calories to burn on something which should be very important to me. One such medium is SDKs or other forms of AI code. I downloaded the <a href="http://aigamedev.com/source/fear-sdk" >F.E.A.R. SDK</a> a few months back &#8212; and I looked through it some. I also grabbed the <a href="http://www.2kgames.com/civ4/downloads.htm" >AI source code for Civ 4</a> &#8212; which is really important to me with my specialization in strategy simulations. In neither case could I find the time to wade through it. I suppose I could have done it a little bit at a time&#8230; but just the act of remounting my brain to figure out where I left off is time-consuming. I often wish that there were road maps that pointed me straight to the important bits so I didn&#8217;t have to go through the mundane stuff. I want write-ups of what I&#8217;m looking at. I want diagrams of how the pieces and parts are working so I don&#8217;t have to assemble all the clues myself. (To be fair, I don&#8217;t even like looking through <em>my</em> old code that I haven&#8217;t touched in a while&#8230; but going through someone else&#8217;s sight-unseen is very tedious.)</p>
<h3>More Code, Please</h3>
<img hspace="1em"  align="right"  class="right"  src="http://aigamedev.com/wp-content/uploads/2008/08/code.jpg"  alt="Code good? Code bad?"   style="float: right; margin-left: 1em;"/>
<p>On the other hand, one thing I don&#8217;t like so much is presentations on what are ostensibly programming concepts (or program<em>mable</em> concepts) that don&#8217;t include code. Whether it be a book, whitepaper or blog article on a subject, there are times when grasping the concept would be just a touch easier, quicker&#8230; or at least more complete, if they were to include even simple code snippets. I will even accept pseudo-code at times. Now, I understand that for shorter things like blog posts, writing up sample code is asking a bit much. But I really appreciate the extra effort made by authors of books to show what they are talking about in code. In the AI Game Programming Wisdom books, for example, there is definately a premium on articles that have code &#8212; not just on the CD, but actually excerpted <em>in the article itself</em>.</p>
<h3>Pretty Pictures, Please</h3>
<p>Another form of explanation that really works for me is the visual side of things. If you can put example data in a table, do it. If you can assist in the presentation of a sequence of events by drawing a simple box and arrow diagram, do it. As I read on through the written material, my eyes will flicker back and forth to the diagram. In a way, it acts like an anchor for my thoughts. For more involved concepts such as entity relationships, this becomes even more important. If you are going to paint an example of how an agent will react in a situation, show me a simple representation of the situation. </p>
<img class="center"  src="http://aigamedev.com/wp-content/uploads/2008/08/dilbert_presentation.gif"  alt="Presentations are only as good as the presenter…" />
<h3>Uh, What Are These Pretty Pictures?</h3>
<p>On the other hand, there&#8217;s only so much I can get from pretty pictures. Sometimes I really want to hear the person describe what they did (and by implication, what I should do). I find that I can often not only get more information quicker with a video or live presentation than I can get from a paper or code, but the quality of the transfer is better into my brain. I also know that he is not likely to bother saying or showing the fluff&#8230; but rather the sexy stuff. Coming full circle, however, there is going to be a wall in even the best presentation where I am going to want code to complete my immersion into the concept.</p>
<img hspace="1em"  align="right"  class="right"  src="http://aigamedev.com/wp-content/uploads/2008/08/minsky.jpg"  alt="This is Grandfather Minsky... not Damián Isla. Thought you would like to know."   style="float: right; margin-left: 1em;"/>
<p>On a related note, there is nothing more frustrating than having some killer Powerpoint slides without the actual presentation available. You get all the teaser material but the content is missing. One of the best examples I saw of this recently was Damián Isla&#8217;s 2005 AIIDE presentation on &#8220;<em>spatial competence</em>&#8221; entitled &#8220;Dude, where&#8217;s my Warthog?&#8221; (<a href="http://www.aiide.org/aiide2005/talks/isla.ppt" >7.1 MB ppt download</a>) I was salivating in true Pavlovian style by going through the 44 slides of bulleted lists, images (many of which have multiple overlays per slide), and a one paragraph nod to &#8220;Grandfather Minsky&#8221;. However, without Damian&#8217;s dulcet tones to fill in the gaps between the bullets, I was left creating small puddles of drool on my desk. I needed more&#8230; I needed explanation&#8230; I needed it written out&#8230; I needed code. (BTW, my plan is to ply Damián with beer at October&#8217;s <a href="http://www.aiide.org/AIIDE2008/Welcome.html" >AIIDE Conference</a> and get him to reprise this presentation.)</p>
<h3>And The Verdict?</h3>
<p>Another reason that this whole idea of various presentation methods has been important to me lately is&#8230; well&#8230; I can&#8217;t officially announce my reason yet. (Many of you know anyway - but give me a few more days before I go &#8220;on the record&#8221; with it.) Suffice to say, I will be doing some &#8220;presenting&#8221; of my own soon. I have had to ask myself over and over throughout the process (and will need to continue to do so), what is &#8220;the best way&#8221; of getting my point across? So, that brings me to my discussion question for the week&#8230; </p>
<p>How do you like getting your educational information? When is code a good thing and when is it over the top? When do you want detailed text and when would you rather have a diagram handy? When do you just simply <em>have</em> to have <del>Damián</del> a live person armed with Powerpoint or simply a paper napkin and a pen?</p>
<div style="padding: 1em 2em; border-top: 4px dashed black; clear: both;">
<a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=4&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F1591406463&amp;ismap="><img src="http://files.aigamedev.com/books/S1591406463.jpg" alt="Biologically Inspired AI for Computer Games" style="float: left;"/></a>

<h3>Biologically Inspired AI for Computer Games</h3>

<p>A book for developers wanting to bridge the gap between academic AI and the games industry, covering:</p>

<ul>
<li>Evolutionary Algorithms</li>
<li>Neural Networks</li>
<li>Artificial Immune Systems</li>
<li>Particle Swarms</li>
</ul>

<p>Includes simple explanations for beginners and case studies.  <a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=4&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F1591406463&amp;ismap=">Click here</a> for more details.</p><div id="beacon_4" style="position: absolute; left: 0px; top: 0px; visibility: hidden;"><img src='http://aigamedev.com/ads/adlog.php?bannerid=4&amp;clientid=3&amp;zoneid=3&amp;source=&amp;block=0&amp;capping=0&amp;cb=53ae8806665c62b6686a2149bdf080ba' width='0' height='0' alt='' style='width: 0px; height: 0px;'></div></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/376246166" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/discussion/pictures-presentations-prose/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Fdiscussion%2Fpictures-presentations-prose</feedburner:awareness><feedburner:origLink>http://aigamedev.com/discussion/pictures-presentations-prose</feedburner:origLink></item>
		<item>
		<title>Game AI Roundup Week #34 2008: 11 Stories, 1 Video, 3 Jobs, 1 Paper</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/373966903/2008-week-34</link>
		<comments>http://aigamedev.com/links/2008-week-34#comments</comments>
		<pubDate>Mon, 25 Aug 2008 04:51:06 +0000</pubDate>
		<dc:creator>Novack</dc:creator>
		
		<category><![CDATA[Roundup]]></category>
<category>algorithm</category><category>animation</category><category>behavior</category><category>behaviors</category><category>bot</category><category>debugging</category><category>designer</category><category>engine</category><category>game ai</category><category>games</category><category>intelligent</category><category>language</category><category>logic</category><category>modular</category><category>navigation</category><category>siggraph</category><category>simulation</category><category>video</category>
		<guid isPermaLink="false">http://aigamedev.com/links/2008-week-34</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 many 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[<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 many 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).</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-676" ></span></p>
<h3>Why &#8220;AI Accelerators&#8221; Will Never Happen</h3>
<p><em>Paul Tozour</em> and another excellent article on the blog <u>Game/AI</u>. This time discussing some perspectives on the (non)posibility of the AI cards succeeding in the market.</p>
<blockquote><p>You might have noticed I’ve been using this blog as my answer file. Every post answers a complicated question that’s too important to leave unanswered but too complicated to explain in casual conversation.</p>
<p>One question I run into is: “Don’t you think we’re moving toward , in the same way that the ATI and nVidia GPUs accelerate 3D graphics?”</p>
<p>This post explains why that will never happen, and why we should be happy that it won’t.</p>
</blockquote>
<ul>
<li><p><a href="http://www.ai-blog.net/archives/000153.html#more" >Game/AI: Why &#8220;AI Accelerators&#8221; Will Never Happen</a></p></li>
</ul>
<h3>Killzone 2 Adds Multiplayer Bot Action</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/killzone.jpg" />
<br/><br/>
</div>
<p><u>Kotaku</u> posted a comment on the announcement by Guerrilla Games about multiplayer AI bots on the upcoming <strong>Killzone 2</strong>.</p>
<blockquote><p>I just got back from a hands on with Killzone 2 multiplayer, which I will tell you about in a bit, where Guerrilla Games multiplayer designer Eric Boltjes confirmed that Killzone 2 would indeed be featuring AI bots to help fill out online matches while allowing those who prefer the offline multiplayer experience someone fake to play with. Bots in Killzone 2 will actively try to react how a player would react, able to use all abilities, weapons, and participate in all mission types.</p></blockquote>
<ul>
<li><p><a href="http://kotaku.com/5040415/killzone-2-adds-multiplayer-bot-action" >Killzone 2 Adds Multiplayer Bot Action</a></p></li>
</ul>
<h3>Mashing up tools</h3>
<p><em>Eric Rice</em> in his blog <u>Spinfocalypse</u> posted an article commenting on the idea of interlacing AIML, Inform 7, tag clouds and social network services as tools for game AI development, in relation to the <u>Gamasutra</u> article that I commented last week <em>&#8220;Beyond AIML: Chatbots 102&#8243;</em></p>
<blockquote><p>I’ve spent a lot of time recently pondering the creation of my own AI characters for use in my game/fiction/universe project. The idea of mashing up the four topics above are purely theoretical.</p></blockquote>
<ul>
<li><p><a href="http://ericrice.com/spin/2008/08/17/mashup-aiml-inform-7-tag-clouds-social-network-services/" >spinfocalypse - Mashup: AIML + Inform 7 + tag clouds + social network services</a></p></li>
</ul>
<h3>New project with xaitment technology</h3>
<p>xaitment joined forces with Coreplay to begin the development of <strong>Swarm - First Contact</strong>.</p>
<blockquote><p>xaitment GmbH, one of the leading developers and service providers of artificial intelligence for the games and simulation industries, and Coreplay, a development studio located in Munich, Germany, announced today that they have begun work together on a first person action game entitled “Swarm - First Contact” for the PC and Xbox 360. In the game, players take on the roll of humans as they battle an attacking alien force that is bent on overrunning the earth and all of mankind. A demo of the game can be seen at this year’s Games Convention in Leipzig at xaitment’s booth, G20. The booth can be found in the Developer Village in Hall 2.</p></blockquote>
<ul>
<li><p><a href="http://www.prweb.com/releases/2008/8/prweb1227924.htm" >xaitment and Coreplay Begin Development on &#8220;Swarm - First Contact&#8221;</a></p></li>
</ul>
<h3>Quote of the week</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/amd-cinema20.jpg" />
<br/><br/>
</div>
<p>AMD spokesman <em>Dave Erskine</em>, commented this to the <u>Herald Sun</u>, about <strong>Cinema 2.0</strong> a technology to <em>revolutionise how we play games.</em>.</p>
<blockquote><p>“&#8230;Think video games that look as good as movies and movies you can interact with. Or use artificial intelligence (AI) so movies end differently every time&#8230;”</p></blockquote>
<ul>
<li><p><a href="http://www.news.com.au/heraldsun/story/0,21985,24207552-11869,00.html" >Wholly Jolie | Herald Sun</a></p></li>
</ul>
<h3>Jobs of the week</h3>
<p>Three more jobs this week, two for the same studio Midway, which seems to be in process of a major personnel incorporation, and Rockstar, renewing the call for its recently acquired New England studio.</p>
<h4>Rockstar: AI Programmer</h4>
<blockquote><p>Rockstar, the creators of such hits as Grand Theft Auto IV and Bully, has acquired a new studio; Rockstar New England (formerly Mad Doc® Software). With experience in every aspect of game development, and an unmatched expertise in Artificial Intelligence, Rockstar New England is a registered Xbox®, Xbox 360™ and PlayStation®3 developer. Having recently completed the Xbox 360 adaption of Bully: The Scholarship Edition, the studio is working on exciting new projects, and looking for people who want to be part of one of the most successful and innovative developers of interactive entertainment.</p></blockquote>
<ul>
<li><p><a href="http://jobs.gamasutra.com/jobseekerx/viewjobrss.asp?cjid=16170&#038;accountno=362" >Job: AI Programmer </a></p></li>
</ul>
<h4>Surreal Software: AI Programmer</h4>
<blockquote><p>Surreal Software Inc. (a subsidiary of Midway and the studio which created The Suffering and Drakan) has an opening for a Senior Artificial Intelligence programmer to help develop the AI source base of projects including “This is Vegas,” our new AAA-budget open-world title for Xbox 360, PS3 and PC.</p></blockquote>
<ul>
<li><p><a href="http://search8.smartsearchonline.com/midwaygames/jobs/jobdetails.asp?current_page=1&#038;onlyintern=&#038;city=&#038;location=&#038;job_type=&#038;emp_status=&#038;country=&#038;k1=&#038;k2=&#038;k3=&#038;k4=&#038;k5=&#038;k6=&#038;k7=&#038;k8=&#038;salary_min=&#038;co_num=&#038;apply=yes&#038;job_number=949" >Job: AI Programmer </a></p></li>
</ul>
<h4>Midway: Senior AI Programmer</h4>
<blockquote><p>Midway Chicago has an opportunity for a smart, innovative Senior AI programmer who wishes to push the boundaries for a triple-A multi-platform game. We are looking for a senior software engineer who has top-to-bottom experience with AI game code, systems, and tools; someone who understands that good game AI is about far more than path finding and algorithms – it is about bringing the world to life, making it believable, engaging the player and above all else, making it fun to play.</p></blockquote>
<ul>
<li><p><a href="http://search8.smartsearchonline.com/midwaygames/jobs/jobdetails.asp?current_page=2&#038;onlyintern=&#038;city=&#038;location=&#038;job_type=&#038;emp_status=&#038;country=&#038;k1=&#038;k2=&#038;k3=&#038;k4=&#038;k5=&#038;k6=&#038;k7=&#038;k8=&#038;salary_min=&#038;co_num=&#038;apply=yes&#038;job_number=783" >Job: Senior AI Programmer </a></p></li>
</ul>
<h3>Iterations and vertical slices</h3>
<p><em>Clinton Keith</em>, on his blog <u>Agile Game Development</u> dedicated to agile software development methodologies in the game industry, posted an article exemplifying some techniques with the case of creating AI behaviors.</p>
<blockquote><p>Iterations (or Sprints) are like mini projects by themselves. They often include design, coding, asset creation, tuning and debugging. However we are not always producing full vertical slices of a game every iteration. We’ll use a an example of what we might deliver for a team which is focused on creating AI behaviors: One of the most difficult aspects of AI behavior is navigation in a complex environment. The AI logic has to identify objects that will prevent the NPC from moving and calculate a path around them. Throw in some other moving characters and objects and the problem can become very complex to solve. Navigation can become the most riskiest problem to solve AI and therefore one the the riskiest problems to solve for the entire game.</p></blockquote>
<ul>
<li><p><a href="http://www.agilegamedevelopment.com/2008/08/iterations-and-vertical-slices.html" >Agile Game Development: Iterations and vertical slices</a></p></li>
</ul>
<h3>Serious AI</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/guanxi.jpg" />
<br/><br/>
</div>
<p>Serious games are increasingly using advances AI techniques, generally for training purposes on different disciplines. In this case helping with a very abstract concept: mantain and improve the <a href="http://en.wikipedia.org/wiki/Guanxi" >Guanxi</a> in China.</p>
<blockquote><p>Gua-nxi is the first in a range of “Serious Games”  is developing to overcome the challenges of learning foreign languages and new cultures. Players are immersed within virtual environments where they can actively learn and practice their foreign language and cultural awareness skills.</p>
<p>The use of AI (Artificial Intelligence) allows users to practice conversation skills and building rapport with characters as they would in the real world. Players can practice cultural etiquette and communication skills in a variety of different interactions.</p>
</blockquote>
<ul>
<li><p><a href="http://elianealhadeff.blogspot.com/2008/08/serious-games-cutivate-gunxi-for.html" >FUTURE-MAKING SERIOUS GAMES: Serious Games Cutivate Gua-nXi For Successful Business in China</a></p></li>
</ul>
<h3>Left 4 Dead Interview</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/left4dead.jpg" />
<br/><br/>
</div>
<p><u>Voodoo Extreme</u> bring us some more information on the upcoming Source based title <strong>Left 4 Dead</strong>. The most interesting part is about new info and elaboration around the AI Director concept, which is apparently much more than an AI director: is in charge of the whole ambience in the game, managing sounds, music, and visual effects.</p>
<blockquote><p>The Director itself is controlling things like the visual effects. If you look at what a movie director does when they’re making a horror movie, they’re always inserting sound cues. Sometimes they’ll warn you, like they’ll put in a musical overture to indicate that something bad is going to happen, and they do that consistently. But then one time they won’t do that, to surprise you.</p>
<p>The Director will also use visual cues. When things are getting bad, you’ll notice that the colors are pulled out of the world, it desaturates the screen, and it’ll also lower the lighting level. That will stress you out, and make it harder for you to see. The Director is using those tricks, and we found it very useful to look to the language of cinema for ideas about how to create that shared experience.</p>
<p>But it has to be done procedurally, because you don’t know what the individual players are going to do. They’re four actors in a horror movie, and none of them have a copy of the script. So the world and the Director have to adapt to what it is that they’re doing. While we were playing, you could get a sense for some of the decisions that the Director was making.</p>
</blockquote>
<ul>
<li><p><a href="http://ve3d.ign.com/articles/news/41050/Left-4-Dead-Interview" >Left 4 Dead Interview - Voodoo Extreme</a></p></li>
</ul>
<h3>Paper: March of the Froblins</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/froblins.JPG" />
<br/><br/>
</div>
<p><em>Jeremy Shopf</em> on his blog <u>Level of Detail</u>, linked a paper of a presentation that he and the group he work with at AMD made for this year&#8217;s SIGGRAPH. “Froblins”, a talk covering using the GPU and DirectX 10.1 for scene management, occlusion culling, terrain tessellation, approximations to global illumination, character tessellation, and crowd simulation. Here is the chapter from the course notes on crowd simulation.</p>
<pre class="paper"   style="padding-left: 72px; background: #e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
Simulation and Rendering Massive Crowds of Intelligent and Detailed Creatures on GPU
Chris Oat and Natalya Tatarchuk
2008
<a href="http://ati.amd.com/developer/SIGGRAPH08%5CChapter03-SBOT-March_of_The_Froblins.pdf" >Download PDF</a>
</pre>
<ul>
<li><p><a href="http://levelofdetail.wordpress.com/2008/08/09/game-computing-applications-group-siggraph/" >SIGGRAPH « Level of Detail</a></p></li>
</ul>
<h3>The Origami Killer</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/heavyrain.jpg" />
<br/><br/>
</div>
<p><em>Ellie Gibson</em> of <u>Eurogamer</u> wrote a preview on <strong>Heavy Rain</strong> the Quantic Dream&#8217;s long-awaited follow-up to Fahrenheit.</p>
<blockquote><p>Cage reiterates that what we’ve just seen won’t be in the finished main game, but adds, “There will be around 60 scenes like this, each one unique and contextual. Each fight is unique. Each situation is unique. You will never see the same animation twice. Each scene has its own story arc, its own interactivity.</p>
<p>“And all this in a very dark and mature thriller full of twists and turns,” says Cage. “If you can imagine that, you will start to see what this project is about.”</p>
</blockquote>
<ul>
<li><p><a href="http://www.eurogamer.net/article.php?article_id=221452" >Heavy Rain: The Origami Killer Preview</a></p></li>
</ul>
<h3>AI.implant becomes commercial once more</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/aiimplant.jpg" />
<br/><br/>
</div>
<p><u>Develop</u> brought us the latest news about <strong>AI.implant</strong>.</p>
<blockquote><p>Standard licensing terms now available for PC, Xbox 360 and PS3 games.</p>
<p>Those who follow the middleware scene may remember a piece of AI middleware called AI.implant. They may also remember that it was then bought, then bought again, and suddenly its owners took more interest in the simulation field.</p>
</blockquote>
<p>Also there is an article on the Tool Focus section of <u>Develop</u> commenting on this:</p>
<blockquote><p>“More and more, we find our modelling and simulation customers are developing for consoles,” he explains. “We see a lot of primary contractors on the military side looking at game platforms to put an element of fun into their products, particularly to appeal to the young users who have grown up using games.”</p></blockquote>
<ul>
<li><p><a href="http://www.developmag.com/tutorials/95/TOOL-FOCUS-AIimplant" >TOOL FOCUS: AI.implant</a></p></li>
<li><p><a href="http://www.developmag.com/news/30369/AIimplant-becomes-commercial-once-more" >AI.implant becomes commercial once more | News by Develop</a></p></li>
</ul>
<h3>Meet “Emily” - Image Metrics Tech Demo</h3>
<div class="image"   style="text-align: center;">
<object width="425"  height="344" >
<param name="movie"  value="http://www.youtube.com/v/bLiX5d3rC6o&#038;hl=es&#038;fs=1" /></param>
<param name="allowFullScreen"  value="true" /></param><embed src="http://www.youtube.com/v/bLiX5d3rC6o&#038;hl=es&#038;fs=1"  type="application/x-shockwave-flash"  allowfullscreen="true"  width="425"  height="344" ></embed></object><br/>
<br/>
</div>
<blockquote><p>Yes you read correctly, TECH demo. She&#8217;s fake. She IS the demo.</p>
<p>Until the 1:30 mark when they revert back to the source (the real actress), her entire face is being simulated by the technology.</p>
<p>Image Metrics Official Website: http://www.image-metrics.com</p>
</blockquote>
<ul>
<li><p><a href="http://www.youtube.com/watch?v=bLiX5d3rC6o" >Meet &#8220;Emily&#8221; - Image Metrics Tech Demo</a></p></li>
</ul>
<h3>Artificial Technology unveils EKI One</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/08/ekione.jpg"  class="right"   style="float: right; margin-left: 1em;"/>
<p>There is a new AI middleware in the market: a new solution for implanting emotion into virtual characters by Artificial Technology, called <strong>EKI One</strong>.</p>
<blockquote><p>Middleware start-up Artificial Technology has revealed details of its new solution for implanting emotion into virtual characters.</p>
<p>Known as EKI One, the modular middleware gives programmers and designers the ability to give characters intelligent and emotional behaviour, increasing the immersiveness of the game or virtual world.</p>
</blockquote>
<ul>
<li><p><a href="http://www.developmag.com/news/30361/Artificial-Technology-unveils-EKI-One" >Artificial Technology unveils EKI One | News by Develop</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: 1em 2em; border-top: 4px dashed black; clear: both;">
<a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=5&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F0262083566&amp;ismap="><img src="http://files.aigamedev.com/books/S0262083566.jpg" alt="Second Person" style="float: left;"/></a>

<h3>Second Person</h3>

<p>A book about interactive fiction and natural language in computer games.</p>

<p><a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=5&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F0262083566&amp;ismap=">Click here</a> for more details.</p><div id="beacon_5" style="position: absolute; left: 0px; top: 0px; visibility: hidden;"><img src='http://aigamedev.com/ads/adlog.php?bannerid=5&amp;clientid=3&amp;zoneid=3&amp;source=&amp;block=0&amp;capping=0&amp;cb=7a8d9ed0f206293fcaa4e64a06a3c53e' width='0' height='0' alt='' style='width: 0px; height: 0px;'></div></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/373966903" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/links/2008-week-34/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-34</feedburner:awareness><feedburner:origLink>http://aigamedev.com/links/2008-week-34</feedburner:origLink></item>
		<item>
		<title>Puppet Strings, Remote Control, or Hands Off?</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/370354396/puppet-strings-remote-control</link>
		<comments>http://aigamedev.com/discussion/puppet-strings-remote-control#comments</comments>
		<pubDate>Wed, 20 Aug 2008 22:06:17 +0000</pubDate>
		<dc:creator>Dave Mark</dc:creator>
		
		<category><![CDATA[Discussion]]></category>
<category>designer</category><category>game ai</category><category>game development</category><category>methodology</category><category>scripting</category>
		<guid isPermaLink="false">http://aigamedev.com/discussion/puppet-strings-remote-control</guid>
		<description><![CDATA[In this week&#8217;s developer discussion on AiGameDev.com, Dave Mark sets the scene for a polarized discussion of methodologies.  Let everyone know which camp you fall into and post a comment below!

I have recently been privy to a discussion amongst a very learned and experienced group of AI developers. They were all expressing their opinions [...]]]></description>
			<content:encoded><![CDATA[<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 week&#8217;s developer discussion on <tt>AiGameDev.com</tt>, <a href="http://intrinsicalgorithm.com/" >Dave Mark</a> sets the scene for a polarized discussion of methodologies.  Let everyone know which camp you fall into and <a href="http://aigamedev.com/discussion/puppet-strings-remote-control#comment" >post a comment</a> below!</p>
<img hspace="1em"  align="left"  class="left"  src="http://aigamedev.com/wp-content/uploads/2008/08/marrionette.jpg"  alt="Tell me again what happens when the strings get tangled?"   style="float: left; margin-right: 1em;"/>
<p>I have recently been privy to a discussion amongst a very learned and experienced group of AI developers. They were all expressing their opinions on a subject that seems to be ever lurking in the virtual halls of the AI world. That subject is, in a broad sense, how much control should we have over our AI agents? Alternately, how much is even necessary? Interestingly, the answers to the &#8220;should&#8221; and &#8220;necessary&#8221; questions differ significantly depending on whom you ask. There are a number of schools of thought in this regard. I will try to touch on them here (although this will not be an exhaustive list, I&#8217;m sure.</p>
<p><span id="more-673" ></span></p>
<p>First, there is the &#8220;script everything&#8221; crowd. The belief here is that conveyance of the designers intent and vision as well as a properly presented level of entertainment is only possible if the agents in the game are treated much the same as actors in a film. We hand them not just the plot and screenplay but also micromanage what they say, how they say it, how they move around the set, how they even more their hands and face. The director of the film is analogous to the designers in the game world.</p>
<p>Second, there is the &#8220;autonomous agent&#8221; lobby. These are people that believe in the complete hands off approach. Design independent agents with the ability to perceive the world model, analyze their goals, and act on those goals without any intervention whatsoever. I suppose this maps over rather well to the &#8220;reality TV&#8221; model. You can populate your world with agents about which you have a general notion &#8212; but you can only vaguely guess at what they will do based on your perception of their &#8220;personality&#8221;. Once you toss a bunch of independent agents in a room, you never really know what you are going to get.</p>
<img hspace="1em"  align="right"  class="right"  src="http://aigamedev.com/wp-content/uploads/2008/08/tivo_remote.jpg"  alt="Show me again where the Kill Player button is?"   style="float: right; margin-left: 1em;"/>
<p>A third group, however, is what came up in this discussion. This group was based on more of a &#8220;repeat after me&#8221; model. The idea was that using various technologies, game entities could be shown how they were supposed to act by example. In some cases, this involved neural nets learning situational based responses. In other cases, this was based on a rough equivalent of what MoCap is to animation&#8230; i.e. &#8220;this is the way it is supposed to look.&#8221;</p>
<p>Obviously, this triangle is not composed of three completely disjoint points but rather outline a continuum of possibilities. The most common word that illustrates this would be &#8220;except&#8221;. For example, I want my agent to be completely autonomous <em>except</em> under this particular circumstance when I need it to be scripted. There is a wide range of possible combinations at that point&#8230; and yet it is deciding where that word &#8220;except&#8221; needs to be that seems to be the problem. Each of the above methods has its advantages and shortcomings&#8230; far more numerous than what I can delve into in this column. (After all, one could make the claim that I have been doing too much &#8220;<a href="http://aigamedev.com/discussion/play-first-code-later" >research</a>&#8221; this week.) Suffice to say that none of them are a &#8220;silver bullet&#8221;. At least not yet. </p>
<p>Much of the separation seems to appear along genre lines. Not the genre as a whole, but rather the genre <em>role</em> that any given agent is playing at one time. For example, you could have RPG elements mixed into an FPS game. During those times, strictly using a solution that is good for an FPS agent would fall significantly short of providing a solution for the RPG needs. One example that was given in the discussion I mentioned before was particularly poignant&#8230; a solution that involves the &#8220;let me show you how to do this&#8221; approach &#8212; which is suited well to fighting games &#8212; would be tedious if it were applied to an NPC shopkeeper whose daily life involves baking bread, putzing around his store and serving customers that came in to his humble establishment. (Of course, I have seen plenty of people in MMOs who were perfectly happy to live out their online lives doing exactly this. I admit that in the first week after the release of Ultima Online, I made a killing by dying people&#8217;s clothes for them. Was that really <del>10</del> <em>11</em> years ago?) </p>
<p>So, my question for the week is along the lines of ferreting out where those dividing lines are. What benefits are there to each of those three approaches? What caveats exist? As there merit in the industry slowly drifting towards any one of those three apexes?</p>
<div style="padding: 1em 2em; border-top: 4px dashed black; clear: both;">
<a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=4&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F1591406463&amp;ismap="><img src="http://files.aigamedev.com/books/S1591406463.jpg" alt="Biologically Inspired AI for Computer Games" style="float: left;"/></a>

<h3>Biologically Inspired AI for Computer Games</h3>

<p>A book for developers wanting to bridge the gap between academic AI and the games industry, covering:</p>

<ul>
<li>Evolutionary Algorithms</li>
<li>Neural Networks</li>
<li>Artificial Immune Systems</li>
<li>Particle Swarms</li>
</ul>

<p>Includes simple explanations for beginners and case studies.  <a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=4&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F1591406463&amp;ismap=">Click here</a> for more details.</p><div id="beacon_4" style="position: absolute; left: 0px; top: 0px; visibility: hidden;"><img src='http://aigamedev.com/ads/adlog.php?bannerid=4&amp;clientid=3&amp;zoneid=3&amp;source=&amp;block=0&amp;capping=0&amp;cb=7e0664b98864fc2ecd24a8b848c0e2b0' width='0' height='0' alt='' style='width: 0px; height: 0px;'></div></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/370354396" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/discussion/puppet-strings-remote-control/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Fdiscussion%2Fpuppet-strings-remote-control</feedburner:awareness><feedburner:origLink>http://aigamedev.com/discussion/puppet-strings-remote-control</feedburner:origLink></item>
		<item>
		<title>Game AI Roundup Week #33 2008: 10 Stories, 1 Video, 3 Jobs</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/367657066/2008-week-33</link>
		<comments>http://aigamedev.com/links/2008-week-33#comments</comments>
		<pubDate>Mon, 18 Aug 2008 00:53:36 +0000</pubDate>
		<dc:creator>Novack</dc:creator>
		
		<category><![CDATA[Roundup]]></category>
<category>a star</category><category>aigamedev</category><category>algorithm</category><category>animation</category><category>bot</category><category>conference</category><category>designer</category><category>fun</category><category>independent</category><category>language</category><category>lecture</category><category>realistic</category><category>research</category><category>scripting</category><category>siggraph</category><category>video</category>
		<guid isPermaLink="false">http://aigamedev.com/links/2008-week-33</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 have more jobs, and a variety of topics: as always, there are good articles and blog posts for you to read. Remember to visit the recently released Wiki! Also don&#8217;t forget [...]]]></description>
			<content:encoded><![CDATA[<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 have more jobs, and a variety of topics: as always, there are good articles and blog posts for you to read. Remember to visit the recently released <a href="http://wiki.aigamedev.com" >Wiki</a>! 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-664" ></span></p>
<h3>Beyond AIML: Chatbots 102</h3>
<p><em>Bruce Wilcox</em> wrote a technical article for <u>Gamasutra</u> about his current work, which consist on NPC text chatbots for <strong>Avatar Reality&#8217;s Blue Mars</strong>. Wilcox discusses his adventures in AI markup language to create effective human-text interaction.</p>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/aiml.JPG" />
<br/><br/>
</div>
<blockquote><p>Avatar Reality (www.avatar-reality.com), a virtual world company built from the ashes of the Square USA Honolulu office, wants to use chatbots to represent a user while that user is absent from the Blue Mars world - a CryEngine 2-using online environment set on a terraformed Mars. My job is to provide them with the appropriate chatbot technology.</p>
<p>AIML is one such technology, but for my purposes it is simply a woefully inadequate tool and once again I find myself building a new scripting language (see Reflections on Building Three Scripting Languages, a prior Gamasutra article). Hence Chatbots 102. </p>
</blockquote>
<ul>
<li><p><a href="http://www.gamasutra.com/view/feature/3761/beyond_aiml_chatbots_102.php" >Beyond AIML: Chatbots 102</a></p></li>
</ul>
<h3>IndyHall Lectures</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/indy_hall_lecture.JPG" />
<br/><br/>
</div>
<p><u>Independents Hall</u> has started a series of lectures, the first of which sounds very interesting: <em><strong>Battlefield Game AI: Grids, Guts, and Guns</strong></em>, in charge of some folks from Relic Entertainment, reposable from the state-of-the-art RTS <strong>Company of Heroes</strong>.</p>
<blockquote><p>This month we begin the IndyHall Lecture series, and we’re kicking it off with something completely new: a discussion of video game artificial intelligence, specific to battlefield games.</p>
<p>That’s right. IndyHall member Chris Jurney, who works for Relic Entertainment, is going to talk to us about some of the underlying AI systems behind one of the games he’s worked on, Company of Heroes.</p>
</blockquote>
<ul>
<li><p><a href="http://www.indyhall.org/2008/08/13/indyhall-lectures-battlefield-game-ai-grids-guts-and-guns/" >Independents Hall » IndyHall Lectures!</a></p></li>
</ul>
<h3>Machine Invasion. Human Outsmarted?</h3>
<p>More comments were issued about the series of news around the net on the Machine vs Man competitions, specially on the GO games (see previous Roundups). <em>Waq</em>, in his blog <u>Waq’s Words and World</u> posted some interesting clarifications and thoughs on the matter.</p>
<blockquote><p>By the way, it was a 9-stone handicap game, meaning that the computer was allowed to move 9 times before the human made his first. The positions of these handicap stones are usually predetermined to spread evenly over the board. So yea, humans are still that much better than machines in Go.</p></blockquote>
<ul>
<li><p><a href="http://idazuwaika.wordpress.com/2008/08/13/machine-invasion-human-outsmarted/" >Machine Invasion. Human Outsmarted? « Waq’s Words and World</a></p></li>
</ul>
<h3>Computer Poker Program Knows When to Hold &#8216;Em</h3>
<p>And following the trend of the Machine vs Man topic, some more comments, this time on the poker side. The interesting part is that poker-playing artificial intelligence systems, developed by a researcher at the University of California, San Diego School of Medicine, have been released for free use by the public.</p>
<blockquote><p>Ian Fellows, M.S., entered his program, called “Fell Omen 2” in the 2008 Computer Poker Competition sponsored by the Association for the Advancement of Artificial Intelligence (AAAI) at its annual conference last month in Chicago, where it placed second in a three-way tie.</p></blockquote>
<ul>
<li><p><a href="http://fusionsci-tech.blogspot.com/2008/08/omputer-poker-program-knows-when-to.html" >Computer Poker Program Knows When to Hold &#8216;Em</a></p></li>
<li><p><a href="http://thefell.googlepages.com/poker" >Fell Omen Home Page</a></p></li>
</ul>
<h3>Journalist rant of the Week</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/bus_simulator.JPG" />
<br/><br/>
</div>
<p>This week, the rant is for <u>PC Advisor</u> where heavy artillery were shooted over <u>Bus Simulator 2008</u> in the game review column. </p>
<blockquote><p>Artificial Intelligence is another key area in which Bus Simulator 2008 performs woefully. In essence, there is none. Cars don’t seem to realise that you’ve actually bothered to stop at a red light and frequently just carry on driving until they crash into you, whereas people are like zombies. At their worst, people have even been known get run over by your stationery bus by walking into it at random locations.</p></blockquote>
<ul>
<li><p><a href="http://www.pcadvisor.co.uk/reviews/index.cfm?reviewid=103057" >Bus Simulator 2008 review - PC Advisor</a></p></li>
</ul>
<h3>New Massive release: 3.5</h3>
<img hspace="1em"  align="left"  src="http://aigamedev.com/wp-content/uploads/2008/08/massive_35.JPG"  class="left"   style="float: left; margin-right: 1em;"/>
<p>Massive Software has released <strong>Massive 3.5</strong>, a new upgrade to Massive, the artificial intelligence (AI)-driven animation system at SIGGRAPH 2008.</p>
<blockquote><p>Massive 3.5 follows on Massive 3.0 with new features, including Agent Fields, improved integration, and hair and fur dynamics. Massive enables artists to create and direct anything from CG humanoids to birds, animals, cars, and more to deliver realistic and emotive virtual performances. Massive “agents” are 3D characters that use sight, sound, and touch to interpret and react autonomously to the world around them. Massive incorporates procedural animation and AI, and is used by professionals in animation, visual effects, and design visualization.</p></blockquote>
<ul>
<li><p><a href="http://www.cgw.com/ME2/dirmod.asp?sid=&#038;nm=&#038;type=news&#038;mod=News&#038;mid=9A02E3B96F2A415ABC72CB5F516B4C10&#038;tier=3&#038;nid=8F4E37AE28AE409AB492F4A46B4A24D0" >Massive 3.5 Debuts at SIGGRAPH 2008</a></p></li>
</ul>
<h3>Disney ramps up new technologies</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/08/catmull_ed.jpg"  class="right"   style="float: right; margin-left: 1em;"/>
<p><em>Ed Catmull</em> at Siggraph, the world&#8217;s largest computer graphics conference, was in charge of spread the word: Disney is ramping up its quest for innovative technologies.</p>
<blockquote><p>Aside from improved ways for fans and online users to interact with robotic and virtual Disney characters, Marks said research would include “sports visualization for ESPN, sports simulation for Disney Interactive Games, radios and antennas for handheld devices for the parks, and artificial intelligence for park attractions and games.”</p></blockquote>
<ul>
<li><p><a href="http://www.variety.com/article/VR1117990405.html?categoryid=1009&#038;cs=1" >Disney ramps up new technologies</a></p></li>
</ul>
<h3>Jobs of the week</h3>
<p>Another set of AI Game Development related jobs, courtesy of Gamasutra Jobseeker. This week we have very interesting positions, in Rockstar (for his new New England studio), Microsoft GS and Kaos Studios (this one has been for weeks on the board).</p>
<h4>Kaos Studios: Senior AI Programmer</h4>
<blockquote><p>Kaos Studios is located in the heart of New York City and is mere blocks from the Empire State Building and the thrill of Midtown Manhattan. Along with the opportunity to live in one of the most exciting cities in the world, we also just finished up one of the most exciting FPS titles to date. Frontlines: Fuel of War (PC/XBOX360) is already receiving great press and that’s just the beginning! We also offer competitive salaries, comprehensive health benefits, and an excellent compensation package. We are always looking for talented artists, developers, and designers to join our growing team, so check out our job postings and let us know what interests you!</p></blockquote>
<ul>
<li><p><a href="http://jobs.gamasutra.com/jobseekerx/viewjobrss.asp?cjid=16008&#038;accountno=375" >JobSeeker: Senior AI Programmer</a></p></li>
</ul>
<h4>Rockstar: AI Programmer</h4>
<blockquote><p>Rockstar, the creators of such hits as Grand Theft Auto IV and Bully, has acquired a new studio; Rockstar New England (formerly Mad Doc® Software). With experience in every aspect of game development, and an unmatched expertise in Artificial Intelligence, Rockstar New England is a registered Xbox®, Xbox 360™ and PlayStation®3 developer. Having recently completed the Xbox 360 adaption of Bully: The Scholarship Edition, the studio is working on exciting new projects, and looking for people who want to be part of one of the most successful and innovative developers of interactive entertainment.</p></blockquote>
<ul>
<li><p><a href="http://jobs.gamasutra.com/jobseekerx/viewjobrss.asp?cjid=16170&#038;accountno=362" >JobSeeker: Programmers: AI</a></p></li>
</ul>
<h4>Microsoft Games Studios: Senior AI Developer</h4>
<blockquote><p>Microsoft Games Studios is looking for experienced game developers to work on next generation Xbox platform titles and Windows games for the first-party publishing team. Come join the publishing teams that worked on games such as Jade Empire, Fable, Conker, PGR3, Rise of Nations, Zoo Tycoon, Dungeon Siege, Vanguard, and RalliSport Challenge. Work with our top first-party development partners to help ship a great first-party line up for next generation Xbox platform.</p></blockquote>
<ul>
<li><p><a href="http://jobs.gamasutra.com/jobseekerx/viewjobrss.asp?cjid=16010&#038;accountno=266" >JobSeeker: Senior AI Developer</a></p></li>
</ul>
<h3>Dave on Damian on Halo</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/08/logoiaonai.jpg"  class="right"   style="float: right; margin-left: 1em;"/>
<p><em>Dave Mark</em>, on his site <u>IA on AI</u>, posted some comments on the talk from <em>Damian Isla</em> at the Develop Conference about Halo hystory (which we covered last week).</p>
<blockquote><p>Damian Isla of Bungie spoke at the recent Develop conference in the UK. He covered a lot of the history of Halo and some of the design decisions that were made in the franchise. Here’s a story from Gamasutra that covers a lot of good stuff.</p>
<p>Specifically, there’s a couple of things I want to touch on.</p>
</blockquote>
<ul>
<li><p><a href="http://www.intrinsicalgorithm.com/IAonAI/2008/08/damian-on-halo-at-develop-conference.html" >IA on AI: Damian on Halo at the Develop Conference</a></p></li>
</ul>
<h3>The latest in game in Alice 2.0 « </h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/alice2.JPG" />
<br/><br/>
</div>
<p>One more post at <u>Kryotech</u>, commenting some AI advances on its game project. Although simple, this work represents one of the most advanced developments on game AI based on Alice Sofware Project.</p>
<blockquote><p>This game uses a new AI, that can sense how many allies are left and how badly it is damaged to retreat. This AI also tries to flank you and makes sure that you can’t flank it.</p></blockquote>
<ul>
<li><p><a href="http://kryotech.wordpress.com/2008/08/10/the-latest-in-game-in-alice-20/" >The latest in game in Alice 2.0 « Kryotech</a></p></li>
</ul>
<h3>Godfather II AI built on a low-tech card game</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/godfather.JPG" />
<br/><br/>
</div>
<p><u>Gamester</u> published an interesting article where <em>Gieson Cacho</em> surprisingly reveal: the mob artificial intelligence is created in base of a card game, that senior designer<em> James Agay</em> created.</p>
<blockquote><p>“It’s how we get the AI to play like real people,” he said. The whole idea started a year ago and it morphed from a prototype tool to a demo tool to something that everyone at the studio plays.</p></blockquote>
<ul>
<li><p><a href="http://www.ibabuzz.com/videogames/2008/08/15/godfather-ii-ai-built-on-a-low-tech-card-game/" >Godfather II AI built on a low-tech card game - Gamester - Where work is all play</a></p></li>
</ul>
<h3>Artificial General Intelligence: Now Is the Time</h3>
<p>An interesting Google Tech Talk, about the<em> Dr. Ben Goertzel</em> works on Artificial General Intelligence.</p>
<div class="image"   style="text-align: center;">
<object width="425"  height="344" >
<param name="movie"  value="http://www.youtube.com/v/5hsvCib83ME&#038;hl=en&#038;fs=1" /></param>
<param name="allowFullScreen"  value="true" /></param><embed src="http://www.youtube.com/v/5hsvCib83ME&#038;hl=en&#038;fs=1"  type="application/x-shockwave-flash"  allowfullscreen="true"  width="425"  height="344" ></embed></object><br/>
<br/>
</div>
<blockquote><p>When the AI field was founded over 50 years ago, it was squarely focused on the grand dream of creating software displaying general intelligence at the human level or beyond. Since that time the field has drifted in a direction Ray Kurzweil has called &#8220;Narrow AI&#8221;: the creation of intelligent software applications carrying out highly particular functions. The relationship between this sort of narrow AI and &#8220;artificial general intelligence&#8221; (AGI) as in the original dreams of the AI field, is an issue of dispute among experts.</p></blockquote>
<ul>
<li><p><a href="http://www.youtube.com/watch?v=5hsvCib83ME" >Artificial General Intelligence: Now Is the Time Video</a></p></li>
<li><p><a href="www.kurzweilai.net/articles/art0701.html" >Artificial General Intelligence: Now Is the Time Essay</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: 1em 2em; border-top: 4px dashed black; clear: both;">
<a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=5&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F0262083566&amp;ismap="><img src="http://files.aigamedev.com/books/S0262083566.jpg" alt="Second Person" style="float: left;"/></a>

<h3>Second Person</h3>

<p>A book about interactive fiction and natural language in computer games.</p>

<p><a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=5&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F0262083566&amp;ismap=">Click here</a> for more details.</p><div id="beacon_5" style="position: absolute; left: 0px; top: 0px; visibility: hidden;"><img src='http://aigamedev.com/ads/adlog.php?bannerid=5&amp;clientid=3&amp;zoneid=3&amp;source=&amp;block=0&amp;capping=0&amp;cb=be8d6b3fdca7548d190bb4753fca7c0a' width='0' height='0' alt='' style='width: 0px; height: 0px;'></div></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/367657066" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/links/2008-week-33/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-33</feedburner:awareness><feedburner:origLink>http://aigamedev.com/links/2008-week-33</feedburner:origLink></item>
		<item>
		<title>Hierarchical Logic and Multi-threaded Game AI</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/365642340/hierarchical-logic-multi-threading</link>
		<comments>http://aigamedev.com/architecture/hierarchical-logic-multi-threading#comments</comments>
		<pubDate>Fri, 15 Aug 2008 12:38:39 +0000</pubDate>
		<dc:creator>Alex J. Champandard</dc:creator>
		
		<category><![CDATA[Architecture]]></category>
<category>behavior tree</category><category>concurrency</category><category>game ai</category><category>game development</category><category>hierarchical logic</category><category>library</category><category>parallel</category><category>performance</category><category>planning</category><category>ps3</category><category>xbox360</category>
		<guid isPermaLink="false">http://aigamedev.com/architecture/hierarchical-logic-multi-threading</guid>
		<description><![CDATA[ 
These days, the topic of multi-threading comes up rather frequently.  You&#8217;ll either hear sensationalist doomsday scenarios about how incredibly hard it is to implement, or how some language researcher has invented a revolutionary new technology that solves all the world&#8217;s concurrency problems.  Meanwhile, in the background, game developers have been innovating quietly, squeezing [...] ]]></description>
			<content:encoded><![CDATA[<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/essays/cpu-bottom.jpg"  class="left"  alt="CPU"  title="Getting to the bottom of the multi-threading problem..."   style="float: left; margin-right: 1em;"/>
<p>These days, the topic of multi-threading comes up rather frequently.  You&#8217;ll either hear sensationalist doomsday scenarios about how incredibly hard it is to implement, or how some language researcher has invented a revolutionary new technology that solves all the world&#8217;s concurrency problems.  Meanwhile, in the background, game developers have been innovating quietly, squeezing more and more performance out of their multi-core hardware&#8230;</p>
<p>With the troublesome first generation of games on modern consoles out of the way, it&#8217;s fair to say that developers have generally achieved a good grasp of multi-threading technology.  It&#8217;s not quite perfect yet, but there&#8217;s a solid base to build upon.  This article looks at ways that multi-threading is currently applied to artificial intelligence in games, and sets the scene for a series of articles that will investigate the process of applying parallelism to hierarchical logic (e.g. behavior trees or task network planners).</p>
<p class="message"   style="border: 1px dashed #444; background-color: #ddd; padding: 1em;"><u>NOTE</u>: You can <a href="http://aigamedev.com/members/signup.php" >sign-up here</a> (free) to the brand new <i>Insider&#8217;s Area</i> at <tt>AiGameDev.com</tt> and read the next tutorial in the series &mdash; along with its <tt>C++</tt> source code.  You&#8217;ll see various benchmarks of a proof-of-concept hierarchical planner built with  Intel&#8217;s <u>Threaded Building Blocks</u> library.</p>
<p><span id="more-663" ></span></p>
<h3>Typical Approach to Multi-threading</h3>
<p>In practice, game AI is threaded in a very pragmatic manner: “What part of the code is taking the most time and how can it be optimized?”  This approach has allowed developers to find bits of code that are well suited to being threaded, such as:</p>
<ul>
<li><p><strong>Pathfinding</strong>, when it&#8217;s low-level enough and doesn&#8217;t require callbacks to the main AI.</p></li>
<li><p><strong>Sensory systems</strong> processes such as: line of sight checks, many-to-many proximity checks.</p></li>
<li><p>High-level <strong>combat decisions</strong> where appropriate, such as terrain &#038; situation analysis.</p></li>
</ul>
<p>You can do relatively well with multi-threading by opportunistically offloading such computations to different threads when performance becomes a problem [<a href="http://www.insomniacgames.com/tech/articles/0807/files/a_gameplay_architecture_for_performance_clean.pdf" >PDF</a>, 1].  But with a bit of experience, these systems can be designed upfront so they are better suited to being multi-threaded.  This is particularly the case with <u>heterogeneous architectures</u> like the PS3; since you have only one main PPU and multiple smaller SPUs with very limited memory, you&#8217;ll typically need to architect your code &#038; data so it can fit in SPU memory upfront.</p>
<div class="image"   style="text-align: center;">
<img src="http://files.aigamedev.com/essays/hardware-los.jpg"  alt="Hardware Accelerated Line-Of-Sight" />
<p  style="font-style: italic;"><br/><u>Screenshot 1:</u> Line of sight calculations are relatively easy to multi-thread, and it&#8217;s even possible to offload such computations to dedicated hardware (<a href="http://www.aiseek.com/demos.htm#D4" >demo</a>).</p>
</div>
<p>With that in mind, developers increasingly build simple frameworks to multi-thread their games [<a href="http://www.valvesoftware.com/publications/2007/GDC2007_SourceMulticore.pdf" >PDF</a>, 2].  This typically includes a way to pass around computation (as function pointers) with their data (as references or pointers), and a mechanism for passing back the result of the computation.  Such frameworks work on most hardware, but particularly shine on <u>homogeneous architectures</u> like the Xbox360 or PC since it&#8217;s so easy to apply anywhere in the code with little hassle.</p>
<p>Even though these techniques work very well in practice, beyond separating sensory processing and path-finding calculations, the AI decision making is not typically handled in a multi-threaded fashion.  Is there room for improvement here?  Would multi-threading the AI&#8217;s reasoning process benefit games in terms of increased performance or improved intelligence?</p>
<pre class="paper"   style="padding-left: 72px; background: #e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
A Game­play Architecture for Performance [1]
Terrance Cohen, Insomniac Games
<a href="http://www.insomniacgames.com/tech/articles/0807/files/a_gameplay_architecture_for_performance_clean.pdf" >Download PDF</a> (390 Kb)
</pre>
<pre class="paper"   style="padding-left: 72px; background: #e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
Dragged Kicking and Screaming: Source Multicore [2]
Tom Leonard, Valve Software
<a href="http://www.valvesoftware.com/publications/2007/GDC2007_SourceMulticore.pdf" >Download PDF</a> (235 Kb)
</pre>
<h3>Motivation &#038; Challenges</h3>
<p>Over the last few years, the best AI systems have slowly moved towards a more uniform and automated approach to generating behavior.  These days, the cutting edge systems that are being developed are typically STRIPS planners or behavior trees.  (Of course, not everyone has such systems in place, but in AAA studios that emphasize solid AI, such solutions are increasingly common.)</p>
<p>The main motivation for this series of articles is to leverage such uniform AI frameworks to provide an equally uniform approach to multi-threading that could benefit the AI across the board – with little more work than it takes to create the AI system in the first place.</p>
<p>What does this mean in practice?  This kind of technology could potentially:</p>
<ol>
<li><p>Reduce the time taken to figure out which <strong>new behavior</strong> should be executed in the current context, if there&#8217;s currently no behavior running.</p></li>
<li><p>Decrease the cost of checking <strong>alternative course</strong> of actions to see if they are higher priority, or <strong>guaranteeing</strong> that the current behavior up-to-date.</p></li>
<li><p>Speed up the actual <strong>execution</strong> of behaviors too, as long as they offer a certain level of parallelism (e.g. procedurally animating different body parts).</p></li>
</ol>
<div class="image"   style="text-align: center;">
<img src="http://files.aigamedev.com/essays/parallel-performance.png"  alt="Performance of a Parallel Planner" />
<p  style="font-style: italic;"><br/><u>Figure 2:</u> Preliminary theoretical benchmarks that show the effectiveness of parallelizing typical AI code depending on its ratio of sequential to parallel logic (<a href="http://aigamedev.com/premium/tutorials/multi-threaded-planner-performance" >source</a>, free registration required).</p>
</div>
<p>However, the problem with multi-threading AI computation compared to other approaches is the following:</p>
<ul>
<li><p>There are restrictions in the order of the computations, imposed by data dependencies that need to be passed from one task to another.  This rules out straightforward solutions based on data parallelism.</p></li>
<li><p>The structure of these dependencies are only fully known at runtime while the AI is reasoning.  This also rules out solutions crafted manually by programmers development time.</p></li>
</ul>
<p>Effectively, the challenge here is computing the correct dependencies, threading what&#8217;s possible and making sure the rest is executed according to the specification.</p>
<h3>Background</h3>
<p>This series of articles will draw from a multitude of different technologies, mixing and matching where appropriate.</p>
<dl>
<dt  style="font-weight: bold;">Planners</dt>
<dd>
<p>Planners can be as simple as implementing as a basic graph search.  If the state used by this planner is self-contained and does not use using blocking procedures on shared variables, then the search can be parallelized by duplicating the state for every parallel search of a sub-graph.</p>
<p><u>Suggested Reading</u>: <a href="http://aigamedev.com/theory/strips-theorem-proving-problem-solving" >STRIPS</a>, <a href="http://aigamedev.com/source/fear-sdk" >F.E.A.R.&#8217;s SDK</a></p>
</dd>
<dt  style="font-weight: bold;">Hierarchical Planners</dt>
<dd>
<p>Hierarchical Task Network (HTN) planners provide a useful and elegant way to model dependencies implicitly using sequences of behaviors.  You can also model indirect dependencies thanks to the direct-acyclic graph structure of the domains (i.e. you just link to a shared behavior). This allows you to structure your logic and the order of the computation with much less effort that it would require to model pre-conditions and side-effects.</p>
<p><u>Suggested Reading</u>: <a href="http://aigamedev.com/theory/shop-htn" >SHOP</a>, <a href="http://www.cs.umd.edu/~nau/cmsc722/" >AI Planning Course</a></p>
</dd>
<dt  style="font-weight: bold;">Behavior Trees</dt>
<dd>
<p>HTN planners are very similar to behavior trees, except that behavior trees do less planning and focus more on reactive monitoring and control &mdash; also known as reactive planning.  What&#8217;s useful about behavior trees in the context of multi-threading is that they are structured as latent procedures that execute over time, and the whole logic is built to deal with any-time behavior.</p>
<p><u>Suggested Reading</u>: <a href="http://aigamedev.com/videos/behavior-trees-part1" >Behavior Trees for Next-Gen AI</a></p>
</dd>
</dd>
<dt  style="font-weight: bold;">Task Schedulers</dt>
<dd>
<p>The final ingredient in the mix is a task scheduler.  This technique makes it easy to implement things like behavior trees in an event driven way, such that little time is wasted polling and querying tasks, instead there&#8217;s a nice callback mechanism that helps parent tasks figure out when the child computation is done. (My article in AI Wisdom 4 shows how this can be done.)</p>
<p><u>Suggested Reading</u>: <a href="http://www.threadingbuildingblocks.org/" >Threaded Building Blocks</a>, <a href="http://aigamedev.com/go/amazon/1584505230" >AI Wisdom 4</a></p>
</dd>
</dl>
<p>Put everything together and you&#8217;ll start to get an idea of multi-threaded prototypes that can be built with this technology, for example simple hierarchical planners that&#8217;s built as a hierarchy of tasks with their computation managed centrally by a scheduler.</p>
<h3>Coming Soon&#8230;</h3>
<p>Over the next few months, on this blog (<a href="http://aigamedev.com/feed/" >RSS</a>) and in the Insider&#8217;s Area (free <a href="http://aigamedev.com/members/signup.php" >sign-up</a>), you&#8217;ll learn about various different prototypes that combine this technology, and find out more about the relative benefits and pitfalls.  In particular, the articles will tackle:</p>
<ol>
<li><p>Theoretical performance boost of threading sequences to selectors in typical AI logic, when searching the whole tree (worst case).</p></li>
<li><p>Over-head of memory allocations, for tasks and copies of state state.  Multi-threading friendly memory allocations.</p></li>
<li><p>Expected performance boost in the average case, assuming that the whole tree won&#8217;t be searched exhaustively.</p></li>
<li><p>Strategies to improve the cache coherence during multi-threading, by running similar computations in the same thread.</p></li>
</ol>
<p>The first article is already online <a href="http://aigamedev.com/premium/tutorials/multi-threaded-planner-performance" >here</a>!  <b>If you have any suggestions or comments, feel free to post them below!</b></p>
<div style="padding: 1em 2em; border-top: 4px dashed black; clear: both;">
<a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=6&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F1584504293&amp;ismap="><img src="http://files.aigamedev.com/books/S1584504293.jpg" alt="21st Century Game Design" style="float: left;"/></a>

<h3>21<sup>st</sup> Century Game Design</h3>

<p>This book is an answer to two important questions: who are we designing games for and how do we do it best?</p>

<p><a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=6&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F1584504293&amp;ismap=">Click here</a> for more details.</p><div id="beacon_6" style="position: absolute; left: 0px; top: 0px; visibility: hidden;"><img src='http://aigamedev.com/ads/adlog.php?bannerid=6&amp;clientid=3&amp;zoneid=3&amp;source=&amp;block=0&amp;capping=0&amp;cb=e7bc1097c07f0e8a3e06bc4f947d82a3' width='0' height='0' alt='' style='width: 0px; height: 0px;'></div></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/365642340" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/architecture/hierarchical-logic-multi-threading/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Farchitecture%2Fhierarchical-logic-multi-threading</feedburner:awareness><feedburner:origLink>http://aigamedev.com/architecture/hierarchical-logic-multi-threading</feedburner:origLink></item>
		<item>
		<title>Play First… Code AI Later</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/364233918/play-first-code-later</link>
		<comments>http://aigamedev.com/discussion/play-first-code-later#comments</comments>
		<pubDate>Wed, 13 Aug 2008 21:26:08 +0000</pubDate>
		<dc:creator>Dave Mark</dc:creator>
		
		<category><![CDATA[Discussion]]></category>
<category>bot</category><category>design</category><category>game ai</category><category>game development</category><category>intelligent</category><category>methodology</category><category>strategy</category><category>team</category>
		<guid isPermaLink="false">http://aigamedev.com/discussion/play-first-code-later</guid>
		<description><![CDATA[This week, Dave Mark tries to take a break from thinking about AI, but ends up doing it anyway!  Do you play your games this extensively before implementing the AI?   Join the discussion below by posting a comment.

An interesting thing happened to me on the way to the second capture point the [...]]]></description>
			<content:encoded><![CDATA[<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;">This week, <a href="http://intrinsicalgorithm.com/" >Dave Mark</a> tries to take a break from thinking about AI, but ends up doing it anyway!  Do you play your games this extensively before implementing the AI?   <a href="http://aigamedev.com/discussion/play-first-code-later#comment" >Join the discussion</a> below by posting a comment.</p>
<img hspace="1em"  align="left"  class="left"  src="http://aigamedev.com/wp-content/uploads/2008/08/tf_demo.jpg"  alt="KA-BOOoooom!"   style="float: left; margin-right: 1em;"/>
<p>An interesting thing happened to me on the way to the second capture point the other day&#8230; I was playing <em>Team Fortress 2</em> as I have been inclined to do when I am burnt out and need a break from AI, coding, writing my book, writing this column or whatever. However, I have found that it is not that easy to shut of my AI-inclined brain. As I am racing about the various maps in an elaborate dance that is a peculiar mixture of repetitiveness and instantaneous reaction, I find that I am not just <em>thinking</em> about what I am doing&#8230; I&#8217;m also thinking about how an AI agent would <em>&#8220;think&#8221;</em> about what I am doing. </p>
<p>This may seem a triviality &#8212; and, in a way, a sort of skill set that is necessarily endemic to game AI designers and programmers. However, there was a different cast to what I was doing. When I play single player games, for example, I am always analyzing not only my own play, but that of the enemies. I even write (irregularly) about my observations on one of my blogs, <a href="http://www.intrinsicalgorithm.com/post-playem/" >Post-Play&#8217;em</a>. In a non-symmetrical game such as Halo (no Damian, I haven&#8217;t written about it yet), these two streams of thought are somewhat disjoint. I can analyze what <em>I</em> do and what <em>they </em>do. In a reasonably symmetrical game such as Civ 4 (No Soren, I haven&#8217;t written about it yet), however, those two analyses tend to merge somewhat. What <em>I</em> am doing (or should be doing) is something that can be mapped over rather well to what <em>they</em> are doing (or should be doing). This, of course, gives me enormous insight into the possibilities of how the AI was designed and coded. </p>
<blockquote class="right" ><p>&#8220;If the player looses, he should at least know <em>why </em>and learn from it.&#8221;</p></blockquote>
<p>Using Civ 4 as an example (OK <em>fine</em>, Soren&#8230; <em>now </em>I&#8217;m writing about it, aren&#8217;t I?) (Note to everyone else, he told me that he has been patiently waiting&#8230; so I&#8217;m tweaking him a little here.), I can look at things like the influence maps that are very exposed in the game interface and see how the AI may be making decisions on troop dispositions. I can look at all the different values for food, trade, and production that are being generated and see how the AI may be making decisions on what to do with certain squares in the city radius. Thankfully, the AI seems to be making reasonable decisions in this manner &#8212; which allows me to let the city managers do the same for me for the most part. Still, it is interesting to watch the decisions change over time&#8230; allowing me to infer formulaic thresholds and whatnot. The point is, I can learn a lot&#8230; not only about the AI&#8217;s design but about my own play as well. (Soren quote: &#8220;If the player looses, he should at least know why and learn from it.&#8221; Apparently my education is ongoing. *sigh*)</p>
<p><span id="more-652" ></span></p>
<h3>On-the-Job Training</h3>
<p>Back to TF2&#8230; as I mentioned, I have found myself noting a lot of things as I play. For starters, as I originally started playing a few months back, I had to look to other people to learn some of the tactics that were specific to the different maps and the different classes that you can play. I have been more successful with some classes than others. I still can&#8217;t get a handle on being a good Spy, for example. I don&#8217;t know why. Being a good Scout still seems to evade me &#8212; so to speak. As you can see from <a href="http://steamcommunity.com/id/IADaveMark" >my Steam ID</a>, I tend to alternate between Engineer and Demoman depending on whether my team is offense or defense at the time. (Upon careful observation, you can also determine that I&#8217;m not very good at the twitchy stuff. My teenagers tell me it&#8217;s because I&#8217;m old&#8230; usually when they are pwning me on Halo 3.) Now that I&#8217;m a bit more familiar with the game and I know the maps (2Fort, Dustbowl and Goldrush being my usually playgrounds), I can definitely speak to tactics, however.</p>
<p>And that&#8217;s where I get annoyed. This time, however, it is not at a computer AI&#8230; it is with <em>real people</em>. Some of the things that people do completely fascinate me in their ineptness and, really, lack of comprehension. This is nothing new, though. I sometimes get the same feeling driving my car or waiting at a fast food counter. What really gave me the epiphany in this whole process was the fact that the types of errors that I was watching live people making looked like the errors that AI agents would make. And that made the whole process of trying to determine how to &#8220;solve&#8221; the problem a lot more challenging and interesting.</p>
<p>Allow me to toss out a few anecdotes (which will, admittedly, read like a rant or a list of pet peeves):</p>
<p><a href="http://aigamedev.com/wp-content/uploads/2008/08/tf_grenade_over.jpg"  title="Fun with ballistic trajectories!" ><img class="center"  src="http://aigamedev.com/wp-content/uploads/2008/08/tf_grenade_over_512.jpg"  alt="Fun with ballistic trajectories!" /></a></p>
<h3>Shooting Blind</h3>
<p>As I mentioned, I play as a demoman a lot. I mean a LOT. Why is that? Because I like the indirect nature of the attacks. In fact, I excel at that. What confuses me is that other people do not even consider it. Unlike most of the other classes in the game&#8230; or many other games, for that matter&#8230; the demoman&#8217;s weapons don&#8217;t go in a straight line.  They go up and come down. Welcome to Gravity 101. What this means is that I can shoot over stuff like walls and even entire buildings. If I know there are bad dudes on the others side of that wall, I will just stand back and lob pipe bombs over the top. As visually pleasing as animated carnage is at times, I don&#8217;t need to <em>see </em>dude die. I will be dutifully notified by the indicator in the upper right corner of the screen. I have used this tactic in so many situations on so many maps, it is silly. On the last level of Goldrush, for example, as you make the final turn to the base, there is a building with an elevated path behind it. From there, I can lob over the building all the way into the base area. What&#8217;s more, if your team is fighting around that corner (and anyone knows you can kill 15 minutes there), none of the defenders are likely to pester you back there. Get a dispenser, and you are in business&#8230; just keep spraying stuff back and forth like a killer lawn sprinkler! But how come no one seems to do that?</p>
<blockquote class="right" ><p>&#8220;It seems that there is this subconscious need to <em>see </em>what they are shooting at.&#8221;</p></blockquote>
<p>On the other hand, I watch demomen keep walking around corners and pitching bombs down alleys just like this one when they could have safely lobbed those same bombs over the corner of a wall. It seems that there is this subconscious need to <em>see </em>what they are shooting at. Sure, if you are trying to take down a sentry, it helps to be accurate. But if you are just trying to make a mess of the guys that are milling about, accuracy is overrated&#8230; by the time your bomb gets there, they are going to be gone. So why do you need, to see what you are shooting? Especially if it is quite likely that it will shoot back? </p>
<p>Taking that to AI, I realized that this is a similar problem that we face when deciding when to shoot. Our natural instinct is to cast a ray and see if there is a LOS to the target&#8230; just like the human player is doing. Calculating the ability to hit someone in ballistic fashion, is a bit more complicated, of course. What&#8217;s more, we also have to put in the logic that we are quite willing to take a &#8220;blind barrage&#8221; approach rather than a &#8220;shoot to kill&#8221; approach.</p>
<p><a href="http://aigamedev.com/wp-content/uploads/2008/08/tf_grenade_bounce.jpg"  title="Yep… I can shoot around corners!" ><img class="center"  src="http://aigamedev.com/wp-content/uploads/2008/08/tf_grenade_bounce_512.jpg"  alt="Yep… I can shoot around corners!" /></a></p>
<h3>Pipe Bomb in the Side Pocket</h3>
<p>The same can be said for the fun ability to shoot around corners. If we were creating a pool (i.e. billiards&#8230; not swimming) simulation, we would be very cognizant of the fact that we have to take bank shots into account. However, if we were creating the AI for the demoman, this would be a little more obscure. Of course, if you have played a demoman for anything length of time, you have likely realized the power of the bounce. Not only off of walls, but even off of posts and railings. But, surprisingly, many people don&#8217;t use it. Is it because they don&#8217;t even think in those terms? Is it because they can&#8217;t intuitively calculate where they need to shoot in order to hit the desired area?</p>
<p>Again, this would be a similar problem in AI. Calculating where to shoot is trivial for a computer. It&#8217;s a simple exercise in geometry and physics. However, having an AI agent determine that those calculations should even be started is another matter entirely. When is it reasonable? This is similar to the problem above.</p>
<img class="center"  src="http://aigamedev.com/wp-content/uploads/2008/08/tf_mistakes_512.jpg"  alt="Dude… give it up already!" />
<h3>Why Don&#8217;t You Just Paint a Target on that Sentry</h3>
<p>Next pet peeve&#8230; engineers who put sentries out in the open &#8212; especially when there is a long distance shot right at the sentry. I&#8217;ve often voiced the point that &#8220;Uh&#8230; demomen and soldiers can shoot a lot farther than your sentry, folks!&#8221; But what are the calculations for this? Obviously, there is a control radius for a sentry and you don&#8217;t want the enemy to have a straight shot at you from beyond that area. It sounds simple, but I can see it getting kinda funky.</p>
<p>Sticking with engineers, it is amazing how powerful a network of cross-facing sentries are. This is especially helpful in dealing with spies that enjoy wrecking machinery. As the spy comes visible next to one sentry, the 2nd one can take him out. And yet people seem to not realize the value of this. </p>
<p><a href="http://aigamedev.com/wp-content/uploads/2008/08/tf_facing_sentries.jpg"  title="I’ll scratch your spy, you scratch mine." ><img class="center"  src="http://aigamedev.com/wp-content/uploads/2008/08/tf_facing_sentries_512.jpg"  alt="I’ll scratch your spy, you scratch mine." /></a></p>
<p>From an AI design standpoint, both of these problems could be solved somewhat by cheating&#8230; that is, tagging the map with desired sentry locations. However, that really isn&#8217;t AI, is it? Part of being an intelligent agent is that determination process of &#8220;what should work&#8221; and &#8220;what doesn&#8217;t work&#8221;. It would seem that there needs to be a calculation that would involve the good place for a sentry <em>when paired with another sentry.</em></p>
<blockquote class="right" ><p>&#8220;One level 3 sentry is better than three level 1 sentries!&#8221;</p></blockquote>
<p>One last note on Engies&#8230; one level 3 sentry is better than three level 1 sentries. Sheesh&#8230; it&#8217;s math, people! And yet, many guys are blissfully pounding away on their own little sentry rather than using the valuable resource of metal and, more importantly, time to work <em>together </em>and build sentries one at a time. (BTW, 5 engies working on the <em>same </em>sentry can be built to level 3 in about 8 seconds, I believe.) And yet how many times have we seen AI agents doing the same thing? No awareness of each other&#8217;s projects that may be futile when taken individually.</p>
<h3>Now is Not the Time&#8230;</h3>
<p>Another thing that fascinates me is watching how an engineer will build a dispenser or a teleporter when there is less than a minute to go in the round. What is it you are trying to accomplish here? It&#8217;s like how some cultures would bury food with a dead body. Ya know, the thought is nice, but it probably is going to go uneaten.</p>
<p>AI Solution? A quick fix is a check of the timer&#8230; if the time remaining is less than a particular threshold, don&#8217;t build a certain unit. However, is there more of a comprehensive way of approaching this? If you were to combine the above notion with another observation, we may have an answer. Read on&#8230;</p>
<p>If you are pinned down defending the final capture point on a level, you and your buds are probably not going to be running very far. Sometimes, it&#8217;s all of 20 steps from the spawn door to where the action is. Why the heck would someone be building a teleporter entrance? Sure, they are handy to use to get up to sniper platforms or something, but not as urgent as some other things. And I certainly wouldn&#8217;t leave my sentry and dispenser combo unattended to go and accomplish this. So maybe there would have to be a general &#8220;what is the utility of a teleporter&#8221; value. If you aren&#8217;t going to have time to use it or if it won&#8217;t be worth using it to go all of 30 feet, then don&#8217;t bother.</p>
<h3>&#8230; the Time is <em>NOW</em></h3>
<blockquote class="right" ><p>&#8220;It&#8217;s not just about killing people&#8230; it&#8217;s about killing the <em>right </em>people!&#8221;</p></blockquote>
<p>I have often been heard saying two things. When there is about 2 minutes left in a level and my team is defending, I will often remind people to &#8220;tighten up&#8230; let them come to us&#8221;. Sure, I&#8217;m channeling Sun Tzu to an extent, but it makes sense. The worst thing that can happen is for your team members to go wandering off, over-extend, maybe get killed off, and therefore let people through the cracks to capture the control point, push the cart or whatever. I can&#8217;t tell you how many times I have seen a massive push in the last 30 seconds because people were out running around trying to be heroes and, when 2/3 of our team is dead, there is no one left to defend the base. On the other team, if you need to push the cart with 20 seconds left, everyone should be on that cart&#8230; snipers, spies, engineers&#8230; they can&#8217;t kill &#8216;em all. And yet I see people standing around doing their usual gig figuring someone else will capture the point or whatever.</p>
<p>On a related note, I have also been heard <em>after </em>a spectacular loss saying &#8220;It&#8217;s not just about killing people&#8230; it&#8217;s about killing the <em>right </em>people!&#8221; This can be applied to a lot of situations. If there are two people about to capture a control point, the sniper back in the hall is not terribly important. If a single Soldier or Demoman is wreaking havoc on all your Engy&#8217;s equipment from some perch (1st stage of Goldrush is notorious for this), he is a high priority assignment. Take him down. If there is a Medic/Heavy combo cruising around&#8230; don&#8217;t try and kill the Heavy while he is being killed&#8230; kill the Medic first &#8212; that Heavy will be a <em>lot</em> easier when he isn&#8217;t receiving a constant stream of steroids.</p>
<img class="center"  src="http://aigamedev.com/wp-content/uploads/2008/08/tf_over_512.jpg"  alt="Going up?" />
<p>You would think all of this is obvious, but people just don&#8217;t seem to get it. But how would I do it in AI? Obviously, the proximity issue is something that can be solved by proximity&#8230; especially when combined with time. If the clock is almost out, building that teleporter or sapping a remote dispenser isn&#8217;t high priority. So all of the values that we would normally assign to a task need to be indexed to the remaining time somehow. The AI for a spy would normally have &#8220;pushing the cart&#8221; as his lowest priority&#8230; as the timer clicked down to the end of the round, however, it would suddenly be a serious consideration.</p>
<img hspace="1em"  align="right"  class="right"  src="http://aigamedev.com/wp-content/uploads/2008/08/tf_cheers.jpg"  alt="Cheers, mate!"   style="float: right; margin-left: 1em;"/>
<p>A similar sort of value system would be put into place for killing enemies. That Soldier killing all the sentries from up on the balcony? Never mind the dude you are chasing around all over the place, lob some grenades up there, would ya? The guy on the cart gets a priority boost over the guy on the other side of the map. The Medic healing the Heavy is a lot higher priority than the Heavy himself&#8230; even though said Medic isn&#8217;t damaging people like the Heavy is.</p>
<p>My point is, people talk about how the playing online is much more engaging and challenging than playing against AI agents. But yet, with all of the observations that we can make about the online players (or even how we play the games ourselves), we should have a massive amount of information on how we can go about making some of the more abstract strategic or tactical decisions. The only layer missing is how to convert those observations into a representation of knowledge and then code to make decisions based on it. </p>
<p>Is that <em>really </em>all that hard? On the other hand&#8230; as long as people keep trying to attack ubered enemies, it makes our existing AI look brilliant.</p>
<p>BTW, if you want to have some fun, there will be a <a href="http://forums.aigamedev.com/showthread.php?t=1126" >TF2 bot API</a> released soon! In the mean time, in the words of the demoman&#8230; <strong>&#8220;Cheers, mate!&#8221;</strong></p>
<div style="padding: 1em 2em; border-top: 4px dashed black; clear: both;">
<a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=4&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F1591406463&amp;ismap="><img src="http://files.aigamedev.com/books/S1591406463.jpg" alt="Biologically Inspired AI for Computer Games" style="float: left;"/></a>

<h3>Biologically Inspired AI for Computer Games</h3>

<p>A book for developers wanting to bridge the gap between academic AI and the games industry, covering:</p>

<ul>
<li>Evolutionary Algorithms</li>
<li>Neural Networks</li>
<li>Artificial Immune Systems</li>
<li>Particle Swarms</li>
</ul>

<p>Includes simple explanations for beginners and case studies.  <a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=4&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F1591406463&amp;ismap=">Click here</a> for more details.</p><div id="beacon_4" style="position: absolute; left: 0px; top: 0px; visibility: hidden;"><img src='http://aigamedev.com/ads/adlog.php?bannerid=4&amp;clientid=3&amp;zoneid=3&amp;source=&amp;block=0&amp;capping=0&amp;cb=cb03127a1d40cfe3fbcf8c2ecba63aae' width='0' height='0' alt='' style='width: 0px; height: 0px;'></div></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/364233918" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/discussion/play-first-code-later/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Fdiscussion%2Fplay-first-code-later</feedburner:awareness><feedburner:origLink>http://aigamedev.com/discussion/play-first-code-later</feedburner:origLink></item>
		<item>
		<title>Game AI Roundup Week #32 2008: 10 Stories, 1 Video, 2 Quotes</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/361646299/2008-week-32</link>
		<comments>http://aigamedev.com/links/2008-week-32#comments</comments>
		<pubDate>Mon, 11 Aug 2008 05:26:04 +0000</pubDate>
		<dc:creator>Novack</dc:creator>
		
		<category><![CDATA[Roundup]]></category>
<category>aigamedev</category><category>algorithm</category><category>behavior</category><category>neural network</category><category>path-finding</category><category>planning</category><category>programming</category><category>simulation</category><category>storytelling</category>
		<guid isPermaLink="false">http://aigamedev.com/links/2008-week-32</guid>
		<description><![CDATA[Weekends at AiGameDev.com are dedicated to rounding up smart links from the web relating to artificial intelligence and game development.  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 forums here! (All you have to do is [...]]]></description>
			<content:encoded><![CDATA[<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.  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 recently launched <a href="http://wiki.aigamedev.com" >Wiki</a>, a great repository of knowledge about everything relating to artificial intelligence in games!</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-644" ></span></p>
<h3>Video games and learning</h3>
<p><em>Scott McLeod</em>, in the blog site <u>Dangerously Irrelevant</u>, published an article where he address three ideas related to video games, schools, and learning: Individualization, simulation, and complexity. Here is a transcription, related to his view of the videogames AI:</p>
<blockquote><p>The artificial intelligence engines that drive most video games are able to customize the learning experience for each individual player. In other words, the game you play is different than the game I play because we have different skills and knowledge and because we make different choices during the game. The gaming engine adjusts to our differences, providing each of us with a learning experience that is both unique and optimally challenging for us as individuals. That’s a pretty powerful argument for considering the use of video games in education.</p></blockquote>
<ul>
<li><p><a href="http://www.dangerouslyirrelevant.org/2008/08/video-games-and.html" >Video games and learning: Individualization, simulation, and complexity</a></p></li>
</ul>
<h3>Narrative Pacing</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/08/flow.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p><em>Dan Kline</em>, AI and game programmer and designer who I use to quote on this column often,  posted another interesting article on his blog <u>Game of Design</u>, the third of a series dedicated to procedural storytelling.</p>
<blockquote><p>We can implement pacing in our games, and it doesn’t even need to be dynamic. The AI Director can help, but lots of games do it with tried-and-true fixed techniques. We do it naturally. Flow requires variation, and as we vary our designs, we increase our challenge. Diablo 2 did it with character levels. Super Mario Bros made its jumping puzzles familiar but harder. Halo steadily improved its AI and difficulty. Portal’s creators playtested the crap out of their product. All it requires is treating the player’s play experience like a unified entity, like a narrative experience, like a flow experience. Then you can bury narrative in your gameplay, the unified grail, if that’s what you’re searching for.</p></blockquote>
<ul>
<li><p><a href="http://dankline.wordpress.com/2008/08/03/procedural-storytelling-3-narrative-pacing/" >Procedural Storytelling 3: Narrative Pacing « Game of Design</a></p></li>
</ul>
<h3>Design and game AI</h3>
<p><em>Victor Epand</em> posted in the site <u>Au Pair</u> an article entitled &#8220;The Benefits Of Artificial Intelligence In Computer Games&#8221;, on a view of the current state of the game AI, and its implications in design among other comments.</p>
<blockquote><p>With artificially intelligent characters playing against you, it can mean that in some cases, even the game designers can’t entirely predict what the computers characters will do, and each game is likely to proceed a different way, depending on those responses.</p></blockquote>
<ul>
<li><p><a href="http://www.iabolish.com/the-benefits-of-artificial-intelligence-in-computer-games-341/" >The Benefits Of Artificial Intelligence In Computer Games</a></p></li>
</ul>
<h3>Thoughts on Artificial Intelligence</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/08/deepblue.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p>In his blog <u>The Cranky Crackpot</u>, <em>Timothy Roberts</em> published an interesting post, where he puts fresh words to the old rant &#8220;bruteforce is not AI&#8221;, in relation to machines playing games.</p>
<blockquote><p>The reason why a Grand-Master-beating computer freaked everyone out so much is that the computer and Gary Kasparov – unlike the calculator and the maths genius – were not playing the same game.</p>
<p>Kasparov was playing chess. The computer, however, was only playing ‘chess’. To all observers, ‘chess’ was indistinguishable from chess. There was a real chess board in the room, with real pieces. Every time the computer printed a move on the screen, the attendants would physically move the chess pieces on the board.</p>
<p>‘Chess’ also looked like chess because Kasparov was in the room, sweating, becoming increasingly agitated, and generally acting human. We are used to seeing human-like things interacting with human-like things. So, by inference, the spectators assumed that Kasparov’s opponent was also a human-like thing.</p>
<p>But in fact, for a computer, playing ‘chess’ is just like calculating pi: numbers are fed into an algorithm. The computer, in a sense, did not beat Kasparov at chess, because it was not playing chess at all. It was only playing ‘chess’.</p>
</blockquote>
<ul>
<li><p><a href="http://crankycrackpot.blogspot.com/2008/08/thoughts-on-artificial-intelligence.html" >The Cranky Crackpot: Thoughts on Artificial Intelligence</a></p></li>
</ul>
<h3>Stargate Worlds AI Interview</h3>
<p><u>MMORPG.COM</u> interviewed <em>Dan Elggrin</em>, the Studio Head over at <strong>Stargate Worlds</strong>, in an interesting quick conversation about the AI that guides the actions of the upcoming MMOG hostile entities.</p>
<div class="image"   style="text-align: center;">
<object id="WMPlay"  width="426"  height="312"  classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"  codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"  standby="Loading Microsoft Windows Media Player components..."  type="application/x-oleobject" ><PARAM name="URL"  value="http://www.mmorpg.com/external/videoPlayer.cfm?id=1253&#038;770346" ><PARAM name="DisplaySize"  value="0" >
<param name="AllowChangeDisplaySize"  value="True" /><PARAM name="ShowControls"  value="1" ><PARAM name="ShowDisplay"  value="0" ><PARAM name="ShowStatusBar"  value="1" ><PARAM name="AutoStart"  value="FALSE" ><embed width="426"  height="312"  type="application/x-mplayer2"  pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/"  src="http://www.mmorpg.com/external/videoPlayer.cfm?id=1253&#038;809348"  name="MMORPG.com Video"  allowchangedisplaysize="True"  showcontrols="1"  autostart="0"  showdisplay="0" ></embed></object><br/>
<br/>
</div>
<blockquote><p  style="font-style: italic;">Stargate Worlds Studio Head Dan Dlggrin took the time recently to tell our own Jon Wood about the AI in the upcoming sci-fi MMO.</p></blockquote>
<ul>
<li><p  style="font-style: italic;"><a href="http://www.mmorpg.com/gamelist.cfm/game/242/view/videos/play/1253" >Stargate Worlds AI Interview(2:42) at MMORPG.COM</a></p></li>
</ul>
<h3>More fun with AI and Alice</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/alice1.JPG" />
<br/><br/>
</div>
<p  style="font-style: italic;"><u>Kryotech</u> continues the series of posts dedicated to the programming of a simple game AI using Alice. This week, a bit of optimization and some new stuff, in two articles entitled &#8220;Reducing computing load in games made in Alice&#8221; and &#8220;New component for Alice game AI&#8221;.</p>
<blockquote><p  style="font-style: italic;">So how do you keep the speed at a good rate? The answer is to activate the AI when it needs to be activated. Meaning that, start off the world with only a few AI’s running along with there health systems. We had mentioned before that the world variable could be very useful for other things besides just the retreat function in AI.</p></blockquote>
<ul>
<li><p  style="font-style: italic;"><a href="http://kryotech.wordpress.com/2008/08/07/reducing-computing-load-in-games-made-in-alice/" >Reducing computing load in games made in Alice</a></p></li>
</ul>
<blockquote><p  style="font-style: italic;">the AI can now retreat upon sensing it’s own damage. This is also an easier method, and the object variable can also be used for other things besides just AI</p></blockquote>
<ul>
<li><p  style="font-style: italic;"><a href="http://kryotech.wordpress.com/2008/08/08/new-component-for-alice-game-ai/" >New component for Alice game AI</a></p></li>
</ul>
<h3>Testing the Limits of Single-Player</h3>
<p  style="font-style: italic;"><em>Jason Rohrer</em> who has already been writing game design articles on <u>The Escapist</u>, this time approached his &#8220;Game Design Sketchbook&#8221; with a post about the Single-Player factor on a game re-playability, related with the AI.</p>
<blockquote><p  style="font-style: italic;">modern single-player videogames, both fringe and mainstream, have almost completely abandoned AI as a game feature. Yes, enemies in most 3-D games are equipped with rudimentary path-finding, planning, and randomized behavior, but it’s nothing like what an AI does for Chess. These mainstream AIs are essentially trying to mimic believable human behavior, not provide an opponent with which you can explore the depths of the game mechanics.</p></blockquote>
<ul>
<li><p  style="font-style: italic;"><a href="http://www.escapistmagazine.com/articles/view/editorials/gamedesignsketchbook/5123-Game-Design-Sketchbook-Testing-the-Limits-of-Single-Player" >Game Design Sketchbook: Testing the Limits of Single-Player</a></p></li>
</ul>
<h3>Computer beats Go Pro Again</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/computergo.JPG" />
<br/><br/>
</div>
<p  style="font-style: italic;">This time, <em>Myungwan Kim</em> was defeated at the U.S. Go Congress, and keeps the ball rolling on the race (and debate) toward machine vs man competitions.</p>
<blockquote><p  style="font-style: italic;">“In a historic achievement, the MoGo computer program defeated Myungwan Kim 8P Thursday by 1.5 points in a 9-stone game. “It played really well,” said Kim, who estimated MoGo’s current strength at “two or maybe three dan,” though he noted that the program – which used 800 processors, at 4.7 Ghz, 15 Teraflops on borrowed supercomputers – “made some 5-dan moves,” like those in the lower right-hand corner, where Moyogo took advantage of a mistake by Kim to get an early lead. “I can’t tell you how amazing this is,” David Doshay — the SlugGo programmer who suggested the match — told the E-Journal after the game.”</p></blockquote>
<ul>
<li><p  style="font-style: italic;"><a href="http://www.usgo.org/index.php?%23_id=4602" ><b>Computer beats Pro at U.S. GO Congress</b></a></p></li>
</ul>
<h3>Ray-tracing the way to go for game developers?</h3>
<p  style="font-style: italic;">Intel keeps pushing his reasearch (and marketing machine) toward a Ray-tracing technology impulse on game development. <em>Daniel Pohl</em> engineer of the corporation, talked with <em>Theo Valich</em> from <u>tgdaily</u>, about the Larrabee.</p>
<blockquote><p  style="font-style: italic;">“Another usage is for AI. In order to detect visibility from one player to another you can use rays to detect blocking objects. You can also use the visibility determination for pathfinding. It is interesting to note that the usage of rays for collision detection and AI is already used in some current games. But this is sometimes not done against the complete dynamic scene or it is done with only a few rays. From talking to game developers, we already got the feedback that they would also like to be able to spend more rays on those queries.”</p></blockquote>
<ul>
<li><p  style="font-style: italic;"><a href="http://www.tgdaily.com/content/view/38795/113/" >Ray-tracing the way to go for developers?</a></p></li>
</ul>
<h3>Damian Isla Interview</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/halo2.JPG" />
<br/><br/>
</div>
<p  style="font-style: italic;"><em>Damian Isla</em>, Bungie&#8217;s Lead AI Programmer, talked to <u>GamesIndustry.biz</u> about working independently from Microsoft, working on new IP, the progression of <strong>Halo</strong>&#8217;s AI and new gaming hardware. </p>
<blockquote><p  style="font-style: italic;"><b>What was the biggest change you saw in Halo’s AI - as it was when you joined, to as it is now?</b>
<p class="interviewAnswer"   style="font-style: italic;">Damian Isla: In a word: scale. Everything got bigger for Halo 3, with respect to Halo 1. More characters and also each of the characters has many more abilities and making that the experience of fighting along 15 marines who can do 50 things instead of five marines who can do five things - that’s a hard transition to make…</p>
</blockquote>
<ul>
<li><p  style="font-style: italic;"><a href="http://www.gamesindustry.biz/articles/bungie-s-damian-isla" >Bungie&#8217;s Damian Isla // Interview // GamesIndustry.biz</a></p></li>
</ul>
<h3>About AI and neural networks</h3>
<p  style="font-style: italic;">In his blog <u>Open game programming</u>, <em>Antti Salonen</em> wrote an article on the AI side of his project, an Open Source game.</p>
<blockquote><p  style="font-style: italic;">Encouraged by the theory and these practical tutorials, I went on translating Mat’s Minesweepers into Haskell. During this process I also realized why almost all of the tutorials and the theory of artificial neural networks didn’t show any practical examples; my neural network code itself is merely about 50 lines of active code and contains mostly just the mathematical formulas to the networks. The applicaton of neural networks, however, is nearing 200 lines of code (huge, isn’t it?) and basically describes the whole learning and using process of the brain, err, neural network.</p></blockquote>
<ul>
<li><p  style="font-style: italic;"><a href="http://codeflow.wordpress.com/2008/08/03/about-ai-and-neural-networks/" >About AI and neural networks « Open game programming</a></p></li>
</ul>
<h3>Bungie On Eight Years Of Halo AI</h3>
<img hspace="1em"  align="right"  src="http://aigamedev.com/wp-content/uploads/2008/08/damian_isla1.JPG"  class="right"   style="float: right; margin-left: 1em;"/>
<p  style="font-style: italic;">During a recent programming keynote at the Develop conference in Brighton, Bungie&#8217;s <em>Damian Isla</em> (this guy is a very active person) framed the &#8220;30 seconds of fun&#8221; model in terms of AI, and shared with the audience a number of AI development stories drawn from throughout the series.</p>
<blockquote><p  style="font-style: italic;">“I would guess that it’s one of the most sophisticated AI systems out there,” said Isla of his studio’s work on <i>Halo</i>. But he then noted that the series’ AI is not so much an attempt to create a true artificial intelligence as it is a system to facilitate “a player experience,” an experience that has been under “constant revision.”</p>
<p  style="font-style: italic;"> That experience hinges on the “30 seconds of fun” — the notion that you can put “200 or 300 of these experiences laid back to back and you can make a game out of that.”</p>
<p  style="font-style: italic;"> [&#8230;]
<p  style="font-style: italic;">“In Halo 2, it was attempted to be solved behaviorally (“It was not pretty,” conceded Isla). In Halo 3, the team created “concepts” for territories or objects that require interaction; these concepts holds the knowledge of what a character will do with that thing. So, rather than having behavior determine how the NPC interacts with that vehicle, the vehicle contains all that interaction knowledge.”</p>
</blockquote>
<ul>
<li><p  style="font-style: italic;"><a href="http://www.gamasutra.com/php-bin/news_index.php?story=19653" >Gamasutra - In-Depth: Bungie On Eight Years Of Halo AI</a></p></li>
</ul>
<h3>Total AI</h3>
<div class="image"   style="text-align: center;">
<img src="http://aigamedev.com/wp-content/uploads/2008/08/empire_total_war.JPG" />
<br/><br/>
</div>
<p  style="font-style: italic;">Another interesting <u>Gamasutra</u> interview, this time to the Creative Assembly&#8217;s Sutherns, about the <strong>Total War</strong> franchise. Some comments on the game&#8217;s AI are quoted below.</p>
<blockquote><p  style="font-style: italic;"><b>How do you build the AI to work with that? Obviously, AI is born to lose, but where is the balance between making it too stupid? Obviously you don’t want it to react exactly the same every time.</b></p>
<p  style="font-style: italic;">MS: No, and we’ve got a system in place to make sure that the AI is selecting the right tactics and the right “plays,” if you like, at the right time. We’ve got various diagnostic tools to make that possible, where we can put the AI, come in in the morning, and it’s fought a hundred battles. And it shows us the results of those battles; and it shows us the tactics it’s used; and it shows us how it’s fared against certain other tactics…</p>
</blockquote>
<ul>
<li><p  style="font-style: italic;"><a href="http://www.gamasutra.com/php-bin/news_index.php?story=19328" >Gamasutra - Interview: Creative Assembly&#8217;s Sutherns Talks Total War Franchise</a></p></li>
<p  style="font-style: italic;"><br/></p>
<p  style="font-style: italic;"><i>Stay tuned next week for more smart links from around the web!</i></p>
<div style="padding: 1em 2em; border-top: 4px dashed black; clear: both;">
<a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=4&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F1591406463&amp;ismap="><img src="http://files.aigamedev.com/books/S1591406463.jpg" alt="Biologically Inspired AI for Computer Games" style="float: left;"/></a>

<h3>Biologically Inspired AI for Computer Games</h3>

<p>A book for developers wanting to bridge the gap between academic AI and the games industry, covering:</p>

<ul>
<li>Evolutionary Algorithms</li>
<li>Neural Networks</li>
<li>Artificial Immune Systems</li>
<li>Particle Swarms</li>
</ul>

<p>Includes simple explanations for beginners and case studies.  <a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=4&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F1591406463&amp;ismap=">Click here</a> for more details.</p><div id="beacon_4" style="position: absolute; left: 0px; top: 0px; visibility: hidden;"><img src='http://aigamedev.com/ads/adlog.php?bannerid=4&amp;clientid=3&amp;zoneid=3&amp;source=&amp;block=0&amp;capping=0&amp;cb=0aeab546fb582f4124c830f390d05dfe' width='0' height='0' alt='' style='width: 0px; height: 0px;'></div></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/361646299" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/links/2008-week-32/feed</wfw:commentRss>
<enclosure url="http://www.mmorpg.com/external/videoPlayer.cfm?id=1253&amp;770346" length="0" type="video/x-ms-wmv" />
<enclosure url="http://www.mmorpg.com/external/videoPlayer.cfm?id=1253&amp;809348" length="0" type="video/x-ms-wmv" />
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Flinks%2F2008-week-32</feedburner:awareness><feedburner:origLink>http://aigamedev.com/links/2008-week-32</feedburner:origLink></item>
		<item>
		<title>Announcing The Game AI Wiki at AiGameDev.com</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/359821592/wiki-online</link>
		<comments>http://aigamedev.com/site/wiki-online#comments</comments>
		<pubDate>Fri, 08 Aug 2008 22:03:49 +0000</pubDate>
		<dc:creator>Alex J. Champandard</dc:creator>
		
		<category><![CDATA[Announcements]]></category>
<category>aigamedev</category><category>forums</category><category>prizes</category><category>wiki</category>
		<guid isPermaLink="false">http://aigamedev.com/site/wiki-online</guid>
		<description><![CDATA[  
I&#8217;m pretty sure you were sipping your coffee this morning, casually staring at the ceiling, wondering to yourself: &#8220;Why is there no wiki that gathers useful information about game development and artificial intelligence?  Surely that&#8217;s something the amazing people behind AiGameDev.com would have thought of&#8230;&#8221; :-) Well, after many requests in the forums [...] ]]></description>
			<content:encoded><![CDATA[<p><small>Copyright &copy; <a href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2008.</small></p> 
<p> <a href="http://wiki.aigamedev.com" ><img hspace="1em"  align="left"  border="2"  src="http://aigamedev.com/premium/wp-content/uploads/2008/07/wiki-preview.png"  class="left frame"     style="float: left; margin-right: 1em;border: 2px solid #444;"/></a></p>
<p>I&#8217;m pretty sure you were sipping your coffee this morning, casually staring at the ceiling, wondering to yourself: &#8220;Why is there no wiki that gathers useful information about game development and artificial intelligence?  Surely that&#8217;s something the amazing people behind <tt>AiGameDev.com</tt> would have thought of&#8230;&#8221; :-) Well, after many requests in the forums and by emails, months of hard work on the design and backend, numerous rumors and endless speculations&#8230; it&#8217;s finally here!  Announcing the <tt>AiGameDev.com</tt> <a href="http://wiki.aigamedev.com/" >Wiki</a> &mdash; the only one of its kind dedicated entirely to game AI.</p>
<p>In the medium- to long-term, the purpose of the wiki is to build up a repository of knowledge about everything relating to artificial intelligence in games.  Here&#8217;s the fluffy mission statement from the front page:</p>
<blockquote><p>&#8220;Our goal is to catalog and organize every piece of media across all formats relating to game AI, and even provide unique information on the topic.&#8221;</p></blockquote>
<p><span id="more-638" ></span></p>
<p>Short-term, over the next few months, the plan is to integrate the various activities of <tt>AiGameDev.com</tt>&#8217;s forums and blog closer with the Wiki (e.g. white papers, reader questions).  But the main priority right now is to build up a taxonomy (or ontology) for game AI.  This will take the form of a loose hierarchy of concepts, which are categorized in three areas:</p>
<ul>
<li><p><b>Features</b> that you can observe and interact with in-game, i.e. the end-result of using game AI technology.</p></li>
<li><p><b>Techniques</b> that you can implement as algorithms and data structures that help you get the right results.</p></li>
<li><p><b>Methods</b> that you can follow, or guidelines and approaches to help overcome challenges in general.</p></li>
</ul>
<p>Since each of these concepts have their own tag, searching for content relating to any topic should be easier than with the current interface &mdash; which should be useful when you&#8217;re trying to solve a problem on a specific domain or trying to learn about something new.  Eventually, the Wiki front page will become the default place to send anyone interested in finding game AI knowledge. (The future redesign of the main page at AiGameDev.com will focus on the site and community instead.)</p>
<div class="image"   style="text-align: center;">
<img border="2"  src="http://aigamedev.com/wp-content/uploads/2008/08/wiki-screenshot.jpg"  alt="The Game AI Wiki"  class="frame"   style="border: 2px solid #444;"/>
<br/><br/>
</div>
<p>Anyway, you can find <a href="http://wiki.aigamedev.com/" >The Game AI Wiki</a> online right here, but here&#8217;s the URL for you to visualize and remember so you can go there directly in the future:</p>
<pre>
http://wiki.aigamedev.com
</pre>
<p>I&#8217;d like to thank my wife Petra for not only doing a great job with the icons and the overall style, but also meticulously adding references to the best white papers on game AI.  Also, thanks to Andrew Armstrong for his advice and supervision while I was setting up the whole backend and the theme.  Not forgetting Phil Carlisle for his recent suggestions to improve navigability, and Thaspius from the forums for his feedback on layout.  (Work in progress still, feedback welcome.)  Finally, hats off to the guys behind <a href="http://moinmo.in/" >MoinMoin</a> too for all their help and great work with this powerful wiki software.</p>
<h3>Frequent Questions</h3>
<p><b>Why Another Wiki?</b></p>
<p>With over 1,150 active members, the <tt>AiGameDev.com</tt> community has grown to a stage where it would really benefit from having a place to store information more permanently.  For instance, the wiki repository now contains most of the <a href="http://wiki.aigamedev.com/Papers" >white papers</a> from the forums, and soon we&#8217;ll start gathering frequent questions too&#8230;</p>
<p>This already makes things easier to find for us, but if the wiki becomes more useful beyond the community then that&#8217;s a bonus!</p>
<p><b>Who Will Update It?</b></p>
<p>We have some enthusiastic contributors from the forums already&#8230; But here&#8217;s the doubly amazing part.  First, <a href="https://www.aarmstrong.org/" >Andrew Armstrong</a> has kindly accepted the role of editor to supervise the whole thing.  (Big thanks to him for volunteering.)  Secondly, we&#8217;ll be giving out memberships this Autumn to pro-active wiki page authors &mdash; so head over there now to get a head start&#8230;  (Thaspius, you&#8217;re in for a freebie when we launch! :-)</p>
<div style="padding: 1em 2em; border-top: 4px dashed black; clear: both;">
<a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=5&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F0262083566&amp;ismap="><img src="http://files.aigamedev.com/books/S0262083566.jpg" alt="Second Person" style="float: left;"/></a>

<h3>Second Person</h3>

<p>A book about interactive fiction and natural language in computer games.</p>

<p><a target='_blank' href="http://aigamedev.com/ads/adclick.php?bannerid=5&amp;zoneid=3&amp;source=&amp;dest=http%3A%2F%2Faigamedev.com%2Fgo%2Famazon%2F0262083566&amp;ismap=">Click here</a> for more details.</p><div id="beacon_5" style="position: absolute; left: 0px; top: 0px; visibility: hidden;"><img src='http://aigamedev.com/ads/adlog.php?bannerid=5&amp;clientid=3&amp;zoneid=3&amp;source=&amp;block=0&amp;capping=0&amp;cb=1cf0a232439f75692c83efacb212d315' width='0' height='0' alt='' style='width: 0px; height: 0px;'></div></div><img src="http://feeds.aigamedev.com/~r/AiGameDev/~4/359821592" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://aigamedev.com/site/wiki-online/feed</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=AiGameDev&amp;itemurl=http%3A%2F%2Faigamedev.com%2Fsite%2Fwiki-online</feedburner:awareness><feedburner:origLink>http://aigamedev.com/site/wiki-online</feedburner:origLink></item>
		<item>
		<title>Which is the Yellow Brick Path: Shortest or Best?</title>
		<link>http://feeds.aigamedev.com/~r/AiGameDev/~3/357505881/best-or-shortest-path</link>
		<comments>http://aigamedev.com/discussion/best-or-shortest-path#comments</comments>
		<pubDate>Wed, 06 Aug 2008 15:19:49 +0000</pubDate>
		<dc:creator>Dave Mark</dc:creator>
		
		<category><![CDATA[Discussion]]></category>
<category>a star</category><category>heuristic</category><category>navigation</category><category>pathfinding</category><category>shortest path</category>
		<guid isPermaLink="false">http://aigamedev.com/discussion/best-or-shortest-path</guid>
		<description><![CDATA[In this week&#8217;s developer discussion on AiGameDev.com, Dave Mark picks up on a topic that&#8217;s been rather popular recently: what&#8217;s the best way to do path-finding?  Let him know what you think and post a comment below.

In the comments to last week&#8217;s column, Querying the Real Minds Behind the Artificial Minds&#8230;, Kevin Dill tossed [...]]]></description>
			<content:encoded><![CDATA[<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 week&#8217;s developer discussion on <tt>AiGameDev.com</tt>, <a href="http://www.intrinsicalgorithm.com/" >Dave Mark</a> picks up on a topic that&#8217;s been rather popular recently: what&#8217;s the best way to do path-finding?  Let him know what you think and post a comment below.</p>
<img hspace="1em"  align="left"  class="left"  src="http://aigamedev.com/wp-content/uploads/2008/08/oz1.jpg"  alt="Straight ahead seems easy enough, doesn’t it?"   style="float: left; margin-right: 1em;"/>
<p>In the comments to last week&#8217;s column, <a href="http://aigamedev.com/discussion/query-real-minds" >Querying the Real Minds Behind the Artificial Minds&#8230;</a>, Kevin Dill tossed out some things that have been on his mind lately that he would be interested in asking a gathering of top AI developers.. One of his ideas was something that I have actually seen before, yet I haven&#8217;t really seen a lot of discussion on the subject. He asked:</p>
<blockquote><p>&#8220;How can we move from finding the <em>shortest</em> path to finding the <em>best</em> path? What does &#8216;best&#8217; mean? For a dog? For a soldier?&#8221;</p></blockquote>
<p>I find it strange to think that this hasn&#8217;t been hashed out more given that pathfinding is so completely ubiquitous in games and, despite that ubiquity, is something keeps garnering significant space in tomes of AI knowledge and learning. That is, while pathfinding may be &#8220;solved&#8221;, it is by no means &#8220;perfected.&#8221; How does the saying go&#8230;? &#8220;Five minutes to learn &#8212; a lifetime to master?&#8221; </p>
<p><span id="more-640" ></span></p>
<p>However, what Kevin brought up was not fishing for how to &#8220;perfect&#8221; pathfinding in the objective sense. He was asking a more ephemeral question. How to &#8220;perfect&#8221; pathfinding in the <em>subjective </em>sense. Christer Ericson of RealtimeCollisionDetection.net <a href="http://realtimecollisiondetection.net/blog/?p=56" >recently touched on this problem</a> in a blog post where he suggested that the extra clock cycles we burn to find the exact shortest path are perhaps a waste of time on what amounts to diminishing returns. He pointed out:</p>
<blockquote><p>&#8220;&#8230;much too much effort is spent in games in finding the shortest paths! There is a near obsession with admissible heuristics, which is completely misguided! Who the heck cares a