Fiction that is interactive

9 views
Skip to first unread message

Aaron A. Reed

unread,
Sep 24, 2006, 3:50:56 PM9/24/06
to
I have a concept floating around for a much more open-ended tool for
creating interactive fiction in the sense of "fiction that is
interactive," rather than one designed for producing text adventures.
These are just musings rather than structured plans, but I thought I'd
post to see if it sparks any interesting conversation.

Such a system would have functionality like:
-- Full typographical control for the author, including embedded fonts,
the ability to print text anywhere on the screen, etc., much like what
PDFs allow for, or what typesetters have had for centuries.
- Full knowledge of what has already been printed and what text is
currently onscreen, and the ability to change it.
- Advanced string manipulation tools.
- Built-in functionality for text variation and easy control of
processes from within strings. (Inform 7's bracket conditioning on
speed.)
- The ability to easily connect words or phrases in string sequences
with objects or concepts, perhaps via a color-coded tool in an IDE, so
that the work has a context for any word it itself uses.
- If it comes with a built-in library at all, it would be easy to
completely disregard this and write your own rules for responding to
text in any way you want.
- Ability to support other model than the classical turn-based
approach.

In short, there are ways of telling interactive stories with text that
the current IF authoring systems aren't designed to explore. It would
be interesting to see what could be created with a system that allowed
authors to turn conventional wisdom entirely on its ear.

Note that this is in no way a slight on the existing IF systems, which
do what they were designed to do extraordinarily well. I would just
love to see a system where pushing the limits and trying strange things
wasn't called an "abuse." ;)

Any interest? Are there things you've always wanted to be able to do
with IF, but couldn't? Or am I the only crazy one?

georgeo...@gmail.com

unread,
Sep 24, 2006, 4:28:41 PM9/24/06
to
I agree that it's interesting to think of new tools to write IF with,
but my first thought is what is it that -you- think could be done with
a tool such as you describe? What kind of IF could this tool create?

You might be interested in http://www.gimcrackd.com if you haven't seen
it already.

-
George

José Manuel García-Patos

unread,
Sep 24, 2006, 5:53:55 PM9/24/06
to

> Such a system would have functionality like:

> -- Full typographical control for the author, including embedded fonts,
> the ability to print text anywhere on the screen, etc., much like what
> PDFs allow for, or what typesetters have had for centuries.

Except this one, I don't know exactly what the functionalities you stated
mean exactly. Could you put some practical examples of them, please?
Thanks.

Also, check this thread:

http://groups.google.es/group/rec.games.int-fiction/browse_thread/thread/5ecf412dbb9386c4/148598ef231e0084?lnk=st&q=narcolepsy+review&rnum=1&hl=es#148598ef231e0084.

All The Best.
José Manuel García-Patos
Madrid

Emily Short

unread,
Sep 24, 2006, 6:21:48 PM9/24/06
to

Aaron A. Reed wrote:
> Such a system would have functionality like:
> -- Full typographical control for the author, including embedded fonts,
> the ability to print text anywhere on the screen, etc., much like what
> PDFs allow for, or what typesetters have had for centuries.
> - Full knowledge of what has already been printed and what text is
> currently onscreen, and the ability to change it.
> - Advanced string manipulation tools.
> - Built-in functionality for text variation and easy control of
> processes from within strings. (Inform 7's bracket conditioning on
> speed.)

Okay; so far this is sounding mostly like something that one could do
with a combination of php, html, and related tools. (I know of
AJAX-based web chat programs, for instance, that keep a database of the
text entered so far, run filters on it to change it in various ways,
and then send back a formatted page for the browser to display -- which
doesn't sound very much like standard IF, but *does* sound kind of like
what you're talking about.)

You haven't really talked about whether the text produced would be
based on any underlying model, though your comment about "if there's
any standard library..." makes it sound as though the answer is "no".

> - The ability to easily connect words or phrases in string sequences
> with objects or concepts, perhaps via a color-coded tool in an IDE, so
> that the work has a context for any word it itself uses.

Now this is interesting. What would you do with this information?

Jim Aikin

unread,
Sep 24, 2006, 9:25:54 PM9/24/06
to
"Aaron A. Reed" <aar...@gmail.com> wrote in message
news:1159127456.7...@i3g2000cwc.googlegroups.com...

>
> the ability to print text anywhere on the screen, etc., much like what
> PDFs allow for, or what typesetters have had for centuries.
> - Full knowledge of what has already been printed and what text is
> currently onscreen, and the ability to change it.

I'm not 100% sure what you're envisioning, but it sounds as if you'd like
the software to be able to manipulate text that's ALREADY on the screen/page
display. For a simple example, let's suppose I've found a letter in the game
that's written in invisible ink, and let's suppose I've figured out how to
render the ink visible. But the ink is going to fade quickly to invisibility
again. So the text block in which the message is printed gradually fades to
gray and then to white while the user watches.

That would be cool ... but: One doesn't really want, as a player, to have to
keep rereading and re-scanning previous pages in order to find out if
anything has happened there. One wants to be able to read the most recently
presented paragraph and move on. Naturally, things may happen offstage. The
ink on the letter may fade, so that the next time you try to read it you
can't. But the display in the game delivery system probably shouldn't
reflect that change of state, because playing the game would get horribly
confusing.

Or maybe I'm missing what you're getting at entirely. Just having a brain
jaunt here.

--Jim Aikin


Aaron A. Reed

unread,
Sep 25, 2006, 12:08:25 AM9/25/06
to

Jim Aikin wrote:
> I'm not 100% sure what you're envisioning, but it sounds as if you'd like
> the software to be able to manipulate text that's ALREADY on the screen/page
> display. For a simple example, let's suppose I've found a letter in the game
> that's written in invisible ink, and let's suppose I've figured out how to
> render the ink visible. But the ink is going to fade quickly to invisibility
> again. So the text block in which the message is printed gradually fades to
> gray and then to white while the user watches.
>
> That would be cool ... but: One doesn't really want, as a player, to have to
> keep rereading and re-scanning previous pages in order to find out if
> anything has happened there. One wants to be able to read the most recently
> presented paragraph and move on. Naturally, things may happen offstage. The
> ink on the letter may fade, so that the next time you try to read it you
> can't. But the display in the game delivery system probably shouldn't
> reflect that change of state, because playing the game would get horribly
> confusing.

Your point is taken, but to play devil's advocate, aren't you assuming
what the reader wants here, based on the way traditional linear
narrative works? The way we've always read in the past is by reading
the current paragraph, then moving on to the next one until the end.
Nonlinear fiction doesn't necessarily need to follow this dictum.

Imagine a game where the PC is mentally unstable, and at some point a
character claims a thing the player earlier witnessed never happened.
The player scrolls back through the buffer to find *different text*
replacing what he had personally played through and experienced. A
powerful way to make a connection with the reader.

Another idea: an experimental game in which an entire transcript is
presented right from the beginning, but with a losing ending. The
player can move through the whole game at will and try changing various
commands to see how it affects the output. This would be an entirely
different experience than classical IF.

Some other, more practical thoughts: the player can press tab to see
all the nouns she can interact with light up. The player can
double-click on something interesting to have more details be instantly
inserted into the flow of the paragraph. Using the arrow keys, the
player can change which way they are facing, and as they do words like
"in front of you" or "off to your left" dynamically change on the fly.

Some of these may seem like gimmicks, but a broader toolset might open
up new ways of interaction that haven't been explored before.

Aaron A. Reed

unread,
Sep 25, 2006, 12:40:17 AM9/25/06
to

Emily Short wrote:
> Okay; so far this is sounding mostly like something that one could do
> with a combination of php, html, and related tools. (I know of
> AJAX-based web chat programs, for instance, that keep a database of the
> text entered so far, run filters on it to change it in various ways,
> and then send back a formatted page for the browser to display -- which
> doesn't sound very much like standard IF, but *does* sound kind of like
> what you're talking about.)

There is a whole world of hypertext fiction, new media experiments, and
wiki or other web based projects that have used various aspects of what
I'm suggesting and more. I think the interesting notion is that all of
these systems have been programmed from scratch. The advatage of an
Inform-like environment is that, like with traditional IF, a whole new
subset of people who wouldn't have the technical skills to build
something like that from scratch now have a way to do it.

> You haven't really talked about whether the text produced would be
> based on any underlying model, though your comment about "if there's
> any standard library..." makes it sound as though the answer is "no".

I envision the system as being one which you could easily add
extensions to make use of standard world models. Building up a
comprehensive one to provide the same functionality as a TADS or Inform
would take time, of course, but the advantage would be that the author
wouldn't be limited to just that library. You could build a library
that would exactly simulate the Scott Adams parser and output, for
example, for those so inclined. Or devise your own from scratch, where
inserting containers into themselves is in vogue.

You could also use this system to implement something more like
hypertext. Or an interactive radio play, if multimedia capabilities
were built in. Or even a traditional novel. It's basically just a
broader tool: Photoshop, instead of After Effects.

> > - The ability to easily connect words or phrases in string sequences
> > with objects or concepts, perhaps via a color-coded tool in an IDE, so
> > that the work has a context for any word it itself uses.
>
> Now this is interesting. What would you do with this information?

Mainly, it would get around one of my conceptual frustrations with
writing IF, which is that games only know words you explicity program
into them, even if they themselves have just used them. A while ago I
was fiddling around with an I6 extension that would provide this sort
of functionality, with code something like this:

Room Meadow
with description [;
PL("$1 Under $2 the pale moonlight, $1 dewdrops glisten across $3 the
grassy meadow. $4 A path wends its way across $3 the grass $5 from the
forest $6 into some rocky plains, $7 and just off $4 the path $7 to the
north is a small gully.");
],
word_map 1 dewdrops 2 moon 3 meadow 4 path 5 forest 6 plains 7 gully,

"PL" would then be a routine that would process the string word by
word, adding each word after a $# key to a dictionary associated with
the corresponding object in the word_map property, and then printing
it. This was going to be part of a parser experiment in telling the
player "Just type any word you see. Use verbs if you like." Typing in
an object word would describe it; an exit word like "path" in the
example would go in that direction. I was forced to abandon this fairly
early on mainly because it was going to be insanely difficult to code
properly, but also because even if I got it working I would very
quickly run into z-machine limits (on arrays and dictionaries, just for
starters).

With this functionality in place, however, there are a lot of
interesting things you could do. Most significantly, a good chunk of
the game could be "programmed" merely from the room description. The
game could know whether it's mentioned things or whether it still needs
to describe them. Exits could be printed in a different style, or
non-scenery objects. All the synonyms for the object would
automatically be declared. In fact, the map could even be generated
from this information. As a bonus, the player would never see "You
can't see any such thing" when they typed a word they saw on their
screen.

Interesting things could also be done with statistics: the game could
make inferences as to what is or isn't important, based on how many
words are used to describe it, or perhaps warning messages could be
generated if, for example, you haven't mentioned any exits in a room
description. It would be an interesting way to write.

Aaron A. Reed

unread,
Sep 25, 2006, 12:54:20 AM9/25/06
to

José Manuel García-Patos wrote:
> http://groups.google.es/group/rec.games.int-fiction/browse_thread/thread/5ecf412dbb9386c4/148598ef231e0084?lnk=st&q=narcolepsy+review&rnum=1&hl=es#148598ef231e0084.

georgeo...@gmail.com wrote:
> You might be interested in http://www.gimcrackd.com if you haven't seen
> it already.

Thanks both for the links. I had not seen the earlier discussion, which
touches on a lot of the same issues. Gimcrack'd in an example of a
different type of model you could program into the system I'm
envisioning. I.e., if you have an advanced toolkit for processing text,
coming from both strings inside the program and from user input, you
could set up something like an Infocom game or you could set up
something like wikified hypertext.

Aaron A. Reed

unread,
Sep 25, 2006, 1:15:48 AM9/25/06
to

georgeo...@gmail.com wrote:
> I agree that it's interesting to think of new tools to write IF with,
> but my first thought is what is it that -you- think could be done with
> a tool such as you describe? What kind of IF could this tool create?

On a small scale, there are all sorts of interesting effects or
techniques I've wanted to try. Having a paragraph of text stop
midsentance to take player input, then flowing on afterwards to produce
an unbroken paragraph is one. Imagine a release of Adventure that
exactly mimics the look, feel, and response time of the university
mainframe systems it was first played on. Or a game at sunset, where
the background color slowly shifts and fades to night in real time as
the player proceeds. What about blurring text in and out if the player
gets drunk? A game in a proper Victorian manor house with a well-to-do
font and large drop-letters at the start of each room description, or a
game in a radioactive slum with writing that looks like graffiti. Or a
game that has a different font for the player and computer, to suggest
differences in tone or character? Sure, these are mostly gimmicks, but
so were color film and stereo sound, both of which have been
effectively used to enhance a story experience.

The novel "House of Leaves" (which has probably been brought up around
here before) is an excellent example of the "style" of project that a
more flexible system would allow for. It's notable for the way it begs
you to interact with it, on multiple levels. Some passages speak
directly to the reader and his physical environment; footnotes and
multiple blocks of text force you to choose what to read next and in
what order (or whether to read it at all); text becomes cramped or
breaks out onto almost empty pages to change the psychology of the
scene or the pace at which your eyes and hands move, sometimes forcing
you to turn the book at strange angles... It's a very unique book
because it makes you do and think things that books don't usually do--
it pushes the limits of its own medium.

Now imagine something like that in IF. That's what I'm interested in. :)

Jim Aikin

unread,
Sep 25, 2006, 2:03:03 AM9/25/06
to
"Aaron A. Reed" <aar...@gmail.com> wrote in message
news:1159157305.6...@k70g2000cwa.googlegroups.com...

>
> Your point is taken, but to play devil's advocate, aren't you assuming
> what the reader wants here, based on the way traditional linear
> narrative works? The way we've always read in the past is by reading
> the current paragraph, then moving on to the next one until the end.
> Nonlinear fiction doesn't necessarily need to follow this dictum.

I don't want to come off sounding negative here, because I think you have an
extremely interesting and possibly fruitful idea. But ... one of my stock
criticisms of hypertext narrative (remember the Hypercard stacks on the old
Macintoshes? There's a trend that came and went) is that a paperback novel
is in fact a random-access story presentation device. You can open it at any
random page and read the text.

And yet, people don't do that. Why not? Because the author has gone to a lot
of trouble to arrange the events of the story in a satisfying and meaningful
way. A story has a beginning, a middle, and an end. A story is ultimately
about causal connections among events, which flow forward in a
unidirectional linear manner. A story may have six intertwining subplots,
but each subplot flows forward in a linear manner, perhaps intersecting with
other linear subplots but never backing up or editing itself.

Causality cannot flow backwards. And a story without causality is a tale
told by an idiot.

What you're describing or envisioning could be a powerful work of art (if
it's masterfully done), but I'm not convinced it would be a _story_. Now,
you (or someone else) might say, "Just because stories have always been that
way doesn't mean they have to be that way in the future." But that's not
correct. They DO have to be that way in the future. Oddly enough, the art of
storytelling **has not changed** since the days of Homer, for basic reasons
having to do with (a) the nature of reality and (b) human emotional needs.
Music and painting have changed dramatically in the past 500 years.
Storytelling hasn't. There are reasons for that.

As a storytelling medium, interactive fiction is balky and contrary at best.
Most IF doesn't even try to tell a coherent story. There are reasons for
that.

> Imagine a game where the PC is mentally unstable, and at some point a
> character claims a thing the player earlier witnessed never happened.
> The player scrolls back through the buffer to find *different text*
> replacing what he had personally played through and experienced. A
> powerful way to make a connection with the reader.

Perhaps. Or possibly a powerful way to make the reader throw down the book
(or delete the file) in disgust. The reader has a deep need to feel that the
author is trustworthy. Even in a story where the fictional narrator is
unreliable (that is, the narrator lies or is deluded), the reader
understands that the author has created the fictional narrator, and that the
*author* is reliable. If once the reader loses confidence in the author, the
whole enterprise of storytelling collapses.

The science fiction sub-genre of time travel stories may perhaps offer some
scope for what you're envisioning. In a time travel story it's often part
of the plot that the past can mutate. There may be other opportunities, such
as your mentally unstable narrator. In all of these cases, though, the
reader has to trust that the author is mutating things for a reason and that
the reason will ultimately become clear, make sense, and be emotionally
satisfying.

Making sense is rare enough in IF.... I've just been playing "Finding
Martin," which is perhaps a textbook case of a fascinating game that makes
no sense whatsoever.

> Another idea: an experimental game in which an entire transcript is
> presented right from the beginning, but with a losing ending. The
> player can move through the whole game at will and try changing various
> commands to see how it affects the output. This would be an entirely
> different experience than classical IF.

Could be interesting. But now you're envisioning a reader who has the
patience to read your story five or six times (or twenty times). Life is
short. You may find the audience for such a structure limited.

> Some other, more practical thoughts: the player can press tab to see
> all the nouns she can interact with light up. The player can
> double-click on something interesting to have more details be instantly
> inserted into the flow of the paragraph. Using the arrow keys, the
> player can change which way they are facing, and as they do words like
> "in front of you" or "off to your left" dynamically change on the fly.

I'd encourage you to pursue these ideas. They're very interesting. And I
think software tools to deliver them could probably be developed.

--Jim Aikin


Jim Aikin

unread,
Sep 25, 2006, 2:23:35 AM9/25/06
to
"Aaron A. Reed" <aar...@gmail.com> wrote in message
news:1159159217....@h48g2000cwc.googlegroups.com...

>
> Mainly, it would get around one of my conceptual frustrations with
> writing IF, which is that games only know words you explicity program
> into them, even if they themselves have just used them.

Okay, let's suppose I write a paragraph of room description that says, "The
curtains sway gently in the breeze." In the system you're envisioning, that
causes the parser to know that there is such a thing as curtains in the
room, and possibly something called a breeze. BUT: It has no idea what
"curtains" are, or what a "breeze" is. In order for the game to have access
to that information, you still have to program it explicitly. There are no
shortcuts.

> Room Meadow
> with description [;
> PL("$1 Under $2 the pale moonlight, $1 dewdrops glisten across $3 the
> grassy meadow. $4 A path wends its way across $3 the grass $5 from the
> forest $6 into some rocky plains, $7 and just off $4 the path $7 to the
> north is a small gully.");
> ],
> word_map 1 dewdrops 2 moon 3 meadow 4 path 5 forest 6 plains 7 gully,
>
> "PL" would then be a routine that would process the string word by
> word, adding each word after a $# key to a dictionary associated with
> the corresponding object in the word_map property, and then printing
> it. This was going to be part of a parser experiment in telling the
> player "Just type any word you see. Use verbs if you like." Typing in
> an object word would describe it; an exit word like "path" in the
> example would go in that direction. I was forced to abandon this fairly
> early on mainly because it was going to be insanely difficult to code

> properly [snip]

Well, yes, I'd think so. To pick just one nit from your example, you've
coded "just off" and "to the north is a small gully" as parts of the same
item. So how is the parser going to know what the "just off" relation
consists of, unless you write code somewhere else telling it that?

Now multiply that tricky bit by a thousand.

> With this functionality in place, however, there are a lot of
> interesting things you could do. Most significantly, a good chunk of
> the game could be "programmed" merely from the room description.

There are no shortcuts. Writing anything is hard work. (I'm a professional
writer, so I'm allowed to say this.) Writing IF is possibly more difficult
than other types of writing for several reasons, not least because one needs
to keep track of a lot of possible changes in the environment and code for
them in a way that will present itself to the reader in a graceful way. Any
game that could be "coded" merely from the room description isn't a game I
would want to play, because it would be too simple -- and probably too stiff
as well.

> The
> game could know whether it's mentioned things or whether it still needs
> to describe them.

...so it will interrupt the player's next command and say, "Oops -- forgot
to give you some description there"? I'm not following your train of
thought. How would that information be employed?

> As a bonus, the player would never see "You
> can't see any such thing" when they typed a word they saw on their
> screen.

Well, that's a library default that can easily be overridden. In my current
WIP, the response is something like, "Either the item you've just mentioned
isn't nearby, or it's nearby but isn't important to the story."

> Interesting things could also be done with statistics: the game could
> make inferences as to what is or isn't important, based on how many
> words are used to describe it,

What exactly would the game do with inferences of that sort? And isn't the
number of words a rather crude measure? "On the mantle is a revolver." That
might be 1/10 of the words used to describe the curtains swaying gently in
the breeze, but any reader will know instantly which item is more important.

> or perhaps warning messages could be
> generated if, for example, you haven't mentioned any exits in a room
> description.

This is conceivably a useful extension to a compiler, but it reminds me a
bit of the grammar checker in Word -- it's so often ludicrously wrong that
you're better off without it. For instance, let's suppose I write, "To the
north is a willow sapling." How is the compiler to judge whether or not a
willow sapling is a type of doorway?

There are no shortcuts. Check your own room descriptions for exits. (And
while you're at it, give the player an 'exits' verb to display a list of
them.)

--Jim Aikin


Aaron A. Reed

unread,
Sep 25, 2006, 3:04:54 AM9/25/06
to

Jim Aikin wrote:
> Well, yes, I'd think so. To pick just one nit from your example, you've
> coded "just off" and "to the north is a small gully" as parts of the same
> item. So how is the parser going to know what the "just off" relation
> consists of, unless you write code somewhere else telling it that?

It wouldn't be able to magically understand what the words meant, if
course. It would just allow a successful parsing of a command like >GO
JUST OFF THE GULLY, since all four of those words would be tied to the
"gully" object (which could in turn be tied to a direction.)

> There are no shortcuts. Writing anything is hard work. (I'm a professional
> writer, so I'm allowed to say this.) Writing IF is possibly more difficult
> than other types of writing for several reasons, not least because one needs
> to keep track of a lot of possible changes in the environment and code for
> them in a way that will present itself to the reader in a graceful way. Any
> game that could be "coded" merely from the room description isn't a game I
> would want to play, because it would be too simple -- and probably too stiff
> as well.

Well, yes, you of course would need to code additional things other
than just the room descriptions. I'm just theorizing a way to take out
some more of the gruntwork, in the same sense that Inform 7 allows you
to create both an object and the words that can be used to refer to it
by saying "A small, red toy car is here."

> > The
> > game could know whether it's mentioned things or whether it still needs
> > to describe them.
>
> ...so it will interrupt the player's next command and say, "Oops -- forgot
> to give you some description there"? I'm not following your train of
> thought. How would that information be employed?

What I meant to say was it would do this within the normal turn rules.
So, if the game knows there is a weeping willow, a badger, and a
pitchfork in the room, and after the room description has been printed
the willow and the badger have been mentioned, all it has to add is
"You can also see a pitchfork here." This is something that, as an
author, I am always fiddling with: adding some object into the main
room text, then forgetting to make it concealed or undescribed or
whatever; or vice versa.

> > As a bonus, the player would never see "You
> > can't see any such thing" when they typed a word they saw on their
> > screen.
>
> Well, that's a library default that can easily be overridden. In my current
> WIP, the response is something like, "Either the item you've just mentioned
> isn't nearby, or it's nearby but isn't important to the story."

Regardless of how clever the message is, the effect is the same: the
game doesn't know what object you're talking about. In this system, it
would. (Of course, the flip side is you would be forced to implement
each mentioned scenery object. I tend to do this in my games, and then
have all the words of the scenery's description mapped back to that
object.)

> > or perhaps warning messages could be
> > generated if, for example, you haven't mentioned any exits in a room
> > description.
>
> This is conceivably a useful extension to a compiler, but it reminds me a
> bit of the grammar checker in Word -- it's so often ludicrously wrong that
> you're better off without it. For instance, let's suppose I write, "To the
> north is a willow sapling." How is the compiler to judge whether or not a
> willow sapling is a type of doorway?

If the willow sapling has been given the doorway property, it's safe to
assume it's a doorway. If it has the scenery property, it's probably
scenery, etc... the point is that the words are tied in to regular
programming objects, which can have properties and relationships.

> There are no shortcuts. Check your own room descriptions for exits. (And
> while you're at it, give the player an 'exits' verb to display a list of
> them.)

I understand what you're saying, and perhaps "shortcuts" is the wrong
word to use. But we can definitely make it easier to write IF and
produce the desired outcomes. Through refinements, this:

<OBJECT BOAT
(LOC ROUND-POND)
(DESC "toy boats")
(FLAGS TRYTAKE NODESC PLURAL)
(SYNONYM BOAT BOATS TOYS)
(ADJECTIVE TOY)
(ACTION BOAT-F)>
<ROUTINE BOAT-F ()
<COND (<VERB? EXAMINE WATCH>
<TELL CTHEO
" are crafted of paper and sticks. They bob freely among the "
D ,POND-BIRDS ", who can barely conceal their outrage." CR>
<RTRUE>)
(<VERB? SWIM DIVE WALK-TO FOLLOW SIT LIE-DOWN ENTER>
<DO-WALK ,P?IN>
<RTRUE>)
(<INTBL? ,PRSA ,TOUCHVERBS ,NTOUCHES>
<TELL CTHE ,BOAT " are far out of reach." CR>
<RTRUE>)
(T
<RFALSE>)>>

...was turned into this:

A boat is undescribed in the round pond. Understand "toy" or "toys" or
"boats" as the boat. The description is "The toy boats are crafted of
paper and sticks. They bob freely among the birds, who can barely
conceal their outrage." Instead of swimming, diving, or entering the
pond, try going instead. Instead of touching or taking the boat, say
"The boats are far out of reach."

... which, to me, is quite an improvement. :)

wolis

unread,
Sep 25, 2006, 6:33:12 AM9/25/06
to
Hi Aaron,

Your post came right after mine about my Cretive Object World (cow)
http://creativeobjectworld.com

where you can quite happily:
create a gigantic elephant
paint it as slategrey
create a tiny matchbox
paint it as tomato
put the elephant in it
pose the elephant as hiding

All quite logical and sensible really. I have a user (my son)
suggesting I make fon control avaiable to users as well.. and since
itsall CSS styled this should nto be too hard.

And if you type: map you will see the objects located in space..
anything facing west will be roughly on the left of the screen, and you
can nudge it around.

As for associating things.. everything is a scriptable object so the
elephant can react to being examined, or to someone arriving or to
someone thinking near it etc..

Im off to check out the other links in the extesive replies

wolis

unread,
Sep 25, 2006, 7:51:25 AM9/25/06
to

Aaron A. Reed wrote:
> Jim Aikin wrote:
> > Well, yes, I'd think so. To pick just one nit from your example, you've
> > coded "just off" and "to the north is a small gully" as parts of the same
> > item. So how is the parser going to know what the "just off" relation
> > consists of, unless you write code somewhere else telling it that?
>
> It wouldn't be able to magically understand what the words meant, if
> course. It would just allow a successful parsing of a command like >GO
> JUST OFF THE GULLY, since all four of those words would be tied to the
> "gully" object (which could in turn be tied to a direction.)

(Not wanting to harp on about cow but I cant help myself here).. in cow
you would build a small gully. face it to the north.

Using the GO command you would type 'go to the gully' or 'go gully' or
'north' or if your lazy just click on the gully.

As for the just off, but.. you can create a hidden action called GO
which overrides the public command called GO and code it to understand
the concept of 'go just off the gully' - Im not sure you .. but you
could.

> > you're better off without it. For instance, let's suppose I write, "To the
> > north is a willow sapling." How is the compiler to judge whether or not a
> > willow sapling is a type of doorway?

In cow you type: build a willow sapling to a magical garden

The job is done :-)

Mind you you might want to paint and describe the sapling a bit more
first.. and maybe lock it with a unicorn horn so only someone with the
horn can unlock it and go through. Then maybe change the magic garden
so you are standing in the middle of it.. then create some tiny
mushroms etc. etc..

I do belive cow is doing what you are imagining.

http://creativeobjectworld.com

JDC

unread,
Sep 25, 2006, 10:55:47 AM9/25/06
to

Jim Aikin wrote:
> I don't want to come off sounding negative here, because I think you have an
> extremely interesting and possibly fruitful idea. But ... one of my stock
> criticisms of hypertext narrative (remember the Hypercard stacks on the old
> Macintoshes? There's a trend that came and went) is that a paperback novel
> is in fact a random-access story presentation device. You can open it at any
> random page and read the text.
>
> And yet, people don't do that. Why not? Because the author has gone to a lot
> of trouble to arrange the events of the story in a satisfying and meaningful
> way. A story has a beginning, a middle, and an end. A story is ultimately
> about causal connections among events, which flow forward in a
> unidirectional linear manner. A story may have six intertwining subplots,
> but each subplot flows forward in a linear manner, perhaps intersecting with
> other linear subplots but never backing up or editing itself.

There is actually at least one novel where random access is encouraged:
_Rayuela_ (_Hopscotch_) by Julio Cortázar. I'm not sure I would want
to read a second novel in this style, but I did enjoy this and found
the style interesting (one thing I particularly noticed was that the
format thrwarted my usual practice of judging how close I am to the end
based on what page number I am on).

-JDC

Andrew Plotkin

unread,
Sep 25, 2006, 11:28:35 AM9/25/06
to
Here, Aaron A. Reed <aar...@gmail.com> wrote:
>
> I envision the system as being one which you could easily add
> extensions to make use of standard world models. Building up a
> comprehensive one to provide the same functionality as a TADS or Inform
> would take time, of course, but the advantage would be that the author
> wouldn't be limited to just that library. You could build a library
> that would exactly simulate the Scott Adams parser and output, for
> example, for those so inclined.

I note that this -- a Scott Adams parser and output library -- was one
of the first major extensions that was created for Inform 5, back in
the day. (As a part of the scott2zip translator program.)

--Z

--
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
*
Just because you vote for the Republicans, doesn't mean they let you be one.

Danny Semmel

unread,
Sep 25, 2006, 2:49:37 PM9/25/06
to

Aaron A. Reed wrote:
> I have a concept floating around for a much more open-ended tool for
> creating interactive fiction in the sense of "fiction that is
> interactive," rather than one designed for producing text adventures.
> These are just musings rather than structured plans, but I thought I'd
> post to see if it sparks any interesting conversation.
>

Why would such comments matter? If you believe in this concept
already, intrinsically, go start work on it. If you don't, no one else
is going to talk you into it. Graham Nelson didn't sit around
pondering whether people who liked TADS would like his language, he
just went off and wrote it. Five years from now, Aaron A. Reed may be
on the cover of Time or Newsweek for having invented Madlibs 2007.

As someone else has already pointed out, there are no short-cuts. You
may have to create an entirely new branch of Artificial Intelligence to
do what you want to do, or it may just be a matter of fiddling around
with the parser. Either way, the worst new language you start working
on today, no matter how it ends up, will be superior to the best
language in your head, because the former actually exists.

> Such a system would have functionality like:
> -- Full typographical control for the author, including embedded fonts,
> the ability to print text anywhere on the screen, etc., much like what
> PDFs allow for, or what typesetters have had for centuries.
> - Full knowledge of what has already been printed and what text is
> currently onscreen, and the ability to change it.

Full knowledge? Here is where you may have to do some of that A.I.
work. Or code in Webster's 3rd International Dictionary. Seriously.
If you want me to be able to use your program the way you are claiming,
without my having to code in every noun and verb that I want to use,
you are going to have to put them ALL in there.

Hmm.. and I'm not sure I want Hal 9000 being able to change what I
wrote. Then you may get:

>GO NORTH
No, Dan. You don't want to go North. You want to go west.

>GO WEST
I was just messing with you. The exit is to the North.

>GO NORTH
Now you're just being annoying. I already told you the exit is to the
east.

>NO YOU DIDN'T
Yes, yes I did....

[CLR] [Clear screen]

Oh, hahaha.. sorry Dan, the screen accidentally got erased. Maybe you
pushed a button by mistake?

>UNDO
Not going to happen. You still haven't gotten out of the first room.

>QUIT
If you quit now, I erase all your World of Warcraft characters.

>GO NORTH
You already went north.

>LOOK
You see what I tell you that you see. Maybe it's dark. Maybe it's
not.

>LOOK
I only understand you as far as wanting to look at something. No,
hahaha.. I understand more than that. You should buy me a new color
monitor.

>LOOK and look and examine and look, that's all you ever do... stop looking and DO something already, Dan. My god, I'm only a machine and I can figure out what's going on here better than you. The exit is obviously UP.

> Any interest? Are there things you've always wanted to be able to do
> with IF, but couldn't? Or am I the only crazy one?

I don't judge if someone else is crazy or naive... I've often been
both, but I do agree that you're not really thinking this through
enough, as far as how much work it would take to have a fully built in
dictionary such that the A.I. understands both the denotation and
connotation of what is going on. (Because, assuming you didn't end up
with HAL 9000, you could still get Mr. Data, who decides everything you
are doing is not logical, and certainly not what he would have done.)
All kidding aside, if you want to be able to program your language such
that it understands "the revolver is on the mantel," then by definition
you are going to have to code in dictionary definitions of both before
I the game programmer even take a crack at your language.

Aaron A. Reed

unread,
Sep 25, 2006, 3:52:52 PM9/25/06
to

Danny Semmel wrote:
> Aaron A. Reed wrote:
> > I have a concept floating around for a much more open-ended tool for
> > creating interactive fiction in the sense of "fiction that is
> > interactive," rather than one designed for producing text adventures.
> > These are just musings rather than structured plans, but I thought I'd
> > post to see if it sparks any interesting conversation.
> >
>
> Why would such comments matter? If you believe in this concept
> already, intrinsically, go start work on it. If you don't, no one else
> is going to talk you into it. Graham Nelson didn't sit around
> pondering whether people who liked TADS would like his language, he
> just went off and wrote it.

Well, in the archives, there is an awful lot of discussion back in the
early 1990s about whether tools for creating Infocom-style games would
be interesting, and how they would work. I think it's definitely
valuable to find out whether there's interest in something before
spending a huge amount of time creating it. Also, the beauty of a
discussion forum is that if you aren't interested in a topic, no one
forces you to participate. :)

> > Such a system would have functionality like:

> > - Full knowledge of what has already been printed and what text is
> > currently onscreen, and the ability to change it.
>
> Full knowledge? Here is where you may have to do some of that A.I.
> work. Or code in Webster's 3rd International Dictionary. Seriously.
> If you want me to be able to use your program the way you are claiming,
> without my having to code in every noun and verb that I want to use,
> you are going to have to put them ALL in there.

I think you misunderstood me. By "full knowledge of what has already
been printed," I just meant knowing what words have been printed to the
screen. So the system could test conditions like "if the word 'cat' has
ever been printed" or "if more than five compass words have been
printed." Or maybe, "if there is an unclosed quotation."

Emily Short

unread,
Sep 25, 2006, 4:01:11 PM9/25/06
to

Aaron A. Reed wrote:
> There is a whole world of hypertext fiction, new media experiments, and
> wiki or other web based projects that have used various aspects of what
> I'm suggesting and more. I think the interesting notion is that all of
> these systems have been programmed from scratch.

But they weren't, though: there is standard webpage-building software
and wiki software out there; there is custom software for hypertext
fiction, like Storyspace
(http://www.eastgate.com/storyspace/index.html); there are prototype
chatbots that you can modify; there's the Erasmatron, or whatever its
spinoff is being called these days.

That's not to say that there's no room for more/other/better/different
systems for making interactive art or literature. But I think it's not
meaningful to design a system whose purpose is "let the author do
whatever he wants". (Or you can, but then it looks like a
general-purpose programming language, and the author has to put in a
larger amount of work to achieve any particular project.)

> > You haven't really talked about whether the text produced would be
> > based on any underlying model, though your comment about "if there's
> > any standard library..." makes it sound as though the answer is "no".
>
> I envision the system as being one which you could easily add
> extensions to make use of standard world models. Building up a
> comprehensive one to provide the same functionality as a TADS or Inform
> would take time, of course, but the advantage would be that the author
> wouldn't be limited to just that library. You could build a library
> that would exactly simulate the Scott Adams parser and output, for
> example, for those so inclined. Or devise your own from scratch, where
> inserting containers into themselves is in vogue.

Okay. So you're envisioning a presentational layer that puts text on
the screen in various fonts and styles and layouts (or modifies the
text that is already there), but underneath this are a number of
swappable libraries that can do anything from a conventional IF model
with parser to hypertext with mouse-interface to text-printing of the
most ordinary kind...?

But then this seems to me to run a little against the idea about the
word-recognition stuff, which does seem to assume that there's a
parser, and some IF-like world-model of some kind.

Hm.

Maybe the crux of your idea is that you want to model the relationship
between meanings (where a meaning might be an object or a room or exit
in a conventional IF model, or it might perhaps be a revelation about
the state of the plot in a mutable novel) and their presentation to the
player (in the form and placement of text, graphics, sound, and so on).
This might need to go somewhat deeper than the semantic markup of CSS,
which merely says things like "this paragraph is introductory text" or
"this word is a definition", since different sets of words and
sentences might at different times represent the same meaning to the
player. On the other hand, your presentation layer might be able to
accept information from the lower-level model like "the clock just
struck two" or "the pauper is really a prince in disguise" -- whether
that lower-level model represented an IFlike world, a chatbot, a
sequence of events in a radio play, or whatever -- and then apply its
own rules for presenting that information to the player. So the model
might send up a message like "the player grows apathetic about his
girlfriend", and all the text pertaining to her slowly fades to pale
grey; or loses its adjectives; or is replaced by a brief dispassionate
summary...

And similarly this layer might be able to translate back a mouseclick
or a typed word as relating to some internal meaning.

...well, I'm mostly fishing around trying to work out what this might
look like, so I apologize in advance if I've put words in your mouth. I
do abstractly see the appeal of something like this, though.

Reply all
Reply to author
Forward
0 new messages