Commands available to the player

14 views
Skip to first unread message

David Fisher

unread,
Mar 4, 2005, 4:42:30 AM3/4/05
to
A previous thread raised the issue of which commands a player should be able
to enter in IF games ...

(The thread was "Boundlessness & IF",
http://groups-beta.google.com/group/rec.arts.int-fiction/browse_frm/thread/61da68b00ac94919/81c7b9c152a475d5).

To avoid a lengthy post, some relevant quotes from that thread will be
posted as a "reply" to this one, followed by some thoughts ... here is a
summary:

It would be cool to be able to perform a wide range of (potentially complex)
actions in an IF game ... there are several problems with this, though:

(1) Players would need to know that an action is actually possible. If they
do not believe a verb like "threaten" or "promise" will be understood, they
will never try it.

(2) If a puzzle or a fork in the story depends on an obscure action, then
the "guess the verb" syndrome happens.

(3) If nothing depends on the action, the extra labour if implementing it
may be for something that is never be seen by the player after all.

(4) Natural Language Parsing may be required to parse commands involving
complex actions - not just at the syntax level, but also semantics
(meaning).

(5) Handling all of these actions at every point in the story, and involving
every possible object (or pair of objects, character, state of the
character, etc.) could result in a huge number of situations for the
programmer to deal with.

(6) The plot could get damaged if the player is allowed unrestricted freedom
to mess with the things the future story depends on. This is not new, but it
gets harder to direct the player along the desired path (ie. moving the plot
forward to the next part of the story) if there are more things they can do
to get off the path.

David Fisher


David Fisher

unread,
Mar 4, 2005, 4:45:32 AM3/4/05
to
Here is the aforementioned (in the first post) list of quotes from the
"Boundlessness & IF" thread ...

I initially wrote:

>> I would love to do a lot more of the things the
>> characters do in movies and novels - clever uses of resources,
>> bowling over the enemy & running ("push orcs. run." doesn't
>> quite work), etc. Take note of the actions of the main
>> characters in the stories you watch and read, and see how
>> many you could express in an Interactive Fiction environment.
>> Imagine what it would be like if you could.
>>
>> But is that the right aim for IF ? (As an ultimate future goal,
>> that is ...)

Brandon Van Every replied (March 3rd 2005, 10:38 AM):

> You should decide your audience. With commands as sophisticated as
> "Bowl over the orcs," your audience seems to be yourself + your IF
> author buddies. I seriously doubt the general public is imaginative
> enough to type commands in this manner. Realize that what you enjoy
> as a writer is not the same thing as what an average player enjoys
> or knows to do. So, decide if this work is for you and your IF
> buddies, as some kind of "writer's club" artistic statement, or if
> it's for a broader audience.
>
> Choosing the narrowness or breadth of one's approach is hardly a
> unique problem to interactive fiction. Films and books are filled
> with these sorts of tradeoffs. The more obscure, the less often
> published or paid attention to.

Samwyse wrote (March 3rd 2005, 11:08 PM):

[ Context: talking about the command, "HOLD JEWEL OVER CLIFF THEN
THREATEN TO DROP IT." ]

> Then, you have to tell the player that these are valid actions.
> For the first, you'd probably want a simpler puzzle earlier in the
> game whose solution is to hold x over y, maybe HOLD POT OVER FIRE.
>
> For the second, you might have to resort to this:
>
> > HOLD JEWEL OVER CLIFF
> Bob begins to sweat visibly. "Please, don't threaten me. Dropping that
> jewel would be very bad."
> > THREATEN TO DROP IT.
> "OK", Bob shouts, "I'll tell you what you want to know!"

> Of course, the average player will then want to try holding everything
> over everything else in the game, not to mention wanting to threaten every
> NPC that they encounter with every possible action. After all, if you can
> THREATEN TO DROP JEWEL, then you would expect that you can THREATEN TO
> ATTACK BOB, THREATEN TO KISS BOB, THREATEN TO UNLOCK GRATE, THREATEN TO
> LOOK IN MAILBOX, THREATEN TO RESTART GAME, etc. This quickly gives rise to
> a combinatorial explosion.

Brandon wrote (March 4th 2005, 10:32 AM):

> One dilemma is how you're going to get players to think of using the
> abstract verb 'THREATEN'. If they never use it, all your hard work is
> potentially for nothing. It could be 'Easter Egg' work, but it's
> probably better to have people acutally access what you write,
> especially since this is a recurring problem for all sorts of verbs.

Ian Haberkorn commented (March 3rd 2005, 3:26 AM):

> As players, we are conditioned by so many "That's not a verb I
> recognise"'s (which also discourage the untrained IF-newbie), that we
> restrict our thinking to common actions. As a result, "Threaten to
> drop jewel" sounds to me like a classic guess-the-verb annoyance,
> though logical in a movie or novel plot. Boundless objects (let's
> implement a woman's purse realistically!) lead to a massive red
> herring disorientation.
>
> So, good, boundless-seeming IF probably needs to spend some time
> introducing and encouraging more complex actions before basing puzzles
> on them.

Brandon noted (March 3rd, 10:49 AM):

> American film audiences are trained by Hollywood to expect a
> Three Act Structure. The audience doesn't know that's the explicit
> industry standard structure, but they have an intuitive sense of it
> from seeing many movies. These become the default navigational cues.

[snip]

> "Training and retraining" problems are important for thinking about
> Game Design in general. It provides a rationale for why you do or
> don't need a tutorial level, how long it needs to be, and what it
> needs to include. For instance, it's pretty easy to educate gamers
> on First Person Shooter interfaces. So many games have the same
> interface, that there are recognizeable conventions.

David Fisher


David Fisher

unread,
Mar 4, 2005, 5:23:44 AM3/4/05
to
Aaargh, I'm out time right now ... here are some quick comments.

I originally wrote:

> It would be cool to be able to perform a wide range of (potentially
> complex) actions in an IF game ... there are several problems with this,
> though:
>
> (1) Players would need to know that an action is actually possible. If
> they do not believe a verb like "threaten" or "promise" will be
> understood, they will never try it.

TADS 3 includes the concept of a "topic inventory", where you are given
hints about the possible things you can talk about. This example is from
http://www.tads.org/howto/convbkg.htm:

>talk to bob
"Excuse me..."

Bob looks up from his ledger and takes off his glasses. "Yes?"

(You could ask about the antenna, or tell him about the lighthouse
or the giant rat.)

>tell about lighthouse

Possibly a similar kind of hint system could be implemented for non-obvious
actions available to the player - earlier in the game than when they are
required to solve a puzzle, etc. so that they do not give away the solution.

A more wild idea is to create a standard "action ontology" of words &
concepts which can be used in adventure games ... the game help could
display these hierarchically by type (eg. perception => listen, taste,
touch; communicate => ask, tell, demand, threaten, promise), or there could
be an easily-searched menu to insert the appropriate text. Possibly the menu
could be limited to displaying *only* the verbs appropriate to the context +
what the player has typed so far ... eg, if they have typed the word "tree"
then the "communicate" menu gets disabled.

More on this when I have some more time to post !

> (2) If a puzzle or a fork in the story depends on an obscure action, then
> the "guess the verb" syndrome happens.

Mutiple (logical) solutions to puzzles would be a good idea, rather than
depending on a single obscure one ...

As PJ wrote in the "Boundlessness in IF" thread (March 3rd 2005, 5:43 AM):

| ... every logical action or item that is required to advance the story
| MUST be implemented, in as many variations as can reasonably be devised
| by the player

> (3) If nothing depends on the action, the extra labour if implementing it
> may be for something that is never be seen by the player after all.

I think it would be great if there was a general "library" of these types of
complex actions, so that each IF author wouldn't have to reimplement them
... just a seed of a germ of a thought of an idea.

> (4) Natural Language Parsing may be required to parse commands involving
> complex actions - not just at the syntax level, but also semantics
> (meaning).

Very tricky ... more thoughts another day.

> (5) Handling all of these actions at every point in the story, and
> involving every possible object (or pair of objects, character, state of
> the character, etc.) could result in a huge number of situations for the
> programmer to deal with.

A library (as mentioned above) could help. Maybe situations could be dealt
with at a more abstract level - just like the standard TADS library handles
"light" for you without too much extra effort on your part. Part of the
"default" implementation for some actions could be to check whether the
*resultant state of the universe* is undesirable for the game (or the
current state of the game), and disallowing it - eg. if there was a Gourdian
Knot puzzle (spelling ?), any action that results in destroying the knot
(eg. chopping through it with a sword) could be disallowed. The standard
reply would be whatever is appropriate for the action, eg. "The knot is too
tough for your sword to cut through".

I'm not sure if this kind of idea (creating such a library) is actually
possible ... just some ideas for inspiration :-)

> (6) The plot could get damaged if the player is allowed unrestricted
> freedom to mess with the things the future story depends on. This is not
> new, but it gets harder to direct the player along the desired path (ie.
> moving the plot forward to the next part of the story) if there are more
> things they can do to get off the path.

Restrictions on player actions could be implemented as described above (in
section (5)) ...

The issue is probably bigger than that, though. The choices seem to me to
be:

(a) Think of plausible ways to keep the player on track, and in the last
resort simply forbid certain actions; or
(b) Allow the plot to be changed, depending on the actions of the player.

Option (b) is a lot harder, I think ... more thoughts later, though. Got to
go now !

David Fisher


David Fisher

unread,
Mar 4, 2005, 7:04:44 AM3/4/05
to
I previously wrote:

> It would be cool to be able to perform a wide range of (potentially
> complex) actions in an IF game ... there are several problems with this,
> though:

[snip problems 1-6]

... and:

(7) Red herrings could become harder to detect. If *everything* you try
seems to work intelligently, then it could be more difficult to work out
when you are on the wrong track.

As Ian Haberkorn wrote in the "Boundlessness in IF" thread (March 3rd 2005,
3:26 AM):

> Boundless objects (let's implement a woman's purse realistically!) lead to
> a massive red
> herring disorientation.

This is less of a problem if the plot can be dynamically changed (see (6)
(b) in previous post) ...

David Fisher


Message has been deleted

Jake Wildstrom

unread,
Mar 4, 2005, 1:21:47 PM3/4/05
to
The Prophet David Fisher known to the wise as da...@hsa.com.au, opened the Book of Words, and read unto the people:

>(1) Players would need to know that an action is actually possible. If they
>do not believe a verb like "threaten" or "promise" will be understood, they
>will never try it.

The entire ">THREATEN TO..." thread reminded me a great deal of the
TADS game _Rematch_, which implements a great number of open-ended
conversational commands (e.g. "DARE INES TO BREAK THE POOL CUE"). It
clues the existence of these to the player by having his friends
interact with each other in ways which use these commands, for
instance:

Ines and Nick are standing nearby. First, Ines takes the cue
ball. Then, Ines throws the cue ball up in the air, then its
brethren, expertly passing them hand over hand for a few moments to
your and Nick's applause. Pleased, she bows slightly and puts
everything back where it was.

Ines admits to you, "Nick whispered to me to juggle the pool balls
when you weren't looking," and laughs.

--
D. Jacob (Jake) Wildstrom, Math monkey and freelance thinker

"A mathematician is a device for turning coffee into theorems."
-Alfred Renyi

The opinions expressed herein are not necessarily endorsed by the
University of California or math department thereof.

David Fisher

unread,
Mar 5, 2005, 4:59:09 PM3/5/05
to
I originally wrote:

>> It would be cool to be able to perform a wide range of (potentially
>> complex) actions in an IF game ... there are several problems with this,
>> though:
>

> [snip problems 1-6 and 7]

I forgot the most obvious one:

(8) The "world model" would have to handle all of the different actions
available to the player ... eg. notoriously tricky things like rope objects,
fire, liquids (eg. flooding a multi-level underground cave: where does the
water go & how fast ?)

Clearly there would be a limit to how detailed the world model would need to
be to satisfy most people (eg. chemical reactions, food recipes that taste
nice and detailed anatomical structure are all out). Just enough so the
character could do anything that seems "reasonable" for someone in their
situation: breaking up a wooden chair to make firewood, digging a hole in
the ground, leaving a mark on a wall, setting a trap, making a rudimentary
lathe (OK, skip that one - just thinking of the movie Galaxy Quest :-) ) ...

There would be various "hooks" which the IF author / programmer could plug
into, and it could be possible to disable things you don't want in your game
(like the need for food & sleep) - but the idea would be to let the library
handle most of the complexity and not to have to think of everything
yourself.

Are there any problems with making the world model more and more complex ?
(Assuming it is done well & doesn't overwhelm the programmer with too many
things for them to think about).

I suppose speed and file sizes could become an issue (which could be solved
/ helped by including a standard "world model" in the intrepreter itself -
or at least, in a dynamically linked library written in C. Then there is the
problem of customising / overriding parts of the world model for a
particular game).

Any other problems with having a complex world model ?

David Fisher


David Fisher

unread,
Mar 5, 2005, 5:24:59 PM3/5/05
to
Poster pointed out:

>>> Boundless objects (let's implement a woman's purse realistically!)
>>> lead to a massive red herring disorientation.
>>
>> This is less of a problem if the plot can be dynamically changed (see (6)
>> (b) in previous post) ...
>>
>

> OK, so let's say that the plot can be dynamically changed. You, as the
> author, still have to think about all of the potential directions that a
> plot could go. That's even more work for the author. It seems that all
> the ideas you want to pursue create an avalanche of coding for the IF
> author; so without the tools, very few (if any) people are going to try
> to code the world. Tangential? Perhaps. But it sure effects how soon
> we're actually going to see these ideas implemented.

True ... but there may be other ways to program IF that we haven't invented
yet, that don't necessarily require every branch of the "combinatorial
explosion" of possibilities to be explicitly programmed by the author.

I have been reading a bit about the idea of a "plot manager" which knows
about interesting story lines and takes the plot in that direction; some
references:

* The Oz project -
http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/oz/web/papers/CMU-CS-97-156.html#drama_manager

* "Can computers create literature ?" -
http://www.mm.rpi.edu/SELPAP/CHESSEASY/chessistooeasy.pdf

* A discussion -
http://grandtextauto.gatech.edu/2003/05/18/chopped-fresh-not-canned/

A quote from this page:

"My guess is that a way to progress towards richer, more deeply interactive
fiction, will be, as usual, somewhere in between the ends of the spectrum -
somewhere between large-ish chunks of hand-authored content and pure
procedural generativity.

"Human authors will still need to pre-write content, but we need to make the
grain size smaller. Pieces of narrative content need to be no bigger than
sentences, ideally sub-sentence phrases or words. We need to annotate these
little pieces of content in some descriptive way, allowing us to write code
that "knows" how to combine and recombine them into coherent, meaningful,
varied, larger-sized chunks (e.g., sequences of narrative, dialog, action,
etc). Once individual pieces of content are fine-grained enough, players /
readers are finally free of that straight-jacketed feeling. It allows for
the experience to vary and change on a moment-by-moment basis."

David Fisher


samwyse

unread,
Mar 6, 2005, 8:15:06 AM3/6/05
to
On or about 3/5/2005 4:24 PM, David Fisher did proclaim:

> True ... but there may be other ways to program IF that we haven't invented
> yet, that don't necessarily require every branch of the "combinatorial
> explosion" of possibilities to be explicitly programmed by the author.

Objects are already usually derived from classes, so new objects inherit
a lot of behavior; so one trick would be to arrange actions in a class
hierarchy and have new actions derive from abstract classes. If, for
example, clairvoyance is defined as a new sensory action (one that won't
rearrange the object tree or change the internal states of any objects),
then existing objects have a chance to to "do what I mean" without a lot
of explicit programming.

A second trick, which I've alluded to elsewhere, is to define a rich set
of action modifiers. No, not adverbs, I mean things like TELL BOB TO DO
SOMETHING or PRETEND TO DO SOMETHING. Both of these subtly change the
way that a pre-existing DO SOMETHING operates. Assuming that the
underlying lirary is written well (a pretty big 'if', I admit), either
or both could be added to an existing game without breaking anything.


samwyse

unread,
Mar 6, 2005, 8:41:07 AM3/6/05
to
On or about 3/5/2005 3:59 PM, David Fisher did proclaim:

> (8) The "world model" would have to handle all of the different actions
> available to the player ... eg. notoriously tricky things like rope objects,
> fire, liquids (eg. flooding a multi-level underground cave: where does the
> water go & how fast ?)

Newtonian physics could be modeled, but there is so much math involved
that you may as well implement a 3D GUI and write a first person
shooter. (Half-life 2, anyone?) So, it sounds like you want to model
Aristotelian physics.

"Aristotle held the idea of empty space to be a conceptual
impossibility. In Aristotelian physics space is nothing but an
abstraction we use to compare different arrangements of the bodies
constituting the plenum." Which, if you think about, is a pretty good
describtion of how the object tree works.

"Also, Aristotle insisted there is no time without change." So, sensory
actions don't "use up" a turn, which is typical of many games.

(The above quotes are from
http://www.321books.co.uk/encyclopedia/physics/ancient/aristotelian.htm)

Thomist philosophy, which derives from Aristotle, is also useful in the
construction of world models. "Against all this the philosophy of St.
Thomas stands founded on the universal common conviction that eggs are
eggs." http://en.wikipedia.org/wiki/Thomist_philosophy finishes with a
good explaination of the right and wrong ways to fit eggs into your
game's class hierarchy. Plus, there's a explaination of why a game's
author is that game's God.

David Fisher

unread,
Mar 8, 2005, 8:31:47 PM3/8/05
to
Samwyse keenly observed (March 7th 2005 12:15 AM):

> Objects are already usually derived from classes, so new objects inherit a
> lot of behavior; so one trick would be to arrange actions in a class
> hierarchy and have new actions derive from abstract classes. If, for
> example, clairvoyance is defined as a new sensory action (one that won't
> rearrange the object tree or change the internal states of any objects),
> then existing objects have a chance to to "do what I mean" without a lot
> of explicit programming.

Great idea ...

Looking at something through a telescope or a key hole would work the same
way (ie. general situation = "not aware of being observed").

> A second trick, which I've alluded to elsewhere, is to define a rich set
> of action modifiers. No, not adverbs, I mean things like TELL BOB TO DO
> SOMETHING or PRETEND TO DO SOMETHING. Both of these subtly change the way
> that a pre-existing DO SOMETHING operates. Assuming that the underlying
> lirary is written well (a pretty big 'if', I admit), either or both could
> be added to an existing game without breaking anything.

Hmmmm .... (- that was a thoughtful "hmm").

Thanks for the reflections,

David Fisher


David Fisher

unread,
Mar 8, 2005, 9:12:01 PM3/8/05
to
Samwyse propounded (March 7th 2005, 12:41 AM):

> On or about 3/5/2005 3:59 PM, David Fisher did proclaim:
>
>> (8) The "world model" would have to handle all of the different actions
>> available to the player ... eg. notoriously tricky things like rope
>> objects, fire, liquids (eg. flooding a multi-level underground cave:
>> where does the water go & how fast ?)
>
> Newtonian physics could be modeled, but there is so much math involved
> that you may as well implement a 3D GUI and write a first person shooter.
> (Half-life 2, anyone?) So, it sounds like you want to model Aristotelian
> physics.

Some thoughts ...

An AI project called CYC was started quite a while ago - one of its aims was
to create a model of "common sense reasoning" by creating a (huge) database
of how the universe works, eg. if you drop something fragile it will break
(apologies if I am misrepresenting the project; this is just my
understanding of it).

One issue I have with that approach is that *the way knowledge is
represented* is really important in AI / computer programming, and affects
what you can usefully do with that information ... so I would want to create
a "world model" based on the way it is intended to be used, rather than
starting with an abstract model of physics, etc. This is not necessarily to
contradict anything Samwyse is saying, just a comment ...

So, I think I would approach this by asking what the player might reasonably
expect to be able to do in the game world - or by asking what would be
unreasonale to expect. Some unreasonable things might include:

* Chemical reactions, physical properties like boiling & freezing points,
etc (who says the world is made of "atoms", anyway ?)
* Complex construction, eg. making a machine
* Exact amounts of "stuff", eg. filling a container 5/17 full of water
(maybe half full is OK ?)
* Detailed anatomy (you probably can refer to your "eyes" and "feet", but
"irises" and "toenails" are too much)

Some OK things might include:

* Setting fire to something (fire spreads (but not instantaneously), leaves
behind ashes and charred objects, can be put out, weakens structures like
buildings, etc)
* Simple changes to objects / the environment, eg. sharpening a stick,
digging a hole
* Access to common objects, eg. a tree branch (in a forest), a pebble (on a
road), dirt, etc
* Setting basic traps, eg. a tripwire, a camouflaged pit

Now where on earth can I get a list of "reasonable things for a character to
do in a game" ... ?

David Fisher


David Fisher

unread,
Mar 10, 2005, 2:35:34 AM3/10/05
to
I recently wrote:

> TADS 3 includes the concept of a "topic inventory", where you are given
> hints about the possible things you can talk about.

[snip]

> Possibly a similar kind of hint system could be implemented for
> non-obvious actions available to the player - earlier in the game than
> when they are required to solve a puzzle, etc. so that they do not give
> away the solution.

I found a recent thread that talks about this kind of idea ("Suggesting
Actions", initiated by Steve Beslin on September 23rd 2004):
http://groups-beta.google.com/group/rec.arts.int-fiction/browse_frm/thread/f2b5a990761078e2/bc344663bfddd98c#bc344663bfddd98c

> A more wild idea is to create a standard "action ontology" of words &
> concepts which can be used in adventure games ... the game help could
> display these hierarchically by type (eg. perception => listen, taste,
> touch; communicate => ask, tell, demand, threaten, promise), or there
> could be an easily-searched menu to insert the appropriate text. Possibly
> the menu could be limited to displaying *only* the verbs appropriate to
> the context + what the player has typed so far ... eg, if they have typed
> the word "tree" then the "communicate" menu gets disabled.
>

> More on this when I have some more time to post.

Not much interest shown in this comment (ie. no replies posted), so maybe
another time ...

(Don't read the above as a "hurt" comment, BTW ! )

David Fisher


Reply all
Reply to author
Forward
0 new messages