<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.aigamedev.com/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
   <channel>
      <title>Game AI for Developers</title>
      <description>AiGameDev.com articles, features and news about artificial intelligence in video games.</description>
      <link>http://aigamedev.com/</link>
      <pubDate>Mon, 30 Aug 2010 19:22:31 +0000</pubDate>
      
      <feedburner:info uri="aigamedev" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><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" type="application/rss+xml" href="http://aigamedev.com/feed/" /><feedburner:emailServiceId>AiGameDev</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.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.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>CIG '10: Computational Intelligence in Games 2010 Conference Report</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/9MtxIwH1XcU/</link>
         <description>NOTE: We're currently preparing a new part of the site called AiGameDev.com PLUS, designed for students and hobbyists among you. If you'd like to give us feedback on our current plans, please read this page and sign-up to the mailing list there. Thanks! [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/coverage/2010-cig/</guid>
         <pubDate>Sun, 29 Aug 2010 16:18:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <p style="border:1px dashed #444;background-color:#ddd;padding:1em;"><u>NOTE</u>: We're currently preparing a new part of the site called <b>AiGameDev.com PLUS</b>, designed for students and hobbyists among you. If you'd like to give us feedback on our current plans, please <a rel="nofollow" target="_blank" href="http://aigamedev.com/plus/about/">read this page</a> and sign-up to the mailing list there. Thanks! &mdash; Alex</p> <img src="http://files.aigamedev.com/coverage/CIG10_MarioPlaytest.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/> <p>Earlier this month, the IEEE Conference on Computational Intelligence in Games took place at the IT University in Copenhagen. Over 100 researchers from around the world showed up to present their very latest research. In between, there were inspiring keynotes from highly respected figures in the research community, with topics ranging from A-life and bottom-up aesthetics to top-down drama management. <tt>AiGameDev.com</tt> was there to cover the event, and I (Alex Champandard) gave a tutorial on the first day too.</p> <p>The rest of this report includes some background about the conference (including things I learned from my first attendance to this event), the state of industrial-academic collaboration (and why many researchers were so depressed because of me), a report from the various competitions run at CIG 2010 (such as the 2K BotPrize and Mario AI), and finally further references so you can find out more about the research track and the papers presented.</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/CIG10_Copenhagen.large.jpg"><img src="http://files.aigamedev.com/coverage/CIG10_Copenhagen.medium.jpg"/></a>
<p><br/><u>Photo 1</u>: The view just outside the ITU in Copenhagen, where the Computational Intelligence in Games conference 2010 was held.</p>
</div> <h3>Some Background...</h3> <p>CIG events have historically brought together researchers with a focus on game theory, evolutionary algorithms and neural networks, but now moving quickly into video games (e.g. 2D arcade classics or 3D action games), as well as diversifying the techniques in use. Current popular trends include monte carlo tree search and temporal difference learning. On the other side of the Atlantic, the AIIDE conference has historically focused more on the classical AI approach, such as logic reasoning and symbolic approaches.</p> <blockquote class="right">&ldquo;CIG has historically focused on game theory and <b>evolutionary algorithms</b>, whereas AIIDE focused more on <b>classical AI</b> approaches.&rdquo;</blockquote> <p>Having followed the erruption of tensions at AIIDE on Twitter last year, from hearing feedback from previous attendees there, combined with last year's <a rel="nofollow" target="_blank" href="http://aigamedev.com/open/coverage/2009-cig/">CIG report</a> from Luke, I was a little apprehensive about the event; it was my first "big" academic conference about game AI. However, based on its success and the feedback, this year's CIG in Copenhagen will no doubt go down as one of the best so far, setting a very high bar for next year's event in Korea. The 2010 edition of CIG officially became a conference rather than a symposium, attracted the most papers with the lowest acceptance rate (higher quality papers), and further bridged the gap between the CIG and AIIDE community as well as with industry. I very much enjoyed those few days also!</p> <p>The credit for this success goes to Julian Togelius and Georgios Yannakakis, the organizers from the ITU Copenhagen &mdash; one of a handful of research departments that seem to really "understand" game AI. From my seat on the organizing commitee, it was impressive watching Julian and Georgios pull off lots of great ideas, including the live stream for example, on top of a solid line-up. I also learned a few things for the next edition of our very own <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">Paris Game AI Conference</a>!</p> <h3>The State of Academic Research</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/CIG10_AudienceBottom.large.jpg"><img src="http://files.aigamedev.com/coverage/CIG10_AudienceBottom.medium.jpg"/></a>
<p><br/><u>Photo 2</u>: Approximately half of the CIG 2010 attendees in the auditorium for the main track.</p>
</div> <p>On the first day of the conference this year, I gave a 1h30 tutorial about working with industry, and how best to approach collaboration. The talk included some observations about current trends in industry, to help researchers understand the big picture better and hopefully tackle better problems. I focused my talk on the academic side of things, because it'll take an inside job to fix the problems on the industry side.</p> <p>The crux of my argument was really that you need to pick problems very carefully, to make sure not to compete or overlap with middleware developers, consultants, open source developers, indie game developers, or even stuff that's already being done in a satisfactory way in industry. Despite preparing for this presentation more than any other I've given, and getting more developer's opinions about it than any other, I was rather apprehensive about the whole thing beforehand.</p> <p>From my analysis, I thought the whole situation was rather grim. Based on all papers from 2009 at both CIG and AIIDE, few researchers seemed interested in working on techniques aiming directly towards the games industry; those that were interested could use another iteration to find a breakthrough.</p> <p>Since the talk, based on conversations and feedback from the at CIG 2010, I realized the following: <ul>
<li><p>The part of academia that's working closely with industry is <b>getting a much better idea</b> of what commercial games require. The many more outlets for information are indeed proving themselves to be benefitial for the community as a whole, though there's still room for improvement in actually using the information that's available already!</p></li> <li><p>Industry still does not put as much focus put onto AI than say graphics or animation, and I'd say there's insufficient interest. In the case of academic research, this translates into much <b>less funding for game AI projects</b>, compared to the variety of animation work that seems to have less trouble finding funding from industry sources.</p></li> <li><p>The same goes for government funding as well, which points to a <b>problem of notoriety of "game AI"</b> accross the board. Multiple Ph.D. students and research groups (who are doing the more relevant work) are in a tricky situation. Either there aren't enough post-doctoral positions available in this area, or the funding is drying up due to the prestige of the area (as measured by journals).</p></li> <li><p>It seem that industry is <b>not particularly open to disruptive</b> or even innovative game AI techniques that affect the design of games anyway. So the occasional ideas that come from academia that are already applicable are not necessarily taken on board... I had trouble justifying this to a local journalist, but that unfortunately seems to be the case!</p></li>
</ul> <p>Despite all this, my talk went down surprisingly well in the end. Most researchers thanked me for my honest perspective on things, and it was a surprisingly diplomatic presentation in the end :-) That said, even though I outlined many action steps for research groups to take, considering the bad news my tutorial carried implicitly, the whole picture remained grim. Someone said to me afterwards: "Thanks for the great talk... but it was really depressing!" There's obviously a lot to be done on both sides &mdash; and number #1 on the list must be advocacy!</p> <p>Steve Rabin followed the next day with his keynote about the history of game AI, and tried to pick up the mood with the amazing opportunities in design. AI has been a driving factor for innovation, as shown by the many titles in the past. However, Steve came to the same conclusion I did in his last slides; the picture remains grim for game AI research in the near future. Steve thinks there'll be incremental improvements from certain studios in industry over the next years, but it'll take a while for a disruptive technology to come along. There's no sign of this at all...</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/CIG10_SteveRabin.large.jpg"><img src="http://files.aigamedev.com/coverage/CIG10_SteveRabin.medium.jpg"/></a>
<p><br/><u>Photo 3</u>: Steve Rabin's keynote on the first day, delivering an inspiring and humorous look at the past of artificial intelligence in games, but an equally grim picture of the short-term future of game AI.</p>
</div> <h3>Bottom-Up Aesthetics vs. Top-Down Drama</h3> <p>In other news, the 2010 CIG conference answered the question of which famous researcher would win if they got into a fight; Espen Aarseth or Marc Cavazza. Espen won this particular battle and will no doubt turn out right in the near- to medium-future, but Marc's research is addressing interesting issues that are valuable for the long term. As he puts it: "We're inventing a new medium that nobody wants." Not yet, at least!</p> <p>Many of us at the conference and watching the live stream felt Espen's argument was more convincing, as the case for the bottom-up approach in the short term is incredibly compelling:</p> <ul>
<li>It takes little or no technology; we can do it today.</li>
<li>As a simple emergent approach, it's indie friendly and low-budget.</li>
<li>Focusing on the bottom-up benefits gameplay directly.</li>
<li>It makes for more replayable experience with longer gameplay times.</li>
<li>Little tricks can probably help remove boring moments without a planner.</li>
</ul> <p>Afterwards, Michael Mateas helped clarify a few points for me. From the narrative perspective, top-down is typically a story-driven approach whereas bottom-up is effectively character driven. If you look at it from the perspective of control system, top-down is more of a goal-driven planner where as bottom-up is characterized by more reactive techniques. (That confused me a bit!) So if you include some story-driven elements but encoded as reactive rules to help drive the narrative, then it seems to be both top-down and bottom-up &mdash; depending which perspective you're thinking about :-)</p> <div style="text-align:center;"></div> <div style="text-align:center;"></div> <h3>Competitions</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/CIG10_MarioPlaytest.large.jpg"><img src="http://files.aigamedev.com/coverage/CIG10_MarioPlaytest.medium.jpg"/></a>
<p><br><u>Photo 4</u>: One of the CIG attendees judging a level in the open-source clone of Mario.</p>
</div> <p>Overall, the competitions were extremely useful, and went as far as drawing out practical & focused approaches from many of the contestants! Maybe there's a little hacker within every academic researcher if you look deep enough? Except for a few assumptions in the competitions rules, the barriers between industry mostly disappeared during those contests, as the participants went through very similar problem solving processes than you do in industry. From my perspective it was also interesting to see the different tools chosen compared to what I would have used.</p> <blockquote class="right">&ldquo;Most contests should be run online before the conference to get statistically significant results.&rdquo;</blockquote> <p>In practice, however, many of the new contests had glitches, and some of the older contests seem to struggle with recent changes as well. I think most contests that require human voting and feedback should be run online before the conference, so there are more statistically significant data points than a handful of academic researchers (deciding which level is more fun or which bot looks more realistic).</p> <p>The <a rel="nofollow" target="_blank" href="http://www.marioai.org/">Super Mario</a> procedural level generation contest was designed to provide gameplay experiences customized to each and every player. The customizations were based on the results of playing one first fixed level, but the level chosen was extremely difficult, and by the time people got used to the controls they'd have died three times within 5s. Hardly enough information to base a customized level generation algorithm on. It turns out the data provided to the level generators was relatively coarse anyway, and it seems no entry even used the statistics to customize the levels at all. Also, confirming the noise in the evaluation method, the winning entry was a 6h hack from Ben Webber &mdash; though Peter Mawhorter's entry (his lab colleague) would probably have won hands down if it wasn't for a unicode file encoding bug that generated incredibly bizarre but playable patterns in the levels instead (think Mario levels generated by Salvatore Dali).</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/CIG10_JulianTogelius.large.jpg"><img src="http://files.aigamedev.com/coverage/CIG10_JulianTogelius.medium.jpg"/></a>
<p><br/><u>Photo 5</u>: Julian Togelius (organizer) playing what should have been the winning entry, but ended up generating random and very difficult levels due to a text file encoding bug. In the end, the levels were surprisingly playable, extremely creative and probably the most rewarding of all levels generated despite the bug!</p>
</div> <p>The 2K Bot Prize suffered a bit this year. There were fewer entries than previously, presumably due to the high barrier of entry compared to the Mario AI contest. Working with Java when most game AI code is C++ and having an outdated closed source engine doesn't help, but many developers seem to be focusing on the Starcraft competition later this year. A few factors also made the competition logistics sub-optimal: <ol>
<li><p>The whole evaluation is a set of free-for-all deathmatch games, with bots and judges playing in a large level. This results in rather chaotic gameplay with little signs of tactical play.</p></li> <li><p>The bots are primarily being judged on their motoric skills such as aiming/turning and moving. The movement seems to be heavily constrained by Unreal Tournament 2004's navigation implementation, and the turning still seems to be very robotic when spectatic from a first-person perspective.</p></li> <li><p>The judging now happens at runtime within the game. You pick the link gun and aim for the player to tag, then LEFT click to mark as bot and RIGHT click to mark as a player. You only need to do this once, but judges found themselves doing this repeatedly.</p></li> <li><p>Bots could judge, but were not built for it. So it was particularly easy to pick out the humans (only judges, who were judging) and the bots (who were playing normally).</p></li> <li><p>One judge actively tried to act like a bot, but still scored higher than the best bot. This was the result of the meta-game of having judges compete against each other to identify bots & players.</p></li> <li><p>All judges (effectively also players) were in the same game and even the same room, so it made things easier to evaluate implicitly if you were fighting against another judge... Chances are you'd get a subtle reaction from them or a pattern in the mouse and keyboard activity.</p></li>
</ol> <p>As I mentioned afterwards, the contest could be vastly improved by focusing on 1 vs. 1 matches with many more tactical opportunities (like Quake Live), having the human players under evaluation not be judges, and letting them make the decision of bots (or not) out of the game. The link gun may have some benefits for tagging realistic or unrealistic behaviors "online" but it could also be done more accurately by going over the recordings.</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/CIG10_2KBotPrize.large.jpg"><img src="http://files.aigamedev.com/coverage/CIG10_2KBotPrize.medium.jpg"/></a>
<p><br/><u>Photo 6</u>: A judge (Gordon Calleja) playing against the bots in Unreal Tournament 2004. Gordon not only turned out to be the best judge, but was also trying to behave like a bot. Yet he still scored 38% "humanness", noticeably above the winning bot at 31%.</p>
</div> <h3>Final Thoughts</h3> <p>We're expecting the papers from CIG 2010 to be published online shortly, and when that happens I'll write some reviews of the best papers on the blog. In the meantime, check out the <a rel="nofollow" target="_blank" href="http://http://vimeo.com/itucph">recorded sessions</a> online on Vimeo. (My tutorial is there too...)</p> <p>CIG 2010 was an interesting duality for me. While the conference itself was an amazing and stimulating event for me and many others there, my feeling after leaving were not the most optimistic ones. If this post seems less positive than usual, it's no coincidence! There really hasn't been much academic research & collaboration for game AI in the past, and things now are still in their infancy compared to other fields of video games. It doesn't help that few industry developers attend such conferences, and once they do (e.g. to give a talk) they don't return.</p> <p>That said, things are on the right track! The competitions are a great way to encourage practical solutions from the community, even if I'd personally allow the AI to access all the information it wants. Also, there's much better information available to researchers so new projects are better informed. That's a big motivation for us at <tt>AiGameDev.com</tt> as well, and rest assured we're working hard on the other issues I brought up too!</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/CIG10_AudienceTop.large.jpg"><img src="http://files.aigamedev.com/coverage/CIG10_AudienceTop.medium.jpg"/></a>
<p><br/><u>Photo 7</u>: View from the top of the main auditorium during CIG 2010 in the IT University in Denmark.</p>
</div><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/9MtxIwH1XcU" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/coverage/2010-cig/</feedburner:origLink></item>
      <item>
         <title>Animating Game Characters with Havok Behavior</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/0u--PG7Mmao/</link>
         <description>&lt;p&gt;&lt;small&gt;This article was published for &lt;a rel="nofollow" target="_blank" href="http://aigamedev.com"&gt;AiGameDev.com&lt;/a&gt; Insiders, free by registration.&lt;/small&gt;&lt;/p&gt;
&lt;img src="http://files.aigamedev.com/insiders/HavokBehavior.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/&gt;
&lt;p&gt;Over the past decade, blend trees have established themselves in the games industry as a reliable and flexible technique for animating game characters. However, it can take a lot of development time to build up an efficient runtime and powerful toolset, and obviously middleware companies are stepping up!&lt;/p&gt; &lt;p&gt;In this interview-style presentation with Jason Turbin, you'll find out everything you need to know about &lt;a rel="nofollow" target="_blank" href="http://www.havok.com/index.php?page=havok-behavior"&gt;Havok Behavior&lt;/a&gt;, the middleware animation system that powers WORLD OF ZOO (among many other titles). Jason goes behind the scenes into the architecture and implementation of Havok Behavior, and provides insights into the tools and how they are used.&lt;/p&gt;&lt;p&gt;[...]&lt;img src="http://feeds.feedburner.com/~r/AiGameDev/~4/0u--PG7Mmao" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://aigamedev.com/insider/interviews/havok-behavior/</guid>
         <pubDate>Wed, 11 Aug 2010 14:30:00 +0000</pubDate>
      <feedburner:origLink>http://aigamedev.com/insider/interviews/havok-behavior/</feedburner:origLink></item>
      <item>
         <title>Are Waypoint Graphs Outnumbered? Not in AlienSwarm!</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/O2YSL5zZRho/</link>
         <description>If you've been following recent trends in game AI, you could think of navigation meshes as an angry horde set to kill off waypoint graphs. Meshes are everywhere: from the various middleware libraries presented in Paris last month like Autodesk's Kynap [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/reviews/alienswarm-node-graph/</guid>
         <pubDate>Thu, 22 Jul 2010 14:55:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <img src="http://files.aigamedev.com/ASW_AlienSwarm.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/> <p>If you've been following recent trends in game AI, you could think of navigation meshes as an angry horde set to kill off waypoint graphs. Meshes are everywhere: from the various middleware libraries presented in Paris last month like Autodesk's Kynapse, <a rel="nofollow" target="_blank" href="http://www.pathengine.com">PathEngine</a>, or <a rel="nofollow" target="_blank" href="http://www.havok.com">Havok</a>'s to open-source implementations like Recast as well. Some veteran developers have even declared waypoint-based approaches to be obsolete...</p> <p>Yet, waypoint graphs are still regularly used in the games industry. I personally often recommend them &mdash; especially to independent developers &mdash; since they're a simple and effective approach to navigation, and if you're going to implement something yourself for a game, you might as well use waypoints and save yourself the torment of writing a robust navigation mesh that you may never make the most of!</p> <p>The recent release of AlienSwarm (free on Steam) is a perfect illustration of how waypoints are still used in practice, and are supported by Valve's Source engine. In this post, you'll find some insights into the code from the SDK (also available) as well as screenshots from the game itself. Oh, and be sure to join our official <tt>AiGameDev.com</tt> <a rel="nofollow" target="_blank" href="http://steamcommunity.com/groups/aigamedev">Group on the Steam Community!</a></p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://steamcommunity.com/groups/aigamedev"><img src="http://files.aigamedev.com/ASW_AlienSwarm.medium.jpg"/></a>
</div> <h3>Instructions...</h3> <p>If you'd like to follow along with this article, you need to do a couple things once you have the game installed. Keep in mind you can click on all the images below to view the large version!</p> <ol>
<li><p>In the AlienSwarm keyboard configuration menu, you have to enable the developer console.</li></p>
<li><p>When you need it, you can activate the console using the tilde (~) key below the ESC key.</p></li>
<li><p>You may want to setup god mode by typing <tt>asw_god 1</tt>, which should prevent you from dying while you're exploring.</p></li>
<li><p>Also, for screenshots disable the heads-up display (HUD) using <tt>asw_draw_hud 0</tt>.</p></li>
</ol> <p>The SDK is installed via your TOOLS tab in the Library within Steam, and the source code is stored on disk in your Steam folder, for example <tt>C:&#92;Games&#92;Steam&#92;steamapps&#92;common&#92;alien swarm&#92;sdk_src&#92;game&#92;server</tt>.</p> <h3>AI Nodes</h3> <p>Technically speaking, the graph in AlienSwarm is made up of "nodes" and the term "waypoint" is used to describe the path that results from the pathfinding. Nodes are essentially points in space with additional information such as an identifier, type, additional information, a zone, etc. The data-structure used to store these nodes can be found in <tt>#/sdk_src/game/server/ai_node.[h,cpp]</tt>.</p> <pre lang="CPP">
enum NodeType_e
{ NODE_ANY, NODE_DELETED, NODE_GROUND, NODE_AIR, NODE_CLIMB, NODE_WATER }; enum NodeInfoBits_e
{ bits_NODE_CLIMB_BOTTOM = (1 &lt;&lt; 0), bits_NODE_CLIMB_ON = (1 &lt;&lt; 1), // ... bits_NODE_CLIMB_OFF_RIGHT = (1 &lt;&lt; 4), bits_NODE_CLIMB_EXIT = // ... NODE_ENT_FLAGS_SHIFT = 5, /* Flags for default and custom hulls. */
}; class CAI_Node
{
public: int m_iID; Vector m_vOrigin; float m_flVOffset[NUM_HULLS]; float m_flYaw; NodeType_e m_eNodeType; int m_eNodeInfo; int m_zone; CUtlVector&lt;CAI_Link*&gt; m_Links; float m_flNextUseTime; CAI_Hint* m_pHint; int m_iFirstShuffledLink;
};
</pre> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/ASW_GroundNodes.large.jpg"><img src="http://files.aigamedev.com/ASW_GroundNodes.medium.jpg"/></a>
<p><u>Screenshot 1</u>: Ground nodes are placed on the floor and given a NODE_GROUND type. Most aliens use these nodes.</p>
</div> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/ASW_AirNodes.large.jpg"><img src="http://files.aigamedev.com/ASW_AirNodes.medium.jpg"/></a>
<p><u>Screenshot 2</u>: Some of these nodes are aerial nodes, and have the NODE_AIR type. Flying aliens use these.</p>
</div> <p>The nodes in the levels can be placed manually using the <a rel="nofollow" target="_blank" href="http://developer.valvesoftware.com/wiki/Map_edit">map editing</a> facilities from the console.</p> <h3>AI Links</h3> <p>Nodes are connected together via links, which implicitly creates a graph. Each node stores a set of links, and the links hold two identifiers to point towards its end nodes. The links are specified in <tt>#/sdk_src/game/server/ai_link.[h,cpp]</tt> and the resulting graph is <tt>#/sdk_src/game/server/ai_network.[h,cpp]</tt>.</p> <pre lang="CPP">
/* Edited for conciseness. */
enum Link_Info_t
{ bits_LINK_STALE_SUGGESTED = 0x01, bits_LINK_OFF = 0x02, bits_LINK_PRECISE_MOVEMENT = 0x04, bits_PREFER_AVOID = 0x08, bits_LINK_ASW_BASHABLE = 0x10,
}; class CAI_Link
{
public: short	m_iSrcID; short	m_iDestID; byte m_iAcceptedMoveTypes[NUM_HULLS]; byte	m_LinkInfo; float m_timeStaleExpires; int m_nDangerCount; CAI_DynamicLink *m_pDynamicLink;
};
</pre> <p>You can display the links from the console using the command <tt>ai_show_connect</tt>.</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/ASW_LinksCorridor.large.jpg"><img src="http://files.aigamedev.com/ASW_LinksCorridor.medium.jpg"/></a>
<p><u>Screenshot 3</u>: The AI node graph in a tight corridor.</p>
</div> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/ASW_LinksStairs.large.jpg"><img src="http://files.aigamedev.com/ASW_LinksStairs.medium.jpg"/></a>
<p><u>Screenshot 4</u>: A small set of stairs and its node graph.</p>
</div> <p>There are two types of links: <b>static</b> links like in the screenshots above, which don't change during the game and can be stored very efficiently in memory. However, since some parts of the world may change, dynamic links are also required. These are hooked into the graph by having each static link store an optional pointer to a dynamic link. The dynamic links are full entities capable of receiving game events to deal with the changes around it. See the files <tt>#/sdk_src/game/server/ai_dynamiclink.[h,cpp]</tt> for details!</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/ASW_DynamicLinks.large.jpg"><img src="http://files.aigamedev.com/ASW_DynamicLinks.medium.jpg"/></a>
<p><u>Screenshot 5</u>: Dynamic links that are currently disabled, re-enabled after nearby objects are destroyed.</p>
</div> <p>In the standard campaign, dynamic links are used when infected biomass is burned with the flamethrower, or rocks that are in the way are destroyed using the mining laser.</p> <h3>AI Hulls</h3> <p>The links in the graph seems to be connected via brute force, as shown in the images below. There are many links that are created which will never be used at runtime. However, these are marked as disabled &mdash; shown in red.</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/ASW_ConvexLinks.large.jpg"><img src="http://files.aigamedev.com/ASW_ConvexLinks.medium.jpg"/></a>
<p><u>Screenshot 6</u>: The links to be checked by the convex hull collision.</p>
</div> <p>The links are disabled using a convex hull collision test. If the hull around a link collides with geometry, then it's deemed to be in-traversable at runtime and the link is turned off. You can see the hulls from the console using the variable <tt>ai_show_hull 1</tt>.</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/ASW_ConvexHull.large.jpg"><img src="http://files.aigamedev.com/ASW_ConvexHull.medium.jpg"/></a>
<p><u>Screenshot 7</u>: Convex hulls associated with the previous node graph.</p>
</div> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/ASW_AirHulls.large.jpg"><img src="http://files.aigamedev.com/ASW_AirHulls.medium.jpg"/></a>
<p><u>Screenshot 8</u>: Aerial node graph and a representation of its hulls.</p>
</div> <p>There are different convex hull types for the different link types, in this case ground units and air units. The hulls for both those unit types are rendered in a different color within the game.</p> <h3>Another Example</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/ASW_ExampleNodes.large.jpg"><img src="http://files.aigamedev.com/ASW_ExampleNodes.medium.jpg"/></a>
</div> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/ASW_ExampleLinks.large.jpg"><img src="http://files.aigamedev.com/ASW_ExampleLinks.medium.jpg"/></a>
</div> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/ASW_ExampleHulls.large.jpg"><img src="http://files.aigamedev.com/ASW_ExampleHulls.medium.jpg"/></a>
</div> <h3>Conclusion</h3> <p>Waypoints have picked up a bad reputation over the years, but AlienSwarm is an example of a game that seems perfectly fine with this approach. The navigation of the aliens is certainly not perfect, but this is mostly due to human-placed dynamic obstacles like turrets.</p> <p>Navigation meshes wouldn't resolve this problem directly either, you still need local avoidance for that... Arguably though, a navmesh would make it easier to resolve these problems and support dynamic obstacles, but getting this right is far from trivial!</p> <p><b>What's your take on waypoints and their use in AlienSwarm? Let us know and <a rel="nofollow" target="_blank" href="http://forums.aigamedev.com/newreply.php?do=newreply&noquote=1&t=4246">post a comment</a> in the forums!</b></p><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/O2YSL5zZRho" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/reviews/alienswarm-node-graph/</feedburner:origLink></item>
      <item>
         <title>Paris Game AI Conference '10: Highlights, Photos &amp; Slides</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/gna9dtWGGtA/</link>
         <description>Two years ago, I briefly met Jason Della Rocca in Paris and he was genuinely surprised that our inaugural Game AI Workshop '08 sold out to a whole fifty (50) people! I got a metaphorical pat on the back, and went back to work. Last year, our Game AI [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/coverage/paris10-report/</guid>
         <pubDate>Wed, 07 Jul 2010 15:54:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <img src="http://files.aigamedev.com/coverage/GAIC10w_AudienceRight.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/> <p>Two years ago, I briefly met Jason Della Rocca in Paris and he was genuinely surprised that our inaugural Game AI Workshop '08 sold out to a whole fifty (50) people! I got a metaphorical pat on the back, and went back to work. Last year, our <a rel="nofollow" target="_blank" href="http://aigamedev.com/open/coverage/paris09-report/">Game AI Conference '09</a> found its home at the CNAM, but we didn't have any fancy badges, no branding signs or posters, and one of our coffee breaks accidentally turned into a tea break <i>*gasp*</i>. Yet still almost two hundred developers (200) joined us in Paris over two days, and a community was born.</p> <p>This year, returning to the CNAM allowed us to combine the conference plus a workshop, and focus on the little details that make the difference, badges, posters, signs, color schedules, etc. (It doesn't sound like much, but you should have seen them :-) Certainly it was far from perfect, with registration bottlenecks and no soft drinks, but it didn't matter! Game developers worldwide joined us again and nearly three hundred (300) people attended over three days, forcing us to upgrade to the biggest amphitheatre.</p> <p>The common theme for all these events was a genuine passion for AI and games, from the speakers to the program committee (Phil Carlisle, Mikko Mononen, William van der Sterren), including the organization committee (Axel Buendia, Petra Champandard-Pail, Stephane Natkin) and everyone who volunteered to help. With that kind of energy going into the conference, what came out was a fantastic community and friendly atmosphere that no trade-show or generic developer's conference could match.</p> <div style="text-align:center;">
<img src="http://files.aigamedev.com/coverage/GAIC10w_AudienceTopLeft.medium.jpg" style="padding-right:32px;"/><img src="http://files.aigamedev.com/coverage/GAIC10w_AudienceTopRight.medium.jpg"/>
</div> <p>Below you'll find my summary of each session, the best photos, as well as slides where possible. If you want the whole details, the full audio/video recording with screencast will be available as part of the <tt>AiGameDev.com</tt> PREMIUM area over the next few months as we edit them. <a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/">Find out more here!</a></p> <h3>Thanks to Our Sponsors</h3> <p>The conference this year brought together all middleware game AI vendors, including and most importantly, our sponsors! We're particularly grateful to all these companies for their support, without which the event wouldn't have been possible. We don't run the conference as a profit making enterprise, so their contribution to the conference is an essential part of it.</p> <h4>Gold Sponsors</h4> <p style="clear:left;"><a rel="nofollow" target="_blank" href="http://www.game-talents.com"><img src="http://gameaiconf.com/gametalents.png" style="float:left;padding:0 20px;" alt="Game Talents"/></a> <a rel="nofollow" target="_blank" href="http://www.game-talents.com">Game Talents</a> was the first company to join on board with the 2010 edition of the conference. David Roulin not only made sure the coffee breaks ran smoothly, but he helped out with flight logistics during the public transport strike. If you want someone with that kind of dedication looking for your new recruits, or finding a job opportunity for you, don't hesitate to contact him!</p> <p style="clear:left;"><a rel="nofollow" target="_blank" href="http://www.autodesk.com"><img src="http://gameaiconf.com/autodesk.png" style="float:left;padding:0 20px;" alt="Autodesk"/></a> Autodesk was the first middleware sponsor to support the conference in the very early stages of the organization, and we're very grateful for their contribution to the event. The AI team has just announced the new release of <a rel="nofollow" target="_blank" href="http://www.autodesk.com/kynapse">Kynapse 7</a> also, with a host of new improvements as well as optimizations to the navigation solution.</p> <h4 style="clear:left;">Silver Sponsors</h4> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://www.pathengine.com"><img src="http://gameaiconf.com/pathengine.png" style="float:left;padding:0 20px;" alt="PathEngine"/></a>
<a rel="nofollow" target="_blank" href="http://www.spirops.com"><img src="http://gameaiconf.com/spirops.png" style="float:left;padding:0 20px;" alt="Spir.Ops"/></a>
<br style="clear:left;"/>
</div> <h4 style="clear:left;">Bronze Sponsors</h4> <div style="text-align:center;"> <a rel="nofollow" target="_blank" href="http://www.fourdoorlemon.com"><img src="http://gameaiconf.com/fourdoorlemon.png" style="float:left;padding:0 20px;" alt="Foor Door Lemon"/></a>
<a rel="nofollow" target="_blank" href="http://www.havok.com"><img src="http://gameaiconf.com/havok.png" style="float:left;padding:0 20px;" alt="Havok"/></a> <a rel="nofollow" target="_blank" href="http://www.masagroup.net"><img src="http://gameaiconf.com/masa.jpg" style="float:left;padding:0 20px;" alt="MASA Group"/></a>
<br style="clear:left;"/> </div> <h3>Table of Content</h3> <p>On this page, you'll find the coverage of the following sessions:</p> <ol> <li><p><a rel="nofollow" href="#session1">This Year in Game AI</a></p></li> <li><p><a rel="nofollow" href="#session2">Tales and Advice from the Designer Trenches</a></p></li> <li><p><a rel="nofollow" href="#session3">Interactive Conversations with Animated Characters in WORLD OF ZOO</a></p></li> <li><p><a rel="nofollow" href="#session4">Navigation Loop: Avoid Turning in Circles w/ Local Avoidance</a></p></li> <li><p><a rel="nofollow" href="#session5">Crowds and Pedestrians without Bumper Car Syndrome</a></p></li> <li><p><a rel="nofollow" href="#session6">Inside Your Player's Mind with Playtesting</a></p></li> <li><p><a rel="nofollow" href="#session7">Personality Profiling in SILENT HILL: SHATTERED MEMORIES</a></p></li> <li><p><a rel="nofollow" href="#session8">Player Modeling, Experience Management and Metrics</a></p></li> </ol> <p>That was day one, and day two follows:</p> <ol start="9"> <li><p><a rel="nofollow" href="#session9">Physics-based Racing AI in SBK X</a></p></li> <li><p><a rel="nofollow" href="#session10">Creating the BATTLEFIELD AI Experience</a></p></li> <li><p><a rel="nofollow" href="#session11">Building Virtual Toys that Don't Break</a></p></li> <li><p><a rel="nofollow" href="#session12">Multi-Threading in Practice: Uncut and Uncensored</a></p></li> <li><p><a rel="nofollow" href="#session13">Territoriality for EVE Online's Socially Smart Characters</a></p></li> <li><p><a rel="nofollow" href="#session14">Procedural Animation Keynote</a></p></li> <li><p><a rel="nofollow" href="#session15">Summary &amp; Take-Away</a></p></li>
</ol> <h3 id="session1">This Year in Game AI</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10h_PhilCarlisle.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10h_PhilCarlisle.medium.jpg" style="margin-right:4em;"/></a> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10h_AlexChampandard.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10h_AlexChampandard.medium.jpg"/></a>
</div> <p><u>Speakers</u>: Phil Carlisle, Alex Champandard</p> <p>This short introduction to the conference summed up the year’s trends, and how the rest of the talks in the conference fit in to the grand scheme of things. The trends in particular we focused on were:</p> <ol>
<li><p><b>AI for Multiplayer Games</b>: More and more games now support multiple players and co-operative mode, but frankly not all people online are that fun to play with. AI bots can help!</p></li>
<li><p><b>More Simulation</b>: Linear games have their place, but many games now are becoming more sandbox-like and open-ended. This often requires AI for the non-player characters.</p></li>
<li><p><b>Complex Environments</b>: As developers become more comfortable with the consoles, the worlds’ complexity is increasing &mdash; which requires better AI to deal with them.</p></li>
<li><p><b>Non-Character AI</b>: As games mature and move to different platforms, AI is playing a different role beyond just character behaviors...</p></li>
<li><p><b>Online / Social Games</b>: In particular, for web- or mobile-based games AI can be very useful as a data-mining and balancing tool.</p></li>
<li><p><b>Crowds</b>: Game developers are also increasingly using groups of individuals to make more cinematic experience, for example the controversial airport scene in MODERN WARFARE 2.</p></li>
<li><p><b>Procedural Content</b>: Since the scope of games is increasing and budgets are not scaling proportionally, there’s a huge opportunity for AI as a content creation tool, offline or online.</p></li>
</ol> <p>This list also tied in to the sessions at the conference, both because the talks reflected the trends and the trends we picked were based on the talks! Read on to find out more...</p> <h3 id="session2">Tales and Advice from the Designer Trenches</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10w_DesignPanel.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10w_DesignPanel.medium.jpg"/></a>
</div> <p><u>Participants</u>: Stephane Bura, Noah Falstein, Jurie Horneman, Phil Carlisle (moderator).</p> <p>This panel started the conference with three designers (each with backgrounds in production and programming) in contrast with the audience of over 98% programmers! This was a great opportunity for them to preach to the coders. In particular Stephane wanted to make sure the programmers are assertive when telling designers what the system can or cannot do, and Jurie told about his experience on MANHUNT 2 and pointed out the importance (and the risks) of having an AI that can be disabled easily. Noah also talked about working with very few resources on the C64 by focusing on what’s most important and keeping things simple &mdash; a lesson that’s still valuable now.</p> <p>From a career perspective, the panelists shared their thoughts on getting into industry, since ironically most of them had a technical background. Jurie advised reading economics books to help with the many balancing problems that are common in games, especially multiplayer ones. The Art of Game Design was unanimously recommended as a resource for those getting started in design.</p> <h3 id="session3">Interactive Conversations with Animated Characters in WORLD OF ZOO</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10h_BruceBlumberg.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10h_BruceBlumberg.medium.jpg"/></a>
</div> <p><u>Speaker</u>: Bruce Blumberg, Blue Fang Games.</p> <p>Bruce Blumberg's keynote was an inspiring summary of his work so far, spanning from his research at the head of the Synthetic Characters Group in the MIT Media Lab, to his most recent work at Blue Fang Games as Lead Character Engineer on WORLD OF ZOO. Bruce showed a variety of videos and prototypes that each emphasized the incredible level of involvement of the audience while interacting with virtual animals, which was one of the main goals for the zoo creatures. When the animals pay attention exclusively to you, Bruce pointed out that an intimate non-verbal conversation takes place.</p> <p>The underlying technology to support this does not need to be overly complex, and Bruce in particular showed the famous “Boxy Dog” prototype that had few animations and no blending, which the player could interact with via a ball. The system in WORLD OF ZOO itself was implemented as a HFSM built with Havok Behavior, including the underlying blend tree. However, the technology itself was relatively unimportant in comparison to the behavioral and design issues that took the front stage in Bruce’s talk.</p> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Intimate Conversations with Interactive Animated Characters</b>
Bruce Blumberg
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GAIC10_BruceBlumberg.pdf'>PDF</a></pre> <h3 id="session4">Navigation Loop: Avoid Turning in Circles w/ Local Navigation</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10w_MikkoMononen.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10w_MikkoMononen.medium.jpg"/></a>
</div> <p><u>Speaker</u>: Mikko Mononen, Keino Yhtiö.</p> <p>Last year, Mikko’s presentation was mostly done using his Recast demo, but this year he took it a step further and built his entire presentation using OpenGL, but everything went extremely smoothly once the projector was setup! Mikko discussed the classic navigation problem of integrating high-level pathfinding together with low-level avoidance behavior, which he calls the “navigation loop” to reflect everything you need to do each cycle. While the algorithm he presented was the result of months of research and experimentation with different variations, it still remained very simple and looked sensible!</p> <p>Mikko then broke down each of the components in his navigation loop, in particular what you need to do to adjust the paths while following it. The key part of the solution was an hybrid reciprocal velocity obstacle (HRVO) implementation that uses a form of hierarchical sampling to reduce the computational overheads. Apparently, at least one middleware solution uses RVO also, and it was great to hear that people felt this wasn't too much of a problem anymore.</p> <i>&raquo; <a rel="nofollow" target="_blank" href='http://aigamedev.com/open/coverage/paris10-report/'>Click here</a> to view this embedded content.</i> <h3 id="session5">Crowds and Pedestrians without Bumper Car Syndrome</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10w_CrowdPanelists.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10w_CrowdPanelists.medium.jpg"/></a>
</div> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10w_CrowdModerator.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10w_CrowdModerator.medium.jpg"/></a>
</div> <p><u>Participants</u>: Bertrand Faure (Quantic Dream), Jean-Charles Perrier (Quantic Dream), Ken Perlin, Mikko Mononen.</p> <p>This panel followed Mikko’s talk with the aim of bridging the gap between multi-agent navigation and simulating whole crowds, using insights from the team behind HEAVY RAIN. The panel came to the unanimous conclusion that simulating large crowds requires very different technology than for small groups of characters, and there’s currently little overlap between the two. In the train station scene HEAVY RAIN, a completely different system was developed based on flow fields compared to the standard A* pathfinder that handles the rest.</p> <p>On the animation front, there’s more work to be done. While modeling individual characters as a bounding cylinder with a velocity is a good approximation for solving the navigation, connecting the results with the low-level animation is probably one of the biggest problems we’re facing. The panel had no perfect solution here, but identified the next steps – such as using better “motion models” to drive the navigation process and using footplant placement algorithms along paths found. This will remain a topic on people’s mind for a while still!</p> <h3 id="session6">Inside Your Player's Mind with Playtesting</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10w_BaylorWetzel.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10w_BaylorWetzel.medium.jpg"/></a>
</div> <p><u>Speaker</u>: Baylor Wetzel</p> <p>Baylor Wetzel delivered the surprise hit of the conference, presenting the experiments he’s been running on his students over the past years. He inspired quite a few thoughts for experiments in AAA companies too, so if you’re a designer beware of your programmer trying to prove a point!</p> <p>Baylor used a simple RPG-style combat game with stacks of units on either side, he asked his students which of his AI implementations was the most fun, which was the most difficult, and which was the most realistic. He also asked them to predict what the strategy was, and got some great stories to tell based on their explanations.</p> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Inside Your Players' Mind With Playtesting</b>
Baylor Wetzel
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GAIC10_BaylorWetzel.ppt'>PPT</a></pre> <h3 id="session7">Personality Profiling in SILENT HILL: SHATTERED MEMORIES</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10h_GwareddMountain.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10h_GwareddMountain.medium.jpg"/></a>
</div> <p><u>Speaker</u>: Gwaredd Mountain, Climax.</p> <p>Gwaredd Mountain presented the work that Climax did on the most recent iteration of the SILENT HILL series. The game was designed from the start to “get into your head” and used research in personality profiling to enhance this effect. The game keeps track of four out of the Big Five personalities (Openness, Conscientiousness, Extraversion, Agreeableness but not Neuroticism), based on both a questionnaire at the start as well as what the player focuses on within the game.</p> <p>Gwaredd mentioned it’s hard to quantify the actual results of the physiological experiment, very much like horoscopes in newspapers. However, the game is the best rated in the franchise for 6 years, and got great feedback from the players who felt this personality-driven AI director added replayability to the game. Climax also put the psychological profiling at the forefront of the whole game, which combined with the underlying implementation, made for a great combination.</p> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Personality Profiling in SILENT HILL: SHATTERED MEMORIES</b>
Gwaredd Mountain
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GAIC10_GwareddMountain.ppt'>PPT</a></pre> <h3 id="session8">Player Modeling, Experience Management and Metrics</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10w_ExperienceManagement.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10w_ExperienceManagement.medium.jpg"/></a>
</div> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10w_ExperiencePanelists.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10w_ExperiencePanelists.medium.jpg"/></a>
</div> <p><u>Participants</u>: Jurie Horneman, Stephane Bura, Gwaredd Mountain.</p> <p>This short panel elaborating on the previous two talks helped emphasize the importance of player modeling, which according to both Jurie and Stephane is the most important for AI in games. Not only can player modeling help create better gameplay at runtime, like LEFT 4 DEAD, but it’s probably even more important as a tool to figure out player behavior offline. For webgames, such tools become very similar to current web analytics tools, to help tune the game as if it was a sales funnel.</p> <p>But Perhaps the most important topic brought up during this panel was that game AI is no longer just for NPCs, but in fact the biggest opportunities in the field are in these other forms of AI such as data-mining or experience management. What was the most surprising is that the panel (made of a producer, a designer and a technical director) unanimously agreed. Game AI seems to have fully broken out of its original role now!</p> <h3 id="session9">Physics-based Racing AI in SBK X</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10h_PaoloManinetti.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10h_PaoloManinetti.medium.jpg"/></a>
</div> <p><u>Speaker</u>: Paolo Maninetti</p> <p>Based on his work at Milestone on SUPERBIKE 2010 (a.k.a. SBK X) and SUPERSTARS V8, Paolo Maninetti’s talk was split into two parts. The first was a tutorial about racing AI in general, including throttle and brake control, racing line creation and steering, making realistic mistakes, as well as group maneuvers such as over-taking. Paolo showed videos of these concepts on both two wheels and the racing cars.</p> <p>The second part of Paolo’s talk focused on some of the racing controller optimization techniques they’ve been using on those games. Paolo explained how an algorithm could automatically split up a track into sections that could be optimized separately, then showed an iterative method to determine grip modifiers for each of those sections. These values could be adjusted by the designers, and ultimately affected the maximum speed that the AI would try to race in those sections.</p> <i>&raquo; <a rel="nofollow" target="_blank" href='http://aigamedev.com/open/coverage/paris10-report/'>Click here</a> to view this embedded content.</i> <h3 id="session10">Creating the BATTLEFIELD AI Experience</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10h_MikaelHedberg.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10h_MikaelHedberg.medium.jpg"/></a>
</div> <p><u>Speaker</u>: Mikael Hedberg</p> <p>By talking about DICE’s work in a surprisingly honest and straightforward manner, Mikael Hedberg’s keynote about the AI in BATTLEFIELD: BAD COMPANY 2 captured the spirit of the Paris Game AI Conference 2010 perfectly. Mikael in particular talk about what made the difference between the first iteration of the single player game, in a studio that’s known for its multiplayer gameplay and AI bots.</p> <p>Mikael mentioned that on average, each enemy AI spends about 5 seconds on screen, so the team spent many of their resources there as well as the death poses. There was also a clip with a tank following a jeep convoy, and Mikael challenged the audience to find how many times the tank was teleported (it wasn’t noticeable at all). This attention to detail contributed to creating a bulk AI (80%) that could support memorable moments (20%) which turned out to be the winning recipe for BFBC2.</p> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Building the BATTLEFIELD AI Experience</b>
Mikael Hedberg
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GAIC10_MikaelHedberg.ppt'>PPT</a></pre> <h3 id="session11">Building Virtual Toys that Don't Break</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10w_ToysModerator.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10w_ToysModerator.medium.jpg"/></a>
</div> <p><u>Participants</u>: Bruce Blumberg, Frederik de Caster (Creative Assembly), Ulf Johansen (IO Interactive).</p> <p>This panel brought together AI programmers who worked on a wide variety of different games, ranging from stealth-based shooters like the HITMAN series, real-time strategy games such as the TOTAL WAR franchise, and games that focus on interaction with the player such as WORLD OF ZOO &mdash; but all of which have an emphasis on open gameplay in a sandbox-like environment. The premise of this session was that the same techniques are useful while managing the development and production of robust AI regardless of its genre. Indeed, that turned out to be the case!</p> <h3 id="session12">Multi-Threading in Practice: Uncut and Uncensored</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10h_Multithreading.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10h_Multithreading.medium.jpg"/></a>
</div> <p><u>Speaker</u>: Alex J. Champandard, AiGameDev.com.</p> <p>In this talk, I shared some of the practical experiences we had while adding multi-threading to the AI Sandbox. In particular, I shared the process of accelerating Ogre 3D’s animation and ray test calculations from Bullet using Intel’s Threading Building Blocks library. I focused on some of the dirty details (hence the unofficial “uncut and uncensored” subtitle) that normally aren’t talked about so much, in particular the process of finding and fixing bugs in an existing codebase as they come up, and the different ways you can prevent them from happening. It’s certainly not a glorious process, so you can understand why developers don’t talk about the details so often!</p> <p>The various things we had success with were component-level parallelism and a query/job system. Beyond that, I suggested people spend more time thinking about multi-threading can help with AI in particular – rather than just focusing on general advice you can get off the internet. (Free advice is worth what you pay for it :-) For example, have a reasoning layer maintain a world model via queries each frame rather than have each AI make separate requests for information. This can end up providing many more benefits for the AI in general, so keep in mind that multi-threading isn’t just an extra tool, it can change the problem space itself!</p> <i>&raquo; <a rel="nofollow" target="_blank" href='http://aigamedev.com/open/coverage/paris10-report/'>Click here</a> to view this embedded content.</i> <h3 id="session13">Territoriality for EVE Online's Socially Smart Characters</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10h_ClaudioPedica.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10h_ClaudioPedica.medium.jpg"/></a>
</div> <p><u>Speaker</u>: Claudio Pedica, Reykjavik University.</p> <p>Claudio followed up with a presentation about a research collaboration between the University of Reykjavik and CCP Games, the makers of EVE ONLINE. In particular, CCP was most interested in the character behaviors on board the various ships and space stations where social interactions happen, and bringing those characters to life, in particular compared to the cardboard cut-outs of current games.</p> <p>Claudio presented a solution that includes a concept of territoriality, for example when people are holding conversations in groups. (This ended-up becoming a meme at the conference.) When conversations happen, there are many social implications to how people use the territory: other people walk around conversations, and whole groups move if someone involved in the conversation shifts slowly.</p> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Human Territoriality for EVE Online's Socially Smart Characters</b>
Claudio Pedica
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GAIC10_ClaudioPedica.ppt'>PPT</a></pre> <h3 id="session14">Procedural Animation</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10h_KenPerlin.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10h_KenPerlin.medium.jpg"/></a>
</div> <p><u>Speaker</u>: Ken Perlin</p> <p>Although there was a public transport strike with the risk of people not getting to their planes or trains in time, many attendees chose to stay to see what Ken had to say about procedural animation. Ken’s talk was a comprehensive review of his best work in the field of character animation, with interactive demos of famous prototypes as well as some of his unreleased prototypes. Ken didn’t cover the most recent work of ActorMachine, however, as they’re gearing up for a release later this year.</p> <p>While full body procedural animation relies on using somewhat stylized characters, there’s no reason why this approach can’t be used more in games. In fact, in many ways, procedural techniques are very often used for upper-body control for things like aiming and looking around. Ken emphasized during the Q&A that he’d love to see many different implementations of these concepts, and intuitively, it seems to be more a question of mindset than a huge technical challenge. As he also said, it’s not computationally expensive either.</p> <h3 id="session15">Summary & Take Away</h3> <p>While reading this, if you get the impression that you should have been there in the audience, then you're absolutely right! Many talks didn't have slides and you just had to be there to appreciate them. The discussions over coffee or drinks with some of the leading AAA developers worldwide made it worth going just for those! Make sure you don't miss out next year (similar dates, same place) by signing-up to the <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">conference mailing list</a> for notifications...</p> <p style="border:1px dashed #444;background-color:#ddd;padding:1em;"><img src="http://files.aigamedev.com/i/2009/01/crown.png" style="float:right;margin-left:1em;" align="right" hspace="32" style="width:64px;height:64px;"/> If you found any of this interesting, you can get the full edited recordings over the next few months as part of <tt>AiGameDev.com</tt> PREMIUM. Of course, you get all the other benefits of our members-only content too! <a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/">Find out more here</a>.</p> <h3>Comments and Feedback</h3> <p>This year, developers from all around the world joined us in Paris for an amazing conference, including Avalanche, CCP, Creative Assembly, Dark Works, Eidos Montreal, Frontier Developments, Guerrilla Games, IO Interactive, Natural Motion, Monolith, Quantic Dream, Sony, Ubisoft, Yager &mdash; and many more. Here's some of the feedback they gave us after the event.</p> <blockquote>&ldquo;Thank you for this amazing conference! Great speakers, interesting subjects and nice people. Ten years that I’m looking for a good conference on AI in video games, I’m really happy to have found it.&rdquo;<br/>&mdash; <small>Gabriel Robert, Senior AI programmer, Ubisoft Paris.</small></blockquote> <blockquote>&ldquo;I thought the conference was a great success. I learned alot from the speakers at the conference, as well as interacting with the attendees.&rdquo;<br/>&mdash; <small>Frederik De Caster, AI Programmer, Creative Assembly.</small></blockquote> <blockquote>&ldquo;Well done for putting on such a great conference, the program was varied, interesting and inspiring. Definitely hoping to return next year.&rdquo;<br/>&mdash; <small>John Lusty, Lead Coder, Ninja Theory.</small></blockquote> <blockquote>&ldquo;Awesome!&rdquo;<br/>&mdash; <small>Carle Côté, AI Game Programmer, Eidos Montréal.</small></blockquote> <blockquote>&ldquo;Great people and outstanding content with a relaxed and easy-going atmosphere. I currently go to just one conference each year and that is the Paris Game AI Conference.&rdquo;<br/>&mdash; <small>Thomas Young, <a rel="nofollow" target="_blank" href="http://www.pathengine.com/">PathEngine</a>.</small></blockquote> <blockquote>&ldquo;The quality of the talks was consistently high and the event well organised. I thoroughly enjoyed the opportunity to discuss AI with so many people passionate about the subject and hope to return next year.&rdquo;<br/>&mdash; <small>Vicky Smalley, Senior AI Programmer, SCEE.</small></blockquote> <blockquote>&ldquo;I just wanted to go there, see what people have been doing lately in Game AI and ended up getting huge quantities of information for those two days and returning home highly enthusiastic about my projects and experiments. It was great and I will definitely be back next year.&rdquo;<br/>&mdash; <small>Alex Popescu, University of Amsterdam</small></blockquote> <blockquote>&ldquo;Thanks for organising a thoroughly enjoyable conference - it's nice to meet so many people with a common interest in AI. It was great to finally meet a number of people who I've spoken to via email over the past 2 years...&rdquo;<br/>&mdash; <small>Neil Armstrong, Lead AI Programmer, Blitz Games Studios.</small></blockquote> <blockquote>&ldquo;This was my first AI game conference. I found the lectures to be very engaging and a good insight into how other people tackle problems. I left the place very enthused and looking forwards to the next one!&rdquo;<br/>&mdash; <small>Carlos Massiah, Frontier Developments.</small></blockquote> <blockquote>&ldquo;Thanks for hosting such an excellent conference. I found it great to meet such a broad cross section from the AI development community. It has certainly given me some inspiration for my upcoming projects. I will definitely try to come back next year!&rdquo;<br/>&mdash; <small>Nick Davies, Senior AI Engineer, CCP Games.</small></blockquote> <blockquote>&ldquo;I had a brilliant time at the conference which blended a great mix of interesting talks and networking opportunities with some incredible individuals. Looking forward to next year already!&rdquo;<br/>&mdash; <small>Simon Barratt, Director, <a rel="nofollow" target="_blank" href="http://www.fourdoorlemon.com/">Four Door Lemon</a>.</small></blockquote> <h3>Photos</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10w_Party.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10w_Party.medium.jpg"/></a>
<p>The official <tt>AiGameDev.com</tt> Party just after the first conference day.</p>
</div> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10h_Festival.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10h_Festival.medium.jpg"/></a>
<p>The start of the unplanned <tt>AiGameDev.com</tt> street festival<br/> that went on until early hours of the morning!</p>
</div> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10w_PostersRight.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10w_PostersRight.medium.jpg"/></a>
<p>One part of the poster session during the second morning.</p>
</div> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GAIC10w_PostersLeft.large.jpg"><img src="http://files.aigamedev.com/coverage/GAIC10w_PostersLeft.medium.jpg"/></a>
<p>Another side of the poster session on the second day.</p>
</div><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/gna9dtWGGtA" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/coverage/paris10-report/</feedburner:origLink></item>
      <item>
         <title>Find Jobs in Game AI Thanks to Our Middleware Sponsors</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/HuDpL26HM-M/</link>
         <description>To work in games studio you have to be keen to work on general "game development" tasks, as the time you spend on AI can be surprisingly small... However, if you're keen to focus entirely on game AI, then a job in middleware may be the solution. In a st [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/news/jobs-middleware/</guid>
         <pubDate>Thu, 13 May 2010 08:38:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <p>To work in games studio you have to be keen to work on general "game development" tasks, as the time you spend on AI can be surprisingly small... However, if you're keen to focus entirely on game AI, then a job in middleware may be the solution.</p> <p>In a strange coincidence, the middleware companies sponsoring <tt>AiGameDev.com</tt> (who make it possible for us to do what we do), are hiring! Read on to find opportunities on-site worldwide at <a rel="nofollow" target="_blank" href="http://www.pathengine.com/">PathEngine</a>, <a rel="nofollow" target="_blank" href="http://www.spirops.com/">Spir.Ops</a>, <a rel="nofollow" target="_blank" href="http://www.havok.com/">Havok</a> or <a rel="nofollow" target="_blank" href="http://www.artificial-technology.com/">Artificial Technology</a>. Also, we're organizing an open forum during the second day of the <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">Paris Game AI Conference 2010</a>, and there will be many opportunities for networking and looking for jobs.</p> <div style="text-align:center;"> <a rel="nofollow" target="_blank" href="http://www.spirops.com"><img src="http://files.aigamedev.com/mirror/pics/Logo-SpirOps-150x150_free_7c3446ea45.png" style="float:left;padding-right:15px;" alt="Spir.Ops"/></a> <a rel="nofollow" target="_blank" href="http://www.pathengine.com"><img src="http://files.aigamedev.com/mirror/pics/PathEngine_logo_150x150_free_61dd8ff600.png" style="float:left;padding-right:15px;" alt="PathEngine"/></a> <a rel="nofollow" target="_blank" href="http://www.ekione.com/"><img src="http://files.aigamedev.com/mirror/pics/eki_art_150x150px_b0e588426f.jpg" style="float:left;padding-right:15px;" alt="EkiOne"/></a> <a rel="nofollow" target="_blank" href="http://www.havok.com"><img src="http://files.aigamedev.com/mirror/pics/havok_logo_white_150x150_free_03bfd5f9a2.png" style="float:left;padding-right:15px;" alt="Havok"/></a> <a rel="nofollow" target="_blank" href="http://gameaiconf.com/"><img src="http://aigamedev.com/data/images/paris10_125button_2.png" style="width:115px;height:115px;float:left;" alt="Paris Game AI Conference"/></a> </div> <br style="clear:both;"/> <h3>PathEngine</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://pathengine.com/jobs.php"><img src="http://files.aigamedev.com/JobsPathEngine.medium.jpg" class="frame"/></a>
</div> <p><a rel="nofollow" target="_blank" href="http://pathengine.com/">PathEngine</a> is looking for Software Engineers and Senior Software Engineers. If you're looking for a challenge, the company focuses both on robust, cutting-edge technology, and a growing, globally oriented business.</p> <p>PathEngine is based in Lyon/France (near my hometown!) and is relatively close to the Alps and the Mediterranean. It's only a couple of hours by train. The company is well established (since 2002) and financially independent thanks to its many customers in the games industry.</p> <p><b>&raquo; For details and applications see <a rel="nofollow" target="_blank" href="http://pathengine.com/jobs.php">this jobs page</a>.</b></p> <h3>Spir.Ops</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://spirops.com/jobs.php"><img src="http://files.aigamedev.com/JobsSpirOps.medium.jpg" class="frame"/></a>
</div> <p><a rel="nofollow" target="_blank" href="http://spirops.com/">Spir.Ops</a> is interested in anything from full time jobs to internships, or even theses. The company is particularly interested in research and development related to the topics of simulating emotions and crowd behaviors.</p> <p>Spir.Ops is located at the heart of Paris/France, and was founded in 2003. The company works on a variety of games and simulation projects, and has ties with research institutes around France.</p> <p><b>&raquo; For more information see <a rel="nofollow" target="_blank" href="http://spirops.com/jobs.php">this jobs page</a>.</b></p> <h3>Havok</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://www.havok.com/index.php?page=careers"><img src="http://files.aigamedev.com/JobsHavok.medium.jpg" class="frame"/></a>
</div> <p><a rel="nofollow" target="_blank" href="http://www.havok.com/">Havok</a> provides a wide variety of widely used middleware solutions, including its Physics, Behavior and AI packages. The company is looking for Software Engineers, Senior Software Engineers, Build Engineers, and QA Engineers &mdash; as well as Support Engineers.</p> <p>Havok is looking for recruits worldwide, in particular at their main development offices in Dublin/Ireland, and in Tokyo or San Francisco. The company was founded in 1998 and acquired by Intel in 2007.</p> <p><b>&raquo; For details and applications see <a rel="nofollow" target="_blank" href="http://www.havok.com/index.php?page=careers">this careers page</a>.</b></p> <h3>Artificial Technology</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://www.artificial-technology.com/en/jobs"><img src="http://files.aigamedev.com/JobsArtificialTechnology.medium.jpg" class="frame"/></a>
</div> <p><a rel="nofollow" target="_blank" href="http://www.artificial-technology.com/">Artificial Technology</a> is looking for developers with good knowledge of C++, solid math, and software engineering skills to work on its internal projects for the EKI One AI Middleware solution.</p> <p>The company is based near Munich/Germany, founded recently in 2008. It is well funded by local investors!</p> <h3>... and AiGameDev.com?</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://aigamedev.com/site/jobs"><img src="http://files.aigamedev.com/JobsAiGameDev.medium.jpg" class="frame"/></a>
</div> <p>On the same topic, but combined with a web-startup... If you'd like to join the virtual team at <tt>AiGameDev.com</tt> and work remotely on the largest website about artificial intelligence and game development, then you're in luck!</p> <p>We're particularly keen to hear from you if you're keen to work at least part-time on Editing, Publishing, or Writing. We're also looking for a System Administrator to keep our infrastructure up and running. Don't hesitate to email us at <tt>&lt;admin</tt> at <tt>AiGameDev.com&gt;</tt> for details.</p> <p><b>&raquo; See our <a rel="nofollow" target="_blank" href="http://aigamedev.com/site/jobs/">jobs page</a> for details.</b></p><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/HuDpL26HM-M" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/news/jobs-middleware/</feedburner:origLink></item>
      <item>
         <title>Grand Strategy and Political Simulation in EUROPA UNIVERSALIS 3 with Henrik F&amp;aring;hraeus</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/VSzWszWpyGI/</link>
         <description>&lt;p&gt;&lt;small&gt;This article was published for &lt;a rel="nofollow" target="_blank" href="http://aigamedev.com"&gt;AiGameDev.com&lt;/a&gt; Insiders, free by registration.&lt;/small&gt;&lt;/p&gt;
&lt;img src="http://files.aigamedev.com/insiders/EuropaUniversalis3.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/&gt;
&lt;p&gt;Over the years, Paradox Entertainment has built a reputation for the historical accuracy and the detail of the simulation in its grand strategy games, such as the EUROPA UNIVERSALIS and HEARTS OF IRON series. In games of this scale and detail, how is the AI built compared to other RTS-style AI?&lt;/p&gt; &lt;p&gt;In this text interview with Henrik F&amp;aring;hraeus, you'll find out some details about the AI in the game, in particular its internal architecture, how it maintains a strategy over time, and how special case behaviors work under the hood. You'll also see what that means for your game.&lt;/p&gt;&lt;p&gt;[...]&lt;img src="http://feeds.feedburner.com/~r/AiGameDev/~4/VSzWszWpyGI" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://aigamedev.com/insider/interviews/europa-universalis/</guid>
         <pubDate>Thu, 06 May 2010 09:24:00 +0000</pubDate>
      <feedburner:origLink>http://aigamedev.com/insider/interviews/europa-universalis/</feedburner:origLink></item>
      <item>
         <title>Autonomous Drivers and Racing Skills in PURE with Eduardo Jim&amp;eacute;nez</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/9nKda-282fc/</link>
         <description>The way you chose to model your game agents has a huge impact on their AI. In fact, if you get a solid model in place, the solution to the main problem will become almost obvious! A perfect example is Black Rock Studio's acclaimed dirt-bike racer, PU [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/coverage/pure-racing-skills/</guid>
         <pubDate>Tue, 04 May 2010 14:40:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <img style="float:left;margin-right:1em;" align="left" hspace="32" src="http://files.aigamedev.com/insiders/Paris09_AutonomousDrivers.icon.jpg"/> <p>The way you chose to model your game agents has a huge impact on their AI. In fact, if you get a solid model in place, the solution to the main problem will become almost obvious! A perfect example is Black Rock Studio's acclaimed dirt-bike racer, PURE. The designers on the game wanted to avoid rubber band AI, but how do you do that in practice?</p> <p>In the following video highlight from the <a rel="nofollow" target="_blank" href="http://gameaiconf.com/program.php">Paris Game AI Conference</a> 2009, you'll hear from Eduardo Jiménez, Gameplay Programmer on PURE. He explains how the racers are modeled and how their skills are designed to allow an AI Director to control the game according to race-specific designs.</p> <div style="text-align:center;"><a rel="nofollow" target="_blank" href='http://aigamedev.com/data/delivery/ck.php?oaparams=2__bannerid=138__zoneid=2__cb=1748c0d8cc__maxdest=http://gameaiconf.com/'><img src='http://aigamedev.com/data/images/paris10_468.gif' width='468' height='60' alt='' title='' border='0'/></a><div id='beacon_1748c0d8cc' style='visibility:hidden;'><img src='http://aigamedev.com/data/delivery/lg.php?bannerid=138&amp;campaignid=21&amp;zoneid=2&amp;channel_ids=,&amp;loc=http%3A%2F%2Faigamedev.com%2F&amp;cb=1748c0d8cc' width='0' height='0' alt='' style='width:0px;height:0px;'/></div></div> <h3 id="recording">Audio/Video Recording</h3> <i>&raquo; <a rel="nofollow" target="_blank" href='http://aigamedev.com/open/coverage/pure-racing-skills/'>Click here</a> to view this embedded content.</i> <br/> <p style="border:1px dashed #444;background-color:#ddd;padding:1em;"><a rel="nofollow" target="_blank" href="http://www.pathengine.com"><img src="http://files.aigamedev.com/sponsors/pathengine.png" style="padding-top:1ex;" style="float:right;margin-left:1em;" align="right" hspace="32"></a>This highlight from the <tt>AiGameDev.com</tt> Premium area was brought to you thanks to the sponsorship of <a rel="nofollow" target="_blank" href="http://www.pathengine.com">PathEngine</a>, a game AI middleware company specializing in navigation.</p> <h3>Notes &amp; Highlights</h3> <p>Analysis (and spoilers) from the video:</p> <ol>
<li><p>Skills offer a way to control the AI racers' performance indirectly, which doesn't feel like cheating for the player.</p></li>
<li><p>Driving, boosting, tricks, selecting routes are skills, they settled with 16 skills in the end.</p></li>
<li><p>Skills that have a floating point value between [0..1], with zero being the worst and one being the best.</p></li>
<li><p>The worst case skill isn't the worst possible, but the worst you want to allow the AI to perform.</p></li>
</ol> <p>This sets the scene for the concept of Race Scripts that provide the designers with a way to control the outcome of races.</p> <h3>References</h3> <p>The slides from the Paris presentation are also available here:</p> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Race Script: An Alternative to Rubber Banding</b>
Eduardo Jiménez
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/members/Paris09_RaceScript_Slides.pdf'>PDF</a> or <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/members/Paris09_RaceScript_Slides.ppt'>PPT</a></pre> <p><br/>If you have a Premium account, you can of course see the recording of the following presentations:</p> <ul>
<li><p><a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/presentations/race-script-rubber-band/">Race Script: An Alternative to Rubber Banding</a> by Eduardo Jiménez (Premium)</p></li>
</ul> <p><b>If you have any questions or comments on the topic, don't hesitate to post them below!</b></p> <p style="border:1px dashed #444;background-color:#ddd;padding:1em;"><u>ANNOUNCEMENT:</u> We've just released the full program for the <a rel="nofollow" target="_blank" href="http://gameaiconf.com/program.php">Paris Game AI Conference</a> 2010. In particular, you'll hear about the racing AI in SUPERSTARS V8 and SUPERBIKE X, in particular how to build controllers for physically-accurate vehicle simulations.</p><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/9nKda-282fc" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/coverage/pure-racing-skills/</feedburner:origLink></item>
      <item>
         <title>Hierarchical Task Networks for Mission Generation and Real-time Behavior</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/dfTqJnunle8/</link>
         <description>Certainly one of my biggest take aways from the Paris Game AI Conference 2009 was the rise of hierarchical task network (HTN) planning techniques for games. The potential is huge, from helping reduce behavior modelling overheads when creating purposef [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/coverage/htn-planning-discussion/</guid>
         <pubDate>Tue, 20 Apr 2010 21:25:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <img style="float:left;margin-right:1em;" align="left" hspace="32" src="http://files.aigamedev.com/insiders/Arma2_BattleFires.icon.jpg"/> <p>Certainly one of my biggest take aways from the <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">Paris Game AI Conference</a> 2009 was the rise of hierarchical task network (HTN) planning techniques for games. The potential is huge, from helping reduce behavior modelling overheads when creating purposeful behaviors and automatically generating large missions for the player to take part in, both these domains can benefit from HTN planners.</p> <p>During a panel discussion on the subject, when I asked Remco Straatman (Lead AI Programmer at Guerrilla Games) and William van der Sterren (Consultant at CGF-AI) whether the technique had broken in to industry, here's the reply I got:</p> <blockquote>&ldquo;If Remco and the KILLZONE 2 team can do 500 plans per second, then it's definitely ready for the industry. Some of the industry is simply not ready for HTN.&rdquo; &mdash; William van der Sterren</blockquote> <p>This statement was followed by laughter from the audience, but the point is certainly worth considering &mdash; and now's your chance to listen in to the discussion and ponder the situation. In this article you'll find the full video recording of this session from Paris, as well as some background on the use of hierarchical task network planners in games, and finally references on the subject.</p> <div style="text-align:center;"><a rel="nofollow" target="_blank" href='http://aigamedev.com/data/delivery/ck.php?oaparams=2__bannerid=138__zoneid=2__cb=1748c0d8cc__maxdest=http://gameaiconf.com/'><img src='http://aigamedev.com/data/images/paris10_468.gif' width='468' height='60' alt='' title='' border='0'/></a><div id='beacon_1748c0d8cc' style='visibility:hidden;'><img src='http://aigamedev.com/data/delivery/lg.php?bannerid=138&amp;campaignid=21&amp;zoneid=2&amp;channel_ids=,&amp;loc=http%3A%2F%2Faigamedev.com%2F&amp;cb=1748c0d8cc' width='0' height='0' alt='' style='width:0px;height:0px;'/></div></div> <h3>Background</h3> <p>There were two projects presented in Paris last year that used HTN Planners intensively, in particular:</p> <ul>
<li><p><b>Remco Straatman</b> talked about the work of the Guerrilla Games team on applying an ordered HTN planner into KILLZONE 2. The game uses planning for both individuals and the squads, and manages to do so at interactive rates.</p></li>
<li><p><b>William van der Sterren</b> presented his work called &ldquo;Planned Assault&rdquo; which is a mission generator for ARMED ASSAULT (ArmA 1). He uses a full HTN plan representation combined with an A* heuristic search to find plans that make sense from a military perspective.</p></li>
</ul> <p>For reference, the panel discussion in the video recording below took place immediately after William's presentation.</p> <h3 id="recording">Audio/Video Recording</h3> <p>The following video is being released for the first time here. There were minor technical issues with the recording towards the end, but the content of the panel forced us to publish it despite it being not up to the usual <tt>AiGameDev.com</tt> standards! All the other high-quality videos from the Paris Game AI Conference 2009 are of course available in our <a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/">Premium</a> area.</p> <i>&raquo; <a rel="nofollow" target="_blank" href='http://aigamedev.com/open/coverage/htn-planning-discussion/'>Click here</a> to view this embedded content.</i> <br/> <p style="border:1px dashed #444;background-color:#ddd;padding:1em;"><a rel="nofollow" target="_blank" href="http://www.spirops.com"><img src="http://files.aigamedev.com/sponsors/spirops.png" style="float:right;margin-left:1em;" align="right" hspace="32"/></a>This full audio / video session recording from the <i>Paris Game AI Conference 2009</i> was brought to you thanks to the sponsorship of <a rel="nofollow" target="_blank" href="http://www.spirops.com">Spir.Ops</a>, a game AI middleware company based in Paris.<br style="clear:both;"/></p> <h3>Notes &amp; Highlights</h3> <p>Notes (and spoilers) from the video:</p> <ol>
<li><p>While planning, most of the time is actually spent pathfinding! So it's the same performance bottlenecks you find in traditional and more reactive game AI.</p></li>
<li><p>You can easily reduce branching in the planner by relying on external routines, for example for picking positions or planning tactical paths.</p></li>
<li><p>Ordered planner was a requirement for runtime performance, so expanding the actions one by one from the start.</p></li>
<li><p>It's important (but challenging) to explain why plans fail, so having a tool or debug view to list reasons for failure is very useful.</p></li>
<li><p>Using HTN, handling "impossible" plans is done as easily as adding a fallback branch into a behavior tree.</p></li>
</ol> <h3>References</h3> <p>Relating to planning in general, be sure to check out the following sources or articles:</p> <ul>
<li><a rel="nofollow" target="_blank" href="http://www.laas.fr/planning/&gt;Automated Planning: Theory and Practice&lt;/a&gt; (Slides, Book)&lt;/li&gt;
&lt;li&gt;&lt;a href=">SHOP: Simple Hierarchical Ordered Planner</a> (Blog)</li>
<li><a rel="nofollow" target="_blank" href="http://aigamedev.com/open/reviews/fear-ai/">Assaulting F.E.A.R.'s AI: 29 Tricks to Arm Your Game</a> (Blog)</li>
<li><a rel="nofollow" target="_blank" href="http://aigamedev.com/open/articles/fear-sdk/">An Overview of the AI Architecture Inside the F.E.A.R. SDK</a> (Blog)</li>
<li><a rel="nofollow" target="_blank" href="http://www.youtube.com/watch?v=i6TnEyrN55I&fmt=18">1,700 AI Units in ArmA 2</a> (Video)</li>
</ul> <p>The slides from the Paris presentation are also available here:</p> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Multi-Unit Planning with HTN and A*</b>
William van der Sterren
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GAIC09_MultiUnitPlanning_WilliamvanderSterren.pdf'>PDF</a></pre> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Killzone 2 Multiplayer Bots</b>
Remco Straatman, Tim Verweij, Alex Champandard
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GAIC09_Killzone2Bots_StraatmanChampandard.pdf'>PDF</a> or <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GAIC09_Killzone2Bots_StraatmanChampandard.ppt'>PPT</a></pre> <p>If you have a Premium account, you can of course see the recording of the following presentations:</p> <ul>
<li><p><a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/presentations/multi-unit-maneuvers/">Planning Multi-Unit Maneuvers Using HTN and A*</a> by William van der Sterren (Premium)</p></li>
<li><p><a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/presentations/killzone2-planning/">The AI in Killzone 2's Bots: Architecture and HTN Planning</a> by Remco Straatman (Premium)</p></li>
</ul> <p><b>If you have any questions or comments on the topic of hierarchical task networks, or planners in general for games, don't hesitate to post them below!</b></p> <p style="border:1px dashed #444;background-color:#ddd;padding:1em;"><u>IMPORTANT:</u> If you'd like to join us in Paris for the <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">Game AI Conference</a> 2010 and hear about the artificial intelligence in BATTLEFIELD: BAD COMPANY 2, you need to move very quickly and secure your seats. There are less than a dozen tickets left for the event!</p><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/dfTqJnunle8" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/coverage/htn-planning-discussion/</feedburner:origLink></item>
      <item>
         <title>The Quest Towards the Holy Grail of AAA Character Locomotion</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/O7yv1QTpCPo/</link>
         <description>&lt;p&gt;&lt;small&gt;This article was published for &lt;a rel="nofollow" target="_blank" href="http://aigamedev.com"&gt;AiGameDev.com&lt;/a&gt; Insiders, free by registration.&lt;/small&gt;&lt;/p&gt;
&lt;img src="http://files.aigamedev.com/insiders/AAA_Locomotion.icon.png" style="float:left;margin-right:1em;" align="left" hspace="32"/&gt;
&lt;p&gt;When working with the test framework of the AI Sandbox, it's often convenient to rename a unit or functional test temporarily while working on some feature so it shows up on its own at the top in the test runner. Some locomotion tests in particular, show up as &lt;tt&gt;AAA_Locomotion&lt;/tt&gt; while we're fixing or improving things! This serves as a constant reminder of our ultimate goal of figuring out how to make believable characters with high-quality animation yet responsive behaviors.&lt;/p&gt; &lt;p&gt;At the GDC last year, I gave an intense 30 minute overview (condensed from a 1h30 &lt;a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/masterclass/dynamic-locomotion/"&gt;masterclass&lt;/a&gt;) about the various ways you can implement character locomotion in your game, and what's next if you'd like to improve your system. The part about the future of locomotion for the games industry certainly created a bit of a stir (see my report at the time, &lt;a rel="nofollow" target="_blank" href="http://aigamedev.com/insider/discussion/motion-planning-thoughts/"&gt;Motion Planning for Fun and Profit!&lt;/a&gt;) and raised some eyebrows too: &lt;i&gt;&amp;ldquo;Do we really need better locomotion in games?&amp;rdquo;&lt;/i&gt; At the other end of the scale, it's been fascinating to hear reports and questions from developers who are already convinced and embarked along in this journey too!&lt;/p&gt; &lt;p&gt;Since this is one of my &lt;a rel="nofollow" target="_blank" href="http://gameaiconf.com/workshop.php"&gt;favorite topics&lt;/a&gt; and I've received multiple questions over the past months that I can't do justice to by email, I'm going to dig into the details in this article. The rest of this review I'll dig into what we've learned on the subject since my presentation at the GDC. At the end of the article, I'll also talk about what we're aiming for with the AI Sandbox in the near future based on that. Multiple programmers on the AI Sandbox have worked part-time on this system (approx. 6 months of work total), and I'd like to thank them for their contributions and insights: Jad Nohra, Kenneth Shor, Piotr Trochim, and Kyle Walsh.&lt;/p&gt;&lt;p&gt;[...]&lt;img src="http://feeds.feedburner.com/~r/AiGameDev/~4/O7yv1QTpCPo" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://aigamedev.com/insider/reviews/holy-grail-locomotion/</guid>
         <pubDate>Fri, 16 Apr 2010 10:29:00 +0000</pubDate>
      <feedburner:origLink>http://aigamedev.com/insider/reviews/holy-grail-locomotion/</feedburner:origLink></item>
      <item>
         <title>Non-Determinism and Statistical Outcomes in OPERATION FLASHPOINT 2 (aka. You Shot My Pilot!)</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/HNYH-As6AJY/</link>
         <description>I've been enjoying the OPERATION FLASHPOINT: DRAGON RISING campaign recently. In brief, the game is a large-scale open-world sandbox tactical combat simulation whose feature list would make programmers around the world whimper. The AI does a pretty i [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/discussion/operation-flashpoint-nondeterminism/</guid>
         <pubDate>Tue, 13 Apr 2010 17:32:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <img src="http://files.aigamedev.com/OFDR_Statistics.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/> <p>I've been enjoying the OPERATION FLASHPOINT: DRAGON RISING campaign recently. In brief, the game is a large-scale open-world sandbox tactical combat simulation whose feature list would make programmers around the world whimper. The AI does a pretty impressive job considering the challenges!</p> <p>My playthrough, however, has occasionally thrown unintended challenges at me &mdash; in particular reloading automatic checkpoints that end in disasters within 15 seconds. But rather than start the mission from scratch, this obviously seemed to me like an invitation to play around with the simulation and figure out its underlying mechanics...</p> <p>In this short article, I'll look into a particular scene that ends in one of my rescue targets being shot at close range while I'm rushing away towards the pick-up zone like a coward. This raises interesting questions about determinism, level of detail and statistics &mdash; and makes a perfect topic for a <b>developer discussion</b>!</p> <p style="border:1px dashed #444;background-color:#ddd;padding:1em;"><u>NOTE</u>: If combat AI and sandbox games interests you, be sure not to miss our very own <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">Paris Game AI Conference</a> on June 23rd and 24th, which bring together a variety of developers from FPS and action games.</p> <h3>It Doesn't End Well (Mostly)...</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/OFDR_Pilot.large.jpg"><img src="http://files.aigamedev.com/OFDR_Pilot.medium.jpg"/></a>
<p><br/><u>Screenshot 1</u>: In the full 3D game, the pilot (left) ends up being shot at close range by the enemy soldier (middle) and often shoots me trying to grab a good screenshot too!</p>
</div> <p>OF:DR is not a deterministic game, like a majority of first-person shooters. Everytime I reload the checkpoint something slightly different happens, even when I don't move a muscle. When I move, obviously, things turn out even more differently. Due to the Sandbox nature of the game, this turns out to be much more interesting to play as you're forced to keep rethinking situations even after you reload...</p> <p>However, in my situation, the pilot I was supposed to rescue almost always ends up being shot at close range by an enemy soldier. He occasionally escapes, but as you'd expect from an un-escorted target, he indeed bites the bullet a majority of the time &mdash; despite my best efforts to find creative solutions to this predicament!</p> <p>Trying to make the most out of the ~15 seconds I had at my disposal to save the pilot, I tried various orders to my squad from the game, but switched to the map view when that failed. That's where things got interesting...</p> <h3>Safety in Map Mode</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/OFDR_Map.large.jpg"><img src="http://files.aigamedev.com/OFDR_Map.medium.jpg"/></a>
<p><br/><u>Screenshot 2</u>: Switching to the map view, my squad (white) manages to shoot the enemy soldier (red) while moving around the center building, or the pilot (in blue) manages to sneak past without being harmed.</p>
</div> <p>By switching to the top-down map view, the statistics of the outcome changed significantly. Most of the time, the pilot managed to escape from the building he was being ambushed in! The ratio of success to failure was reversed, now 80% to 20%.</p> <p>Again, this wasn't guaranteed, but two new situations were the most common in map mode (that never happened otherwise while in 3D):</p> <ul>
<li><p>If I switched to the map instantly, my squad would manage to take out the enemy threat almost immediately while moving towards my position. Without switching the map view, they'd never deal with the enemy soldier and simply end up just following me.</p></li>
<li><p>When waiting a moment before switching to the map, the pilot managed to sneak past the enemy target in many situations. He did occasionally get hit but that was an exception rather than a rule, unlike it was previously...</p></li>
</ul> <p>The question arises, what could cause such a radical change in the outcome of this situation, at the mere press of the 'M' key to engage the map?</p> <div style="text-align:center;"><a rel="nofollow" target="_blank" href='http://aigamedev.com/data/delivery/ck.php?oaparams=2__bannerid=138__zoneid=2__cb=1748c0d8cc__maxdest=http://gameaiconf.com/'><img src='http://aigamedev.com/data/images/paris10_468.gif' width='468' height='60' alt='' title='' border='0'/></a><div id='beacon_1748c0d8cc' style='visibility:hidden;'><img src='http://aigamedev.com/data/delivery/lg.php?bannerid=138&amp;campaignid=21&amp;zoneid=2&amp;channel_ids=,&amp;loc=http%3A%2F%2Faigamedev.com%2F&amp;cb=1748c0d8cc' width='0' height='0' alt='' style='width:0px;height:0px;'/></div></div> <h3>Combat Simulation Statistics...</h3> <p>There are two ways to interpret such a large deviation in the simulation:</p> <ol>
<li><p>There's a different simulation that kicks in when you enter map mode. This different simulation operates in such a simplified fashion (e.g. no animation) compared to the full detailed simulation that the two different encounters end up differently in practice.</p></li>
<li><p>The game's non-determinism is significantly affected by entering map mode. It's possible that disabling the 3D rendering allows more resources to be spent on AI. My squad responded better and the rescue target managed to deal with his threat more capably!</p></li>
</ol> <p>It's certain that OF:DR has a level of detail implementation. You couldn't build such a game without it, and in this <a rel="nofollow" target="_blank" href="http://software.intel.com/en-us/videos/behind-the-scenes-codemasters-operation-flashpoint-dragon-rising/">developer commentary</a> on Intel's site, they mention that the animation in particular is handled differently. However, it's unlikely that the simulation would be affected by the LOD just by the press of a key to switch into map mode.</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/OFDR_Squad.large.jpg"><img src="http://files.aigamedev.com/OFDR_Squad.medium.jpg"/></a>
<p><br/><u>Screenshot 3</u>: My squad follows me around when I try to run to the target rendez-vous point like a coward rather than defend the pilot!</p>
</div> <h3>The Impact of Non-Determinism</h3> <p>This kind of in-game situation (and I guess this article too) raises more questions than it does answers.</p> <ul>
<li><p>Does it matter that the same situations play out significantly depending on the hardware configuration and rendering settings?</p></li>
<li><p>Assuming you want to preserve the performance benefits of non-determinism, how can you make sure your simulation behaves similarly everwhere?</p></li>
<li><p>How many developers treat different hardware configurations (PC) as different SKUs and balance each of them accordingly?</p></li>
<li><p>If the game's simulation statistics can be affected significantly at runtime (in different situations), will it even be noticed or is it a loophole?</p></li>
<li><p>Is determinism a solution to all of these problems, or does it just mean we implement a lowest common denominator for gameplay and AI?</p></li>
</ul> <p><b>If you have any thoughts on the subject, feel free to post a comment below!</b></p><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/HNYH-As6AJY" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/discussion/operation-flashpoint-nondeterminism/</feedburner:origLink></item>
      <item>
         <title>14+ Reasons for Coming to Paris in June: Game AI Conference '10 Line-Up Announced</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/jRsch9-K5iw/</link>
         <description>Building on the incredible success of last year's sell-out event, AiGameDev.com is proud to announce the program of the third annual Game AI Conference in Paris, co-organized with the CNAM where the event is held. This year's conference takes place on [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/upcoming/2010-paris-preview/</guid>
         <pubDate>Wed, 07 Apr 2010 13:45:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <img src="http://gameaiconf.com/GAIC09w_AudienceTop.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/> <p>Building on the incredible success of last year's sell-out event, <tt>AiGameDev.com</tt> is proud to announce the program of the third annual Game AI Conference in Paris, co-organized with the <a rel="nofollow" target="_blank" href="http://www.cnam.fr/">CNAM</a> where the event is held. This year's conference takes place on June 23rd and 24th 2010, following a workshop about character animation on June 22nd. The schedule blends invited sessions from top AI developers from industry as well as tutorials, reviews and R&amp;D oriented sessions.</p> <p>The organizing committee consists of Petra &amp; Alex Champandard from <tt>AiGameDev.com</tt>, Stephane Natkin from the <a rel="nofollow" target="_blank" href="http://cedric.cnam.fr/">CEDRIC</a> lab, and Axel Buendia of the Paris-based middleware company <a rel="nofollow" target="_blank" href="http://spirops.com/">Spir.Ops</a>. The program committee includes Phil Carlisle, Mikko Mononen, and William van der Sterren. We'd also like to thank our three most recent sponsors, <a rel="nofollow" target="_blank" href="http://www.game-talents.com">Game Talents</a>, <a rel="nofollow" target="_blank" href="http://www.havok.com">Havok</a> and <a rel="nofollow" target="_blank" href="http://www.masagroup.net">MASA Group</a> for making this event possible.</p> <div style="text-align:center;"> <a rel="nofollow" target="_blank" href="http://www.gametalents.com"><img src="http://gameaiconf.com/gametalents.png" style="float:left;padding-right:35px;" alt="Game Talents"/></a> <a rel="nofollow" target="_blank" href="http://www.havok.com"><img src="http://gameaiconf.com/havok.png" style="float:left;padding-right:35px;" alt="Havok"/></a> <a rel="nofollow" target="_blank" href="http://www.masagroup.net"><img src="http://gameaiconf.com/masa.jpg" style="float:left;padding-right:35px;" alt="MASA Group"/></a>
<a rel="nofollow" target="_blank" href="mailto:events@aigamedev.com"><img src="http://gameaiconf.com/company.png" style="float:left;" alt="Your Logo Here"/></a>
<br style="clear:left;"/> </div> <p>Thanks again also to our early sponsors <a rel="nofollow" target="_blank" href="http://autodesk.com">Autodesk</a> and <a rel="nofollow" target="_blank" href="http://www.pathengine.com">PathEngine</a> and all <a rel="nofollow" target="_blank" href="http://gameaiconf.com/sponsors.php">other sponsors</a> for their support and encouragement.</p> <h3>Animation Workshop Date &amp; Location</h3> <ul> <li><p><u>Duration</u>: 1 full day.</p></li> <li><p><u>Date</u>: Tuesday 22nd, June 2010.</p></li> <li><p><u>Time</u>: 9:00 to 18:00.</p></li> <li><p><u>Location</u>: CNAM — Paris 3<sup>ème</sup> (<a rel="nofollow" target="_blank" href="http://gameaiconf.com/logistics.php">map</a>)</p></li> <li><p><u>Price</u>: &euro;270 to &euro;370.</p></li> <li><p><u>Extras:</u> Lunch and coffee breaks included.</p></li>
<li><p><u>Details:</u> See the <a rel="nofollow" target="_blank" href="http://gameaiconf.com/workshop.php">official workshop page</a>.</p></li>
</ul> <p style="border:1px dashed #444;background-color:#ddd;padding:1em;"><u>NOTE</u>: This workshop is intended for developers that are serious about character animation, and designed for a small group only &mdash; in the spirit of a mastermind session. There are a total of 20 seats available in the room, and approximately half of them are left.</p> <div style="text-align:center;"> <img src="http://aigamedev.com/premium/wp-content/uploads/2008/07/paris-game-ai-workshop_lunchbreak51.jpg" alt=""/>
<p><br/><u>Photo 1</u>: Discussions at the Paris Game AI Workshop ‘08.</p> </div> <h3>Agenda for the Animation Workshop</h3> <p>The day is split into four parts, each covering an important aspect of creating believable characters. While the focus is on specific behaviors &amp; features that you can integrate into your game, you'll also learn about the low-level details of the animation blend tree and how it all fits together.</p> <ol>
<li><p>Observing: Looking Around, Gazing</p></li>
<li><p>Interacting: Picking Up, Touching</p></li>
<li><p>Locomoting: Moving Around, Taking Steps</p></li>
<li><p>Reacting: Being Pushed &amp; Hit Reactions</p></li>
</ol> <p>In each part, you'll hear the most important things you need to know from multiple experts, including practical tips and simple tricks that can make the difference without a huge amount of work! You'll then go over examples and problems in small groups, under the guidance and supervision of industry veterans.</p> <h3>Game AI Conference Dates &amp; Location</h3> <ul> <li><p><u>Duration</u>: 2 days.</p></li> <li><p><u>Dates</u>: Wednesday 23rd and Thursday 24th, June 2010.</p></li> <li><p><u>Time</u>: 9:00 to 18:00.</p></li> <li><p><u>Location</u>: CNAM, Amphi C “Abbé Grégoire” — Paris 3<sup>ème</sup> (<a rel="nofollow" target="_blank" href="http://gameaiconf.com/logistics.php">map</a>)</p></li> <li><p><u>Price</u>: From &euro;77 to &euro;97, 50% discounts available.</p></li> <li><p><u>Event</u>: Party on the evening of the 23rd; to be announced.</p></li>
<li><p><u>Registration</u>: See the <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">official conference site</a>.</p></li>
</ul> <p style="border:1px dashed #444;background-color:#ddd;padding:1em;"><u>IMPORTANT</u>: There are only 200 tickets available in the amphitheatre, and we've already sold over 160! We expect the last 30+ seats to be taken within the next couple weeks. Be sure to move quickly if you want to attend.</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://gameaiconf.com/GAIC09h_AudienceBottom.large.jpg"><img src="http://gameaiconf.com/GAIC09h_AudienceBottom.medium.jpg"/></a>
</div> <h3>Confirmed Speakers &amp; Sessions</h3> <h4>Ken Perlin &ndash; Modern Procedural Animation</h4> <p><img style="float:right;margin-left:1em;" align="right" hspace="32" src="http://gameaiconf.com/content/HalfLife2.icon.jpg"/> Ken Perlin is a leading expert in the field of character animation who received numerous awards for his invention of multi-layered noise. He has consulted for companies like Valve on HALF-LIFE 2 to help them improve their facial and body animations. In this invited talk, Ken will discuss how procedural techniques can complement traditional animation or motion capture in your game.</p> <h4>Mikael Hedberg &ndash; BATTLEFIELD: BAD COMPANY 2</h4> <p><img style="float:right;margin-left:1em;" align="right" hspace="32" src="http://gameaiconf.com/content/BadCompany2.icon.jpg"/> The most recent FPS from EA's acclaimed DICE studio certainly has its fair share of AI challenges with destructible environments, physics vehicles, and class-based gameplay. Lead AI Programmer Mikael Hedberg will share some insights about the AI for the BAD COMPANY series, what changed this time around, and how it affected the overall experience.</p> <h4>Bruce Blumberg &ndash; WORLD OF ZOO</h4> <p><img style="float:right;margin-left:1em;" align="right" hspace="32" src="http://gameaiconf.com/content/WorldOfZoo.icon.jpg"/> How do you make a virtual lion fun to interact with? Bruce Blumberg was a key member of the WORLD OF ZOO team that developed compelling AI animals for the players to observe and interact with. Previously, Bruce was a Professor at the MIT Media Lab and director of the Synthetic Characters Group. His research focuses on creating believable characters using better cognitive models, such as spatial awareness and reinforcement learning.</p> <h4>Mikko Mononen &ndash; Local Navigation</h4> <p><img style="float:right;margin-left:1em;" align="right" hspace="32" src="http://gameaiconf.com/content/ProjectCane.icon.jpg"/> Mikko Mononen was Lead AI on CRYSIS and programmer at Crytek. Last year, he gave the highest rated presentation, about navigation mesh generation and pathfinding. We've invited him back by popular demand! Mikko will talk about the challenges of local navigation, demonstrating existing algorithms in the field, and discussing solutions...</p> <h4>Gwaredd Mountain &ndash; Personality Profiling in SILENT HILL</h4> <p><img style="float:right;margin-left:1em;" align="right" hspace="32" src="http://gameaiconf.com/content/SilentHill.icon.png"/> The most recent game in the survival horror series, SILENT HILL: SHATTERED MEMORIES uses a clever form of player modelling to infer which of the Big Five personality profile is dominant. Listen to Gwaredd, technical director at Climax, explain how it works and how it affects the content in the game to deliver a customized experience to the player. Think of it as another step for AI Director technology like LEFT 4 DEAD!</p> <h4>Paolo Maninetti &ndash; Physics-based Driving in SUPERBIKE 2010</h4> <p><img style="float:right;margin-left:1em;" align="right" hspace="32" src="http://gameaiconf.com/content/Superbike2009.icon.jpg"/> Milestone is famous among racing fans for delivering a hyper realistic driving simulation, both in V8 racing cars and superbikes. But how is the AI built to cope with such physically-accurate vehicles? Senior Programmer Paolo Maninetti will explain the basics of racing AI, in particular the low-level details like steering control and maneuvers such as overtaking and avoidance.</p> <h4>Claudio Pedica &ndash; Social Interactions for EVE ONLINE</h4> <p><img style="float:right;margin-left:1em;" align="right" hspace="32" src="http://gameaiconf.com/content/EveCadia.icon.jpg"/> The makers of EVE ONLINE (CCP Games) are collaborating with Reykjavik University to build the character technology that will populate the inside of spaceships and hubs. Listen to Claudio present the motivations for the research, and discover the technology that powers these social interactions and inter-personal behaviors that help bring life tomorrow's indoor environments in space.</p> <h4>Sponsors &ndash; The Best of AI Middleware</h4> <p><img style="float:right;margin-left:1em;" align="right" hspace="32" src="http://gameaiconf.com/content/MiddlewareMegamix.icon.png"/> Discover what's new in leading AI middleware solutions thanks to this series of short microtalks. Each company is given 6 minutes to impress you by showing off an aspect of their technology. A fast pace and highly informative way to stay up-to-date with the top middleware companies!</p> <br style="clear:both;"/> <h4>Panel &ndash; Tales &amp; Advices from the Design Trenches</h4> <p><img style="float:right;margin-left:1em;" align="right" hspace="32" src="http://gameaiconf.com/content/FateOfAtlantis.icon.jpg"/> Based on last year's most popular panel with stories from the programming trenches, we've invited some designers with decades of experience to give their perspectives on the development of gameplay and AI. You'll hear from Stephane Bura, Noah Falstein, Jurie Horneman and stories from their respective game projects and careers.</p> <h4>Alex J. Champandard &ndash; Multi-threading AI in Practice</h4> <p><img style="float:right;margin-left:1em;" align="right" hspace="32" src="http://gameaiconf.com/content/MultithreadingSandbox.icon.png"/> From one to eight threads in a few months! Find out exactly how <tt>AiGameDev.com</tt> went through the process of parallelizing all aspects of the AI Sandbox, in particular the pathfinding, sensory calculations, reasoning, and animation. You'll learn about the practical challenges in each part of the code and the dirty secrets about modern computer hardware. (<u>Warning</u>: No Theory Included!)</p> <h3>Further Information</h3> <p>If you'd like more details about the conference or the workshop, be sure to visit the <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">official site</a>. You can also find more details here:</p> <ul>
<li><p><a rel="nofollow" target="_blank" href="http://gameaiconf.com/registration.php">Registration Details</a></p></li>
<li><p><a rel="nofollow" target="_blank" href="http://gameaiconf.com/faq.php">Frequently Asked Questions</a></p></li>
<li><p><a rel="nofollow" target="_blank" href="http://gameaiconf.com/logistics.php#hotels">Hotels &amp; Accommodation</a></p></li>
<li><p><a rel="nofollow" target="_blank" href="http://gameaiconf.com/contact.php">Contact the Team!</a></p></li>
</ul> <p> Accommodation will become increasingly harder to book as the conference gets closer, and our special offer with two hotels will end on May 10th. Be sure to move quickly as Paris gets extremely busy at this time of year!</p> <h3>Conference Sponsors</h3> <p><a rel="nofollow" target="_blank" href="http://www.game-talents.com/"><img src="http://gameaiconf.com/gametalents.png" alt="Game Talents" style="float:left;margin-right:1em;" align="left" hspace="32"/></a> <a rel="nofollow" target="_blank" href="http://www.game-talents.com/">Game Talents</a> is an agency specialized in selecting and recruiting talents exclusively for the videogame industry. We cover all positions, and all levels of experience. Game Talents is the first European videogame recruitment agency, and benefits from an international network. Game Talents brings new business models to the industry, that offer studios and candidates a win-win configuration.</p> <br style="clear:left;"/> <p><a rel="nofollow" target="_blank" href="http://www.havok.com/"><img src="http://gameaiconf.com/havok.png" alt="Havok" style="float:left;margin-right:1em;" align="left" hspace="32"/></a> <a rel="nofollow" target="_blank" href="http://www.havok.com">Havok</a> is the premier provider of interactive software and services for the games industry. With world leading expertise in physics, animation, and artificial intelligence, Havok’s business is to turn customers’ creative aspirations into technical realities. Havok’s modular suite of tools making sure that clients can reach new standards of realism and interactivity while mitigating the cost and risks associated with creating today’s leading video games.</p> <br style="clear:left;"/> <p><a rel="nofollow" target="_blank" href="http://www.masagroup.net/"><img src="http://gameaiconf.com/masa.jpg" alt="MASA Group" style="float:left;margin-right:1em;" align="left" hspace="32"/></a> <a rel="nofollow" target="_blank" href="http://www.masagroup.net/">MASA Group</a> is a leading provider of advanced software solutions using Artificial Intelligence technologies for modelling, simulation, games and virtual worlds. MASA products enable integrators to develop complete turn-key simulation solutions for the modelling and simulation market. MASA services and technologies help automate systems, reduce operator workload, increase fidelity and improve the "suspension of disbelief" of virtual reality simulations.</p> <br style="clear:left;"/> <h3 id="contest">Win a Conference Ticket!</h3> <p>There aren't that many seats left in the amphi-theatre and we'll most likely sell out, but we've made three tickets available for you to win in this contest. The first ticket was kindly donated by Phil Carlisle (resident expert at <tt>AiGameDev.com</tt> and Program Committee member), and we're providing two more... This should help you realize how committed we are to make sure anyone can attend the conference!</p> <p>All you have to do to win is login and <a rel="nofollow" target="_blank" href="http://forums.aigamedev.com/showthread.php?t=3952">post a comment</a> (or email <tt>&lt;events</tt> at <tt>AiGameDev.com&gt;</tt>) to tell us why <i>you</i> want to attend the conference, and what it will do for <i>you</i>... The winners will be picked on April 22nd, 2010. Best of luck!</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://gameaiconf.com/registration.php"><img src="http://gameaiconf.com/tickets.jpg" class="frame"/></a>
</div><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/jRsch9-K5iw" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/upcoming/2010-paris-preview/</feedburner:origLink></item>
      <item>
         <title>Case-based Reasoning and User Generated Behavior with Ashwin Ram</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/76y5_GLFM-M/</link>
         <description>&lt;p&gt;&lt;small&gt;This article was published for &lt;a rel="nofollow" target="_blank" href="http://aigamedev.com"&gt;AiGameDev.com&lt;/a&gt; Insiders, free by registration.&lt;/small&gt;&lt;/p&gt;
&lt;img style="float:left;margin-right:1em;" align="left" hspace="32" src="http://files.aigamedev.com/insiders/UserGeneratedBehavior.icon.jpg"/&gt;
&lt;p&gt;Content generation for games is rarely an easy task, but when it comes to creating behaviors it's even harder! This not only makes it slow for game developers to build games, but it rules out players from leveraging their own behaviors as user-generated content. Case-based reasoning (CBR) is a technique that's starting to address these issues...&lt;/p&gt; &lt;p&gt;In this 1h audio/video interview with Ashwin Ram, Associate Professor at the Georgia Institute of Technology and expert on CBR, you'll hear how the technology has been applied to games in research projects. You'll also find out more about how Ashwin's team is leveraging CBR to open up the AI &amp; behaviors for many games as part of the &lt;a rel="nofollow" target="_blank" href="http://makemeplayme.com/"&gt;Make Me, Play Me&lt;/a&gt; project.&lt;/p&gt; &lt;p style="border:1px dashed #444;background-color:#ddd;padding:1em;"&gt;&lt;a rel="nofollow" target="_blank" href="http://www.pathengine.com"&gt;&lt;img src="http://files.aigamedev.com/sponsors/pathengine.png" style="padding-top:1ex;" style="float:right;margin-left:1em;" align="right" hspace="32"&gt;&lt;/a&gt;This full interview from the &lt;tt&gt;AiGameDev.com&lt;/tt&gt; Premium area was brought to you thanks to the sponsorship of &lt;a rel="nofollow" target="_blank" href="http://www.pathengine.com"&gt;PathEngine&lt;/a&gt;, a game AI middleware company specializing in navigation.&lt;/p&gt;&lt;p&gt;[...]&lt;img src="http://feeds.feedburner.com/~r/AiGameDev/~4/76y5_GLFM-M" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://aigamedev.com/insider/interviews/user-generated-behavior/</guid>
         <pubDate>Sat, 03 Apr 2010 22:37:00 +0000</pubDate>
      <feedburner:origLink>http://aigamedev.com/insider/interviews/user-generated-behavior/</feedburner:origLink></item>
      <item>
         <title>AI Summit '10: Slides, Notes, Highlights and Photos</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/TMDEU4iDXg4/</link>
         <description>The first two days of GDC 2010 featured the second edition of the AI Summit, which brought together a variety of game AI developers from around the world. The bar was set very high for the event, in particular from the previous edition last March, th [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/coverage/gdc10-slides-highlights/</guid>
         <pubDate>Sun, 21 Mar 2010 07:43:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <img src="http://files.aigamedev.com/coverage/GDC10_AiSummit.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/> <p>The first two days of GDC 2010 featured the second edition of the AI Summit, which brought together a variety of game AI developers from around the world. The bar was set very high for the event, in particular from the previous edition last March, the subsequent <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">Paris Game AI Conference</a> in June, and the increasing focus on the Summits and Tutorials at GDC this year. Generally speaking, the AI Summit 2010 lived up to all these expectations! The room was a bit smaller than last year although with some extra chairs. The sessions were very well attended and the various topics drew in many different groups of GDC attendees.</p> <p>In this article, you'll find the best photos, the slides where possible, as well as session highlights and notes. Special thanks to all the speakers, but in particular (alphabetically) Phil Carlisle, Steve Gargolinski, Chris Jurney, Dan Kline, Dave Mark, Michael Mateas, and Emily Short, Tara Teich, and John Walker for their slides. Of course, <tt>AiGameDev.com</tt> was on location to cover and participate in the event! I (Alex Champandard) was involved in three sessions of the Summit, and Radu Septimiu Cristea was in charge of the media coverage.</p> <p style="border:1px dashed #444;background-color:#ddd;padding:1em;"><u>NOTE</u>: If you enjoyed the industry-focused content and friendly feel of the Summit, or simply missed out because it's in the U.S., you will definitely enjoy the <b>Paris Game AI Conference</b> on June 23rd and 24th. The event is co-organized by <tt>AiGameDev.com</tt> and the CNAM featuring the best AI developers in Europe. <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">Click here</a> for more information.</p> <h3>Table of Content</h3> <ol> <li><p><a rel="nofollow" href="#session1">Case Studies: AI in Recent Games</a></p></li> <li><p><a rel="nofollow" href="#session2">Behavior Trees: Three Ways of Cultivating Strong AI</a></p></li> <li><p><a rel="nofollow" href="#session3">Why So Wary of Middleware?</a></p></li> <li><p><a rel="nofollow" href="#session4">Improving AI Decision Modeling Through Utility Theory</a></p></li> <li><p><a rel="nofollow" href="#session5">AI and Interactive Storytelling: How We Can Help Each Other</a></p></li> <li><p><a rel="nofollow" href="#session6">AI Developers Rant!</a></p></li> <li><p><a rel="nofollow" href="#session7">Suspending Disbelief: Bringing Your Characters to Life with Better AI</a></p></li> <li><p><a rel="nofollow" href="#session8">Little Big AI: Rich Behavior on a Small Budget</a></p></li> <li><p><a rel="nofollow" href="#session9">Deciding on an AI Architecture: Which Tool for the Job?</a></p></li>
<li><p><a rel="nofollow" href="#sponsored">Massive Parallelism in AI: Throughput vs. Realtime</a></p></li>
<li><p><a rel="nofollow" href="#session10">AI Mashups: Insights into Intertwined Architectures</a></p></li>
<li><p><a rel="nofollow" href="#session11">Experimental Game AI: Live Demos of Innovation</a></p></li>
<li><p><a rel="nofollow" href="#session12">Answering the Designers' AI Wish List</a></p></li> </ol> <h3 id="session1">Case Studies: AI in Recent Games</h3> <p><u>People</u>: Alex J. Champandard (AiGameDev.com), Chris Jurney (Double Fine), Tara Teich (Double Fine)</p> <h4>Description</h4> <p>While there are many versions of post mortem analyses in the game business, sometimes a broad brush approach doesn't highlight what the truly interesting nuggets are. In this session, three AI programmers for recent games (Killzone 2, Br&uuml;tal Legend, Dawn of War 2) addressed some unique challenges they faced in the development of their respective titles. They described what the challenges were, how they often arose from design decisions that pushed the boundaries of the typical AI comfort zone, and how these challenges were overcome.</p> <div style="text-align:center;" id="GDC10_CaseStudies"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_CaseStudies.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_CaseStudies.medium.jpg"/></a>
<p><br/><u>Photo</u>: Tara Teich, Chris Jurney, Alex Champandard.</p>
</div> <h4>Notes &amp; Highlights</h4>
<p><b>Tara Teich</b> began the session with her talk about BR&Uuml;TAL LEGEND. There were a wide variety of challenges in the game, in particular due to the diversity of the units in the game and the radically different types of gameplay &mdash; ranging from RTS, to brawler, to driving games. Tara focused the bulk of her presentation on the AI Avatar, which both controls troups and makes decisions for the most powerful unit of each faction. This is implemented using a finite state machine, but without explitic transitions. Instead, the logic for selecting the next state/action is based on utility functions. These functions return a floating point weight which indicates the value of performing each action. Tara mentioned that she often wrote these evaluation functions expecting to come back to replace them later, but often (and in the example she used) they shipped that way!</p> <p>I (<b>Alex Champandard</b>) took over with a presentation about KILLZONE 2's multiplayer bots, which I worked on with Guerrilla Games under the expert supervision of Remco Straatman who was the Lead AI Programmer on the project, and together with Tim Verweij whose entire thesis was the basis of the architecture. The presentation was designed to look into the challenge of providing a "complete" AI capable of covering the wide variety of options and settings that the user can pick in the game. You can find details about the solution that we used in this <a rel="nofollow" target="_blank" href="http://aigamedev.com/open/coverage/killzone2/">blog post</a>. In the last third of the talk, I showed how combat games are a long way off being able to embrace special cases in all situations due to the fact that we're still mostly using expert systems at runtime. I argue that we need to combine these with more creative forms of AI like optimization algorithms and data mining that can run "out of the box" during development.</p> <p><b>Chris Jurney</b>, formerly at Relic Entertainment, started his talk with a mini post-mortem of DAWN OF WAR 2. What went right? The fast iteration times on prototypes between him and the designers. What went wrong? The fact that there was mostly no overlap on the AI programming team between COMPANY OF HEROES. In the second part, Chris talked about the implementation of melee, which leveraged the underlying A* algorithm that the released last year. He calls it search-based melee, which allows each unit to find a shortest path that tries to touch the player's bounding circle, but without overlapping the circles of any other unit. This results in emergent choreography that limits the number of units attacking in proximity based on the unit's radius. The videos he showed were impressive!</p> <h4>Slides</h4> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Br&uuml;tal Legend's AI Avatar</b>
Tara Teich
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_BrutalLegend.pdf'>PDF</a> or <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_BrutalLegend.ppt'>PPT</a></pre>
<i>&raquo; <a rel="nofollow" target="_blank" href='http://aigamedev.com/open/coverage/gdc10-slides-highlights/'>Click here</a> to view this embedded content.</i>
<pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Dawn of War 2 AI Post-Mortem</b>
Chris Jurney
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_DawnOfWar2.pdf'>PDF</a> or <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_DawnOfWar2.ppt'>PPT</a></pre> <h3 id="session2">Behavior Trees: Three Ways of Cultivating Strong AI</h3> <p><u>People</u>: David Hernandez Cerpa (LucasArts), Alex Champandard (AiGameDev.com), Michael Dawe (Big Huge Games)</p> <h4>Description</h4> <p>Over the last few years, various forms of behavior trees (BTs) have become the standard in industry. Since flexibility and customization are arguably the main strengths of BTs, they can be implemented in many ways. This set of short presentations showed how other developers are using them in practice. The presenters will show what developers can do to make behavior trees more designer friendly and easier to interact with via script. The session also shows implementation techniques to help keep AI code decoupled from the game logic and improve performance.</p> <div style="text-align:center;" id="GDC10_BehaviorTrees"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_BehaviorTrees.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_BehaviorTrees.medium.jpg"/></a>
<p><br/><u>Photo</u>: David Hernandez Cerpa, Alex Champandard, Michael Dawe.</p>
</div> <h4>Slides</h4> <i>&raquo; <a rel="nofollow" target="_blank" href='http://aigamedev.com/open/coverage/gdc10-slides-highlights/'>Click here</a> to view this embedded content.</i> <h3 id="session3">Why So Wary of Middleware?</h3>
<p><u>People</u>: John Funge (Netflix), Steve Gargolinski (Blue Fang Games), Chris Jurney (Double Fine Productions), Brett Laming (Rockstar Leeds), Borut Pfeifer (Plush Apocalypse Productions), </p> <h4>Description</h4> <p>In recent years, there has been an increase in the number of available AI middleware products designed to streamline common development techniques. Their reception by the industry has been spotty, however. While there are some success stories and some tales of horror, many studios and individual developers still eye AI middleware with a mixture of curiosity and suspicion. This four-person panel, comprised of people whose experiences and opinions are spread across the spectrum from pro to con, shared their rationale for why existing middleware is good or bad and what changes future products could make to become more appealing to developers.</p> <div style="text-align:center;" id="GDC10_MiddlewarePanel"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_MiddlewarePanel.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_MiddlewarePanel.medium.jpg"/></a>
<p><br/><u>Photo</u>: Steve Gargolinski, Borut Pfeifer, Chris Jurney, Bret Laming, John Funge.</p>
</div> <h4>Notes &amp; Highlights</h4> <p>This panel was certainly not unanimous... While some panelists emphasized their horror stories with middleware, others were very pleased to the level of advocating for the product! Nonetheless, there were agreements on important points, and they were grouped into two parts. One was advice for middleware developers to improve their products:</p> <ul>
<li><p>Use narrow interfaces as much as possible to make the integration easier to maintain, and to avoid the code inter-mingling with middleware engines.</p></li>
<li><p>Aim to provide modular components more than an architecture that needs to be used as a whole.</p></li>
<li><p>Be very careful about control flow, and ideally don't impose your approach onto the developers.</p></li>
<li><p>Provide good demos of your solution, not just small samples but ideally entire mini-games as a proof of concept.</p></li>
</ul> <p>Obviously, as a developer, you can use these criteria as a way to evaluate current middleware solutions. Panelists also gave more advice for developers keen to use middleware:</p> <ul>
<li><p>Use the evaluation period to its full extend, and in particular, use all forms of support available (e.g. phone conferences, email, onsite visits).</p></li>
<li><p>Bounce your ideas, plans and designs off the technical team at the middleware company, and ask them for feedback on feasibility.</p></li>
</ul> <p>A question that I was anxious to hear about was on the subject game AI patents, since one company is aggressively expanding in that area and I fear this will be a trend for 2010. The general concensus was that patents are rather distasteful, and of course it affect relationships with companies that pursue this strategy.</p> <h3 id="session4">Improving AI Decision Modeling Through Utility Theory</h3>
<p><u>People</u>: Kevin Dill (Lockheed Martin) and Dave Mark (Intrinsic Algorithm)</p> <h4>Description</h4> <p>The 'if/then' statement has been the workhorse of decision modeling longer than digital computing. Unfortunately, the harsh transition from yes to no often expresses itself through behavior in ways that are just as harsh. Utility theory has roots in areas such as psychology, economics, sociology, and classical game theory. By applying the science of utility theory with algorithmic techniques such as response curves, population distributions, and weighted randoms, we can improve the modeling of the underlying brain of our agents, broaden the potential decision space, and even manage edge cases that other decision systems stumble over.</p> <div style="text-align:center;" id="GDC10_Utility"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_Utility.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_Utility.medium.jpg"/></a>
<p><br/><u>Photo</u>: Dave Mark, Kevin Dill.</p>
</div> <h4>Notes</h4> <p>Dave kicked off this session with a quote from my <a rel="nofollow" target="_blank" href="http://aigamedev.com/open/editorial/2009-retrospective/">restrospective of 2009</a>. I wrote that there had been increasing discussions about utility-based architectures last year, but I didn't see any trend changes beyond more discussion (i.e. for implementations) in commercial games. This lecture addressed common questions by focusing on what utility is good at. In terms of practical take-aways from this session, there were two in particular:</p> <ol>
<li><p>In Dave's slides, graphs of various response curves and their corresponding equations that you can use in your utility functions. (See the slides.)</p></li>
<li><p>In Kevin's part, he explained the simplest approach you could take to implement a utility system, in particular using weights and vetos for each factor.</p></li>
</ol> <p>There were a few good questions about the pitfalls of utility systems, but they were unfortunately dismissed humorously &mdash; which will lead to even more discussions this year presumably! Also notably absent was the part about basing your entire architecture around utility, rather than single decisions which this lecture focused on predominantly.</p> <p>This topic is actually one of my biggest takeaways for GDC as a whole, so I'll cover it as part of the general round-up for the conference.</p> <h4>Slides</h4> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Improving AI Decision Modeling Through Utility Theory</b>
Kevin Dill, Dave Mark.
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_UtilityTheory.pdf'>PDF</a></pre> <h3 id="session5">AI and Interactive Storytelling: How We Can Help Each Other</h3>
<p><u>People</u>: Daniel Kline (Crystal Dynamics), Michael Mateas (University of California, Santa Cruz) and Emily Short (Independent)</p> <h4>Description</h4> <p>For some time, the industry has been exploring how to effectively manage the complexity of multiple story arcs, contextually appropriate character behavior, and yet still maintain an over-arching ebb and flow of tension and drama. In their quest, writers and designers have started looking to AI for solutions to these problems. Additionally, many techniques that are already being used in interactive drama can be used to augment traditional games. Through three short lectures, this session gives examples of ways that AI can enable the design and implementation of branching narratives, dynamic adaptive dialog, interactive storytelling, and drama management.</p> <div style="text-align:center;" id="GDC10_InteractiveFiction"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_InteractiveFiction.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_InteractiveFiction.medium.jpg"/></a>
<p><br/><u>Photo</u>: Dan Kline, Michael Mateas, Emily Short.</p>
</div> <h4>Notes</h4> <p><b>Dan Kline</b> kicked off this session with an inspiring overview and analysis of the opportunities for applying AI to various parts of games. He calls this &ldquo;Interactive Storytelling&rdquo; but you could just as easily label it &ldquo;Gameplay&rdquo; from the examples he used (e.g. LEFT 4 DEAD, UNCHARTED 2). He argues there are three different categories of games: rollercoaster, experimentation, and challenge &mdash; each of which can benefit from high-level AI in varying degrees. From his overview of the different opportunities, it's quite amazing how AI techniques are already shaping the way we play games today. There's certainly a lot of room for further developments of course!</p> <p><b>Michael Mateas</b> focused on dynamic stories that are becoming increasingly popular. He showed how we could leverage traditional techniques (like behavior trees) to create more reactive stories, but he argues we also need to plan ahead too. Michael said that emergence has its limits, and we may end up getting quickly bored of SIMS 3 style stories of "one thing happening after another." Instead, he suggests using author modeling as a tool to help craft better stories and experiences. Many of the systems he then mentions are covered in the book <a rel="nofollow" target="_blank" href="http://aigamedev.com/go/amazon/0262013436">Expressive Processing</a> by Noah Wardrip-Fruin.</p> <p>Finally, <b>Emily Short</b> got a few cheers for moving away from dialog trees and their limitations. NPCs repeat themselves, the author has no control over the scene as a whole, and there's no room for great writing beyond single lines. Ironically, the solution is also a dialog tree &mdash; but interpreted differently. Instead of treating the dialog tree as a routine to follow procedurally, Emily suggests a dialog tree of dependencies where each line spoken opens up some new dialog lines. Emily then goes on to talk about two of her games GLASS and ALABASTER, which you can <a rel="nofollow" target="_blank" href="http://emshort.wordpress.com/my-work/">download</a> from her website.</p> <h4>Slides</h4> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Bringing Interactive Storytelling to Industry</b>
Dan Kline
Download <a rel="nofollow" target="_blank" href='http://go2.wordpress.com/?id=725X1342&site=dankline.wordpress.com&url=http%3A%2F%2Fdankline.files.wordpress.com%2F2010%2F03%2Fai_summit_an_ai_assist_to_interactive_storyte.ppt'>PPT</a></pre> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Social Games</b>
Michael Mateas
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_SocialGames.pdf'>PDF</a> or <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_SocialGames.ppt'>PPT</a></pre> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Interactive Dialog</b>
Emily Short
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_InteractiveDialog.pdf'>PDF</a> or <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_InteractiveDialog.ppt'>PPT</a></pre> <h3 id="session6">AI Developers Rant!</h3>
<p><u>People</u>: Dave Mark (Intrinsic Algorithm), John Funge (Netflix), Borut Pfeifer (Plush Apocalypse Productions), Steve Rabin (Nintendo of America), Kevin Dill (Lockheed Martin) and Adam Russell (University of Derby)</p> <h4>Description</h4> <p>Sometimes things just need to be said. Saying them out loud in a room filled with (hopefully) like-minded people just makes it all the more interesting and cathartic. Seven AI developers from all corners of the industry will deliver quick, to-the-point rants about what's on their mind. Topics include AI design and programming, working with other portions of the dev team, working with academia, the perception of game AI by the public, scripting languages, and even those scary floating point numbers! Whoever said AI programmers only sit with their heads down over their keyboards?</p> <div style="text-align:center;" id="GDC10_DeveloperRants"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_DeveloperRants.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_DeveloperRants.medium.jpg"/></a>
<p><br/><u>Photo</u>: (Adam Russel), John Funge, Dave Mark, Steve Rabin, Kevin Dill, Borut Pfeifer.</p>
</div> <h4>Notes</h4> <p>These micro-talks were very diverse, but most of them were not really worthy of the title "rant" except maybe for Steve Rabin's which certainly delivered! Adam Russel's delivery also stood out and stimulated some interesting thoughts.</p> <ul>
<li><p><b>Borut Pfeifer</b> asked who's most likely to be innovating in game AI? Indies, academics, AAA? Each face their own challenges. Borut argues drama, emotional state, expressiveness, and feedback are the lowest hanging fruit.</p></li>
<li><p><b>Adam Russel</b> advocates sideways design instead of top-down and bottom up. He describes it as "freedom within individual constraints" where there's no distinction between scripted and unscripted. Some games do this (SIMS 3, HALO 3) but maybe we can take this further?</p></li>
<li><p><b>John Funge</b> discussed his experience working at a middleware company. He showed the various challenges there are in getting studios to adopt your solution, for legal reasons and otherwise. John recently left that business.</p></li>
<li><p><b>Kevin Dill</b> continued his lecture earlier by telling people they should not "fear the floats." He makes a compelling argument for using more utility locally, but his defense of "scaling up" with utility (i.e. moving towards utility architectures) left some doubts in the audience despite trying to address those concerns.</p></li>
<li><p><b>Dave Mark</b> talked about the challenges of building game AI, and no matter what we do the press will never praise it. Some pointed out it was a bit of an odd topic to pick, and I also don't agree entirely either; great AI does indeed and has already stood out in reviews.</p></li>
<li><p><b>Steve Rabin</b> gave a passionate rant about custom scripting languages, and how they ruined his early career! It diminishes your value in the future if you don't use Lua. He also had very compelling arguments about tools and compilers, but in this case, you had to be there!</p></li>
</ul> <h3 id="session7">Suspending Disbelief: Bringing Your Characters to Life with Better AI</h3>
<p><u>People</u>: Phil Carlisle (MindFlock Ltd./University of Bolton), Michael Mateas (University of California, Santa Cruz) and Steve Gargolinski (Blue Fang Games)</p> <h4>Description</h4> <p>In the past 30 years, game graphics have progressed to the point where still shots and cutscenes can often look extremely realistic. However, as soon as characters act in the world, that sense of believability is often broken. The characters no longer seem alive. Much of the impression that something is alive comes from minutia such as what they look at, how they move, and what they do when they aren't doing anything important. This session examines this phenomenon and gives concrete examples of how to improve the feeling of aliveness in game characters.</p> <div style="text-align:center;" id="GDC10_SuspendingDisbelief"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_SuspendingDisbelief.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_SuspendingDisbelief.medium.jpg"/></a>
<p><br/><u>Photo</u>: Michael Mateas, Phil Carlisle, Steve Gargolinski.</p>
</div> <h4>Notes</h4>
<p><b>Steve Gargolinski</b> kicked off this session with arguably the most powerful and useful lesson from the AI Summit as a whole: behavior anticipation. Steve first showed the concept of animation anticipation, which animators have been using and perfecting for decades. Apparently all cartoons do this now and it's done so well you'll probably not even notice! However, from the videos of WORLD OF ZOO that Steve showed, it's brutally obvious in games when it's not there. Steve also showed how an extra level of anticipation at the behavioral level can be even more valuable, not only to create life-like characters but also to create gameplay that's easier to understand.</p> <p><b>Phil Carlisle</b> emphasized the benefits of non-verbal communication because it's easier than natural language and arguably has a bigger impact! He particularly recommends things like gaze control, posture shifts, promixity changes, gestures and barks which seem well suited to games, based on the example he used. The human brain picks these things up subconciously so it makes it easier for the player to read the situation. You may have to watch a video recording multiple times before noticing this.</p> <p><b>Michael Mateas</b> first talked about the different dimensions along which you can develop your characters: individualization, visually concrete, and social dynamics. He rated the following games on these scales, HEAVY RAIN, MASS EFFECT 2, the SIMS 3, FACADE. Of course, these days you have to make the tradeoff; the more visually accurate the less dynamic the character is likely to be. Michael argues that &ldquo;zooming in&rdquo; on the individual behaviors is the most promising area, particularly for its dramatic potential, detailed dialog, and a playable social space. He suggests reading the book <a rel="nofollow" target="_blank" href="http://aigamedev.com/go/amazon/0345410033">Games People Play</a>, which was the inspiration for FACADE's mini-games such as the affinity game, the hot button game, and the therapy game. However, these games were not modeled explicitly; what would happen if we went beyond that implicit design?</p> <h4>Slides</h4> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Suspending Disbelief: Bringing Your Characters to Life with Better AI</b>
Phil Carlisle, Michael Mateas and Steve Gargolinski
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_SuspendingDisbelief.pdf'>PDF</a></pre> <h3 id="session8">Little Big AI: Rich Behavior on a Small Budget</h3>
<p><u>People</u>: John Walker (Applied Signal Technology), Robert Zubek (Zynga) and Phil Carlisle (MindFlock Ltd./University of Bolton)</p> <h4>Description</h4> <p>Small games have small budgets and short, iterative release cycles. But they still need great AI, only cut to size. This session presents first-hand experiences with successfully creating AI for a variety of those kinds of games. We will address the limitations faced by small budgets and present some useful tips from the trenches that will allow you to maximize the bang for your AI buck.</p> <div style="text-align:center;" id="GDC10_LittleBigAI"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_LittleBigAI.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_LittleBigAI.medium.jpg"/></a>
<p><br/><u>Photo</u>: Rob Zubek, Phil Carlisle, John Walker.</p>
</div> <h4>Notes</h4>
<p><b>Rob Zubek</b> talked about a simple needs-based AI system, inspired by the SIMS that he's applied to Flash games at Zynga as well as the LORD OF THE RINGS game. The AI has a set of drives, each action can satisfy these drives, and there's a score calculation for each action that depends on a variety of factors such as distance and quantity in non-linear scales. The execution is straightforward and based on an action queue. In practice, this worked very well and allowed a nice extensible system with environments that were easy to setup because of it. Rob mentioned the benefits of modularity here, as objects and actions are relatively easy to add.</p> <p><b>Phil Carlisle</b> talked about his experience working on the multi-million selling Worms franchise. His talk had multiple parts:</p> <ol>
<li><p>Procedurally generated levels based on a text string (as a key) that you can share with your friends.</p></li>
<li><p>Embedded AI that is controlled by trigger volumes in the world; very effective and low-hanging fruit.</p></li>
<li><p>If you're going to use FSM, use push-down automata to keep a history of states and an action queue.</p></li>
<li><p>Phil has since moved to using <a rel="nofollow" target="_blank" href="http://aigamedev.com/insider/presentations/behavior-trees/">behavior trees</a> and open-source libraries like Recast/Detour.</p></li>
</ol> <p><b>John Walker</b> talked about the benefits of state machines, and described how his own FSM implementation evolved over the course of multiple projects. The big take-away from this talk is the benefit of using a table to represent the FSM, with the current state as the row and the target state as the column. Each cell in the table then contains the transition logic, which makes this very explicit and it's much more obvious.</p> <h4>Slides</h4> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Little Big AI</b>
Phil Carlisle
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_LittleBigAI.pdf'>PDF</a></pre> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Organic HFSM </b>
John Walker
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GDC10_HfsmSystem.pdf'>PDF</a></pre> <h3 id="session9">Deciding on an AI Architecture: Which Tool for the Job?</h3>
<p><u>People</u>: Alex Champandard (AiGameDev.com), Michael Dawe (Big Huge Games), Dave Mark (Intrinsic Algorithm), Steve Rabin (Nintendo of America) and Charles Rich (Worcester Polytechnic Institute).</p> <h4>Description</h4>
<p>Often one of the most important issues an AI programmer needs to address is the decision of which architecture to use. This choice lays the foundation for the rest of the project both enabling and limiting choices down the road. With myriad (and even conflicting) pro and con arguments for all the major AI architectures, it can be difficult to determine which one is right for a given project. This panel approaches this issue from a unique perspective. With one person acting as an advocate for each of the popular AI architectures, the panel will be presented with hypothetical game examples and asked to explain why their method is the right tool for the job and why others are not.</p> <div style="text-align:center;" id="GDC10_RightTool"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_RightTool.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_RightTool.medium.jpg"/></a>
<p><br/><u>Photo</u>: Steve Rabin, Dave Mark, Michael Dawe, Alex Champandard.</p>
</div> <h4>Notes</h4>
<p>This panel used four simple examples of games and participants discussed which approach was best in each case. Perhaps unsurprisingly, there was no clear winner!</p> <ul>
<li>For a medium-fast pace action combat game with lots of designer control required, behavior trees seemed like the best choice.</li>
<li>In an RPG game with a wide variety of weapons and items to use, utility was a good solution to provide reactive behavior, or planners otherwise.</li>
<li>For a simple sports game (e.g. baseball), a FSM or HFSM seemed to be the best choice to satisfy the requirements for an individual on the field.</li>
<li>In a RTS game that includes a tech-tree, a variety of buildings, and lots of interdependencies, planners seemed like the obvious choice.</li>
</ul> <p>As general concensus though, utility seemed to fit better as a complement to other approaches rather than an "architecture" in its own right. (See the lecture on utility for more information.)</p> <h3 id="sponsored">Massive Parallelism in AI: Throughput vs. Realtime</h3>
<p><u>Presenter</u>: Pierre Pontevia (Autodesk).</p> <h4>Notes</h4> <p>This presentation was sponsored by Autodesk and took place in parallel with the previous panel. Pierre Pontevia went through the many different approaches you can take to implement parallelism in-game, and evaluating the trade-offs. He discussed how to apply this to the pathfinding problem, and how Autodesk is approaching it for their middleware, Kynapse.</p> <p>You can watch this <a rel="nofollow" target="_blank" href="http://area.autodesk.com/gdc/ondemand2">session online</a> on Autodesk's site, and Pierre also kindly sent in his slides for you to browse (below).</p> <div style="text-align:center;" id="GDC10_Autodesk"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_AutodeskSponsored.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_AutodeskSponsored.medium.jpg"/></a>
<p><br/><u>Photo</u>: Pierre Pontevia.</p>
</div> <h4>Description</h4> <p>With PS3 and Xbox 360 next generation consoles, parallel architectures have become a reality for game programmers. Since then, parallel architectures and programming models have greatly evolved and we can wonder how current parallel solutions would scale these new architectures. In this session, the speaker will take the example of pathfinding and illustrate some of the required evolutions to match future parallel hardwares.</p> <h4>Slides</h4> <i>&raquo; <a rel="nofollow" target="_blank" href='http://aigamedev.com/open/coverage/gdc10-slides-highlights/'>Click here</a> to view this embedded content.</i> <h3 id="session10">AI Mashups: Insights into Intertwined Architectures</h3>
<p><u>People</u>: Brian Schwab (Blizzard Entertainment), Steve Rabin (Nintendo of America) and Kevin Dill (Lockheed Martin)</p> <h4>Description</h4> <p>AI programmers rarely use a pure architecture such as a State Machine, Planner, or Behavior Tree in isolation. Rather, several symbiotic architectures are mashed together, resulting in an overall architecture that is unique and powerful in its own way. This lecture is designed as a series of three mini-lectures where you will hear about several mashed up AI architectures along with intriguing lessons and insights.</p> <div style="text-align:center;" id="GDC10_ArchitectureMashup"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_ArchitectureMashup.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_ArchitectureMashup.medium.jpg"/></a>
<p><br/><u>Photo</u>: Steve Rabin, Kevin Dill, Brian Schwab.</p>
</div> <h4>Notes</h4>
<p><b>Steve Rabin</b> presented a simple implementation of an event-driven FSM, inspired by articles he wrote for AI Wisdom. Steve released the code for any use, and you can find <a rel="nofollow" target="_blank" href="http://aiwisdom.com/StateMachineProject_Rabin_20100118.zip">right here</a>. In particular, the code uses macros to help define the states and how they respond to external inputs.</p> <p><b>Brian Schwab</b> talked about a hybrid declarative behavior-tree that allowed his designers on the Sony NBA games to specify how groups should coordinate via roles and situations. The system is similar to Prolog in some ways, since it tries to "binds" roles to individuals as appropriate.</p> <p><b>Kevin Dill</b> showed an idea he had for an architecture based on hierarchies of hybrid reasoners. His approach seems to differ from behavior trees (with custom nodes) since each layer has a floating point "activation" and has the ability to check what would happen before actually executing.</p> <h3 id="session11">Experimental Game AI: Live Demos of Innovation</h3>
<p><u>People</u>: Michael Mateas (University of California, Santa Cruz), Richard Evans (Maxis), Ian Holmes (University of California, Berkeley).</p> <h4>Description</h4> <p>Typically, the 'next big thing' in AI comes from tireless research and experimentation. This session will feature many interesting and experimental working game AI prototypes from both industry and academia, all demoed live on stage. This promises to be a very inspirational and thought-provoking session with many presenters on-hand to show their creations and innovations.</p> <div style="text-align:center;" id="GDC10_Experimental"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_Experimental.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_Experimental.medium.jpg"/></a>
<p><br/><u>Photo</u>: Michael Mateas, Ian Holmes, Richard Evans.</p>
</div> <h4>Notes</h4>
<p><b>Richard Evans</b> showed two demos, one of deontic logic used in his prototype Sim Tribe. In that game, you can decide what the rules of society are, and the individuals play out those rules. What's most interesting is that the behavior emerges from these rules, almost like magic! The second demo Richard showed was a long-term planning prototype, in an environment similar to THE SIMS. He showed one individual whose goal was to get promoted, and worked relentlessly on his cooking skills by practicing in a variety of ways.</p> <p><b>Ian Holmes</b> demonstrated a game based on cellular automata (CA). The context of the game was a zoo, with a diversity of animals breeding, concrete walls, visitors, and some tools to help manage the game like pheromones and acid! It looked very much like you'd imagine the Game of Life, but with interesting underlying rules.</p> <p><b>Michael Mateas</b> showed a demo of his group's Starcraft bot, which is based around a their ABL architecture (similar to a behavior tree). The bot wins most of the time against the default AI. Michael showed a second demo, which was a social game set in a high-school building upon the concepts he presented earlier. Here you can modify the underlying social graph dynamically using a set of mini-games, e.g. flirt, compliment, etc. Imagine THE SIMS but with social actions as part of the gameplay for achieving various goals.</p> <h3 id="session12">Answering the Designers' AI Wish List</h3>
<p><u>People</u>: Soren Johnson (EA Maxis), Richard Evans (Maxis), Adam Russell (University of Derby), Chris Jurney (Double Fine Productions) and Brett Laming (Rockstar Leeds)</p> <h4>Description</h4> <p>We asked designers from all across the industry to answer a questionnaire of probing &mdash; and even outright crazy questions. The intent was to get their heads and assemble a sort of wish list. We then present their answers to a panel of top-notch AI designers and programmers and ask them... how would you go about granting this wish? In what promises to be the most forward-looking session of the AI Summit, this panel should give us all a look into not only what the designers would like in their games, but some ideas on how to address the difficult obstacles in AI.</p> <div style="text-align:center;" id="GDC10_AnsweringDesigners"> <a rel="nofollow" target="_blank" href="http://files.aigamedev.com/coverage/GDC10_AnsweringDesigners.large.jpg"><img src="http://files.aigamedev.com/coverage/GDC10_AnsweringDesigners.medium.jpg"/></a>
<p><br/><u>Photo</u>: Soren Johnson, Brett Laming, Chris Jurney, Richard Evans, Adam Russel.</p>
</div> <h3>Looking Forward...</h3> <p>Now that the AI Summit this year is over, everyone's attention is turning to Paris for the <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">Game AI Conference</a> 2010 in June. The 100% focus on AI in the games industry stays the same, but this is a dedicated event with a single track &mdash; and the same friendly atmosphere as <a rel="nofollow" target="_blank" href="http://aigamedev.com/open/coverage/paris09-report/">last year</a>. This time, you'll hear about the AI for modern combat environments in BATTLEFIELD: BAD COMPANY 2, personality profiling in SILENT HILL: SHATTERED MEMORIES, physics-based AI controllers in SUPERBIKE '10, the research for the next-generation of characters in EVE ONLINE, and keynotes by Andrew Stern about FACADE and TOUCH PET DOGS, as well as Ken Perlin on character animation.</p> <p>The event is already bringing together the leading developers in Europe (e.g. Guerrilla Games, DICE, CCP) and many enthusiasts looking to get into the games industry too. If game AI is your business or you're passionate about the topic, we want you to attend! There are now less than 50 seats left in the amphitheatre, so be sure to <a rel="nofollow" target="_blank" href="http://gameaiconf.com/">visit the site</a> and secure your tickets as soon as possible. See you there!</p><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/TMDEU4iDXg4" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/coverage/gdc10-slides-highlights/</feedburner:origLink></item>
      <item>
         <title>On the AI Strategy for KILLZONE 2's Multiplayer Bots</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/cBp67_W9wR4/</link>
         <description>The first session at GDC's AI Summit features a case study of recent games. This post contains all the references from my presentation about KILLZONE 2's multiplayer bots, and specifically their AI strategy. The project was done under the expert supe [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/coverage/killzone2/</guid>
         <pubDate>Mon, 08 Mar 2010 16:35:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <img src="http://files.aigamedev.com/GDC10_Killzone2Bot1.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/> <p>The first session at GDC's AI Summit features a case study of recent games. This post contains all the references from my presentation about KILLZONE 2's multiplayer bots, and specifically their AI strategy. The project was done under the expert supervision and guidance of Remco Straatman (Lead AI Programmer) along with Tim Verweij, who also established the architecture as part of his thesis. Here's the presentation itself:</p> <i>&raquo; <a rel="nofollow" target="_blank" href='http://aigamedev.com/open/coverage/killzone2/'>Click here</a> to view this embedded content.</i> <p>The rest of this post contains all the references from the talk itself, including work and presentations by Arjen Beij (Senior AI Programmer), Michiel van der Leeuw (Technical Director), and William van der Sterren. Most of these references are available freely, either as a public download or for <tt>AiGameDev.com</tt> Insiders (free registration). If you'd like to go into more details, see the the full video recordings as part of the <a rel="nofollow" target="_blank" href="http://aigamedev.com/launch/">Premium</a> Area.</p> <div style="text-align:center;">
<img src="http://files.aigamedev.com/GDC10_Killzone2Bot3.jpg"/>
</div> <h3>Individual AI</h3> <p>For details about the combat AI for individual humanoids based on KILLZONE 1's technology, see the talk from the Game Developer's Conference 2005:</p> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Procedural Combat Tactics (Paper)</b>
Remco Straatman, Arjen Beij, William van der Sterren
Download <a rel="nofollow" target="_blank" href='http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf'>PDF</a></pre> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Procedural Combat Tactics (Slides)</b>
Remco Straatman, Arjen Beij, William van der Sterren
Download <a rel="nofollow" target="_blank" href='http://www.cgf-ai.com/docs/killzone_ai_gdc2005_slides.pdf'>PDF</a></pre> <p>For details about the AI as it has evolved on the PS3 and SPU, see these extracts of the talk by Michiel van der Leeuw:</p> <ul> <li><a rel="nofollow" target="_blank" href="http://aigamedev.com/insider/coverage/threat-prediction/">Where Did That Enemy Go? Threat Prediction and Reasoning</a></li> <li><a rel="nofollow" target="_blank" href="http://aigamedev.com/insider/coverage/threat-prediction/">Not in My Line of Fire! Sensible Combat Behaviors using SPU Jobs</a></li> <li><a rel="nofollow" target="_blank" href="http://aigamedev.com/insider/coverage/waypoint-cover-maps/">Waypoint Cover Maps and Efficient Raycasts on PS3</a></li>
</ul> <p>These are Insider articles and include a video of the technology.</p> <div style="text-align:center;">
<img src="http://files.aigamedev.com/GDC10_Killzone2Bot2.jpg"/>
</div> <h3>Architecture &amp; Planner</h3> <p>For details of the overall architecture, see Remco Straatman's part of the presentation at the Paris Game AI Conference 2009, which is based on Tim Verweij's thesis work:</p> <pre style="padding-left:72px;background:#e0e0e0 url(http://files.aigamedev.com/icons/PDF.png) no-repeat 8px 25%;">
<b>Killzone 2 Multiplayer Bots</b>
Remco Straatman, Tim Verweij, Alex Champandard
Download <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GAIC09_Killzone2Bots_StraatmanChampandard.pdf'>PDF</a> or <a rel="nofollow" target="_blank" href='http://files.aigamedev.com/coverage/GAIC09_Killzone2Bots_StraatmanChampandard.ppt'>PPT</a></pre> <ul>
<li><a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/presentations/killzone2-planning/">The AI in Killzone 2's Bots: Architecture and HTN Planning with Remco Straatman</a> (Premium)</li>
</ul> <h3>Terrain Reasoning &amp; Pathfinding</h3> <p>For more information about the processing and analysis of terrain, then finding a balance between automation and manual annotations, see this <tt>AiGameDev.com</tt> report with Kevin Dill, Sergio Garces, William van der Sterren and Paul Tozour.</p> <ul>
<li><a rel="nofollow" target="_blank" href="http://aigamedev.com/open/articles/terrain-annotations/">Terrain Annotations: From Designer Hints to Automated Pre-processing</a></li>
<li><a rel="nofollow" target="_blank" href="http://aigamedev.com/insider/reports/terrain-representation/">Terrain Representation: AI Hints and Spatial Data-structures</a> (Insider)</li>
<li><a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/reports/terrain-analysis-reasoning/">Terrain Analysis &amp; Reasoning</a> (Premium)</li>
</ul> <p>The automatic area generation is based on a clustering algorithm. William van der Sterren's work is the best reference on the subject. There's also an implementation in the <tt>AiGameDev.com</tt> Sandbox that you can see in action here:</p> <ul> <li><a rel="nofollow" target="_blank" href="http://aigamedev.com/open/articles/terrain-area-generation/">Terrain Area Generation from 2D Grids and Waypoint Graphs</a></li> <li><a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/masterclass/automated-terrain-analysis/">Automated Terrain Analysis</a> with William van der Sterren (Premium)</li>
</ul> <p>The squad pathfinding is derived from my master's thesis, though with some improvements since this publication:</p> <i>&raquo; <a rel="nofollow" target="_blank" href='http://aigamedev.com/open/coverage/killzone2/'>Click here</a> to view this embedded content.</i> <p>The algorithm is essentially a hybrid combination of Dijkstra and Bellman-Ford-Moore.</p> <div style="text-align:center;">
<img src="http://files.aigamedev.com/GDC10_Killzone2Bot1.jpg"/>
</div> <h3>Strategy</h3> <p>As a reference for the squad and objective assignment logic, see this talk at GDC 2008 by Damian Isla:</p> <i>&raquo; <a rel="nofollow" target="_blank" href='http://aigamedev.com/open/coverage/killzone2/'>Click here</a> to view this embedded content.</i> <p>For more information how different that was in KILLZONE 2, see the details in the recording from the Paris Game AI Conference 2009:</p> <ul>
<li><a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/presentations/killzone2-strategy/">From Squad Tactics to Real-time Strategy: High-Level Multiplayer Bot AI in Killzone 2</a> (Premium)</li>
</ul> <h3>Summary</h3> <p>In this case and in general, strategy is more than the sum of its parts. Individual components of the system are relatively straightforward, well documented, and easy enough to implement. However, its their combination that make the overall result much more dynamic and involving to players.</p> <p>If you have any similar experiences working on the AI strategy in your game, or have any questions about the technology in KILLZONE 2, don't hesitate to post a comment below.</p><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/cBp67_W9wR4" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/coverage/killzone2/</feedburner:origLink></item>
      <item>
         <title>Global Jam Report: On Little Old Cleaning Ladies in Stealth Games</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/kzyyF_pG73g/</link>
         <description>Last weekend, the Global Game Jam was held worldwide and we took the opportunity to turn it into an AI Marmalade. (For those of you that still don't get the breakfast joke: jam, marmalade. See what I did there?) Part of the AiGameDev.com "team" of c [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/reports/2010-game-jam/</guid>
         <pubDate>Thu, 04 Feb 2010 15:58:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <img src="http://files.aigamedev.com/MARMELADE_NavigationDebug.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/> <p>Last weekend, the Global Game Jam was held worldwide and we took the opportunity to turn it into an <a rel="nofollow" target="_blank" href="http://aigamedev.com/open/upcoming/2009-marmalade/">AI Marmalade</a>. (For those of you that still don't get the breakfast joke: jam, marmalade. See what I did there?) Part of the <tt>AiGameDev.com</tt> "team" of <a rel="nofollow" target="_blank" href="http://aigamedev.com/open/upcoming/level-up-sandbox/">contributors</a> was available on Saturday and Sunday &mdash; Radu, Richard, and partly Nick &mdash; and I (Alex Champandard) made some changes in my usual <a rel="nofollow" target="_blank" href="http://aigamedev.com/events/">schedule</a> for the weekend, and we built a stealth game!</p> <p>As a base for the implementation, we decided to use our AI Sandbox as a framework and build this game on top. The goal of the AI Sandbox, beyond just demonstrating AI algorithms and techniques, is to be a good prototyping environment for gameplay &amp; AI &mdash; so we figured this would be a good stress test! (The AI Sandbox is currently only available to Premium members, but there's now an <a rel="nofollow" target="_blank" href="http://aisandbox.com">official site</a> you can visit!)</p> <p style="border:1px dashed #444;background-color:#ddd;padding:1em;"><u>NOTE</u>: Parts of this article were written by Radu Septimiu Cristea, who was the main driving force behind the coding this weekend. I'll post a video of the game after the next release of the AI Sandbox, which will include the source code.</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/MARMELADE_StealthGameplay.large.jpg"><img src="http://files.aigamedev.com/MARMELADE_StealthGameplay.medium.jpg"/></a>
<p><u>Screenshot 1</u>: A screenshot from the final game. The player is in white, and guards in red. (Click to enlarge.)</p>
</div> <h3>Design</h3> <p>The idea to make a stealth game made the most sense for a few reasons:</p> <ol>
<li><p>Such games often exhibit fascinating AI & interesting gameplay dynamics.</p></li>
<li><p>They don't necessarily require you to implement an entire combat system!</p></li>
</ol> <p>The design came together in discussions on Friday (and a few before). I described the basic idea in our project log in the forums:</p> <blockquote><p>&ldquo;You play a character that's infiltrating a premise: indoor building, or outside location. Your goal is to try to get to one or more point in the building to pick up / drop off something.</p> <p>There are guards on patrol, and their behavior is mostly predictable. These guards move relatively slowly and don't see too far. If they get suspicious they approach the last known position, look around and repeat.</p> <p>An old cleaning lady is also on the premises, she's pretty smart. If she sees something, she'll keep looking and do an exhaustive and methodical search &mdash; albeit very slowly. She's there to keep the pressure on.&rdquo;</p></blockquote> <p>The idea of the little old cleaning lady was the best received on <a rel="nofollow" target="_blank" href="http://twitter.com/AiGameDev">Twitter</a> &mdash; clearly one of the best modern tools for early design feedback! The cleaner provides a good way to keep the pressure on as a gameplay mechanic, but she’s a good comedy addition to the game too. In fact, we got quite a few suggestions from other Jammers on Twitter for what the old cleaning lady could do.</p> <p>Anyway, That design was good enough to get started…</p> <h3>Preparations</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/MARMELADE_BuildReport.large.png"><img src="http://files.aigamedev.com/MARMELADE_BuildReport.medium.png" class="frame"/></a>
<p><u>Screenshot 2</u>: The reports of our build servers, as we stabilized the repository post-merge. (Click to widen.)</p>
</div> <p>Reusing an existing framework seems like taking shortcuts for a Game Jam, but in our case it took the best part of Saturday morning to get to our starting position. In particular, we wanted to merge some experimental branches into the trunk that we’d been working on in our SVN repository:</p> <ul>
<li>An <b>improved skeleton</b> that Richard Fredriksson has been working on. The new skeleton is designed to be much faster and simpler to mirror at runtime, and comes with its own Rig in our animation tools.</li>
<li>The <b>2D grid</b> for pathfinding that Nick Samarin had implemented as a dynamic alternative to the waypoint graph, similar to <a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/interviews/uncharted2-among-thieves/">UNCHARTED 2</a>.</li>
</ul> <p>It paid off in the end, however. We managed to reuse everything, including the A* pathfinding, the navigation, the locomotion, and the basic character animation to build a real 3D game. Also, since Richard had the character Rig, we managed to make some new walk animations when we needed them. Nick’s code was intended to be the base of the occupancy grid that the cleaning lady would use to hunt you down, but unfortunately we didn’t get around to implementing that…</p> <p>From then on, we could start work on the behaviors.</p> <h3>NPC Behaviors, by Radu</h3> <p>Once the preparation were over, the starting point of our game was a skeleton of the Hide & Seek demo. After removing the code that was not needed, the first order of business was creating two brain components for the guard and cleaning lady. It soon became apparent that this is going to be the perfect time to stress test out the behavior tree framework and the helper functionality that came with it, namely the tree builder.</p> <p>Where the guards BT was somewhat similar to the seekers in the Hide & Seek demo, the star of the show was the cleaning lady’s BT. It consisted of three main parts. The idle part &mdash; represented by the cleaning around behavior; the suspicious part, which called for movement in the direction of the most likely player position and finally the combat part that made the cleaning lady call the guards on the player’s position. Careful monitoring insured a reactive BT that would reliably switch from one part to another, depending on the world state. This was insured by the monitor and check node decorators that used atomic conditional actions that did the actual state checks. Being under time pressure I didn’t fully use the modules that the framework provides and some code duplication issues are visible. Fortunately, I plan to refactor the code into reusable modules that use the build-in-place construction technique. This would especially help out with the game state monitoring nodes. <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/MARMELADE_BehaviorDebug.large.jpg"><img src="http://files.aigamedev.com/MARMELADE_BehaviorDebug.medium.jpg"/></a>
<p><u>Screenshot 3</u>: A test level that Radu hand-designed, along with the cleaning lady in yellow who just alerted the guard in red. (Click to enlarge.)</p>
</div> <p>Another problem that we had to solve was one of “communication” between the level dwellers. The cleaning lady notified the guards of the players’ intrusion by setting a flag in its brain blackboard and subsequently a controller would read the flag and dispatch that message to the guards. I found this technique really lacking and the fact that it would not scale very well pretty obvious. The use of an event system would be really well suited to solve this problem of inter-actor notification.</p> <p>The recently added reasoning layer (as described in the <a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/masterclass/blackboard-architecture/">masterclass with Damian Isla</a>) was adapted to handle <tt>IsInView</tt> interrogations from the BT conditional actions. As we have seen in our previous implementation of this reasoning layer, this proves to be a very powerful technique greatly simplifying the actual BT actions that just have to pull data from this layer. The layer made heavy use of the underlying Query – Job Processor, constantly sending LOS queries to the sensory system. At this point it was obvious that the LOS queries and inherent querying mechanism was not flexible enough, having to hardcode the field of view in the LOS job.</p> <h3>Navigation & Moving Targets, by Alex</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/MARMELADE_NavigationDebug.large.jpg"><img src="http://files.aigamedev.com/MARMELADE_NavigationDebug.medium.jpg"/></a>
<p><u>Screenshot 4</u>: Four guards following the player while moving around, with the debug rendering for the navigation enabled. In red pixelated sprites you see the patrol routes and the last known player position. (Click to enlarge.)</p>
</div> <p>One thing that inevitably came up was the navigation system. So far, it was only used for situations where the targets were static and the AI planned ahead until its next destination. When used on dynamic targets, there were problems with starting and stopping every time the target changed. Radu mentioned these concerns:</p> <blockquote>&ldquo;One concern was the navigation system, having to handle a constantly changing destination point and keep the motion fluent enough to make chasing the player exciting and engaging. This concern was laid to rest sometime Sunday afternoon when I got the first glimpse of the walk animation from Rikki and improvements in the navigation system from Alex.&rdquo;</blockquote> <p>Supporting dynamic targets in a navigation system is a topic that often comes up, and the best solution is often the easiest. When the target has moved a certain distance (say 5m) then run the pathfinder again, or if the target has moved a bit and a certain time has elapsed (say 5s) then also run the pathfinder again.</p> <p>The only change that was required in the AI Sandbox code was to not tell Locomotion system to stop and go into Idle, and instead keep it Running. The results look pretty good, despite some issues in the underlying locomotion...</p> <h3>Locomotion Improvements, by Alex</h3> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/MARMELADE_WalkingMotions.large.jpg"><img src="http://files.aigamedev.com/MARMELADE_WalkingMotions.medium.jpg"/></a>
<p><u>Screenshot 5</u>: The set of walking motion clips (individual steps) that make up the walking motion graph. In yellow are left to right steps, and in white are right to left steps. (Click to enlarge.)</p>
</div> <p>So far, we've only used running motions in the AI Sandbox since the motion capture we used was focused on running, jogging and sprinting. There were also some walks, but they weren't as useful nor as good quality animations. Luckily, Richard touched them up for the new skeleton, and re-exported them and so I had something to work with. However, I ran into a bit of trouble with the motion graph code…</p> <p>The core of the problem was the footplant detector. I need to detect footplants for the different types of motion, so they can be aligned when the foot is down. For the running motions, I managed to create a function that extracts local minima of the feet position, and filters out the false positives to hopefully end up with only the exact footplants. However, this broke for the new walks and I had to make some adjustments to thresholds and various parameters.</p> <p>The code works fine now, but in retrospect there are a few problems with our current solution, in particular that the code finds footplants one side at a time, and does not consider the other foot nor the rest of the body. There’s lots of academic research on the topic, but so far we’ve not needed it. That may not be the case for much longer!</p> <p>One last problem that remains is a question of alignment in the motion graph builder. The two walk steps are not aligned or synchronized quite perfectly, which leads to a zombie like walk. It works well enough for this game though, since it is supposed to be an old cleaning lady, but this part of the code will need reworking a little in the future…</p> <h3>Game Logic & User Interface, by Radu</h3> <p>Another technique that proved its value was the <a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/masterclass/mvc-pattern/">Model-View-Controller</a> pattern. I was quickly able to get a “treasure” entity and graphical representation in the world, but I was very surprised how I was able to create a game state controller class that handled win/loose conditions and plug painlessly plug it into the main controller manager class of the game.</p> <p>The duties of the controller that handled the burden of handling the game state included monitoring of the player position in regards to the guards, checking if the player collected all the gold on the map. While collecting all the gold would trigger loading of the next level, the consequence of getting caught by the guard was basically a game reset. The reset, as trivial as it sounds, implied resetting player position and gold, resetting the blackboards and positions of the NPCs and finally stopping the execution of the BT interpreter. Except the behavior part, everything went smoothly.</p> <p>Resetting the behavior called for cleaning of the blackboard that holds a considerable amount of data. It became apparent that in the near future this has to be broken up into smaller components (ordering, visualization flags, patrol data…) to avoid the monolithic construct that the blackboard is slowly becoming as it holds more and more data. Another minor issue was stopping the interpreter that called for a stop feature to the Brain base class in the behavior library. As necessity is the mother of invention, this feature will surely make it in the next sandbox release.</p> <div style="text-align:center;">
<a rel="nofollow" target="_blank" href="http://files.aigamedev.com/MARMELADE_GameUserInterface.large.jpg"><img src="http://files.aigamedev.com/MARMELADE_GameUserInterface.medium.jpg"/></a>
<p><u>Screenshot 6</u>: The user interface elements all together, including top-left progress icons, over-head indicators for each NPC, and the game logic overlay for winning/losing the game. (Click to enlarge.)</p>
</div> <p>With a couple of hours left on the clock, and energy resources slowly dwindling I got to revisit the UI system I have written some months ago. The <a rel="nofollow" target="_blank" href="http://aigamedev.com/premium/masterclass/automated-testing/">test driven development</a> approach used a while back, suggested and enforced by Alex, really paid off in full. The UI code quickly fell into place with the use of the WidgetHelpers and behaved as expected without any problems. Most of the time was spent tweaking colors, timing and finding nice pictures to use.</p> <h3>Gameplay & Levels, by Alex</h3> <p>In parallel, I was working on the camera system. I started out experimenting with a GTA-like follow camera; being involved so closely certainly increased the tension of the game. However, such cameras often need a lot of fine tuning to work, for example to avoid obstacles when walking close by, to move into better positions to help the player visualize the scene. Instead, I reverted back to the top-down camera which we used for early development, but I moved it lower down to only about 25 meters above the ground and added smooth following movement.</p> <p>This camera works relatively well because you can see the action locally around you (as the player), but you can't see the whole level. You still have to be careful locally, but you have enough information to be tactical. Also, it makes it much easier to see what the AI is doing, so we can show it off in a better light this way, for instance watching the old cleaning woman track you down!</p> <p>After that, Radu and I spend a bit of time tweaking variables that affected the AI, for instance the field of view or maximum view distance, and various timers that trigger behaviors. Speed and movement of the player relative to the guards was also an important thing to adjust, and I experimented with a simple sprint button locally to help you loose guards if you get into too much trouble. Finally, I finished of implementing random level generation, so you get some nice structured levels (with walls and recognizable features) that are beyond just randomly placed blocks.</p> <h3>Summary</h3> <p>The biggest lesson learned here is probably the most common from Game Jams: short events are really great for focusing attention and development on ambitious yet achievable goals. This was both great for those of us that worked on the game, but also for the AI Sandbox itself. We now have a much clearer picture of where to spend our time &mdash; although many of the things that came up were already known issues!</p> <p>Beyond that, a big take-away for me was the real-world value of unit testing. Not just automated testing, we have functional tests for most of the components and systems. I mean specifically unit testing. The parts of the code that were unit tested "Just Worked&trade;" and scaled whenever we needed them without sweating. This was the case for my Behavior Tree code and Radu's User Interface code. The pathfinding in the navigation that Jad Nohra wrote with tests also had no issues... However, the locomotion builder and its component caused lots of trouble &mdash; and those have little or no unit tests.</p> <p>Going forward, we will be holding these AI Marmalades more often, possibly once every month or two. They'll help apply our code and bring the team together for a weekend event! As a result, we'll also have a large prioritized list of things to work on for the AI Sandbox, as we do now!</p><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/kzyyF_pG73g" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/reports/2010-game-jam/</feedburner:origLink></item>
      <item>
         <title>Would You Like Some AI Marmalade to Accompany that Game Jam, Sir? Madam?</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/DSIu4apnA-8/</link>
         <description>The Global Game Jam will take place worldwide this weekend. For those of you participating that are looking for a challenge, fresh ideas to distinguish your game, moral support or help for building your AI, then the AI Marmalade is for you! AiGameD [...]</description>
         <guid isPermaLink="false">http://aigamedev.com/open/upcoming/2009-marmalade/</guid>
         <pubDate>Wed, 27 Jan 2010 16:33:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><small>Copyright &copy; <a rel="nofollow" target="_blank" href="http://AiGameDev.com/" title="Game AI for Developers">AiGameDev.com</a>, 2010.</small></p> <img src="http://files.aigamedev.com/Marmalade.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/> <p>The Global Game Jam will take place worldwide this weekend. For those of you participating that are looking for a challenge, fresh ideas to distinguish your game, moral support or help for building your AI, then the AI Marmalade is for you!</p> <p><tt>AiGameDev.com</tt> is proud to announce the AI Marmalade, which will take place on January 29-31 at the same time as the <a rel="nofollow" target="_blank" href="http://www.globalgamejam.org/">Global Game Jam</a>. You don't have to be at an official Jam location to participate in the Marmalade; in fact you can do it from anywhere! <p>Here's how it works...</p> <h3>What Is the AI Marmalade?</h3> <p>The AI Marmalade is a common underlying theme for the Global Game Jam. If you're interested in pushing the boundaries of Game AI or just learning something new in this area, then join in!</p> <p>The AI Marmalade is here to help by providing:</p> <ul>
<li><b>Inspiration and Ideas</b> &mdash; If you'd like to design something innovative, or find a topic that explores artificial intelligence in games, then come and talk to us!</li>
<li><b>Technical Advice</b> &mdash; We'll also be around for programming support if you need it. Brainstorm about solutions with the resident experts at <tt>AiGameDev.com</tt>!</li>
<li><b>Feedback or Comments</b> &mdash; As you get something up and running, you need play testers or a review of your design, we'll be there too.</li>
</ul> <p>You can at least count on Phil Carlisle and I (Alex Champandard) on being around, and presumably the regulars in the forums and IRC channel too.</p> <h3>Where Will it Happen?</h3> <p>The AI Marmalade will take place online, so you can join in from whatever location of the Game Jam you chose. In particular </p> <ol>
<li><p>The Official #gameai <a rel="nofollow">channel</a> on IRC.freenode.net. Join us at any time during the weekend to discuss any of the topics above.</p></li>
<li><p>The <tt>AiGameDev.com</tt> <a rel="nofollow" target="_blank" href="http://forums.aigamedev.com/">forums</a>. Use the Projects forum to post reports of your progress, screenshots, videos, descriptions, etc.</p></li>
<li><p>We may even use our online meeting room with audio and whiteboard to brainstorm or explain things if necessary.</p></li>
</ol> <p>If in doubt, join the IRC channel and you'll find friendly people to help at most times of the day!</p> <h3>How Does it End?</h3> <p>We'll finish the AI Marmalade at the same time as the Global Game Jam. However, afterwards we'll post about all the games, screenshots, descriptions, videos on the <tt>AiGameDev.com</tt> blog.</p> <p>That's all you need to know... I hope to see you on IRC or in the forums this Saturday and Sunday.</p> <div style="text-align:center;">
<img src="http://files.aigamedev.com/Oranges.medium.jpg" alt=""/>
</div> <p><b>Let's make some AI Marmalade!</b></p><img src="http://feeds.feedburner.com/~r/AiGameDev/~4/DSIu4apnA-8" height="1" width="1"/>]]></content:encoded>
      <feedburner:origLink>http://aigamedev.com/open/upcoming/2009-marmalade/</feedburner:origLink></item>
      <item>
         <title>Vote Now! 2009 AiGameDev.com Awards for Game AI</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/zH_u7M9_bm8/</link>
         <description>&lt;p&gt;&lt;small&gt;This article was published for &lt;a rel="nofollow" target="_blank" href="http://aigamedev.com"&gt;AiGameDev.com&lt;/a&gt; Insiders, free by registration.&lt;/small&gt;&lt;/p&gt;
&lt;img src="http://files.aigamedev.com/GoldenMarvinVote.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/&gt;
&lt;p&gt;Welcome to the 3rd Annual AiGameDev.com Awards for Game AI, where the best games of the year are nominated and voted by professionals, enthusiasts, and researchers in artificial intelligence for games. Last week you submitted your &lt;a rel="nofollow" target="_blank" href="http://aigamedev.com/open/articles/2009-awards-nominations/"&gt;nominations&lt;/a&gt;, and here are the finalists. You have exactly one week to pick the best candidates by &lt;a rel="nofollow" target="_blank" href="http://forums.aigamedev.com/survey.php?&amp;do=take&amp;sid=28"&gt;visiting this page&lt;/a&gt;. Vote now!&lt;/p&gt; &lt;p&gt;The entries below were chosen thanks to emails, comments, and discussion in our official IRC channel at &lt;tt&gt;irc.freenode.net&lt;/tt&gt; in &lt;tt&gt;#gameai&lt;/tt&gt;. Each nominee had at least two people behind it. Special thanks to Phil Carlisle, Kevin Dill, and Ricardo J. Mendez for their suggestions and descriptions.&lt;/p&gt;&lt;p&gt;[...]&lt;img src="http://feeds.feedburner.com/~r/AiGameDev/~4/zH_u7M9_bm8" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://aigamedev.com/insider/upcoming/2009-awards-voting/</guid>
         <pubDate>Sat, 19 Dec 2009 16:35:00 +0000</pubDate>
      <feedburner:origLink>http://aigamedev.com/insider/upcoming/2009-awards-voting/</feedburner:origLink></item>
      <item>
         <title>Where Did That Enemy Go? Threat Prediction and Reasoning in KILLZONE 2</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/jjk2XCPlt_A/</link>
         <description>&lt;p&gt;&lt;small&gt;This article was published for &lt;a rel="nofollow" target="_blank" href="http://aigamedev.com"&gt;AiGameDev.com&lt;/a&gt; Insiders, free by registration.&lt;/small&gt;&lt;/p&gt;
&lt;img src="http://files.aigamedev.com/insiders/Killzone2_PredictionTeaser.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/&gt;
&lt;p&gt;With increased processing power and better techniques for gathering information from the environment, there's an opportunity to go beyond using raw sensory data and starting to reason about the world. In particular for combat games, simply tracking players then reasoning about their possible hiding location can add a great variety to the behavior.&lt;/p&gt; &lt;p&gt;In his presentation earlier this year, &lt;i&gt;Michiel van der Leeuw&lt;/i&gt; talked about &amp;ldquo;The PlayStation®3's SPUs in the Real World&amp;rdquo; in which he detailed how the AI for KILLZONE 2 works in practice. Building on top of &lt;a rel="nofollow" title="Waypoint Cover Maps and Efficient Raycasts on PS3 in Killzone 2" target="_blank" href="http://aigamedev.com/insider/coverage/waypoint-cover-maps/"&gt;waypoint cover maps&lt;/a&gt; (covered in a previous article), one of their most interesting applications is for tracking threats and predicting their movement &amp;mdash; for instance when the player hides from the enemy.&lt;/p&gt; &lt;p&gt;The rest of this article includes a demo video from the game, as well as the slides and a transcript of presentation...&lt;/p&gt; &lt;p style="border:1px dashed #444;background-color:#ddd;padding:1em;"&gt;Thanks again to Michiel of &lt;a rel="nofollow" target="_blank" href="http://guerrilla-games.com/"&gt;Guerrilla Games&lt;/a&gt; for sharing his slides with us. Michiel mentioned that the AI department isn't currently looking for programmers, but the company is always on the look out for talented AI, (humanoid) animation and game code enthusiasts.&lt;/p&gt;&lt;p&gt;[...]&lt;img src="http://feeds.feedburner.com/~r/AiGameDev/~4/jjk2XCPlt_A" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://aigamedev.com/insider/coverage/threat-prediction/</guid>
         <pubDate>Mon, 07 Dec 2009 21:42:00 +0000</pubDate>
      <feedburner:origLink>http://aigamedev.com/insider/coverage/threat-prediction/</feedburner:origLink></item>
      <item>
         <title>Squad Patrol in Halo 3 ODST: Populating a Hub World with Enemy Forces</title>
         <link>http://feeds.aigamedev.com/~r/AiGameDev/~3/L3jGLR4F6oU/</link>
         <description>&lt;p&gt;&lt;small&gt;This article was published for &lt;a rel="nofollow" target="_blank" href="http://aigamedev.com"&gt;AiGameDev.com&lt;/a&gt; Insiders, free by registration.&lt;/small&gt;&lt;/p&gt;
&lt;img src="http://files.aigamedev.com/insiders/Halo3ODST_SquadPatrol2.icon.jpg" style="float:left;margin-right:1em;" align="left" hspace="32"/&gt;
&lt;p&gt;Halo 3: ODST made numerous bold design changes compared to its predecessors, in particular its open hub-world that's populated with enemy NPCs. During the promotion of the game, Bungie released a video documentary with insights from behind the scenes. For approximately 30 seconds during the video, you can see footage of the AI technology applied to this large city. And, yes, some of the debug rendering for the waypoints seems to be pink!&lt;/p&gt; &lt;p&gt;In particular, during that short section, Bungie designer Alex Pfeiffer talks about the squad patrol behaviors that are used to bring life to the city. Since Halo 3: ODST is a partly open-world game, new technology was needed to make sure there's always enemy presence within the hub &amp;mdash; which could be adjusted up and down by the designers. You can watch the AI patrolling in the highlight below...&lt;/p&gt;
&lt;p&gt;[...]&lt;img src="http://feeds.feedburner.com/~r/AiGameDev/~4/L3jGLR4F6oU" height="1" width="1"/&gt;</description>
         <guid isPermaLink="false">http://aigamedev.com/insider/reviews/halo3odst-squad-patrol/</guid>
         <pubDate>Wed, 04 Nov 2009 13:05:00 +0000</pubDate>
      <feedburner:origLink>http://aigamedev.com/insider/reviews/halo3odst-squad-patrol/</feedburner:origLink></item>
   </channel>
</rss><!-- fe3.pipes.ch1.yahoo.com uncompressed/chunked Mon Aug 30 19:22:30 GMT 2010 -->
