Separate the techniques based on the language from
the general concepts of non-linear storytelling and
interactivity. VRML has the tools for doing both
linear and non-linear work. The major impediment
is the media (eg, the Net or CD-ROM) for loading
the rim media types (sound, avis, etc.). When one
says "non-linear" does one mean "new behaviors
emerge that are unpredictable or surprises to
even the authors" or that "behaviors ONLY
emerge based on non-linear (uneven intervals)
values?
"Non-linear storries" has traditionally meant
branching based on feedback. It can however,
also mean, branching behaviors. Yes, one can
easily apply the chaos or complexity theory
techniques that lead to "butterflies and storms",
but this metaphor is applicable typically for very
complex systems. It is the complexity factor
of multiple interdependencies that become difficult
to simulate or lead to systems which will not
close (ie, the never-ending story). Such systems
have to model linearity locally and globally and one
should consider Markov models for predictability.
That is can I predict one step ahead, two steps ahead,
etc. based on a recognizable pattern.
A story that is branch-based is not of necessity a
tree. It may be a directed acyclic graph, it may loop
back on itself, etc. It can be organized by entry
points and pre and post condition states at these entry
points. Yes, this gets large and consumes a lot of
resources to create. Mark Bernstein (sp?) has written
on this subject and has a company that writes novels
for this style.
Is interactivity a feature of the language or of the
situation? It is easy to think of a story in terms of
episodes (eg, IrishSpace: based on NEXT but does not
have persistent state values) and that is really one
of the easiest models to work with from the point
of view of story telling. Episodic-based
stories may be locally linear and have no conditions
other than characters/objects that continue from
episode to episode, or serial in which the end conditions
of each episode are the pre-conditions of the following
sequence. It may be globally non-linear in that it
makes no difference what order one visits worlds.
[NOTE: the cheat here is that IS uses the spoken
dialog to advance the story, not the VRML. One can
visit out of order but will not understand the story. So
in that sense, IS is traditionally episodic and linear. The
persistent conditions are in the head of the user.]
Another model is situational. A single world and
set of characters/roles are given with semi-predictable behaviors.
In the system, a driver is used to alter the flow. The driver is the
feedback mechanism and is a control. When looking at
the fractal model for feedback-mediated behavior, this is the
value of C that alters the feedback to the plotted point.
Only the completion of the function gives a point, but once a
point is plotted, it continues to affect any values for subsequent
points (eg, is persistent and has persistent effect).
It can be by a complex calculation that increases non-linearly
(eg, non-regular intervals), or some very simple
value that increases linearly (regular intervals). Looking
at it this way, the linearity may not be a measure of the
branching, but of the driver itself. The dependence of
behaviors on the driver value determine the ranges of
the behaviors. Think of it like a loop in a program that
executes until a threshold causes the loop to exit
(similar to escape values in fractals). The example
I've used recently is FREE BEER. The world changes
based solely on how much free beer you accept. This
is also a good example of a situational world that uses a
single driver to set all of the behavioral states.
Combinations of these are possible using the NEXT
control to set the states of the post-conditions which are
pre-conditions to the next episode in the sequence. This
requires persistent memory and for this kind of world
building, one might want to look at the work the Persistent
Database group is doing.
Len Bullard
Intergraph Public Safety
[EMAIL PROTECTED]
Ekam sat.h, Vipraah bahudhaa vadanti.
Daamyata. Datta. Dayadhvam.h