When the PC makes a noise, a message is passed to the Atmosphere, which in
turn passes messages to all of the objects "Listening" for noise--as well as
ajoining Atmospheres, but at a reduced strength. Light travels in much the
When the PC bashes a club against a treasure chest, the club sends a
Smashing Force message to the chest, itself, and the PC's arm. The chest
sends a simliar message to the breakable glass it contains, and even the
ground itself. The ground sends a vibration message to ajoining grounds,
walls, and any other object "Listening" for vibrations.
When a tree is on fire, the adjacent bushes rise in temperature and
eventually burst into flames themself.
A metal rod glows when heated and conducts eletrictity. It's more brittle
when it's temperature is near absolute zero.
We've already waved the magic wand and created this simulation. Now, how do
we get the NPCs to use a little common sense while interacting with it?
For example, if a subgoal in the game is to break a metal rod the PC might
eventually figure out that he can use his Freeze-Ray to make the rod easier
to smash. The most "intellengent" goal-seeking NPC will never ever figure
this out--unless the knowledge is hard coded somewhere.
The problem is that there are so "rules" to common sense the hapless NPC
stands no chance of knowing enough to interact with the world in an
I'm going to wave the magic wand again and say that we have a reasonable
goal-seeking NPC--just one that lacks common sense. The NPC knows simple
stuffs: how to follow a pre-scripted plan, breaking down subgoals, choosing
pathes to follow when solving a branching plan, and backtracking to a
previous branch--plus some sense of priorites/emtional states. When the PC
is attacking the NPC, he won't blissfully continue with his masterplan to
If NPC has been given the goal of "breaking the iron rod" the masterplan is
1) Find the Iron Rod
2) Aquire access to the Iron Rod
3) Destroy the Iron Rod
We can imagine subgoal 1 broken down fairly simply:
1) Do I already know where the Iron Rod is? (checks his own memory for
references to the iron rod)
2) Is there a Common Sense location to find the Iron Rod? (for now, assume
Branch 1: 3) Ask other characters for the location of the Iron Rod (further
reduced to other subgoals, find characters, convince them to talk)
Branch 2: 3) Search for the iron rod (assuming some searching heursitcs,
plus some Common Sense as to where an Iron Rod might be hidden, and a memory
of locations/objects already searched)
I'm going to skip subgoal 2 for now. For subgoal #3:
1) Is there a Common Sense way of destroying an Iron Rod?
A player at a keyboard might try to "Break Rod", "Hit Rock with Rod" "Hit
Rod with Rock" and a host of other possibilites before arriving at the
soluation "Shoot Rod with Freeze Ray" "Hit Rod with Rock".
Why can't the NPC use the exact same line of thinking? I'm imagining a slew
a methods for every type of material and shape in the simulation enviroment
for all the common actions that a typical zork style adventurer might
inflict on an object. Using object orientation, objects in the game will
inherit these carefully contructed methods from parent objects.
Basically, these methods would be goal-orientated style plans for the NPC to
follow. An example method for the Iron Red might read (psuedo coded:)
Add to Possible Plans (Smash Against Something Hard), (#obvious)
Add to Possible Plans (Smash Something Hard Against), (#obvious)
Add to Possible Plans (Ask Another Character for a Plan), (#obvious)
Add to Possible Plans (1: Cool to near absolute 0
2: Smash Something Hard Against), (#not
at all obvious)
The NPC will randomly pick a plan based on his intelligence. If he's
already tried a plan and it didn't work, he might try it again or not
depending upon how frustrated he is. Eventually the NPC will arrive at the
"correct" plan and have to expand on the subgoal of "Cool to near
absolute0". The NPC consults the object itself for the Common Sense rules
if object.temp>atmophere.temp then Add to Possible Plans (1: Wait)
Add to Possible Plans (1: Pick up Object
2: Find Fridge
3: Put Object in Fridge) (#obvious)
Add to Possible Plans (1: Find Liquid Nitrogen
2: Put in Liquid Nitrogen), (#not at all
Add to Possible Plans (1: Find Freeze Gun
2: Shoot Freeze Gun at Object), (#not at
Add to Possible Plans (1: Ask Another Character for a Plan) (#obvious)
Assuming the NPC evenutally arrives at the possible plan to shoot the freeze
gun at the rod, he again goes into search mode--scanning his memory to
determine the last place he saw the Freeze Gun, asking other characters if
they've seen the freeze gun, and generally searching.
Every reasonable action for every object should have a "How To" method. For
HowToPickUp: (metal rod)
If object.temp>safetemperature then Add to Current Plan (1: Wear Thick
Add to Current Plan
(1: Cool Object) (#obvious)
If object.electric>safeelectric then Add to Current Plan (2: Wear Rubber
Shoes 2b: Wear Thick Gloves) (#obvious)
Add to Current Plan (3: Pick Up Object) (#obvious)
Add to Current Plan (Contingency: Fixed in Place...yadda yadda)
HowToHideSomethingInside: (metal rod)
HowToHideSomethingUnderneath: (metal rod)
If something.size>object.size then Return Impossible
etc. etc. etc.
I believe with the help of some elbow grease and intelligent inheritance
among objects that it would be possible to create enough HowTo methods to
satisfy goal-seeking NPC's needs given a limited text adventure-esque
Imagine talking to NPC #2 and discovering that evil NPC #1 has just recently
asked NPC #2 for the location of the freeze-gun. The player would then have
the option of finding the freeze-gun first and figuring out a way to keep it
out of the #1's grimy hands. Eventually NPC #2 might bump into NPC #1 again
and gossip, "Player asked me about you. Player asked me about Freeze Gun."
NPC #1's emotional state changes in regards to the player, and he might even
ask the player later on, "Why did you ask about the Freeze Gun?"...
anyway, I'm just thinking outloud....
[snipped description of using nested plans and solving the
problem of providing the knowledge such planning requires]
While I advocate deeper simulations, including propogating
knowledge of changes in the world to NPCs, I don't think I
go all out for problem-solving NPCs. I've been thinking
about this for ten years and it just doesn't seem to me that
there's much room in a "player-centric" game to have problems
for NPCs to solve. Some simple planning scenarios like
path-finding are really useful, and there's something to be
said for the idea of making the world *really* reactive and
varied based on player input, e.g. by having NPCs cope with
the arbitrary states the player can put the world in, i.e.
when players do very different things NPCs behave very differently
automatically in appropriate ways; but at a certain point you
find you've gone down the 'simulation/toy' not 'story/game'
avenue, and I just have trouble thinking of any application
for this level of planning.
Is Alpha Centauri (the true sequel to Civilization) a simulation/toy or a
I really dig Alpha Centauri --as you progress through the game, you are in
effect helping to tell the story of not only your own little civilization of
colonists, but the story of an entire planet. While the Alpha Centauri
NPCs aren't particularly smart, they are smart enough to navigate the
world-space in pursuit of a goal. The evolving relationships 'tween the
NPCs seem very much like a story to me: one that is all the more compelling
because my character happens to be a part of that story.
Alpha Centauri is grand in scope--let's imagine something more suitable for
IF: a fantasy Dungeon. As the player goes about his business of collecting
treasures and solving puzzles, there are other adventurers (either players
or NPCs) doing the same thing while the monsters have their own little
goals. In essence, the story creates itself (just as the story in Alpha
Centauri creates itself)...with pre-planned "cut-scenes" occurring
periodically, changing the rules somewhat and dragging the story towards
it's conclusion. Perhaps (as discussed elsewhere) a Dungeon Master AI can
fudge a little here and there to make the story more interesting...but I
prefer a carefully constructed and balanced simulation from which a story
In order for this story to arise on it's own accord, the characters most
certainly need goals--and methods of interacting with both the environment
and each other.
In the typical sitcom of yesteryear, we could always count on everything
returning to status quo at the end of the episode. All of the drama is
fake, and to a certain extent the same could be said of interactive fiction.
The drama isn't "Will the hero succeed?" but "How long will it be till the
player uses a walkthrough?" Whenever a player steps off the beaten path in
a IF game there is never an interesting contingency--because the plot has
been more or less hard coded. What if instead of collecting treasure the
player decides to tag along and make friends with Zork's thief? No matter
how long or hard you try you'll never be that thief's friend--the code
simply doesn't exist.
The game Black and White failed on many different levels. But one area
where it succeeded (at least partially) was making the creatures into
characters unto themselves. Your creature can very easily end up friends
with his mortal enemy. Although the creature's AI is less a neural network
and more of a weighted expert system, situations outside of the programmer's
hard coding can and do arise. Yet the game manages to tell a story, albeit
a piss poor story. I think that quality of the gaming experience is actually
much better when the player is busy "telling the story" of his creature's
life, and becomes significantly more crappy when the hard-coded plot
interrupts. Judging by reviews of the game other people tend to agree with
It seems that many authors of "interactive" fiction (of all varieties, not
just text) want to strong arm players into discovering a set path. I view
interactive fiction as a tool by which a player can create his own story, a
story that just happens to be set in a world that I've constructed.
In essence, if you want to tell a static story, then why not just use static
Sorry that I'm not replying to all the rest of your post, but
I haven't played any of the Civ-alikes, and my experience with
Black & White was very different from yours. (I didn't find the
story "told" by the player/creature to be interesting or engaging.)
But I agree with you, if the author is going to tell the story,
I lean towards static fiction. But I think the promise of
interactivity in art forms is in collaboration between player
and author, not in letting the player create his or her own
story. As always, I will appeal to the experience (for those
who have had it) of pen-and-paper RPGing with a human gamemaster
as an interesting boundary point that we have yet to come close
I do personally feel like the pendulum has swung too far towards
"static story" in most recent IF, but the whole "NPC planning AI"
thing just smacks of the classic "I'm a technologist, here's a
neat technology I can make even though I have no clue how to make
it into an actual work/piece of art/game"--which we mostly see
here in the form of "I want to write my own IF system".
(Of course not *everyone* who wants to make their own system
is smoking crack, e.g. Graham Nelson, Mike Roberts, etc.)
This is just my opinion (of course), but when I play an adventure game
(text or graphics doesn't matter) I want to be told a story. Many people
like the "Here, I've made you a world - interact with it" approach. Just
look at the success of the Sims or Myst, but for me a good story makes
me appriciate the game more. A certain amount of linearity and control
from the author is something I appreciate as a player, while that make
others feel like they're being led by the nose.
Conclusion: There are places for games in all parts of the spectrum.
From very free, totally nonlinear games to games that almost are novels