Newsgroups: rec.arts.int-fiction
Path: news.duke.edu!newsgate.duke.edu!nntp-out.monmouth.com!newspeer.monmouth.com!newsfeed.esat.net!newsfeed.online.be!zur.uu.net!ash.uu.net!world!buzzard
From: buzzard@world.std.com (Sean T Barrett)
Subject: Re: AI in IF
Message-ID: <GJ6HKx.JK1@world.std.com>
Date: Wed, 5 Sep 2001 07:17:16 GMT
References: <7d26d66b.0109030448.59339a1a@posting.google.com> <9n2u5a$qvq$1@news.fsf.net>
Organization: The World Public Access UNIX, Brookline, MA
Lines: 70
Xref: news.duke.edu rec.arts.int-fiction:92176

In article <9n2u5a$qvq$1@news.fsf.net>, Adam Thornton <adam@fsf.net> wrote:
>Attempts to have character drive narrative, rather than the other way
>round, have typically led to dull, aimless stories, in my experience.  I
>suspect that this is likely to be even more the case in IF than it is in
>static fiction.

I certainly agree, and I think the trick is to add a "storytelling
AI" or a "gamemaster AI" to the mix.

Pie-in-the-sky ramble follows.

For some time I've been interested in pursuing dynamic story/narrative
of some flavor a bit deeper than we see in both commercial games and
most IF, where the moment-to-moment interactions are totally fluid
and unplanned, but there's an overall fixed story arc (or mildly
branching). However, I find it very hard to take an evolutionary
step in that direction, and no commercial game publisher is willing
to spend money on a couple years of research that might have no payoff.
I hope maybe I can try to go this direction with IF, but I need a
much better programming language (I'm hopeful about Tads 3) and a
lot of free time.

My idea for the revolutionary thing is to get characters that
can converse vaguely sanely (to achieve believability) and that
have emotional states and goals (to achieve believability and
provide gameplay) and get all this in a totally dynamic,
uncanned setting. So there's knowledge representation issues
for conversation, plus conversation-generation issues: you
don't want NPC conversations to just be database queries--
"I last saw Bob three days ago in the Forest of the Damned";
my tentative plan is to work on simple cause-and-effect-chain
storytelling, and hope that leads to storytelling-conversation
that can be leveraged.

NPC actions would be driven by their goals, but also be
somewhat unpredictable, influenced by their mental states,
certain levels of irrationality, by a "random" tradeoff of
what goal to pursue, etc.  Anywhere that the NPC actions
have an unpredictable/random element, the "Gamemaster AI"--whose
job it is to take the player's interactions and coax an
interesting story out of it--can influence the event within
the allowed paramters for the NPC so as to steer things
in a direction that seems more "interesting". Ideally some
aspects of NPCs would be undetermined until the gamemaster
needed to fill them in--e.g. some additional goals for the
NPC might be added later even though the player has already
interacted with it somewhat. (If the player can't query
the NPC "what are your goals?", it helps.) Indeed, ideally
some aspects of the game would be indeterminant--e.g. things
that happened offscreen--until the gamemaster needed to
determine the details or found an opportunity to steer
the game in a good direction. But that would require a
sort-of heisen-world-state that I don't think would be
particularly feasible to implement.

Could you put all that together into something that works?
How do you make an "interesting" "dynamic story"? No clue
at all. The only thing I have any idea how to tackle is the
storytelling AI, and even that is going to be hard. My personal
opinion is that one of the reasons we've mostly stagnated on
NPCs (both in IF and commercial games) is because an advance
is really going to require a revolution, not an evolution.
As you say, self-motivated characters alone are not going to
lead to a good game. But a non-canned story can't be done
with canned characters... so I suspect we need to advance on
a number of fronts at once. (Stepping away from games and
doing Galatea-like "experiences" might help to evolve in
steps.)

SeanB
