Interview: Andrew Doull on Procedural Games

I had the opportunity to interview Andrew Doull this week, Unangband developer, creator of the Procedural Content Generation Wiki, contributor to the podcast Roguelike Radio, and deep thinker.

We chatted about all things procedural: the role of narrative in procedural games, the impact of the indies, the problems with a Procedural Zelda, and how Roguelikes can teach us unique things about life.

Listen here:  Andrew Doull Interview (MP3).


Games covered includes:


AIIDE 2011: AI of Darkspore

Here’s the slides from the recent talk Lauren Hetu and I gave.  We’re glad so many people enjoyed it.  The talk is split into 2 parts: first, a description of the AI and Ability systems we use for NPCs (similar to our GDC 2011 talk), and second, a remake of the Game/AI 2011 keynote I did about the AI director.

I talked more about “AI is replacing randomness”, and how we can use that as a meme to find new places to make AI Directors.


AI in Darkspore AIIDE 2011

The AI Director of Darkspore

I gave a keynote at Game AI in Paris last week.  Thanks again to Alex and Petri and staff for inviting me.  Excellent conference.  And a big statement to have a design-focused talk as one of their keynotes.  Appreciated.

The keynote was secretly 3 talks in 1:

  1. “What is Game AI?”,
  2. “The AI Director in Darkspore”, and
  3. “Improved AI Design”.

In the first section, I walk through some of the history of AI and why that has failed us, and why we need a better definition for Game AI.  I derive my definition of Game AI, “algorithms that replace randomness“.  I claim there are 3 pillars of game AI: character AI, strategic AI, and AI direction, and correspondingly define AI Direction as “algorithms that replace randomness that manage experiences”.

In the second section, I discussed how we used AI Direction in Darkspore.  I focus on 2 out of the 10 in particular: how we created the random enemy selection buckets and how we layered “spike” and “wanderer” spawn points to add drama and flow to the game.  Unlike Left 4 Dead, Darkspore’s AI Director called for a fixed challenge per level instead of a player-adjusted one.  I discuss how we tackled challenge while still bringing surprise, replayability, and interest to the table.  I showed how we tested the Director, and briefly covered how to tackle the tricky problem of debugging experience management.  Then I go into some of the technical numbers on how the Darkspore AI Director works, and why the numbers are more important then the code.  I call that AI Design.

In the last section, I talk about the importance of AI Design.  I look at how AI Design was actually most of the work, and argue that AI Engineers are the best positioned developers in the industry to make new and interesting kinds of games.  I urge them to look for places where we use traditionally randomness, and see them as opportunities to create better gameplay.  I debate Michael Mateas that AI Engineers need to understand Design in order to make the games of the future.  We talk a little bit about Chris Hecker’s call down for AI Design at AIIDE 2010.  And I share how I’ve found ways to do design in my projects and trained to be a better designer.  Finally, I look at some of the things we left random inside Darkspore instead of AI Directing, and discuss whether or not that might have been a mistake. will be posting the full presentation soon, along with audio and video.  In the meantime, I’ve uploaded the powerpoint slides with notes, as well as a smaller pdf without the notes:

AI Director in Darkspore GameAI 2011 (pptx with notes)
AI Director in Darkspore GameAI 2011 (pdf)

If you haven’t seen it my AIIDE 2009 talk on narrative in AI Director is highly relevant to this talk, expanding on it greatly.

Enjoy!  Please share your thoughts.  I’d love to hear your feedback.

AI Director in Darkspore GameAI 2011 (pptx)

What is Game AI? con.

So, as I was saying, Game AI is randomness-replacement computation.  Let’s look at some examples.

1.  Civ Rev Combat.  As Sid Meier now famously said at GDC 2010, Civ Rev’s combat is not random.  It was a sub-par experience.   They (and many other games) replaced it with an algorithm that makes it appear fairer.  I claim this is a well-designed, typical AI algorithm.

2.  NBA Jam Announcers.  Like many sports games, NBA Jam has a really frequency of announcer voice over.  Which voice over should play?  When?  How often?  Which should take priority (or interrupt) what?  These are all decisions about doing better then just picking a random voice.  In fact, they’re decisions about doing better then even the most appropriate voice for that action – it’s a combination of actions and consequences, very similar to typical character behavior.  I claim this is AI, too.

3.  Map Generation in Civ IV.  I’m not a map generation expert, but Soren Johnson has told me it’s not random.  In fact, it follows quite a bit of rules, and was a key factor in making Civ IV and V unique and interesting games (due to resource spacing).  Could have been random, though.  But much better with AI.

4. Facial Expressions. There’s a really common debate about where Animation stops and AI starts, particularly on NPC characters.  This definition answers that question – where the algorithms could have been replaced by randomness.  Thus the content and blending  of an animation are not AI, but the decision on which animations to sequence is AI.  Facial Expressions are a good example – they could be random, but it’s best if they vary to reflect your mood, in a non-robotic way.

Why define all these systems as AI?

  • Because, at their simplest, they are defined by if/then rules.  This is a common building block of Game AI.
  • Because, as you look deeper, all these systems share common elements.  Particularly in AI pieces.   Hooks, architecture, the use of State Machines and Decision Trees – as each system gets less random they start to use very simple tools.
  • Because player’s perceive them as AI.  Even when there is no AI, players will attribute randomness to the computer’s “AI”.  Perception dictates they are AI.
  • Because it fits industry common practice.  Particularly on the AI programmer/Animation programmer point.

What about Procedural Narrative?  I think that’s AI too (in fact, all non-random procedural content is Game AI under this definition).  But I think it requires another post.


What is Game AI?

Alex and Phil over at defined Game AI as “computational behavior” to separate it from academic AI (which is traditionally modelling humans).  I don’t think it’s going far enough, because it uses the word “behavior”.

Behavior is a pretty loaded term.  It implies agents, anthropomorphized agents.  That implies characters, NPCs, and significant choices of interaction.

(You can probably guess why I might be concerned about that)

To put a finer point on it, how many games that you’ve played recently meet that criteria?  With the exception of strategy games and to a limited extent shooters, agents tend to be simple at best. I claim that there is still lots of AI in those other games, and I’m going to back that up by… changing Alex’s definition.

Game AI is an algorithm that replaces randomness.

In plain English:

randomness-replacing computation


Good Game AI is an algorithm that provides superior designed results to randomness.

This covers a lot more then just behavior.

Note that this is very different from academic AI.  It is also different from computational behavior, both broader and more specific, and yet produces similar results in similar contexts, particularly behavioral contexts.

It is also (interestingly) creates a clean separation from Gameplay Programming, something that has historically been lacking. We can infer from the Game AI definition that Gameplay Programming is the creation of game elements. Gameplay programming is therefore correctly a required first step before AI programming. Cool! When correlaries naturally fall out of definitions that match reality, that’s a sign to me that we’re on the right track.

I want to get down and gritty in this definition, particularly from the point of view of AI Directors. I’ll do that in the next post, later today. Gotta go get our fish back from George.

GDC 2010: AI Summit: An AI Assist for Interactive Storytelling

Phew! GDC 2010 has come and gone, and I finally have a chance to breath.  The AI Summit in particular went fantastic.  A big thanks to Dave Mark and all for helping organize it.

Here are the slides from my talk on Tuesday on how you can use existing AI architecture you already have in your game to improve things you haven’t thought of before.  The game taxonomy has been particularly helpful in really understanding tricky game design problems.

AI Summit: An AI Assist to Interactive Storytelling

If you have any questions about the talk, feel free to post them in the comments and I’ll do my best to answer them.

I was deeply happy with how our Interactive Storytelling session came out, and a number of people told me it was one of their conference highlights.  Another big thanks to my co-presenters Michael Mateas and Emily Short.

There’s several posts that have come out of the conference, and I hope to get to them at some point.  But things are quite busy now and so they may have to wait on more exciting news.  They say action is better then words anyways.