Newsgroups: rec.games.int-fiction,rec.games.roguelike.development,rec.arts.int-fiction
Path: news.duke.edu!newsgate.duke.edu!news-hog.berkeley.edu!ucberkeley!news.maxwell.syr.edu!feed2.onemain.com!feed1.onemain.com!uunet!dca.uu.net!nyc.uu.net!world!buzzard
From: buzzard@world.std.com (Sean T Barrett)
Subject: Re: IF devtool wanted for Roguelike game
Message-ID: <G6AzF5.Jss@world.std.com>
Date: Fri, 29 Dec 2000 00:16:16 GMT
References: <3a4b90a9$1@rpc1284.daytonoh.ncr.com>
Organization: The World Public Access UNIX, Brookline, MA
Followup-To: rec.arts.int-fiction,rec.games.roguelike.development
Lines: 57
Xref: news.duke.edu rec.games.int-fiction:59993 rec.games.roguelike.development:5965 rec.arts.int-fiction:81729

(Followups redirected from r.g.i-f to r.a.i-f)

Nathan Jerpe <nathan.jerpe@ncr.com> wrote:
>I am looking for some sort of tool or utility to assist in managing the
>development of a nonlinear plot.  I would like to be able to organize
>events, citizens, and locations in such a manner that I don't inadvertently
>build paradoxes into the story.  I want to be sure that I haven't assumed
>the player knows too much when they encounter a new puzzle.  I'm sure these
>are typical considerations that IF authors worry about.

When I spent a few days in Boston interviewing at LookingGlass
Technologies, sometime after the release of Ultima Underworld II,
I posed basically this question to one of the programmers there
(one who, in fact, reads r.g.i-f and r.a.i-f these days).

How, I asked, do you keep track of all of these events and the
interdependencies, so that you can make sure you won't have plot
bugs where if you do something out of order, the plot sequence
gets blocked?  Do you have some sort of visual tool or scripting
system where you code in the description of the events, and the
program searches exhaustively for plot paths that get stuck?  Or
do you better yet read it out of the actual game itself--the level
data and the conversation scripts?

He replied that, while that might make sense and be a good idea,
they did not in fact do anything like that at all; they just did
it all by hand and tried not to mess things up.

As far as I know, no IF authoring systems provide any facility
to do something like this either--at least for 'something like
this' being automatic detection of unwinnable/blocked paths.

Part of this is because it's hard--if the IF scripting language
(or the conversation scripting language in the case of UW) is
Turing-complete, you have a sort-of halting-problem kind of
scenario, although in general you can probably sneak past that.
In the case of something like UW, you'd have to hand-input the
physical-geography restrictions since it would be too hard to
infer from the map (what jumps can you make? what jumps can you
make if you've found the ring of leaping?), and anything you
hand-input would be susceptible to bugginess.

But part of this is just because the perceived gain isn't that
great; just drawing the event chains out on a graph on paper is
usually sufficient for most games, as far as I understand it.

The problem/danger here is the interaction between events that
are chartable as paths on a graph, and state changes which happen
"independently" of that path; tracking those interrelations and
making sure things behave consistently.  I think with most IF
so much of the problem is represented as state instead of as
a graph that there's little applicability for a graph-oriented
tool, and proving stuff about state is more the realm of those
code-proving tools that result in productivity of 2 lines of code
a day.

SeanB
