Part of the problem with reading research papers is that you have a
hard time figuring out how long it would take for you to duplicate
a subset of their work, because you have no idea how long the original
Hoping to expand IF Frontiers...
Even if you knew how long it took them I don't think it would help much,
just because much of their work was probably put into conceptualizing and
designing the system, not just into implementation. They do mention code
length, however, which may be a suggestion as to how long it could take.
A little off the track, but you may want to check out Marvin Minsky's
_Society of Mind_ it's an easy read by the father of AI about how he
believes the mind works. He is rather convincing in his argument that
the mind is a society of agents that are not in themselves intelligent,
but when they come together and interact, create intelligence.
Anybody else here of any good books along the lines of thought, AI, world
modeling, etc. that they believe would apply to IF?
| Collin Pieper | You are not your body. |
| Cornell University | |
| cl...@cornell.edu | |
: A little off the track, but you may want to check out Marvin Minsky's
: _Society of Mind_ it's an easy read by the father of AI about how he
: believes the mind works. He is rather convincing in his argument that
: the mind is a society of agents that are not in themselves intelligent,
: but when they come together and interact, create intelligence.
: Anybody else here of any good books along the lines of thought, AI, world
: modeling, etc. that they believe would apply to IF?
As I understand Minsky's Society of Mind Theory, The mind is a set of these
competing 'idea-agents' which all compete to solve problems. (I may have
it confused with the Blackboard theory)
I remember skimming his book, but don't remember the book having enough
details to actually guide a test implementation. Since you have more
recently read it, do you think it would be reasonable to create a mind
soup testbed with the NPC's described as being composed of a subset of
the idea-agents,and use this a way to generate 'squint real hard and hope'
believable NPCs ?
I just think that it ought to be possible to have something out there
to make it easier for beginning IF writers to build upon rather than
the simplistic wander around the game, I know three facts, and can do
two things characters we have today.
Maybe I'm unusual, but I read fiction for the characters more than
I have long been of the opinion that characters are the weakest
part of IF. I remember playing Infocom games when I was a kid
(I guess I'm not a kid anymore, when did that happen?) and thinking they
were incredible except for the mindless cardboard characters you
always tried to talk to. The only successful character that I recall
was Floyd and this was largely because he was nothing more than a four-
year-old. Other characters like the Wizzard of Frobozz and the Thief
were succesful because you were never alowed to talk to them. What I
would like to do is create characters that you can talk to. As it is
often refered to in AI, I want to create an "Eliza Effect." I don't
expect to create characters that can instantly create opinions on
foreign policy or analyse _Catcher in the Rye_, but I would like them
to at least understand most simple questions and attempt to maintain an
Being that this is no easy task, I have been reading all I can about
AI, IF, and the mind (well, I've actually been reading about all aspects
of IF). I thought Minsky's book was just an interesting theory on how the
mind works, not necessarily a model to even attempt build. I think Minsky
was trying to make accessible the ideas he has been working all his life
to put into a computer. I don't expect that I could beat "the father of
AI" at building a computer mind, nor do I believe it is necessary. Like
is often stated in the OZ papers, if or adventure games in general do not
require that the "big AI problem" is solved to create believable
I think the OZ projects implementation is interesting and may attempt to
implement a subset in the future, but I'm also researching other ways of
creating realistic characters. Won of the biggest stumbling blocks is not
the behavior/emotion relationship that the OZ project attacks, but the
generation and understanding of English. I do not want to implement a
natural language generator for they are exceedingly complex and generally
produce prose that is terribly generic and boring. I am toying with a
models to tackle this but have nothing but a few scattered ideas that are
unimplemented, untested, and unready to be unleashed on the world.
Here's another book you may want to check out, _Mirror Worlds_ by
David Gelernter of Yale. It's printed by Oxford Press. I just picked it
this afternoon and make no waranties on its readability, but it seems
interesting, it's all about "the day software puts the universe in a
how it will happen and what it will mean." Seems interesting.
>A little off the track, but you may want to check out Marvin Minsky's
>_Society of Mind_ it's an easy read by the father of AI about how he
>Anybody else here of any good books along the lines of thought, AI, world
>modeling, etc. that they believe would apply to IF?
Well... I suppose "Artificial Life" by Steven Levy is one to look at. Much
more tangentially, "Godel, Escher, Bach: The Eternal Golden Braid" by
Douglas Hofstadter is extremely interesting.
Hope this helps.
(Happy to give more detail about either book if anyone's interested).
Jason Noble | jno...@bunyip.bhs.mq.edu.au
National Centre for HIV Social Research | jno...@laurel.ocs.mq.edu.au
Macquarie University, Sydney, Australia | ph. (61 2) 850 8667
>>I just think that it ought to be possible to have something out there
>>to make it easier for beginning IF writers to build upon rather than
>>the simplistic wander around the game, I know three facts, and can do
>>two things characters we have today.
>>Maybe I'm unusual, but I read fiction for the characters more than
I don't think you're at all unusual, David. I think that if interactive
fiction wants to inch closer to the status of "literature", more believable
characterisation is essential.
Collin Pieper writes:
> I have long been of the opinion that characters are the weakest
>part of IF. I remember playing Infocom games when I was a kid
>(I guess I'm not a kid anymore, when did that happen?) and thinking they
>were incredible except for the mindless cardboard characters you
>always tried to talk to.
Absolutely. At their best, Infocom games managed to achieve "suspension of
disbelief" in the player, with surprisingly simple underlying mechanics.
Who among us cannot remember standing outside that lonely white house?
Forcing open that stubborn kitchen window? The acrid smell of hot chili
peppers emanating from the sack on the kitchen table?
As you point out, however, the illusion of a game reality fell down when we
met another individual. Using the term "character" to describe the
representations of other people / animals in most (all?) of the IF currently
extant is . . . well, charitable.
>would like to do is create characters that you can talk to. As it is
>often refered to in AI, I want to create an "Eliza Effect." I don't
>expect to create characters that can instantly create opinions on
>foreign policy or analyse _Catcher in the Rye_, but I would like them
>to at least understand most simple questions and attempt to maintain an
>is often stated in the OZ papers, if or adventure games in general do not
>require that the "big AI problem" is solved to create believable
I think this is a great point, and worth repeating. You don't have to
out-AI Marvin Minsky to put better characters into your IF piece. The
player / reader *wants to believe* in the reality of your invented world.
The "Eliza Effect" means they will forgive slip-ups here and there. What
they will not be able to forgive are characters who do almost nothing,
responding only to a pre-set battery of questions. Put yourself in the
player's shoes: when the crusty old man says "Well, gee, I don't know much
about that" for the 27th time, is your game world really going to feel
vibrant and alive? (I know, I know, I'm preaching to the converted with
>I think the OZ projects implementation is interesting and may attempt to
>implement a subset in the future, but I'm also researching other ways of
>creating realistic characters. Won of the biggest stumbling blocks is not
>the behavior/emotion relationship that the OZ project attacks, but the
>generation and understanding of English. I do not want to implement a
>natural language generator for they are exceedingly complex and generally
>produce prose that is terribly generic and boring. I am toying with a
>models to tackle this but have nothing but a few scattered ideas that are
>unimplemented, untested, and unready to be unleashed on the world.
Don't be afraid to share these untested ideas! That's what r.a.i-f is for.
(I'd put a smiley here but I don't approve of them).
I agree with you here, about the generation of realistic speech being a
problem. I think the language-generation issue goes even further, however,
in that it is difficult to generate interesting fresh prose to describe game
world events, let alone the speech of the characters therein. Having read
one of the OZ sample transcripts available on their WWW page, I found that
the behaviour / emotion mechanism looked good, but the repetitive and
uninteresting text used to describe the events (the protagonist trying to
befriend and feed a cat) took away from any illusion of reality. The sort
of thing I'm talking about here is typified by "Bob enters the room from the
north" or "Bob picks up the small, green blob". Wouldn't it be great to see
instead "Bob shambles in from the kitchen, hands deep in the pockets of his
overcoat. 'You still here?', he mumbles disconsolately." and "You hear a
sort of a startled yelp from across the room. It seems that Bob has noticed
the small green blob. 'I must have this thing!', he says, and, crouching
down, he carefully scoops it up with both hands."?
As for speaking and interacting with other characters, it's a real problem,
and if you're overly ambitious in what you try to do, you risk having to
solve "the big AI problem". [Sorry for the pompous tone, BTW. I don't
really regard r.a.i-f as my personal seminar group, it's just coming out
that way]. One approach that appeals to me involves limiting the
conversational options that the player has available, and explaining this in
the game documentation. A finite number of conversational verbs are
available, that act as a shorthand for more complicated statements / actions
that the player might really say or do. Here's a sample list:
talk to Bob / chat with Bob [make smalltalk]
threaten Bob with nerf ball
ask Bob about the castle
ask Bob about life
ask Bob where the candle is
joke with Bob
listen to Bob [ie. listen sympathetically]
tell Bob that the water jug is in the kitchen
offer the car keys to Bob
show the money to Bob
agree with Bob
accuse Bob of killing the smurf
order Bob to follow me
order Bob to stop following me
Bob, wait here
tell the king that Bob stole the jewels
While the player is expected to type commands in this shorthand, the
responses of the other characters should be much richer. It may even prove
worthwhile for the program to expand the player's commands, thus:
> greet Bob
"Bob, hi! How are you?"
Bob shrugs. "So-so. How about you? Have you found that grail-thingy yet?"
> Bob, yes
Lying through your teeth, you tell Bob that you have found the grail.
"Wow", he says. He looks impressed, and regards you with new respect.
> insult Bob
You tell Bob that his mother was a hamster and his father smelt of
Bob is taken aback at your rudeness. "Why, you little-". He raises a hand
and punches you, hard, in the mouth.
The advantage of this method from a coding point of view is of course that
there is only a finite player vocabulary to deal with. The parser no longer
has to figure out the sameness of "Hi, Bob" "Bob, hi there", "Hello", and
"Bob, how are you old bean?". The player just types "greet Bob".
In order for the other characters to have the sort of responsiveness
detailed above, I believe an object-oriented language and some sort of goal
stack is necessary, with different philosophies for language generation at
different levels of coding. For example, some higher level goal of Bob's
(eg. treasure seeking) might compel him to pick up a coin. The routine that
ends up producing the text to describe the act of picking up the coin would
probably be common to all actors in the game, and might be as simple as a
random selection between four or five sentence structures, each one
involving recursive calls to check for appropriate wording, eg. "Bob picks
up a [check object] coin from the [check location type for suitability of
'floor' or 'ground'] floor.", or "Bob squats down and grabs [check whether
player has noticed coin yet] something [get unseenYetDesc] small and shiny
from the [get roomSurfaceDesc] dusty floor."
As the goals become 'higher level', it's inevitable that the author take a
more direct hand in the writing of text. For instance, let's say the plot
of your game involves an assassination attempt on JFK, occurring at a
certain randomly determined game time. Lee Harvey Oswald, at this stage,
will have a complicated set piece to enact. Depending on your conspiracy
theory, he might make a speech to anyone present in the book depository
protesting his innocence. This speech will be a script written word for
word and action for action by the game author. For instance:
Oswald says, "Oh my god, they've shot him". [check for presence of rifle]
He looks at the rifle on the floor with growing horror.
"They'll think it was me!", he whines, nearly hysterical. He rushes into
> follow Oswald
In The Bathroom
Oswald is washing his face at the sink, and moaning to himself. He spins
abruptly around to look at you, still dripping with the water. "I've got to
get out of here!", he shouts. "You hear me?! I have to go, now!!"
Oswald runs back into the storage room. You see him heading for the stairs.
The above would be a script, completely written by the author, set to happen
once and once only in the game. The next part of Oswald's actions, finding
a route to his safe house, would be more like a program than a pre-set
script. The best route would be calculated based on Oswald's knowledge of
which doors were locked, where the police were, etc. This might vary from
game to game and thus should not be pre-set. In this way, the characters in
the game will have a basic, machine like intelligence through routines like
"find a path from A to B" and "decide whether object X is worth picking up,
given my priorities". A more human touch will come from author-written set
pieces, like the Oswald routine above. If the two could be made to merge
seamlessly together, I think there would be a very strong "Eliza Effect" -
every now and then characters will do something remarkably human, and in
between times they may be a bit wooden, but not dead.
Anyway, just some thoughts. Apologies if I've rambled on. All ideas above
are the property of the VapourSoft Corporation - where coding is best
I recently read Yoav Shoam's (sp?) article "Agent Oriented Programming" and
found it very interesting. It describes a language called Agent-0 which,
according to Shoam, is already implemented. The approach is clearly from
realtime industrial processing, but much of it would also be applicable for
Fredrik - Sounds neat, where's it availiable from or who published it?
Jason - you have some very nice points and your ideas on limiting
are interesting, but I can decided if they are too limiting. I'll write
after I ponder a bit.
Fredrik - Sounds neat, where's it availiable from or who published it?
OK, here are the facts:
Yoav Shoham, 1993, "Agent-oriented Programming", Artificial Intelligence 60,
pages 51-92, Elsevier Science Publishers
The author's e-mail address is: sho...@cs.stanford.edu
Another book, which I haven't read entirely but that seems really good is:
Peter Gardenfors, 1988, "Knowledge in Flux: Modeling the Dynamics of
Epistemic States", MIT Press, ISBN 0-262-57082-3
You will need to know quite a bit of AI and logic before attempting this