The brain is a complex organ with complex processing. But it's slow. Early AIs were written to explore the highest level of brain functions — things like planning, logic, natural language, creativity, problem solving, mathematics. Like the higher levels of the brain, solving these problems is slow. In game AI, planning and pathfinding are examples of the higher level processing, and these are often slow.

In the body, when fast reactions are needed, we have reflexes: a fast but dumb reaction that occurs before the brain can fully process and respond to a signal. The classic example is putting a hand on a hot potato – you will pull your hand away before the brain even receives the pain signal. Many reflexes are handled by the spinal cord, before the signals reach the brain.

The body has both:

A global slow, smart system: processing in the brain

A local fast, dumb system: reflexes closer to where the input occurred

In game AI we can often do the same. An example is in games where pathfinding is slow, and has to be split up among several frames. We need to give instant feedback to the player when the unit is clicked. If pathfinding is slow, then we need something else in its place. In some games, you'll see animation and sound for the unit getting ready to move. But the reflex-inspired approach would be to have a secondary pathfinding system that's fast and dumb, and have the unit start following that path right away. The most straightforward approach would be to start moving in a straight line; another approach would be to see if any nearby units are moving to the same general area, and start following them. The slow, smart system can fix the path later. In some cases you don't need the smart system at all because the dumb path is fine. That way, you can get both instantaneous action and good paths.

In planning tasks we also have places where reflexes can be useful. For example, suppose three different squads are attacked simultaneously. Their reflex action should be to fight back. In the background a slower processing task can analyze these three positions, the size of the attacking forces, and the information gathered from scouting. It can guess what the enemy is going to do next, and order all three squads to fall back to a safer position. Fire first, then fall back, instead of waiting for the analysis before performing any action.

Lots of games already use these techniques. They're part of a general pattern: use both slow/smart and fast/dumb event handlers, so that you can react quickly and then go back and react smartly in cases where you need it.

When I'm interacting with my computer, there's a range of interfaces I
use. On the “high” end, there are full screen specialized UIs
sometimes with specialized controllers. I have a highly customized
World of Warcraft interface that's tuned for the special keyboard I got for
playing games. These UIs typically use your full attention, and
you don't do anything else on the computer at the same time. On the
“low” end, there are simple interfaces that are usually text-based and
line-at-a-time. Twitter and instant messaging let me send and receive
short lines of text. These UIs typically use very little attention,
and sit unobtrusively on the side while you do something else.

Most games I see are on the “high” end. They have specialized
interfaces that you have to learn, and you're not often
multitasking. Browser based games are somewhere in the middle. They're
not using up the full screen, they have simpler UIs that fit with the
browser's UI, and you can have other things going on at the same time,
although you'll probably ignore them if the game requires your full
attention.

For some kinds of games I think it would make sense to have multiple
interfaces to the same game. Outside of games, you see examples
like EBay, which has a main interface (through a web browser), some
“rich client” applications that you can download, and mobile phone
alerts. They all access the same database. You can get more out of the
rich client, but it's not something you run all the time. You do have
the mobile alerts on all the time, but you can't do very much with
that interface. Also look at television shows like Lost or Heroes,
which have a main “rich” interface through the TV show, but also
expose other aspects of the show through their web site, novels, discussion
forums, comic books, and games. The Matrix series of movies had other
aspects of the storyline revealed in comics, anime, and video games.

What kinds of games would benefit from multiple clients? I think
it's most useful in games that have interactions with other people. In
these games, things can be going on when you're not playing. A
lightweight client would be useful for finding out what's going on,
and perhaps inducing you to play with the full interface. You already
see notification of this sort in a very simple setting: play-by-email
Chess or Go. There's the game itself, and there's a lightweight
communication mechanism (email) that lets you find out what's going
on. But I'd like to see this in a lot more games. For example, in
Halo 3, it would be nice to see if my buddies are playing
online. Imagine an IM bot that showed in its status message how many
buddies were online. Even better, what if you could talk to that bot
to chat with your buddies in the game, and see their replies in the IM
window. That way you could see what was going on, even if you're not
able to play right away. And if you saw that your buddies have been
playing quite a bit, you might go into the living room and boot up the
XBox. Second Life, World of Warcraft, and any other game with a chat
interface might benefit from having chat interoperate with an IM
client.

Another kind of game I'd like to see with multiple clients is
persistent world games. There are things going on in the world when
you're not playing, and it'd be nice to keep track of these. For
example, in my brother's game, Barren Realms
Elite, you'd send attack forces out to distant worlds, and the
attack would happen at some time, usually when you weren't
playing. It'd be nice to have a web page or RSS feed or gadget (Mac
Dashboard, Vista sidebar, etc.) that showed me the status of my attack
force and the outcome of the battle. These days, MMOs are the most
obvious sort of game where this would be useful. In World of Warcraft,
I'd like to know that Stormwind City is under attack by 60 Horde, or
that my guild just defeated the bosses of Karazhan. The state of the
world could be displayed in a web page, and major attacks could be
sent as IM or email or RSS alerts.

Another sort of interaction I'd like with a game is for part of
the game – not just status or chat – to be accessible in a lightweight
client. In EVE Online, I'd like to track the economic game – my buy and sell orders, as well as production – even when I'm not in the full game client. EBay
mobile alerts likely increase people's usage of EBay; my guess is that
having that lightweight client that lets you track your EVE Online
business dealings would make you play EVE Online more.

Even in single player games, there are some interactions with
other people. For example, suppose a new high score in Scrabulous was
sent to all your Facebook pals. That'd both remind people to play
Scrabulous, and it would also encourage everyone to try to beat that
high score. Scrabulous is a Facebook game, but you could imagine
doing the same with other games. If XBox achievements were sent to my
Facebook account, it'd be more fun to get those achievements than
if people saw them only when they turned on their XBox.

To summarize, I'd like to see a lot more games with multiple interfaces. Some ideas are:

Status (web, IM status) to passively see what's going on in the game, even when I'm not there.

Alerts (RSS, email, IM, SMS texting) to actively be notified of major events in the game.

Chat (IM, email) to allow communication between people playing right now and people who might not play until later.

Play (web) to allow playing some subset of the game through an interface that I can use when I'm doing other things.

For some, the lightweight game will augment the full game. Many
will end up participating in only the lightweight part of the
game. For others, the lightweight game will be a gateway that leads
them to try and enjoy the full game. I think that's a good thing. Not
everyone uses all the EBay clients; not everyone who watches Heroes
reads the comic books and plays the online games; not everyone who
watched The Matrix also played the game. Different people will
participate in different ways. Use an interface that's simple and widely accessible to complement the interface that's rich but not there all the time. We'll have much more interesting
games when lots more people participate in them.