more character interaction ideas

1 view
Skip to first unread message

Mike Roberts

unread,
Mar 20, 1993, 9:44:44 PM3/20/93
to
Another possibility for adventure game character interaction is to use
directed dialog, like some graphical adventure games do. Rather than
providing a small set of character interaction "primitives" (ASK ABOUT,
TELL ABOUT, SHOW TO, GIVE TO, KILL WITH), the game offers a separate
"talk to" mode for conversations. The only command is TALK TO, which
puts you in talk-to-mode, which is essentially a menu system: you
select what you want to say from a list of options. Here's how it
might look in a text adventure game.

You're in a one-room schoolhouse. The schoolmarm is here.

>talk to schoolmarm
1 - "I'd like to enroll in your class."
2 - "What do you know about the bank robbery?"
3 - "Where's the principal's office?"
say>1

"I'd like to enroll in your class."
The schoolmarm looks at you skeptically. "You're a little
old, aren't you?"

1 - "You're only as old as you feel!"
2 - "I was forced to run away and join the circus at age 5.
I never learned to read."
3 - "Just kidding. I'm really here because I heard you
were at the bank when it was robbed."
say>


This looks a little weird in a text adventure context, although I
suspect that's just because it's unfamiliar, and not because it's bad.
The disadvantage of this style of dialog is that it constrains the
player to the set of statements that you've pre-scripted. One might
even complain that it destroys the illusion of real interaction.

However, isn't it true that the player is constrained to what you've
pre-scripted anyway? If you haven't programmed a response for ASK
SCHOOLMARM ABOUT BANK, she's going to say "I don't know much about that".
If you type "schoolmarm, weren't you at the bank the other day", the
parser is going to just look at you blankly and display [TADS-2013:
invalid sentence structure] -- and that's if it's a courteous parser
that tells you what it didn't like rather than pretending it had some
clue what you meant.

Furthermore, there's no reason these menu trees have to be static.
They can easily have a memory of past conversations -- and, more
importantly, past actions.

I personally think that this style of dialog can enhance, not destroy,
the illusion of real interaction. It allows the player to use the full
range of real human interactions - players can:

- ask a question without revealing how much they already know
- pretend to know more than they already do
- lie
- threaten a character
- insult a character
- flatter a character
- ask specific questions
- make specific offers
- make specific requests
- convey specific information
- make jokes

Granted, you only get the subset of interactions that have been pre-scripted,
but this will almost invariably be a lot broader than the fixed spectrum
available with ASK ABOUT/TELL ABOUT/SHOW TO/GIVE TO/KILL WITH.

Comments?
--
Mike Roberts mrob...@hinrg.starconn.com
High Energy Software 415 493 2430 (Voice)
PO Box 50422, Palo Alto, CA 94303 415 493 2420 (BBS)

Paradise is a place exactly like where you are right now, only
much, much better.
--- Laurie Anderson

Jamieson Norrish

unread,
Mar 21, 1993, 4:04:02 AM3/21/93
to
In article <732681...@hinrg.starconn.com>
mrob...@hinrg.starconn.com (Mike Roberts) writes:

[Menu trees for dialog idea and examples deleted.]

Furthermore, there's no reason these menu trees have to be static.
They can easily have a memory of past conversations -- and, more
importantly, past actions.

This is a good idea, and I think that if enough menus are used, it
could actually work very well. There are two things I would do
differently from the method you used in your examples (which may not
have fully expressed your own ideas on the subject, I realise) are the
having multiple, concurrent menus, and not using the actual speech in
the menus. That is, there should be a menu for what subject you
talk/ask about, a menu for how you say it, a menu for what you do
while you say it, etc etc. One from each of these could be selected
(and in the case of subject, must be), and the final combination would
determine the actual words of what you say.

It's certainly something that would take a little getting used to,
though.

Jamie

Erik Max Francis

unread,
Mar 22, 1993, 2:45:42 AM3/22/93
to
mrob...@hinrg.starconn.com (Mike Roberts) writes:

> >talk to schoolmarm
> 1 - "I'd like to enroll in your class."
> 2 - "What do you know about the bank robbery?"
> 3 - "Where's the principal's office?"
> say>1

Either this, or the Ultima IV treatment of interaction where people say
something, and you prompt them with keywords. i.e.,

>talk to schoolmarm

"Yes, what can I do for you?"

>enroll

"I'd like to enroll in your class."

The schoolmarm looks at you skeptically. . . .

This is rather interesting, because you don't have all of the options
laid out in front of you; in other words, if the schoolmarm has a magic
whistle that you have to get at some point in the game, this won't show
up as an option before you know about it.

Of course, with the previous version, you can just keep track of what the
player should know (i.e., by what they've done and who they've talked
to), and then when you talk to the schoolmarm after you've performed the
proper prerequisites, you would then be given the option

4 - "What about that there magic whistle I've been hearing about?"

I think I like the keyword version, in that it's more interaction; you
aren't following the script in the exact same way. But they both
accomplish the same goals.

And, of course, in the kewyord approach, you can always choose to ignore
keywords that the player shouldn't know yet -- i.e., if you haven't
performed the prerequisites, the keyword WHISTLE won't get you anywhere
("'What whistle?' she asks innocently").

This is an interesting thread, as the topic applies to games other than
pure interactive fiction -- such as Ultima or possibly even ROGUE-style
games, to name a few.


Erik Max Francis, &tSftDotIotE ...!apple!uuwest!max m...@west.darkside.com __
USMail: 1070 Oakmont Dr. #1 San Jose, CA 95117 ICBM: 37 20 N 121 53 W / \
If you like strategic games of interstellar conquest, ask about UNIVERSE! \__/
-)(- Omnia quia sunt, lumina sunt. All things that are, are lights. -)(-

Molley the Mage

unread,
Mar 22, 1993, 3:57:38 PM3/22/93
to
In article <blah>, m...@west.darkside.com (Erik Max Francis) writes:
> mrob...@hinrg.starconn.com (Mike Roberts) writes:
>
>> >talk to schoolmarm
>> 1 - "I'd like to enroll in your class."
>> 2 - "What do you know about the bank robbery?"
>> 3 - "Where's the principal's office?"
>> say>1
>
> Either this, or the Ultima IV treatment of interaction where people say
> something, and you prompt them with keywords. i.e.,

[ second example deleted ]

> This is rather interesting, because you don't have all of the options
> laid out in front of you; in other words, if the schoolmarm has a magic
> whistle that you have to get at some point in the game, this won't show
> up as an option before you know about it.
>
> Of course, with the previous version, you can just keep track of what the

> player should know [...]

This is a topic which is near and dear to my own heart, since most of
my programming work in the last few months has been toward creating a
more useful and enjoyable text conversation system.

In my own upcoming game, Challenge of the Czar, I implement
conversation as sort of a cross between Mike Roberts' menu system, the
keyword system, and a few other abstract ideas. The system is entered
with the TALK TO (person) command from the general parser. This
throws the game into "conversation mode" which is a new screen:

At the top of the screen is a description of the person you are talking
to, which might change during the conversation (if it were a graphic
adventure, this would be replaced by a picture of the person, who
might frown or smile at things you say, or wink as they say something
cute to you).

At the bottom of the screen is the interactive portion of the window.
This is where the player decides what he wants to say. This is
accomplished using a menu, but several of the options contain
fill-in-the-blank topics which allow the player to query the person
about anything he likes (unfortunately this opens me up to that awful
thing, the "stock response" for things the person knows nothing about,
but hopefully the number of menu choices will prevent a lot of this.)
So, if you were talking to a psychiatrist, the window might show:

===
1) "Nice weather we've been having lately."
2) "Had any interesting or unusual patients of late?"
3) "Where were you on the night of the 13th?"
4) "I think that Freud was really an imbecile. Do you agree?"
5) "I'm curious to know about ..."
6) "Let me show you this ..."

>
===

At the prompt, the player types the number of his choice. If (5) or
(6) are chosen, then the player must also give a topic or item (this
can be specified with the number, like "> 5 the murder" or the program
will prompt for it will a fill-in-the-blank sentence, with the cursor
in the "blank". Thus you can ask about non-menu topics ("I'm curious
to know about the murder.") or items ("Let me show you this smoking
gun.")

I'm thinking about adding the GIVE item to the menu choices also;
right now, to give items to someone you do the standard thing at the
"regular" prompt.

And, of course, to end the conversation you can type "BYE" at the
prompt. This will get you a farewell message which varies depending
on what menu choices you selected during the conversation.

Thoughts?

In the central (and largest) window of the screen is a window which shows the
course of the conversation. This window can be scrolled back through,
in case you forget what the person said a little while ago
(conversations can get quite lengthy, for reasons which I will discuss
later). Your "entries" into the conversation are preceded by the
prompt >, just as if you had typed them at the real game prompt. The
replies of your conversational partner are given in quotation marks.
Thus, the central window might show (speaking to a psychiatrist):

===
> Nice weather we've been having lately.

"That's true." (the psychiatrist smiles.) "Although I suspect that
your speaking about the weather is really just an overture for a
deeper discussion of the recent mysterious deaths of seventeen of my
patients."
===

And so on. I've been thinking about changing this to read more like a
book -- the player's statements would be given some accompanying text,
since they are chosen from the subset of conversational topics that I
allow. Thus, the preceding "> Nice weather" bit might instead read:

===
You study the psychiatrist for a moment, wondering if he suspects that
you are here to talk about the murder investigation. Hoping to avoid
angering the man, you decide on a noncomittal conversational gambit: "Nice
weather we've been having lately."

He studies you for a moment, and you briefly believe that your attempt
at deception has succeeded. Then he smiles. "That's true,
although..."
===

This might or might not make the man angry -- I maintain the state of
each character in relation to the player using two things. First of
all, each character has a numeric "state" which represents the
feelings of that character toward the player. This number ranges from
100 (admiration and hero-worship) to -100 (hatred and instant
violence). Zero represents non-committal, unconcerned, or simply
"neutral" people. The characters are
all initialized to various values in the beginning of the game,
depending on their own personalities (which I hope are also made
apparent by their conversations!)

These values are then adjusted using a very simple technique: Each
menu choice that is available has a "weight" associated with it that
is added to the character's state when that menu option is chosen.
Thus, asking about the weather is not likely to change the
character's state at all (unless he hates small talk, of course) while
telling the psychiatrist that Freud is a drooling moron might cause
his state to drop fifty points (or go up fifty, depending on the
psychiatrist, of course :-) ). Since there are only a few objects
which each character will react to in "special" ways, each of those
objects has a weight also, as do various topics which the player might
specify himself. Thus showing the groupie your signed pair of Elvis'
underwear is likely to change his state to 100 immediately, while
asking the psychiatrist about that cocaine in his bathroom will
probably really make him angry.

There are also certain situations in the game that kick you into
conversation mode automatically: after all, the characters don't just
stand around and wait for you to talk to them. For example, a
shopkeeper might attempt to engage you in conversation when you enter
her store. If you brusquely brush her off, her state will be
adversely affected and the prices might go up, while if you respond
with a friendly word and a polite query about the merchandise, she
will like you more and adjust the prices downward a few coppers. To
check and see, all the program does is look at her state. There are
also a few situations where characters will rush up to you
breathlessly and blurt something out ("My house is on fire!") and you
must respond in one way or another. To increase the realism, I've
thought about putting a time limit on answering certain questions, but
this might penalize slow readers. (For example, someone is not going
to sit there for 45 minutes while you deliberate about his burning
house. However, this seems to contradict the traditional thought that
interactive fiction only advances when the RETURN key is pressed.)

The conversation mode also features a user-selectable "help" feature.
If "help" is enabled, then key words and phrases in the other person's
conversation (topics which I feel are critical to the game) will be
italicised. This is probably unnecessary and might offend veteran
players, so the feature begins in the "off" setting, but I feel that
it might be appreciated by some people.



> And, of course, in the kewyord approach, you can always choose to ignore
> keywords that the player shouldn't know yet -- i.e., if you haven't
> performed the prerequisites, the keyword WHISTLE won't get you anywhere
> ("'What whistle?' she asks innocently").

In my game, when the player gives a keyword that he's got no way to
know, he gets a sarcastic response, like "How could you possibly know
that? You must be a powerful wizard indeed!" or "Have you been
reading the hint book again?" Of course, it's possible for the player
to guess or just hit on some topics which aren't enumerated, and
really there are almost no "magic words" which evoke a special
response from a particular character. The only exception to this is
one character who has an item that he doesn't want anyone to know that
he possesses, and whose existence you must gradually deduce. Then you
drop the bombshell on him, to interesting results.

This brings up the whole issue of "conversational memory" and plot
flags -- the player can't know about the whistle until the satyr
describes it to him and says that the shopkeeper has it, for example.
In a Sierra game (such as King's Quest 6) this feature is implemented
-- although you can only "talk" to someone and hear their single
conversational "blurb" (or a cycle of several), the "blurb" will
change if you have performed certain actions, so that going back and
talking to people later in the game is often productive. The same
feature is implemented in my game using a series of flags. For one
thing, all the menu choices the player picks are "flagged" and won't
be shown again. Thus you can't ask someone about the weather 300
times and get the same canned response. Once you have exhausted my
entire hierarchy of menu options, only the "fill-in-the-blank" ones
will remain, unless there are "hidden" menu options. "Hidden" options
are ones which can only be reached after you have performed a certain
action, which might be reaching a specific menu option in conversation
with a different character. The best way to do this I've found is
just a bunch of flags, but there has to be a nicer implementation.

At any rate, I feel that the combination of "state" (which determines
a lot of the NPC responses, as well as limiting certain menu options
from appearing) and special flags creates a very enjoyable
conversational mode, especially when you include the user-typed
keywords and showing/giving of objects. I think that the addition of
this Conversation Mode to my game will make it that much more
enjoyable.

As to my earlier comment about the large number of "useless" or
"flavor" messages in the database, I feel that if a character uses a
topic (noun) in one of his or her responses, then that character ought
to have something else to say about that topic -- within reason, of
course. This is comparable to the Encyclopedia Frobozzica that
Infocom used in Sorcerer and Zork Zero -- there were a *tremendous*
number of topics which bore no relation to the game but were in there
for completeness. In a like fashion, I feel that any noun in the
description of a room should be able to be examined further. Thus I
support multiple levels of description both in the "game world" and in
the "conversational world."

A game composed entirely of conversation with various characters,
trying to learn everything you can (perhaps setting them against one
another?) -- that is an interesting idea. No travel or "object"
puzzles -- just conversation. Any opinions?



> This is an interesting thread, as the topic applies to games other than
> pure interactive fiction -- such as Ultima or possibly even ROGUE-style
> games, to name a few.

Yes, indeed. The only way to make "interactive fiction" more
interactive is to make the characters more realistic and believable.
They must become more than 2-dimensional "responders" who only do
something when you show them a specific objects, and they must have
their own agendas. These "agendas" don't have to be very complicated
-- after all, we want the player to finish the game, not the NPC's! --
but the more believable the characters are, the more the player will
be able to either like, dislike, love, or hate them. Just like in a
novel, characterization is done through appearance and reactions --
hence the window showing the changing visual description of the
character -- and also through what the character says.

Really, I view my model for conversation as sort of a very primitive
expert system -- a series of rules and options which define the
conversational "space" which you can span with that particular
character. There are specific defined variables for each character,
and the combination of those variables and the menu options chosen or
the topics typed in by hand produces an output conversational "blurb"
which might have its own new menu choices associated with it (for
example, when a character asks you a question, the only appropriate
menu options are the various answers you could give, not "how's the
weather.")

I think I've got a pretty good system going here. Any thoughts?

Sean
--
M. Sean Molley, CS Department, Western Kentucky University, Bowling Green, KY
RealSpace : (502) 745-4027 | Bitnet : MOL...@WKUVX1.BITNET | Life : Sucks
"I'm not good in groups. It's hard to work in a group when you're omnipotent."
-- Q, "Deja Q"
"Baldrick, you wouldn't know a subtle plan if it painted itself purple and
danced naked on a harpsichord singing 'Subtle Plans Are Here Again.'"
-- Blackadder

Reply all
Reply to author
Forward
0 new messages