[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Higer-order plot abstractions




Hi everybody!

I believe this is my first post to the iDrama mailing list, though I've
once been active on the Erasmateers, and attended Phrontisterion I and
III. The main reason I haven't contributed yet is that I haven't felt I
had something new to say-- the last one or two years, I haven't felt
like there was any real progress; I *have* spend a lot of time on
interactive storytelling, but I haven't felt it was really fruitful.
Now, I feel I can at least put into words one point about interactive
storytelling which I have long felt to be true, but cannot remember
having seen made clearly anywhere.

Let me start with the idea of a dramatic simulation, a way that has
often been used to describe what an interactive storytelling product
ought to be like. A dramatic simulation, as opposed to a physical
simulation, would not simulate physical entities (feathers, trees,
storms etc.) but dramatic entities (whatever these are). Yet, as a
simulation, it would have to specify two things: Firstly, how the world
is modeled, i.e. how we describe the state as the world at some given
point in time in computer memory; secondly, how the world changes over
time, i.e. how to get from the world state at one point in time to the
world state at some later point in time. (In an interactive storytelling
product, it would also need to specify how a player could influence the
simulation's behavior.) What sets a dramatic simulation apart from a
physical simulation, then, is that the model of the world state (the
data that the program operates on) is composed of *entities of
dramatical significance*. This could, for example, be a conflict between
two characters; it could be a possible decision a character is
pondering; it could be a thing a character owns that has some meaning in
the story.

To me, it seems important that (many of) the elements of the world model
explicitly have dramatical meaning. This, I think, is the difference
between a dramatic simulation and a different kind of simulation that
provides emergent story: in the first kind, we build a world where
things explicitly have dramatic importance; in the second, we build a
world and hope that the things will take on some dramatic importance in
the course of the world's revolving. The dramatic simulation attempts to
make the conflicts etc. explicit in the world model.

Now, the point I want to make is that a dramatic simulation will be more
interesting if its world model includes some kind of higher-order plot
elements. A higher order plot element is one that wires together a
number of other plot elements to generate a bigger one. In programming,
a higher-order subroutine is one that can take other subroutines as
input. Let's imagine a routine "do X eight times." In this example, X
would be a different routine. As an example, X could be "write 'Hello
World!' on the screen"; then, "do X eight times" would print 'Hello
World!' eight times. On the other hand, if X is "get new mail from the
server--" well, you can imagine what it'd do. The same routine could be
passed to different higher-order routines; we could have "wait until the
user presses a key, then do X." We can even pass one to the other: "Wait
until the user presses a key, then write 'Hello World' eight times."

So what's a "higher-order plot element?" A plot abstraction in the world
model that can take other plot abstractions as "input." By plot
abstraction, I mean some kind of template for something we would think
about as a "plot element" in an ordinary story. Let me give some
examples of first-order and higher-order plot abstraction.

  o An Erasmatron verb, say "AccuseOfAdultery." This is a
    template for an event; it has 'slots' for the subject
    and the object of the action, i.e. who is accusing and
    who is accused. Both are characters, not plot elements.
    The verb is thus a first-order plot abstraction.
  o A conflict; say "X suspects that Y, their significant
    other, is having an affair." Again, this is a template
    where we can fill in different characters; again, we
    cannot fill in plot elements.
  o An event template "X asks Y to do Z for them." (In this
    generality, this isn't supported by the Erasmatron.)
    Besides the character slots, this has a slot for
    some other event template: for example,
    "Jill asks Tom to fire Mr. Gadwick," or "Tom asks Mr.
    Gadwick to call the Vice President and arrange a
    meeting with her," or "Mr. Gadwick asks Jill to tell
    Tom not to fire him." This is higher-order because
    there is a slot for another plot element; in fact, in
    the last example we see an example of a higher-order
    element inside another higher-order element:
    "Tell Tom not to fire Mr. Gadwick" is an instance of
    "X tells Y not to do Z."
  o A conflict "X is threatening to do A if Y does not
    do B," for example "John is threatening to kill
    her mother if Ana does not tell him who has stolen
    the crown jewels" or "John is threatening to set
    Anas house on fire if she does not give him the
    crown jewels."

It is clear that higher-order plot abstractions are on a higher level of
abstraction than first-order plot abstraction. (That's the nature of the
beast; higher-order stuff is meant to be more abstract than first-order
stuff.) This can be a good or a bad thing. The idea may be too
complicated at this time. On Erasmateers, Chris has IIRC once made the
point that some (mathematical) abstractions like derivations and
integration would be overkill for interactive storytelling; we can get
pretty far with +, -, * and / already. On the other hand, it is also
clear (and also a point made by Chris) that we need to get to a new
level of abstraction from story as we know it if we want to pursue
interactive storytelling. It may be, and I'm arguing in this direction,
that this level of abstraction is *necessary* or at least very helpful
for archieving genuine IS.

The reason is the need for combinatorial explosion that has recently
been touched upon on this mailing list, by Bob--
>   I do not believe that it is necessary for end users to scribble all
>over the sim software's content in order to customize it and shape new
>content. Because talents vary this could even be prohibitive to the
>player who cannot scribble well. I am of the opinion that engineered
>customization tools should provide all users with building blocks in the
>fashion of Role Playing Games, Mr Potato Head and Legos. Such elements
>have an exponential effect on variety, but are more manageable.

--and in reply, by Joseph--
>         This is an interesting choice of items, as they represent sort
> of a continuum between high fidelity/low mutability simulations and low
> fidelity/high mutability simulations.  Most of the product coming out
> the entertainment industry seems to lean toward the Mr. Potato Head
> paradigm of providing a fixed set of cosmetic options.  I'd like to see
> more ultra-modular Lego-style systems and rules-based RPG-like systems.

The combinatorial explosion for example in Lego or strategy games is
central to the sense of agency the player experiences. If you choose
from ten possible combinations an author has kindly prepared for you,
you will feel like-- well, choosing from a number of given
possibilities. If you choose from ten gazillion combinations, zeroing in
on the one you like in a number of steps, you will feel like you have
constructed something yourself. Sure, there is only a finite number of
chess board configurations, but the number is beyond imagination, and
when playing chess, the fact does not lower your sense of agency.

The relationship is not that simple, though. With ten possibilities, you
will never experience real agency; with ten gazillion possibilites, you
*may*, but if it is ten gazillion ways the stars are arranged in the
night sky background the linear story you're watching is set against,
you don't experience agency either. The problem is that the player will
subjectively experience the ten gazillion different movies as really all
the same. On the other hand, we should not be fooled to believe that in
a successfull interactive experience, the ten gazillion ways it can go
will all feel totally different; a lot of chess configurations will
necessarily be very similar. So, we need something in between.

I'm arguing that in current interactive storytelling systems, the
perceived agency is not high enough because they don't allow for enough
*percievedly different* configurations, and that higher-order plot
abstractions can help.

As an example, let's take the Erasmatron as exemplified by Laura's
Shattertown Sky, the Meeting demo, and (using not the Erasmatron, but
the Erasmatronics technology) Chris' original Le Morte D'Arthur. Neither
of the three give me the feeling of there being a large number of
global-scale situations to 'choose' from, i.e. of me having real agency.
There may be a lot of different ways the story can go, but they all
'taste' the same, or there is only a small number of 'tastes' available.

In the unfinished Shattertown, I'm always chasing the murderer and never
getting them-- of course, that's because it's unfinished, but let's for
a moment assume there'll be a possibility to get them. Then the overall
tastes would maybe be like "I've just started to search for the
murderer"; "I'm zeroing in on the murderer, and I'll get them soon";
"I'm close to having found the murderer, but the situation in
Shattertown is escalating and there may be a war soon"; "we're close to
a war and I still have no clue who the murderer is." Now, actually, if
you compare this to a strategy game like Chess or Civilisation, it does
not *sound* that different-- like you have "I'm losing," "I have almost
won," "I'm on a good path towards winning" etc. The problem is: how many
different-feeling ways are there, in StS, to be zeroing in on the
murderer but the situation being escalating? In Chess, the number of
different-feeling ways you can be on the winning path is very high. In
Shattertown, I think the "almost there, but close to war" configurations
will feel very much all the same. That's what I mean.

There is a plot abstraction in Shattertown that allows Sky, the main
character, to talk to her significant other (as picked by the player)
about their plans for the future; one possibility is along the lines of
"I want to become the leader of my enclave." At one point, I don't
remember when, in an email conversation with Laura about Shattertown Sky
I mentioned that I would like to not only talk about it, but have the
possibility to actually *become* the leader of my enclave when playing.
This was an example of missing agency-- in retrospective, I wanted to
have an own idea and try it out, not only follow one of the paths the
author has laid for me. It wouldn't have to be becoming head of the
enclave, just something *meaningful*, inside the rules set forth by the
author, but not something she has specifically thought up for her
players. (Like dedicating one city to produce as much gold as possible,
in Civilisation.)

I think this is a structural problem; what we need is combinatorial
explosion on a *meaningful* level, i.e. an explosion of *dramatical*
configurations. If we try to pursue interactive storytelling through a
dramatic simulation, as opposed to emergent story generated by some
other kind of simulation, we will need to provide for this explicitly,
i.e. set up a relatively small number of base elements that can be
combined into a very large array of combinations. (That's, after all,
the meaning of "combinatorial explostion": the explosion of the number
of possible combinations when only slightly increasing the number of
combinable elements.) We cannot provide the dramatical configurations
explicitly; we will need to make the rules of how dramatical
configurations can be assembled. That way, we'll still have "I'm zeroing
in on the murderer, but soon there will be war"-- but there will be a
large number of different-feeling situations that can be described like this.

To archieve a large number of possible combinations, of course there
needs to be a way to combine plot abstractions. The primitive way to
combine event templates is "this happened, then this happened." The
primitive way to combine conflicts is "there is this conflict, and there
is also that conflict." But these combinations are too simple to catch
players' interest; if you have seen "there are conflicts A and B," and,
"there are conflicts B and C," smart as you are you can extrapolate to
"there are conflicts A and C" without ever trying it. It's nothing new,
it's not worth playing the story again. At least if the conflicts are
pretty much independent and do not interact with each other.

Using higher-order ones is a more useful way of combining plot
abstractions. They allow a player to do things the author has never
*explicitly* thought about; if you can ask anybody in the story for
anything they can do in the story, you can ask Richard to publish the
article on your marriage. Or, provided these higher-order event
templates exist, you can ask him not to publish the article; you can
threaten to publicize his newest affair if he doesn't publish the
article; you can promise you will arrange a $100'000 loan for him if he
refrains from publishing it. You can also ask him to employ your husband
as an editor, threaten to publicize his newest affair if he doesn't
employ him, et cet.

I have tried to explain how I think current interactive storytelling
systems don't go far enough, and why I think higher-order plot
abstractions can do better. I do not currently see another way to
archieve combinatorial explosion in a dramatic simulation. I conclude
that higher-order plot abstractions are necessary.

Well, as I said at the beginning of this post, I'm kind of stating the
obvious, putting into words something that I have felt for years and
years now. (In fact, in the first summer after having started to read
about the Erasmatron-- long before I actually *used* the program,
because at the time there was no Windows port and I didn't have a Mac--
I had a period of thinking "okay, the Erasmatron is very impressive, but
I should also try to continue work on my own, previous ideas of
interactive storytelling." In the terminology of this post, these
essentially amounted to: "We need to archieve higher-orderness in plot
abstractions. How can we do that?" I didn't have any answers at that
time, though, nor did I have the terminology to express this.) Now, let
me tell you some *new* stuff (new to me, at least).

Recently, I have found what I believe can be a way of structuring the
multi-character level of stories, using higher-order plot abstractions.
I the idea is based on some thoughts on how to improve on strategy game
design, going beyond the designs centered around the spatial metaphor;
maybe more about this in another post. Due to an open problem, I still
do not believe this is already sufficient for me to build an interactive
storytelling product I like ("dream," in a terminology discussed on the
side of Phrontisterion III); more about this at the very end of this mail.

Remember that I said a dramatic simulation would need to have rules
about how the world state at any given point in time is modeled, rules
about how the world state changes over time, and, if interactive, rules
of how a player can influence the simulation. My architecture starts
with putting emphasis on the model of the world state. In the
Erasmatron, even more in Doug Sharp's Dramaton, the world state
essentially consists of a set of numbers (and of the "story so far," on
which the Erasmatron puts quite some emphasis). In the Erasmatron, there
is a small number of 'relationships'; for each relationship, and each
combination of characters, the computer stores a number (e.g. "Joe's
affection for Jill is -23"). This is purely quantitative. In my system,
relationships also play an important part in modeling the world state--
but qualitatively. The author defines a number of *connection types*
that together form the model for the world state, and relationships are
one kind of connection types.

Connections can be between characters, between objects, between
characters and objects, between connections and characters and so forth.
A few examples of connection types (i.e., templates for connections):
  o "X is falling in love with Y." (character/character)
  o "X is married to Y." (character/character)
  o "X is a sibling of Y." (character/character)
  o "X owns Y." (character/thing)
  o "X tries to prevent Y from happening." (character/event)
  o "X tries to put an end to Y." (character/connection, e.g. 
    "Joe tries put an end to Jill falling in love with Jack.")
  o "X is a guide to the Cheops pyramid." (character)
And so forth.

So, the world *state* is modeled in connections (possibly with numbers
attached, like "X loves Y-- how much?"). Now, each connection specifies,
for each character involved, a number of actions it enables the
character to do, or constraints the character from doing. For example,
if Jill is falling in love with you, and you know it, you might be able
to persuade her to do something for you you couldn't previously have
asked her to do. Or you might simply be able to kiss her, something you
wouldn't have dared otherwise. To be sure, the author of course has to
specify every single action (as a template) that a connection allows a
character to perform: this is part of specifying a type of connection.
If we look at them like this, the connection types not only model the
world state, they also model how the world state *could* change over
time (they give the different possibilities).

And now, we do the same lil' trick as the Erasmatron: For a character
controlled by the player, we let the player decide which of these
possibilities to take. For a character controlled by the computer, we
will have some sort of weighting equations which will decide between the
possibilities. This specifies both the how the world state changes over
time, and how a player can influence a simulation; thus, it really
specifies a dramatic simulation.

(NB: The reason I emphasize this is that sometimes when we talk about
ways to model interactive storytelling, we come up with models that
aren't actually operational descriptions, and in themselves lead
nowhere. For example, in his Feb 2001 essay "Storyworld and Storymesh"
-- available at
    http://www.erasmatazz.com/library/Mind/WorldAndMesh.html
--, Chris provides as one way to model "metaplot" (more about this term,
which I like a lot, to be said another time) a breakdown of the
conflicting forces that operate in a story, exemplified by Romeo and
Juliet. For all this may gain us, such a description is not sufficient
for 'crafting a dream.' That's because it does not define how a player
can influence the story, or how the story moves forward-- and in my
experience, these are "the hard parts." So, again in my experience, this
kind of model does not help much at all, and thus it's important for me
that the one I'm describing here is not one of them.)

Now, the nuts and bolts of this concept are in higher-order actions
joining together multiple connections not unlike vector addition. ;)
Thoroughly confused? :) Okay, here's a simple example: Because Ann is a
(new) friend of Lisa's, she can ask her to help her out a bit. As Lisa
is Carolin's mother, she is perfectly capable to arrange a meeting with
Carolin. So Ann can ask Lisa to arrange a meeting with Carolin (making
use of *two* connections, i.e. an *indirect* connection from her to
Carolin). Now, since Carolin is a medium, she can find out how a person
died (by asking their ghost). Because Lisa is having a personal meeting
with Carolin, she's able to ask her to ask her about something she does
not want everybody to know. Thus, Lisa can ask Carolin how her boss
died, even though she does not want everybody to know (and Carolin can
tell her, after she's found out by asking the dead).

So, the big idea is: you cannot do everything; you can only do what your
direct and indirect connections allow you to do. You can exploit an
indirect connection by using a higher-order action: you ask somebody you
have a direct connection to to do something they can do because *they*
have a direct connection allowing them to do it. And you can change the
connections you and others have through your actions; this may also
allow you to do things you weren't able to do before. The mesh of
connections so to speak is the gameboard you play on, and each of the
pieces on your gameboard allows you to do a very limited number of
things-- but together, they allow you to perform a very high number of strategies.

I do finally feel that I have made some progress in my personal quest
for interactive storytelling-- and I can tell you I'm damn sick of
throwing away beginnings of interactive stories because I do not feel
they lead anywhere. I think for me, this has the promise of leading to
something fun. Let me state clearly, though, that I do *not* think this
is the best or only or even particularly good way of structuring things.
It is just one that may work, for me, and that's a lot already.

But as I said, I also see a catch: I don't have a good way to model the
main characters' growth during the story. This is very important to me;
I want to craft dreams about how people's attitudes about the world
change, about how they learn to cope with situations, etc. This is just
as important to me as the relationships between the characters. (It is
also the point where the Erasmatron is totally, completely, lost,
because there we cannot even abstract over the characters involved-- as
it's something going on inside the main characters head, one Erasmatron
verb can most often describe exactly and only one event: no abstraction
at all.) Just as with the large-scale story, we'll need a combinatorial
explosion (maybe archieved through higher-order abstractions), and I
cannot see any way how to do this yet. I do hope very much that we will
find a way... I'm trying to apply the connections concept to it somehow,
and maybe that'll lead somewhere, or maybe something else will.

But hey, nobody ever said interactive storytelling was easy. Nobody.
Ever. ;o) ;o)

- Benja (looking forward to opinions)