Greg's Design Blog

A collection of posts by game designer Gregory Carslaw, including mirrors of all of his blogs maintained for particular projects. A complete index of posts can be found here:
 Thumb up

Cardboard AI

United Kingdom
flag msg tools
Microbadge: Citizenship Recognition - Level I - One small step for geek... One giant leap for geek-kind!Microbadge: Firefly fanMicrobadge: Geek of the WeekMicrobadge: New Battlestar Galactica fanMicrobadge: Silver Image Uploader
Original Post

Some games seek to pit their players against intelligent opposition that is not controlled by any player. Sometimes this is because the game is cooperative and/or solo and some opposition is needed. Other times a theme demand actors that wouldn't make sense to be under a particular player's control. Alternatively they might be required for a mechanical reason, offering aggressive choices without forcing player conflict in the early game. In all of these occasions a game designer needs to build a cardboard AI.

External image

This describes a system in which actors are able to make and execute decisions in an automated way. A slightly weaker version of the problem is the dynamic environment, in which elements of the environment react to stimulus in an organic way. This could be all sorts of things: such as fire raging, wind blowing or ice melting. The important feature is that the element reacts to its environment, even in the absence of the players taking any actions. I'm going to start by talking about the requirements of a cardboard dynamic environment and then go on to talk about the extra element required by a cardboard AI.


The element needs to execute quickly. Ultimately most games are about meaningful decisions and the time that your players spend executing the environment is time that they're not spending meaningfully influencing the game. This requirement is often mistaken for simplicity, but I think that the learning curve associated with executing the cardboard dynamics is tied in with the overall complexity of the game and feeds into a lot of other elements. Speed is almost universally good and can result from simple rules, but could also be drawn from intuitive rules or the experience of the players.

Pandemic does this exceptionally well. Diseases building up in a city and spreading to every adjacent city once they exceed a threshold is an exceptionally quick mechanism that mimics organic behaviour very well. It also makes use of its gameplay elements to automate what might otherwise be quite complicated calculations. For instance can you imagine what a nightmare it'd be to roll to see which locations gain disease cubes and having to modify those dice rolls based on how prevalent the diseases had been in that location historically? By shuffling the used diseases and putting them on top of the deck this model is entirely automated with an action that's very familiar to most gamers.


All game elements should interact with the players and the decisions they make, one of the main attractions to adding this sort of element is the feeling of a plan coming together. In an ideal dynamic environment the automatic movements that things make will be driven by previous player actions and are predictable enough that when the players took those actions. This allows the players to build and execute all sorts of unusual strategies.

External image

Bump in the Night is based around this principle. The objective of the game is to scare children so that they leave the house. The children's movement is run by a cardboard AI, but is strongly influenced by the positioning of the ghosts and monsters in the house. These determine how far they run and in which direction, the game uses the mechanic to make setting up an environment in which a killer move can net a load of points the key challenge of the game. If the children's movement wasn't so strongly related to the elements that the players had direct control over the game wouldn't work.


It's important for the laws of an environment to be consistent for all entities in it. If a person controlled by a player cannot cross an obstacle, then a person controlled by an AI shouldn't be able to cross that same obstacle without a very good reason. If an AI abides most of the same rules as the players and exceptions are thematic it can highlight what makes that entity different. This is a principle I've tried to apply in designing Wizard Academy, where some effects are asymmetric but most rules are the same. Imps move through doors (like players) and can take runes from rune rooms (like players) and are killed by drowning (like players) but are immune to fire (exception for what an imp is.) This sort of approach highlights the strengths and weaknesses of enemies, offering players more meaningful decisions about how to behave.

The monster movement rules in Arkham Horror do this very well. Most monsters abide the same restrictions as players, moving only along roads that the players would be permitted to use. The monsters then have various exceptions that make them special such as performing some special effect instead of moving or flying over the whole board in just a couple of moves. The fact that most monsters obey consistent physics makes the exceptions stand out more and highlights the importance of their different behaviours.

External image

Goal Oriented Behaviour

The real distinction between an environment and an actor is intent. A fire spreads because it is fire. That's what it does. A bad guy shoots at you because he wants you dead. Mechanically there's no difference between a dynamic environment and a cardboard AI, they're both implemented by having players follow some predictable steps and moving board elements, but they feel very different.

There are a lot of reasons for this, but I think there's a fairly human instinct to beat the other guy. Putting out a fire is great and all, but thwarting someone's plans feels like a greater achievement. I've noticed in playtests that players delight in blowing up an imp with a spell more than they do in evaporating some inconvenient water, though the game effects are similar. I think that it adds something to a game for a cardboard AI to be made to feel like it has intent, which the players can help or hinder depending on their personality and tactical needs.

External image

This is something I'm trying to push in 404. The human AI is fairly simple (it fits onto an A6 diagram) but is very goal driven. A human that's being carried tries to get free. A human in a room with a loaded launch tube will shoot at an alien if one is present. A human with nothing else to do will eat all of the pies (or at least one of them). This seems to create a degree of emotional resonance with playtesters that isn't present from other autonomous actions in games.

For instance, I recorded a playtesting session for the first time ever on Saturday and have been cutting it up into bite sized chunks to explore different parts of the game. This one is about how hard it is to learn the human AI, the players start out hesitant and become increasingly comfortable. Body language opens up and they start skipping going through the rules formally in favour of more fluid play. At 00:38 they start doing impressions of the humans doddering about, failing to achieve their objectives. The situation wouldn't be as funny or interesting if there was some automatic door closing algorithm that sometimes messed up, the game becomes more engaging because there is an apparent intent that is frustrated.

In a nutshell, I believe that a key element of cardboard AI is to make sure that it gives the appearance of having intentions. Players love seeing other people being frustrated and this is one of the few ways to make that happen without having one of your players being frustrated. The other elements of cardboard AI are super important too though; it's something that's worth thinking about for any game that has independent elements.
Twitter Facebook
Subscribe sub options Wed Aug 21, 2013 2:01 pm
Post Rolls
  • [+] Dice rolls
Loading... | Locked Hide Show Unlock Lock Comment     View Previous {{limitCount(numprevitems_calculated,commentParams.showcount)}} 1 « Pg. {{commentParams.pageid}} » {{data.config.endpage}}
    View More Comments {{limitCount(numnextitems_calculated,commentParams.showcount)}} / {{numnextitems_calculated}} 1 « Pg. {{commentParams.pageid}} » {{data.config.endpage}}