Andrew's key question for this talk was 'Can interactive narrative
users be dynamically presented with choices that enhance the narrative?'
For a choice to genuinely enhance the narrative, it is important that
it be dramatic, and both plausible and thematically consistent within
the work it takes place in. Can we generate choices like this in real
time for many simultaneous users?
The example used was Robin Hood. One example of a choice is, 'Does
Robin enter the archery competition?' The next choice would be 'Does he
fire an arrow?'
Andrew thinks that In an interactive narrative, there are three ways to provide the next choice:
-
Branching story lines, in which every choice is explicity defined. This is rigid, limited and expensive in development terms.
-
AI planners - but they rapidly become very complex, and it's difficult
to see them scaling effectively to work with real-time multiplayer
environments. Is there a third way?
-
You could collect possible 'next events' from a community of players,
and store them in a database. At run-time, you could fetch plausible
'next events' from the database and supplement existing choices with
them. This is the subject of Andrew's research.
So how do you collect next events from a community of players? They
have a website at http://phoebe.ballarat.edu.au/collection/ which you
can visit to contribute. At this site, you'll be presented with a
scenario that can occur in the interactive narrative, and you'll be
able to offer additional possibilities of what could happen next. This
was found to be a very user-friendly way of collecting data, to the
point that children also found it easy to work with.
This lets you build up a database of events, but it doesn't help create
drama. 'Polti's dramatic situation' was used as a convenient and simple
frame for drama, and the data gathered was cast in these terms.
So how do you receive the next event that is most closely matched to
what is required? There are various ways (case-based reasoning; neural
networks; decision tree induction; data mining) - Andrew thinks any of
these would be suitable, though neural networks would perhaps be a good
choice.
How do you ensure plausibility?
Maintain a 'Nonsense Filter', using simple rules to ensure that (for
example) Robin can't be dead in one event and then alive in the next.
Depending on the context, there may not be many of these rules -
interactive narratives may be set in different contexts which have
different ideas of what is plausible.
You can play the game at http://phoebe.ballart.edu.au/NarGame - while
playing, you can contribute to the story. If there's something you
would like to do but can't, add it as a next event. Andrew notes that
you can also create a story generator by getting the computer to choose
which action occurs next.
With this approach, agency is not diminished. The choices seem to be
'dramatic', though this has not been empirically researched.
Plausibility is ensured by the nonsense filter, and users tend to enter
thematically consistent next events, presumably because they are aware
of the scenario when suggesting them.
Question and answer sessions:
"How can you ensure that thematically inconsistent next events don't
appear?" This not yet implemented, but the idea is that whenever
someone actually follows a particular branch, it becomes more popular,
and thus more likely to occur according to the logic used to retrieve
next events.
Michael Kriegel asks whether this is simply a branching narrative that
is collaboratively defined. Andrew seems to agree that this is
essentially the case, but believes that the idea of using machine
learning to pick possible next events is new. Michael also asks what
happens when a user reaches a dead end, if a new next event has been
defined but not followed up on. Andrew essentially suggests that the
user would simply keep writing the story themselves.
"Have you considered getting users to give a particular route through a
story an overall rating?" Andrew agrees that this could be valuable.
A question is raised about whether the data gathered from users about
next events could be abstracted to give you a more general model for
next events. (For example, if you suggest 'Robin offers to join forces
with the Sheriff', you could abstract this to 'Hero appears to change
sides', or something similar.) Andrew thinks that the way they're
representing the data in terms of agents, subjects etc. gives them the
possibility to generalise like this in future.