SPAG
The
Society for the Promotion of Adventure Games
ISSUE
#52
SPAG #52 is copyright (c) 2008 by Jimmy Maher.
Authors of reviews and articles retain the rights to their
contributions.
All email addresses are spamblocked -- replace the name of our magazine
with the traditional 'at' sign.
IN
THIS ISSUE
Editorial
IF News
A Blind Man's Take on Interactive Fiction
by Ari Damoulakis
Works of Wisdom: A Comparison of
Nate Cull's "Planner" and Aaron Reed's "Intelligent Hinting" by Ron
Newcomb
An Interview with Mike Rubin
Reviews
An Act
of Murder
Child's
Play
Deadline
Enchanter
A Fine
Day for Reaping
Ghost Town
Gun Mute
Hors
Catégorie
Lost Pig
Suveh Nux
Treasures
of a Slaver's Kingdom
Varkana
SPAG Specifics
Metamorphoses
EDITORIAL
I recently attended
the
Electronic
Literature Organization's convention in beautiful Vancouver,
Washington. For those of you not familiar with the
ELO, its stated goal
is to "facilitate the writing, publishing, and reading of literature in
electronic media." Definitions like this, however, seldom
bring much sense of an organization's real orientation. The
ELO has historically tended to focus its attention on less
narrative-oriented forms of electronic writing: e-poetry, collaborative
writing projects, hypertext "fiction," etc. (I put the
"fiction" in hypertext fiction in quotes because I find that most works
in this genre are not really about assembling a coherent narrative at
all.) Of late, however, IF has taken a place under the ELO's
umbrella, thanks largely to the tireless efforts of Nick Montfort to
academically legitamize the still vaguely disrespectable form we've
chosen to work in. Granted, it still often feels in the ELO
like there
are the IF people and then there is everybody else, but at
least we
are represented.
Plenty of insightful papers and interesting artworks were presented, on
IF and other topics, but there was one thing about the conference, and
about the ELO mode of discourse in general, that bothers me:
an
obsession with form rather than content. It's
a problem that's not unique to the admittedly hyper-academic atmosphere
of the ELO. We do the same thing within our own (culturally
very different) community, and it also disturbs me here at times.
I
sometimes think we are getting ourselves so caught up in technical and
mechanistic minutiae that we are losing sight of why we might want to
be writing IF in the first place. Let me try to illustrate
with a couple of examples.
First, let me pick on one of the IF works that was presented at the
conference:
Hors
Catégorie by Chris Calabro and David Benin. I'm
not going to discuss its merits and problems as a work of IF; Victor
Gijsbers does a very good job of that elsewhere in this issue.
Rather, I want to look briefly at how the authors describes
their own work in their game's byline.
The subject of
Hors
Catégorie is the use of blood-doping and other artificial
enhancements that have caused such controversy in the sporting world in
recent years. The game casts its player as a cyclist
competing in the Tour de France and facing a decision -- you can
probably guess what sort of decision. It's a strong subject
for a work of literature: complex, resistent to black or white
thinking, and of real interest and importance for our times.
How then do the game's authors describe their game in their
own byline? "An experiment in affective, embodied interactive
fiction." Now, this is of course problematic on more than one
level. It is first of all simply bad writing with an
unfortunate air of disingenuousness to it, for as a phrase it is
essentially meaningless, the sort of argument from obscurity that
infects so many in academia. Moving past that, though, I
wonder why the authors chose, after having chosen a really quite
compelling subject for their work, to essentially ignore that subject
and describe their game (or, I suppose,
not describe their
game) in terms of vague formal abstractions. Even had they
been meaningful abstractions, the problems would remain.
This was its most
important aspect in their eyes?
Let's consider one of the played, respected, and oft-written
about works of modern IF: Emily Short's
Galatea.
In all of the reviews and and other discussions of the game
you can find on the Internet and in printed academic literature, you
will be hard pressed to find much commentary on the content of the
piece. Writers rather talk about the piece's technical
complexity, about how well (or how poorly) the conversation flows in
response to the player's inputs, etc. Cool intellectual
responses dominate the discussion, with the exception of the
occasional off-the-wall commentary such as the IFDB reviewer who
considers
Galatea
to reflect "modern man-hating female disparagement."
Galatea excites
admiration, interest, even a certain amount of awe, and all of it
richly deserved. However, it seems to excite very little
love.
Nor does it seem to inspire its player to grapple with
anything
more universal than the design of good IF conversation systems.
Is this a problem? Not really, I think, when taken in
isolation. I think that Emily Short, whom I have immense
respect for as a writer, creator, and tireless agent for positive
change in IF, intended her work as an experiment and even possibly a
bit of a provocation, an illustration of what might be possible.
But where is the game that takes
Galatea's formal
and technical innovations and uses them in the service of crackerjack
story with a fascinating setting and compelling, believable characters?
Eric Eve's recent works
come close, but how many others do?
Galatea sits out
there in splendid isolation. People play it, they tell
themselves and each other how
interesting
it was, what
potential
for IF it demonstrates, and then they move on. It's
not
up to Emily to build on
Galatea's
foundation; if she retires from IF tomorrow, she's done more for the
form than I or 99% of you will ever manage. It's up to us.
Where are we?
Some of us who are very, very good are writing games like
the generally acknowledged best game of 2007:
Lost Pig.
On the one hand,
Lost
Pig is nothing to disparage. It's hilarious;
it's great fun; it's honed and polished to the most beautiful shine.
Admiral Jota deserves tons of praise and respect for his
creation. And yet, on the other hand, it disturbs me just a
bit that, after twelve months and dozens if not hundreds of game
releases, a game about a cartoon-style orc with pidgin English skills
trying to recover a pig was the pinnancle of our achievements.
Best comedy (if such a category existed)? Sure.
Best game? That concerns me a bit. It's
not that the XYZZY voters were wrong.
Lost Pig probably
was the best game of 2007. But
why was it the
best game? Where are the IF games that, to paraphrase a
famous old Electronic Arts ad, make us cry?
We can work to make our parsers more newbie-friendly. We can
make IF
more accessible through web-based interpreters like Parchment.
We can
put a more attractive face on the genre through projects like the cover
art drive. We can do outreach to casual game portals like Jay
is
Games. All of these things are great, and hugely helpful.
I applaud everyone who has worked on these projects and
others. But most of all we
need games that will make us cry, or that will just keep us up late
at night playing because we can't wait to find out what's
going to
happen next. And to get those kind of games we need
authors who are willing to cut themselves loose from both the ironic,
deconstructed, postmodern aesthetic that is the hallmark of academic
art
and
from the elevation of craft and accessibility above all us that
is the hallmark of gems like
Lost
Pig and put it all out there -- to tell the best damn
story they have in them, or that they can find and adapt; and to do it
in the most compelling, immersive way possible.
Photopia
made at least some of us cry. And while the academics talk
about
Galatea,
the general public, that vanishingly small percentage of them who have
ever played IF, talk about
Photopia
because it's about something other than itself. It made them
feel something, and in doing so gave us a glimpse of the potential of
this new immersive form of reading, even as it was hobbled by its
linear structure and rather over-sentimentalized plot. What
if we could marry the technical and formal innovations of
Galatea with the
storytelling force of
Photopia?
What if we could create a work of technically sophisticated
IF that was about something beyond its own technical sophistication?
What would we have then? I think we might just
have, at long last, literature.
Back to Table of Contents
IF
NEWS
Planet IF
Now this is the sort of cool little idea that comes along every once in
a while and leaves the rest of us wondering why no one thought of it
before. Christopher Armstrong's Planet IF is an RSS feed
aggregator that brings together many blogs and news sites that discuss
IF. With IF discussion increasingly moving from the
newsgroups to blogs and other scattered locales around the Internet,
this is a great way to bind us all together. Check it out,
and if you run a blog or website that deals with IF please think about
setting up an RSS feed (if you don't have one already) and contacting
Christopher to add you to his collection. SPAG will be on
there soon, I promise.
Art Show 2008
Marnie Parker has had to postpone this year's IF Art Show due to other
personal obligations. She does plan / hope to run it toward
the end of the year, however.
Spring Thing 2008
Greg Boettcher's Spring Thing competition for longer works of IF is
complete. All three games were quite well-received and
finished very close together, but the winner was
Pascal's Wager by
Doug
Egan.
Macrocosm
Macrocosm,
a quite ambitious-looking piece of multimedia IF written in TADS, was
recently released by its author after four years in development.
Parchment
Atul
Varma has developed a Z-Machine interpreter that allows you to play
games directly through your browser. He has also provided a
website that gives access through Parchment to every Z-Code file in the
IF Archive. The interpreter is a little slower than I'd like,
particulary with Inform 7 games, but otherwise works a treat.
Now
we just need something like this for Glulx... oh, yes, Andrew Plotkin
is working on that, or at least on a
browser-based
GLK implementation, which is the first step.
Web Adventures
Web-based IF seems to be all the rage these days. Andrew
Whaley has
also put
together a site for playing some popular recent
and classic IF titles directly through your browser. You
don't even need Javascript enabled. Unfortunately, the
presentation still seems a little wonky on at least some browsers -- I
somehow ended up with three separate status lines on my screen -- but
hopefully Andrew will get things smoothed out over time.
War
Mage
Giancarlo Niccolai has released an English translation of his Italian
IF/RPG
War Mage,
which he
discussed
at some length in SPAG's last issue.
IF Competition 2008
The
big daddy of all the comps will of course be taking place again this
fall, ably administered as always by Stephen Granade. You
must
submit your intent to enter by September 1, and submit your completed
entry by September 30. The six-week judging period will begin
immediately thereafter.
FyreVM
Textfyre,
David Cornelson's commercial IF startup, has released its C#
implementation of the Glulx virtual machine as shared source.
FyreVM allows programmers to easily design a customized user
interface for IF in a way I don't entirely understand. Nor do
I
understand all this business about channels. If you are
smarter
or at least more persistent than me, however, you can even enter a
contest to design a customized interpreter using the FyreVM.
Entries must be submitted to David by the end of the year,
and
the top three will each win $200.
IntroComp
2008
Jacqueline
A. Lott will be running another edition of her competition for
introductions to proposed longer games. The intent to enter
deadline was July 20, but everyone can play the intros, score them, and
offer feedback to their authors beginning on August 20.
Club
Floyd
Jacqueline has also been hosting a weekly cooperative
playthrough of a work of IF on the
IF MUD.
Contact Jacqueline at jacqueline.a.lott SP@G gmail.com, or
just
drop by the IF MUD, for information about times, schedules of future
games, etc.
Page 6 Reviews
Back
in the day, Garry Francis wrote a series of reviews of adventure games
for the Australian Atari magazine
Page
6. These reviews,
along
with the rest of the magazine's contents, have now been placed online.
Garry's reviews are surprisingly well-written and thoughtful
in
comparison with the general standards of the era, and well worth
perusing for a little dose of nostalgia.
Back to Table of
Contents
A
Blind Man's Take on Interactive Fiction
by Ari
Damoulakis
You are standing in a crowded bar. There
are many tables in front of you. On one is a can of beer and a
half-eaten
packet of crisps. Against the wall there is a pinball table. The bar
counter is
to your right, and there are men and women sitting at the counter on
high
chairs talking.
This
description seems just like another
description of an interactive fiction game. This description also seems
like an
everyday scene that any person can see when they walk into a bar… but
that is
what makes interactive fiction so special to me: I am a blind person.
My
name is Ari, and I am a student from South Africa.
I
am writing this piece in praise of interactive fiction and text
descriptions.
As a blind person, there is just so much detail that I miss out on as I
go through life if it is not described to me, or if I don’t know that
something is there. I have been totally blind since birth, yet I have
an
artistic streak in me that really loves things, scenes, rooms and
people being
described to me. I am also curious and interested in people -- their
everyday
lives, problems, challenges, what they do and why -- and I reckon that if I were able
to see, I would
have been one of those photographers who sees an ordinary scene or
room, but are
still so fascinated by it that they take a picture.
Most
gaming opens worlds
for people. Interacting with characters and role-playing a career or
life that
they do not have in the real world allows people to imagine themselves
in
certain situations, or challenges the person to make certain decisions.
It
is that aspect of gaming, along with the writing,
descriptions of scenes
and the possibility of interacting with characters that make
interactive fiction so special. As a
blind person, most mainstream role-playing games are unplayable.
Interactive
fiction is then the bridge that allows me as a blind person, who also
would
like to participate in the joys of relaxing with a role-playing
computer game,
to step into an imaginary world.
Even
leaving aside the descriptive writing or
the imaginary world, I enjoy the challenge of sitting in front of my
laptop, on
a cold and rainy evening, trying to solve the wonderful puzzles! I love
one-room games, or games set in a house, which pose the challenge of
getting
out of a room, or of examining a few rooms, trying to get out of, or
solving
the mystery of that place. Examples would be Coming Out of the Closet,
Humbug,
Puzzle In Box,
King Arthur’s Night Out
and Bugged.
I also enjoy games which are
set in the real world, and which are based on situations which are
likely to
occur in the real world, such as Stranded,
Tube Trouble,
Gourmet or Gumshoe.
Because I’m unfortunately too much of a realist, I am not a fan of
games which
contain fantasy or concepts which do not occur in our world, such as
magic,
magical creatures, or fantasy worlds, however, many blind people do
enjoy those
type of games.
How does a blind person play
interactive
fiction, and what is the state of accessibility for interactive
fiction? We as
blind people use screen reading programs, which read the text of a
computer
screen back to us. Ideal for interactive fiction! As long as the
interpreter is
written well, there is no barrier that stops us from accessing games in
the
Windows environment. It is unfortunately quite disheartening, however,
to see that
many authors are incorporating and including graphics that are crucial
to
solving the plots of their games. An example of this would be the Quest
game,
The Last Resort.
The description of this game seemed very delightful, coupled
with the fact that there were even sounds, but unfortunately the author
had
incorporated graphical clues which needed to be understood in order to
solve
some puzzles, which was quite a blow for me.
I am
trying to learn how to write in either
Alan or Adrift, so that, in the future, I will also be able to release
some
games as well. I think IF is a wonderful resource for
artistically-minded blind
people to sketch situations and paint wonderful ideas. A blind person
who
learns to write IF will have a wonderful paint brush or camera!
To
the authors of Interactive Fiction, I
would like to say this: thanks for not letting the newer, flashier
style of
gaming put you off from keeping the wonderful pastime of text-based IF
alive,
even though a single descriptive photo or picture does say more than
1000
words, and it is easier and quicker to deduce details. Thanks for the
wonderful
puzzles which carry on trying to twist and smash my brain, and, above
all,
thanks for the brilliant descriptive writing which you use that opens
up so
many worlds, scenarios, locations and events. Interactive
fiction has taught me not to just concentrate on the “larger”
description of things,
but has also trained me to take an interest in and ask people
about finer details when someone describes places or objects
to me, even in real
life. (Unfortunately that is probably irritating to the person doing
the
describing -- "Why on earth does Ari also want to know if there are
pictures on
the walls, what they are of, and even the expressions of the people in
the
pictures! I’m getting sick of him asking me all these questions!") One
of my
friends who does English literature, did once remark to me that she
really
enjoys describing things to me, as this gives her chances to use words
which
she hardly ever uses in real life, and it also helps her in writing,
since she
has learnt to write in greater descriptive detail for her
readers.
Please
keep
the passion for IF!
(Feel
free to email Ari at aridamoulakis SP@G gmail.com
with your comments.)
Back to Table of
Contents
Works
of Wisdom: A Comparison of
Nate Cull's "Planner" and Aaron Reed's "Intelligent Hinting"
by Ron Newcomb
A comparison between a hinting system to a NPC goal-planner
may seem as fruitful as comparing the proverbial apples to oranges. But
these two extensions cover the identical ground of artificial
intelligence, the capacity of a computer to perform operations
analogous to human decision making. Both extensions are complex, but
that complexity lies in the AI itself, not in how our games use the
information. What is done with the result of that decision making is a
trivial difference: Hinting says the resultant action; Planner does it.
In this article we shall score these extensions against one another on
several features. But first, let's introduce our contestants.
Nate Cull's Reactive Agent Planner is a cross-platform AI
found on various versions of Inform and TADS. Not all ports of it were
necessarily done by Cull alone -- the original was heavily based on
academic papers from the Oz project, and the TADS3 port was done
entirely by Steve Breslin. Software with such a multi-author and
multi-platform history usually possess benefits of maturity, polish,
and reliability since the code base has been worked and re-worked many
times over. The Inform 7 port alone is two years old, nearly as old as
Inform 7 itself.
The new kid on the block, Aaron Reed's Intelligent Hinting,
was recently released in May of this year. Created to encourage
beginner-friendly works by promoting itself as author-friendly to use,
it underwent a brief online peer review before its release. Its youth
is not necessarily a disadvantage, however. Inform 7 is still in beta,
and since Planner's release Inform has added many new features which
Hinting uses to good effect.
Which is easier to use? Which is more powerful? How nimble is
each in fulfilling the other's role? And how do we decide between the
two, if we want both functionalities for the price of one? Let's find
out.
--- Surface Issues ---
Terminology
As each extension was conceived for a specific purpose, their
respective terminologies differ accordingly. But the concepts map onto
each other nearly one-to-one, and so their terms do as well. Planner
uses the apparently plain language of the Oz project with the point of
view being the character's: goals are achieved by one or more plans.
Hinting uses the language of game puzzles, so the point of view is the
author's -- puzzles are solved by one or more tasks.
Though either work, our deciding factor is in the details of
the code. Planner has a slew of hyphenated names for essential
rulebooks and objects, all of which begin with "planning-". While many
realms of computerdom demand naming conventions, they are out of place
in a naturalesque language where a name can be more than one word.
And so, our first point goes to Hinting.
Documentation and Examples
Reed went to some lengths to document Hinting, including a
handful of examples, and specifically shows how two known works would
be adorned with hints. He further separates all of the Hinting-specific
code from the game's code to emphasize exactly what must be done to
enhance an existing work. Again, if understanding leads to more
understanding, expanding upon two already-known works with a strict
division between the new and old code is a valuable aid.
Planner has a much longer history than Hinting, and has more
written about it over the course of that history. However, you wouldn't
know it by its Inform 7 documentation, which reads like a list of
caveats followed by a history lesson. This is a cardinal sin with
esoteric pieces of code such as AI, and doubly so as much documentation
exists for RAP on other platforms, including an amusing and very well
written Wonderland-themed introduction with earlier ports.
By all rights, Planner had the advantage here. It did not
exploit it. Point: Hinting.
Narrative hooks
Good authors will customize the output of any extension with
their own prose. How is this done with each, and how flexible is it?
Hinting uses a simple table of default responses which can be
amended via the kind-of-value in the first column. Planner uses a slew
of initially empty rulebooks which allows different characters to
describe a variety of situations. Planner's rulebook approach is far
more flexible than Hinting's table approach, but it has no default
responses. This can baffle authors new to Planner. Ultimately, each
extension uses the appropriate method for its own narrow task, and even
Hinting's method can be slightly expanded by calling rulebooks through
a say phrase.
The tie-breaker comes in the form of the character -- PC or
NPC -- who thinks out loud. Such noisy characters tend to exist in
half-completed works still undergoing testing. Though both extensions
have some debugging support, it is primarily intended for debugging the
extension itself, not the enclosing game, and we don't wish to confuse
the two. And while both extensions also use To phrases extensively,
Planner uses a pair of rulebooks -- "planning" and "planning-testing"
-- to recursively solve problems. Since To phrases cannot be modified
and rulebooks can, our babbling oracle can only be implemented in
Planner.
Point: A tough call, as Planner lacks default replies while
Hinting lacks that last obscure ability. But Planner's issue is
essentially being a little too ready to accept customized prose, while
Hinting's issue is impossible to overcome. This point goes to Planner.
--- Encoding Desire ---
Representing a Desire
An AI must know what is wanted before it can reason out the
steps to get there. How does each extension represent this?
Planner requires a Goal to be stated as an
object-relation-object triad, such as the cat, the bag, and the
containment relation. But Planner immediately hits a limitation here:
relations cannot be put into tables, nor passed to To phrases, nor even
put into global variables. Planner circumvents this by creating a
stand-in object for every existing relation, called a
planning-relation, and uses these exclusively. This has two drawbacks.
First, it burdens authors with creating stand-ins for each of their new
relations. And second, for all Planner talks of them, it doesn't
actually use relations itself. This is misleading, and is one of the
larger barriers to learning Planner.
Hinting too uses objects connected by a relation, but the
relation is always the same, the Requires relation. Instead, it is the
objects that have stand-ins. These objects, called Puzzles, must also
be created by the author. Like planning-relations, Puzzle objects are
little more than a name that can be attached to things. In this case,
to Task objects and other puzzle objects.
Point: Neither. Although Hinting won the terminology award
here, a surfeit of vacuous objects is always an annoyance. Hinting
needs to shave down the number of concepts, while Planner needs to
rethink its implementation or at least how it is described.
Striving Toward a Desire
The core aspect of an AI is how to specify, step by step, how
to get to where it wants to be. How does each extension represent how
to do what needs be done? Both Planner and Hinting use a rulebook --
"planning" and "requirements", respectively -- that enumerate the
necessary actions to accomplish the given desire:
Planning when the desired relation is being-in and the desired param1
is broth and the desired param2 is the pot:
plan 1;
suggest being-in with the onion and the pot;
suggest being-in with the celery and the pot;
Requirements for Slaying-The-Gorgon:
do the action of the person asked closing eyes;
do the action of the person asked showing the mirror to Medusa.
Both seem straightforward: given a simple desire, list the
steps to finish it. However, there's something else going on here with
Hinting. The requirements rulebook never takes a Puzzle as its input;
it takes an intermediate kind of object, the Task. Tasks are the real
workhorse of Hinting. They remember the individual steps to accomplish
something, they can be marked as complete or incomplete using the
Definition syntax exactly as Puzzles are. Indeed, they can do nearly
anything Puzzles can, which leads one to ask -- why the extra object
kind?
Additionally, the requirements rulebook is only ran when play
begins. If some actions are conditional on time (such as a Scene) or
state (such as Darkness), the if statement can't be placed on the do
phrase like it can on Planner's suggest phrase. Hinting states it must
go into yet another place, the Red Flag rulebook. This introduces
another extraneous concept to Hinting which Planner does not have, and
AI is complicated enough.
Point: Planner.
Evaluating a Desire
How does a work know when the desire is attained? Are we there
yet? Are we there yet? This is a question that a work must ask itself
from time to time, and many different Inform features can be used to
implement it. At its simplest, any condition that fits between if and
then will do the job, but Inform doesn't support conditions as
stand-alone entities. So, Planner uses a rule in the planning-testing
rulebook, predicated on the two objects and the relation stand-in, and
the body of the rule has the if-then statement. Hinting precedes that
same if-then statement with an adjective definition, "Definition: the
(specific Puzzle object) is complete if...".
Point: Hinting, hands down. Less is more here: Hinting's
definition method requires less author typing, less computer memory,
and less of the player's time to execute, and furthermore does so with
no loss in flexibility.
--- Flexibility ---
Eating the other's lunch
Once a particular action is found to be necessary by an AI,
how easily does it pass to the enclosing game the option of what to do
with that action? In other words, how easy is it to make Planner hint
and Hinting plan?
Planner was created before Inform supported Stored Actions,
so, much like relations, actions have stand-in objects, of kind
"planning-action". When Planner has finally found the best next action,
it gives that stand-in to the "planning-acting" rulebook, which
contains the actual Try statements. Given this setup, it's relatively
easy to create a First Planning-action Rule that speaks rather than
does.
Hinting uses Stored Actions, so merely prints or invokes one
as necessary. Unfortunately, a stored action cannot be edited; we
cannot change the actor part of a stored action to someone else, and
Hinting internally describes actions with "the action of" instead of
"the action of the person asked", so there's rigidity here that cannot
be easily overcome.
Point: Planner. Planner's generalized method works though it
is unnecesarily complicated -- many other things would work better as
an action stand-in than more oddly-named objects, and some of them are
easier to update as we create new actions. Hinting's method is rigid to
the point of disallowing games with multiple PCs, or utilizing new
actions in its reasoning at all.
Accidental ignorance
There comes a time in every AI's problem domain when it just
can't find an answer. A new author isn't experienced enough with coding
to tie up all the loose ends; a PC or NPC has been put into an
unwinnable state either purposefully or accidentally; and not even a
hint system knows everything while a work is still being written and
tested. How well does each extension handle failure, either during
testing or during an actual game?
Planner makes an art of it, dividing failure into two kinds:
one when the only conceivable actions are blocked by Check rules
(planning-acting-failure), and one in which no actions can even be
conceived by the AI (planning-failure), possibly indicating a hole in
implementation.
By contrast, Hinting's position on unintended stuckness can be
summed up in a word: Inconceivable! Consequently, when presented with
such a situation during a game, it falls over dead. While we can change
Hinting's last words, there's very little in the way of leftover
variables or other information for a postmortem to diagnose what
happened. Attempting to construct the hints and a game simutaneously
will quickly send the author to the routines used for debugging the
extension itself.
Point: Planner.
Intentional ignorance
Dealing with mis-information, NPC ignorance, and unreliable
narrators is not a trivial matter, and neither extension attempts it.
Arguably, Hinting may make the claim that, being a voice from outside
the world, should not deal with this problem. However, in a game with
multiple PCs, they may differ in their knowledge and abilities, so
Hinting would need to tailor hints to each PC's abilities. Related to
this, an author may decide that hints come instead from a semi-reliable
sidekick who only knows so much. Hinting has no provision for either.
Similarly, Planner has no provision for an NPC's imperfect
knowledge. This is more grevious in Planner than Hinting, though
Planner's rulebook-based approach makes this easier to add such
features.
While both extensions may be modified to add this ability, it
is not obvious where to do so, and neither documents how to begin such
an undertaking.
Point: Neither.
--- And Finally ---
Ease of use
Let's assume we're already familiar with a given extension
from our recent heartbreaking work of staggering genius. How quickly
can we throw something new together? That depends largely on what we're
trying to do of course, but we already addressed flexibility. And
terminology and documentation won't be a problem (or benefit) because
we're already accustomed to our chosen extension. Rather, this point
goes to whichever extension does its own job with the least amount of
fuss.
Planner has no default messages, and even its basic
functionality is extracted to another file, Basic Plans. Furthermore,
it requires a great deal more typing for most everything. Conversely,
Hinting already knows one goal our character has -- winning the game. A
few names, a few relations connecting them to Winning, and we are good
to go.
Point: Hinting.
--- Conclusions ---
First, let's tally our scores.
To Hinting, four points: Terminology, Docs & Examples,
Evaluating a Desire, and Ease of Use.
To Planner, four points: Narrative Hooks, Striving Toward a
Desire, Eating the Other's Lunch, and Accidental Ignorance.
And two unawarded points: Representing a Desire and
Intentional Ignorance.
The overall results probably won't surprise anyone who has
tried to use each. Intelligent Hinting is more polished and
ready-to-use, albeit only for those specific kinds of works that fit
its mold. Planner is far more flexible and powerful, but has a serious
image problem. Planner can easily implement Hinting if it chooses to,
but Hinting can't quite say the same.
If the heart of AI is to represent, attain, and evaluate
fulfillment of a particular desire, it's an interesting observation
that neither extension came away a winner here. This is not a knock
against their respective authors. Software that can introspect asks a
lot from the programming language in which it is written, and much like
a wire cheese slicer will expand the faint line it leaves in a block of
cheddar, into a chasm long after it has passed, a language's small
exclusion grows into colonies of stand-in objects, work-arounds, and
other hyphenated words. The rewards are promising, if distant and hard
to see: hint systems that track and assist hapless players, easier
creation of new implicit actions, auto-created lists of a game's
required commands, and NPCs whose believability improves through the
player's agency, not in spite of it.
All it requires is a little work, and a little wisdom.
Each
extension has at least one example that comes with its documentation.
Below, each of those examples has a little code added so that the given
extension can work both as a hinting mechanism and as an NPC
goal-planner. These were constructed with build 5T18 of Inform 7, and
use the May 2008 version of both extensions. Hinting was slightly
modified per the comments in its example.
We may copy and paste from below into a new Inform project to
immediately compile and run.
|
|
"Alchemy" by Nate
Cull
Chapter
1 - The Game
The Laboratory is a room. "A chaos of glassware, dark sigils,
spellcasting apparatus sprawled in disgusting confusion -- in other
words, a perfectly normal research lab, with a cupboard full of food. A
stone archway leads east and another south." The Library
is east of the Laboratory. "The stony
walls are racked with square miles of parchment volumes."
The Alcove is south of the Laboratory. "A
tiny niche carved out of the stone, which opens out to the north."
A rosewood bench is a
supporter in the laboratory. "A
rosewood bench, scarred and burned by years of incantations, fills half
of the room." An iron crucible is an open container on the
rosewood bench. "Bob's crucible
bubbles merrily on the bench." A curiously carved table is
a supporter in the Library. A cupboard is a closed openable scenery
container in the laboratory. A plastic bag is a closed transparent
portable openable container on the carved table. A Chinese puzzle box
is a locked lockable closed openable portable container in the plastic
bag. A pinch of ginger is a portable edible thing in the puzzle box. A
wicker basket is an open container in the cupboard. An onion, a tomato,
a stick of celery, a lemon, and a banana are edible things in the
wicker basket. Broth is an edible thing. A brass hook is a supporter in
the Alcove. "Screwed into the
stonework with grim determination is a shiny brass hook."
The brass hook has carrying capacity 1. A silver key is on the brass
hook. The matching key of the Chinese puzzle box is the silver key.
Every turn when the onion,
celery, banana, and ginger are in the crucible: repeat with item
running through things in the crucible begin; remove item from play;
end repeat; now broth is in the crucible.
Every turn when broth is in
the crucible: if the crucible is visible, say "The
soup simmers, melding into a rich pungent vegetable broth.";
end the game saying "Soup's ready!".
Bob is a person in the
laboratory. "The mighty wizard Bob
potters around his domain." The description of Bob is "Bob is carrying [a
list of things carried by bob]."
Report Bob opening the
cupboard for the first time: say "'Aslan
sesameslan!' says Bob, flinging the cupboard doors wide open to reveal [a list of things in the cupboard].";
stop the action.
Chapter
2 - add PC stuff
Persuasion rule: persuasion
succeeds. The block giving rule is not listed in any rulebook.
Definition: a person is
other if it is not the person asked.
After an actor going: let
follower be a random other person; say "[The follower] follow[s] [the
actor]."; move the follower to the location
of the actor; continue the action.
Chapter
3 - Supplemental Intelligence
Test me with "hint/solve/solve /solve/solve/solve/solve
solve/solve/solve/solve /solve/solve/solve/solve/ solve/
solve/solve".
Test him with "bob, think/bob, solve/bob, solve/bob,
solve/bob, solve/bob, solve/bob, solve/bob, solve/bob, solve/bob,
solve/bob, solve/bob, solve/bob, solve/bob, solve/bob, solve/bob,
solve/bob, solve/bob, solve".
Include Planner by Nate
Cull, Basic Plans by Nate Cull.
Section
1 - Make Planner plan
Procedural rule when the
desired relation is being-in and the desired param1 is broth and the
desired param2 is the crucible: ignore the basic putting things in
containers rule.
Planning when the desired
relation is being-in and the desired param1 is broth and the desired
param2 is the crucible: plan 1; suggest being-in with the onion and the
crucible; suggest being-in with the celery and the crucible; suggest
being-in with the banana and the crucible; suggest being-in with the
ginger and the crucible.
Procedural rule when the
desired relation is being-in and the desired param1 is a person: ignore
the basic dropping objects in rooms rule.
Planning-failure: say "Bob scratches his beard and looks perplexed.".
Planning-success: end the
game saying "All done!".
Section
1b - Make Planner plan using a new action
Doing-asking-for is a
planning-action.
Planning-acting when the
planned action is doing-asking-for: try the planning actor trying
asking the planned param1 for the planned param2.
Planning rule when the
desired relation is being-touchable-by and the desired param2 is the
planning actor and a person (called the owner) encloses the desired
param1: plan 1; suggest being-touchable-by with the owner and the
planning actor; suggest doing-asking-for with the owner and the desired
param1.
Instead of Bob asking the
player for something: say "'I say, old
chap,' says Bob. 'Do be a sport and hand me that [second noun].'";
change the action success flag to 1.
Section
2 - Make Planner hint
The new successful-action
rule is listed instead of the successful-action rule in the specific
action-processing rules. This is the new successful-action rule: change
the action success flag to 1.
First planning-acting when
an actor suggesting: change the action success flag to 1 instead.
Understand "solve" as solving. Solving is an
action applying to nothing. Carry out an actor solving: have the actor
plan an action for being-in with broth and the crucible.
Understand the command "think" as something new.
Understand "suggest" or "hint"
or "think" as suggesting.
Suggesting is an action applying to nothing. Carry out an actor
suggesting: have the actor plan an action for being-in with broth and
the crucible; say "[The planning actor] should try
[the planned action][unless planned param1 is no-object]
[the planned param1][end if][unless
planned param2 is no-object] with [the
planned param2][end if].".
Section
3 - Print the planned actions nicely (optional)
A planning-action has some
text called the printed name. The printed name of doing-opening is "opening". The printed name of
doing-taking is "taking".
The printed name of doing-putting-in is "putting".
The printed name of doing-going is "going".
The printed name of doing-unlocking-with is "unlocking".
The printed name of doing-asking-for is "asking".
|
"Cloak Of
Darkness" by Aaron Reed
Chapter
1 - The Game
Foyer of the Opera House is
a room. "You are standing in a
spacious hall, splendidly decorated in red and gold, with glittering
chandeliers overhead. The entrance from the street is to the north, and
there are doorways south and west." Instead of an actor
going north in the Foyer, say "You've
only just arrived, and besides, the weather outside seems to be getting
worse."
The Cloakroom is west of
the Foyer. "The walls of this small
room were clearly once lined with hooks, though now only one remains.
The exit is a door to the east." In the Cloakroom is a
supporter called the small brass hook. The hook is scenery. Understand "peg" as the hook. The description
of the hook is "It's just a small
brass hook, [if something is on the
hook]with [a list of
things on the hook]hanging on it[otherwise]screwed
to the wall[end if]."
Understand "hang [something preferably held] on [something]" as
putting it on.
The Bar is south of the
Foyer. The printed name of the bar is "Foyer
Bar". The Bar is dark. "The
bar, much rougher than you'd have guessed after the opulence of the
foyer to the north, is completely empty. There seems to be some sort of
message scrawled in the sawdust on the floor."
The scrawled message is
scenery in the Bar. Understand "floor"
or "sawdust" as the
message. Neatness is a kind of value. The neatnesses are neat, scuffed,
and trampled. The message has a neatness. The message is neat.
Instead of an actor
examining the message: say "The
message, neatly marked in the sawdust, reads..."; end the
game in victory. Instead of an actor examining the trampled message:
say "The message has been carelessly
trampled, making it difficult to read. You can just distinguish the
words..."; end the game saying "You
have lost".
Instead of an actor doing
something other than looking, going or solving in the bar when in
darkness: if the message is not trampled, change the neatness of the
message to the neatness after the neatness of the message; say "In the dark? You could easily disturb
something."
Instead of an actor going
nowhere from the bar when in darkness: now the message is trampled; say
"Blundering around in the dark
isn't a good idea!"
The player wears a black
velvet cloak. The cloak can be hung or unhung. The description of the
cloak is "A handsome cloak, of velvet
trimmed with satin, and slightly splattered with raindrops. Its
blackness is so deep that it almost seems to suck light from the room."
Instead of an actor dropping or putting the cloak on when the player is
not in the cloakroom: say "This isn't
the best place to leave a smart cloak lying around."
Carry out an actor taking
the cloak: now the bar is dark. Carry out an actor putting the unhung
cloak on something in the cloakroom: now the cloak is hung. Carry out
an actor putting the cloak on something in the cloakroom: now the bar
is lit. Carry out an actor dropping the cloak in the cloakroom: now the
bar is lit.
When play begins: say "[paragraph
break]Hurrying through the rainswept November night,
you're glad to see the bright lights of the Opera House. It's
surprising that there aren't more people about but, hey, what do you
expect in a cheap demo game...?"
Chapter
2 - add an NPC
Bob is a man in the Foyer.
Persuasion rule: persuasion succeeds.
After someone going: say "You follow him."; move the player
to the location of Bob.
After deciding the scope of
the player when in darkness: place Bob in scope [because
he can still hear you].
Chapter
3 - Supplemental Intelligence
Test me with " solve / solve / solve / solve / solve / solve
/ solve ".
Test him with " bob, think / bob, solve / bob, solve / bob,
solve / bob, solve / bob, solve / bob, solve / bob, solve ".
Include Intelligent Hinting
by Aaron Reed.
Section
1 - Make Hinting hint
Winning-The-Game requires
Noticing-The-Dark-Room, Hanging-The-Cloak, and Reading-The-Message.
Noticing-The-Dark-Room is a
task with venue The Bar. Definition: Noticing-The-Dark-Room is
complete: if location is The Bar or The Bar is visited, yes.
Hanging-The-Cloak is a
reversible task. The venue is Cloakroom. Requirements for
Hanging-The-Cloak: do the action of putting the cloak on the hook.
Definition: Hanging-The-Cloak is complete: if cloak is hung, yes; no.
Reading-The-Message is a
task with venue The Bar. Requirements for Reading-The-Message: do the
action of examining the scrawled message.
Section
2 - Make Hinting plan
[
Because Inform doesn't understand "change the actor part of the
relevant action to Bob", we have modified the extension, a simple
search-and-replace of all instances of "the action of" with "the action
of the person asked" ]
Carry out someone solving:
now relevant action is the suggested action; unless relevant action is
the action of the person asked fake-actioning, process appropriate
action, actually performing;
Instead of someone
thinking: say "Bob considers [the suggested action].";
rule succeeds.
|
Back to Table of Contents
An Interview with Mike Rubin
(conducted by Urbatain)
Mike Rubin, better
known online as Rubes, is currently at work adapting Jason Devlin's
2005 Comp-winning effort
Vespers
into a real-time 3D environment using the
Torque
Engine
from Garage Games. As an attempt to wed the storytelling
sophistication of textual IF with the immersive immediacy of graphical
3D worlds, it's both an interesting experiment and a noble attempt to
use FPS technology in the service of a non-simplistic story.
Urbatain of the Spanish IF community and SPAG's sister
publication SPAC conducted the following in-depth interview with Rubes
about
Vespers 3D
and the difficulties and potentials for an adaptation of this nature.
Urbatain
has a somewhat, shall we say, idiosyncratic style of English, and I've
had to heavily edit his questions to make them read more naturally.
My apologies to him if I've overstepped my editorial license
anywhere.
Urbatain:
For a start, I would like to know a little more about you. As
I've told you in private, I'm really excited about your project, and
something that struck me positively is that it is not
just theoretical vaporware. You have
already made
considerable progress: there are marvelous screenshots on the
net, there are videos, and you have laid out in detail your design
concept and your plans for modeling Vesper's world. Many of your
labours are already done. So tell us a little bit of yourself
and
your history with interactive fiction, and tell us whether you
have worked on any IF projects before.
Rubes:
Well, I wouldn't go so far as to say my labours are done; we probably
have only about 20% of the game done so far, but I understand what you
mean and it's nice of you to say that. I've played IF for a long time,
although I haven't played a huge number of games. I remember playing
the original
Colossal
Cave on my dad's computer, sometime back in the 1970s,
although I couldn't
tell you which specific version it was. I was probably only about 8 or
9 years old at the time. I remember we had it on a 5.25" floppy, and I
would get excited whenever I typed a command that caused the disk drive
to start spinning -- it meant I had found something new and something
good was about to happen. From there I moved on to mostly Scott Adams
games, like
Adventureland
and
Pirate Adventure.
I loved those games.
Like many others, I moved on to Infocom games and had a great time with
those. I remember
Deadline
and
Planetfall
the best, but there were so many good ones. I didn't really play many
graphical adventure games after that. I tried a few, but none really
hooked me. I don't remember playing very many adventure games at all in
the '90s, but a few years ago I discovered rec.arts.int-fiction and
realized the IF community was alive and well. I've been following along
since.
I've never written any IF myself, though. I think I can
write well, but I don't consider myself a very good creative writer.
I've thought about it, though. If I wasn't working on
Vespers, I think I
might have tried it by now.
Urbatain: Tell us about
your career as an indie developer.
Rubes:
Well, I didn't start from zero, but not far from that. I have created
only one other indie game, a shareware game for the Mac back in the
mid-1990's called
Missions
of the Reliant.
As a kid, I had learned programming and wanted to make a game so badly,
but like most kids I had no idea what I was doing and never
accomplished anything. But in the early '90s, with some extra time on
my hands, I decided to get serious about it. Well, not too serious,
considering I was a lazy graduate student at the time. And I still had
no idea what I was doing, but at least I got somewhere with
it.
Missions
was a 2D sprite-based game, inspired by the old ASCII
Star Trek game
where you warped from sector to sector on a grid wiping out Klingons
with photon torpedoes and phasers. I made it basically alone, and I
think it did fairly well for a shareware game back then. It was
nominated for MacUser magazine's "Best Mac shareware game" of 1994, I
believe, and came in second place (damn you, Andrew Welch!).
It
was a fun experience, but as I moved on in life I found I had little
time or enthusiasm for more game development. Then, a couple of years
ago, I got the itch again, so I started looking into it. But that's
really all there is to my history of being an indie developer -- one
little space game some twelve or thirteen years ago.
Urbatain: It's
almost impossible to make a quality graphical game without a
whole team of people. Vespers
is no exception. So tell us something about your indie company. How it
it organized? Do you have an office or do the members just stay in
contact through the net?
Rubes:
You're right, there's really no way to make a 3D game like this without
a lot of help. We're still a pretty small group, though. The company's
name is Orange River Studio, which is something of a tribute
to
the slot canyons of Utah (where I live) and the room from the original
Colossal Cave adventure.
Right now, the group consists of me, Jason Devlin (
Vespers
author), one 3D modeller (N.R. Bharathae), two character animators
(James Allan and Marc Schwegler), and a composer (Daniel Godsil),
although some of those people work independently from the company. This
project really started as a hobby more than anything, so we're still in
the process of evolving from a hobby project to something more
organized. We're scattered all over North America (and Switzerland), so
there's no single office. We're all working out of our homes, as far as
I know, and I think most of us have day jobs and do this work at night
and on weekends.
Urbatain: When did you
first decide to develop a "graphical IF" game?
Rubes:
Well, as I mentioned a couple of years ago I got the itch again to make
a game. I really didn't anticipate being able to make a 3D game,
though, since I had no interest in the complexity of those engines and
the steep art requirements, but I somehow stumbled across the Torque
Game Engine from GarageGames and suddenly it seemed like a 3D game was
a possibility. There were still huge hurdles to overcome with respect
to content generation, but after some consideration I thought I would
give it a shot.
The easy part was deciding to make a game; the
hard part was deciding what game to make. I don't remember exactly how
it came to me, but sometime early in the process I decided to try and
merge IF with a 3D engine. I thought it would be something that nobody
had really tried before, and it might be a way to combine the best
parts of both worlds, to make an adventure game that was more
interactive and immersive. It seemed silly at first to try and merge
text with advanced 3D graphics, and some days it still seems pretty
silly. But I know that text offers something that AAA FPS games don't
have, and vice-versa. So I thought I would give it a try with a small
"experiment" -- a game that is shorter and more contained. That's why I
initially looked to the IF Comps for possible games to implement.
Urbatain:
I'm quite interested in the idea of implementing the same kind of deep
model world interactivity that we see in Inform or TADS in a graphical
game, no matter the interface: point and click, icons, FPS, I don't
mind. I only know that I want to do it, someday...
and then I
find you, developing the same idea and using as your source a game that
is hardly the first candidate one would think of for such an
adaptation. So... why Vespers? It just seems like such a difficult
title to adapt into a 3D environment.
Rubes:
I didn't want to start completely from scratch with this experiment, so
as mentioned I first looked to the IF Comps for a good game to base
this upon. By starting with a completed IF game, much of the difficult
and important ground work would be done, and I could start with a game
that already had good writing, strong characters, and a developed plot
-- something a lot of big-time games don't have. And it's not all that
different from a movie producer looking to base his next project on a
successful book, I suppose.
After playing through a number of IF Comp games from different years, I
found that I enjoyed
Vespers
a great deal and realized that it would make a really interesting
graphical game. Some of the things I liked about
Vespers
were that it was a short game, it was relatively well contained with
not many rooms or objects, and it had some decent puzzles, so it
wouldn't be a stretch to implement the whole thing. I also loved the
setting and the atmosphere of the game, as well as the characters,
dialog, and story. I thought it worked really well in text, but I also
thought it presented a great opportunity for translating into a
graphical game. I just got the sense that I would enjoy exploring that
world in 3D, and that it would work in that type of medium.
It
definitely has its challenges, though. The game is heavy on dialog, so
that means the characters have to be modeled, animated, and voice-acted
really well or it will come across as too artificial. There are also a
few scenes in the game that will be difficult to put together, like the
avalanche scene, the scene in the cellar, and the final ending scene.
But I think we'll be able to come up with some satisfying solutions for
those. I hope we will.
Urbatain:
I would have expected you to choose a very different sort of IF game.
Many classic IF games are of course just detailed environments where
time is more or less static. But a modern game like Vespers is a much
more ambitious exercise in storytelling. It seems
exceptionally
difficult to adapt into a graphical game. Did you consider
starting with an older, simpler game, with no real character
interaction, no branches in the story, no real need for the player to
direct the plot, or even much of a plot at all? In other words, a
typical old-school cave crawl.
Rubes: Now you tell me! ;)
Actually,
this is probably true, and if I had thought about it more at the
beginning, I might have started with an abbreviated implementation of
Colossal Cave
or something similar. Then again, realistic caves can be a bit
difficult to convincingly model in 3D, so maybe not. When I started
out, my main concern was trying to find an IF game that was brief (to
keep the scope of the project down) and feasible (to limit the
implementation challenges).
Vespers
does
present some feasibility problems -- how to implement the long ride to
the stream, the avalanche, the scene with the wolves, and so on -- but
we'll have some solutions for those issues. What I find most
interesting about those challenges is that they get to the very heart
of the differences between turn-based IF and real-time 3D, and I'm
hoping it will generate a lot of discussion about the alternative ways
of approaching these problems.
Urbatain:
I have two games in mind that I think might be good choices to convert
into graphical games. There is a Spanish game, El Anillo (The Ring),
in which the player is a ring that only can do a few things: examine,
look, shine, increase or decrease its size, and talk with the person
wearing it. This might be quite easy to implement -- at least
in
the first part; in the second part, the ring controls a
mentally
retarded hunchback, so it's more like a typical IF game -- in a
graphical game. I would implement it like the flash game
Sprout
(Google it and play it! It's worth the time). Another one might be
Spider and Web. In fact, I mentioned
this possibility to
Zarf, but he was pessimistic about how well it would work well as an
"arcade" game. So this get me to Vespers 3D. How did you finally decide
on the the interface and model world as it is now? And have
you
considered other approaches toward implementing a decent IF model world
in 3D?
Rubes: That's a good
question. One of the main challenges to implementing an IF game in
real-time 3D is that IF is traditionally turn-based; activity only
takes place between command prompts, and players have as much time as
they want to ponder the next action. Of course, in a real-time game
there is generally more pressure on players to think and type fast, but
that's not the game I want to create. So I've tried to design the
system and the interface to be this hybrid of real-time and turn-based
play.
A turn-based game is really just a game that waits for
player input before advancing the action a certain amount, and this
game is not really any different -- even though it gives the appearance
of taking place in real time. Things are happening around the player
all the time, but really these are just idle activities, and most just
play continuously or randomly until the player performs some type of
meaningful action to interrupt them. It's really not much different
than a turn-based game, at least the way I'm implementing it.
What
I'm doing is really a direct translation of a turn-based text game,
making (animated) graphical representations of objects and characters
that are defined much as they are in the original Inform code. Because
of that, our world model is very close to what it is in IF, just with
models, animations, and more salient spatial relationships. But since
that's the approach I've taken, I'm also not exactly pushing the
boundaries of the medium, so to speak. There is a lot more that could
be done, but I'm really just using this experiment to see what this
model is capable of, before testing its limits with a future project.
The real challenges will come in scenes that contain continuous
activity, like the avalanche and cellar scenes from
Vespers.
It's a challenge to create those in a turn-based text game, of course,
but there is never any deviation from strict, discrete turn-based play.
Once you get into the realm of animated 3D, even if it's
pseudo-real-time, you run into problems waiting for the player to take
action. There are certain things we can do, but it takes a lot of
creative thinking to work out those scenes.
Urbatain:
This is an interesting approach. However, there are examples
of
real-time textual IF, such as some MUDs or Skotos's Castle
Marach;
and a friend of mine is making a system for MUDs and IF at the same
time (multiplayer IF is at hand at last! ;) how many times have we
heard this?) where actions take time to be done, so a player could see
another player start to pick a lock, then see him picking the lock, and
finally see him finish picking the lock. How do you control the passage
of time in actions like this in your game?
Rubes: I haven't reached any of those situations in the game yet, but I
will soon. There are a few of those in
Vespers,
like the ones mentioned above -- the avalanche scene, the scene with
the wolves, the scene in the cellar -- where actions take place over a
number of turns. I'm not exactly sure how the final system will work,
but I imagine it's going to be some sort of hybrid between turn-based
play and real-time play. For instance, the player will probably be
given a lot of time to think, but it won't be like a pure turn-based
game where time only advances once actions are taken.
Urbatain:
Another game I have thought of porting to a graphical formal is one of
mine called El Extraño Caso de Randolph Dwight. It
is an
experiment into alternatives to compass direction navigation.
Although there are rooms, the player must navigate with the
verb
GO: "Go near the wardrobe and open it", "go through the door," etc.
This game also has a system whereby the player
character automatically goes near the object the player is
attempting to interact with. (Shade by Zarf also uses this approach
quite successful.) Here's an example:
>open wardrobe
You walk to the wardrobe and open it, revealing your clothes.
I
implemented this system because my testers protested about the "You are
too far away to do that..." message, and for certain actions this could
be a little odd and tiresome. But I've seen in your screenshots that in
Vespers 3D that sort of thing would be common. Why did you decide on
that approach -- or maybe you are still flexible about it?
Rubes:
I've tried to be flexible with this, although I have to draw the line
somewhere. I am very opposed to taking control of the player's avatar
and moving it around without consent -- it can be disturbing for
players, and it introduces a number of problems to deal with, such as
path finding. But because of that, for most player actions, I have to
perform a series of checks to see if the action is allowable. One of
those checks is for distance, and one way that I've tried to be
flexible is by allowing different maximum distances for different
actions. So for some general actions, like taking or opening, you can
be up to a fair distance away; for others, such as reading, you need to
be closer. It can lead to some frustration on the part of the player,
I'm sure, but I also don't want players to feel like it's okay to close
doors 30 feet away on the other side of the room.
Some of the
other checks are for things like line of sight and field of vision,
just to make sure the player isn't trying to perform an action on an
object that is behind him, for instance. But the goal of these checks
isn't to make the game hyper-realistic; there needs to be some
flexibility so players don't get overly frustrated. We'll see how it
goes once we have people test it out.
Urbatain:
You have to be careful with things like this. For instance,
in my
Dwight game, some actions were too dangerous to allow the player to
walk around automatically: a simple EXAMINE would launch them
to a
certain death. I think there's no a perfect solution for this, but
there are things that can be done. For instance, an
intelligent
EXAMINE that gives different information when near as opposed to far
away from the object. Think of the wolves scene in
Vespers:
>Examine
the tree
Ok, you walk there and
pass near the circle of wolves, who happily make you their next meal.
Rubes:
Yes, I think for some actions like "examine" you can implement
different responses based on the player's distance from the target,
although that introduces more content requirement. But most verbs,
unfortunately, don't conform to that structure.
Urbatain:
To speak of what an IF game offers that graphical games lose
completely, at least graphical adventures: I think it is the
eureka factor. You know, the pleasure of solving a puzzle or
advancing the plot, or even better, of changing the outcome of
the
story through our choices. I think this factor is only possible because
of the natural language interface. In graphical games your possible
actions are all listed for you, so the pleasure of solving a puzzle is
not as complete as in an IF game. So I think your game will show the
world the real potential of a parser to increase the player's sense of
possibility.
Rubes: I
actually disagree with that, but I think you're close. There is very
much a "eureka" factor in graphical adventure games when you solve
certain
puzzles, although the quality of that experience might be
different than in an IF game. I think the "eureka" factor is one of the
main appeals of the adventure genre overall, graphical or text, since
puzzle solving is so integral to game design and play.
Text
input is, of course, one of the more unique features of this project.
So I think the real question, then, is why? Why use a text parser? What
does it add to the experience?
As you suggest, in graphical
games the actions are often simplified -- e.g., grouped together into
larger categories, like "use" or "interact" -- and typically fewer in
number. Some might argue that objects in adventure games often can only
have one or a few actions applied to them anyway, and that adventure
games in general need only a handful of verbs -- so why bother with a
large set of verbs that frequently don't work and only give standard,
library responses?
I actually looked at this to some degree
on
my blog in
a cursory and highly unscientific manner, and it appears that there are
actually a large number of verbs used in three relatively well-known IF
games, as specified in their walkthroughs. Of course, some IF games use
more verbs than others, and some may use only a handful -- of course
it's highly game- and designer-dependent. But, I find it interesting
that it's not uncommon to see adventure games that use 50, 60, or more
different verbs or actions. That's a lot of options, and I'm not really
sure how you would create an efficient interface for all of those in a
graphical game.
Then there is also the difference between a
concealed system, as with a text parser, and a fully disclosed system,
such as you see in most graphical adventure games. That is, in a fully
disclosed system, the player knows ahead of time the entire set of
possible actions in the game, since the options (verbs) are presented
in some sort of visual menu. I believe what you are getting at with
your comment above is that, with a system like this, you sometimes
don't get that same sense of discovery you might experience in the
absence of a complete list of all options. With a concealed system --
like a text parser, which doesn't (typically) disclose a list of all
possible verbs -- you can get a deeper and more engaged participation
in the game world, and you can utilize certain special actions to great
advantage. There are some wonderful experiences in IF that simply would
not work if all possible actions were given up front, and the parser is
better suited for
creative situations like these.
This has
benefits and detriments, of course -- the most obvious detriment being
that players can get frustrated trying to find or express the precise
action that the game requires for a particular situation. But in many
cases determining (and expressing) how to use an item or perform an
action can be a puzzle in itself. For this to work well, though,
authors need to do a thorough job of (1) designing fair, clever
puzzles, (2) giving the player an intuitive feel for what is possible
and what is not, and (3) testing the game to make sure it accounts for
alternative ways of expressing the same action. Without that, the game
can come across as needlessly complicated or difficult, with many
players blaming the parser itself.
Urbatain:
Yes, I agree. Actually, I think we pretty much agree on all of this,
but English is not my first language, and so I did not perhaps express
myself properly. But yes, of course you can have a eureka
factor
in a graphical adventure, but I think that solving a puzzle is more
satisfying in textual IF because of that concealment of the interface
you talked about. Puzzle solving in an IF game just feels
more
natural to the human mind, because your mind thinks about a solution,
and your mind express that solution in the manner to which it is
naturally atuned: natural language. You type down the posible
solution and the game answer properly (or not).
Rubes:
I think you'll probably find a lot of people who do not necessarily
agree with that, and my sense is that it's probably just a matter of
preference. Some people find a simplified, point-and-click interface to
be easier and more natural, particularly given the typical computer
interface. I think one of the attractions of a text parser is that it
allows players to more naturally express the desired action -- typing
TAKE, DROP, PUSH, or OPEN is more explicit and expressive than moving
or clicking a mouse, so for some people (myself included) it is a more
comfortable way of doing things. But I would say the popularity of
point-and-click adventure games would argue, at least to some degree,
that that type of interface is preferred by many people.
Urbatain:
I would say, however, that many complaints that people raise about IF
are implementation rather than systemic problems. The guess the verb
syndrome in particular arises from authors not fully considering ways
that their players might choose to phrase a command, and of course from
inadequete testing. I have read your analysis of verbs in IF
that
you just mentioned, and because you are duplicating the model world of
Inform, when it comes to mouse shortcuts for lazy players... what kind
of apporach will you take with that? Will it be possible to complete
the game using only the mouse? When the player right-clicks on an
object, will he see the whole set of available verbs, or only the most
common?
Rubes: I was hoping
to create a game that could be played entirely from the keyboard, but
not necessarily the mouse. One of the features of the text parser that
I like is that there is a sense of incomplete disclosure; that is, the
player does not know all of the commands allowed in the game, and part
of the puzzle is figuring that out. With mouse-based point-and-click
games, you need to have full disclosure, and to me that eliminates one
of the challenges of the adventure game genre. This is particularly
true for "special" verbs and things like magic words, where the
designer may not want the player to know certain words or verbs exist
until they are discovered. So there are certain things that I don't
want the mouse to be able to do.
Right now you can do almost
everything with the keyboard. The only things you can't do are to
rotate left or right (only strafing is currently supported), or look up
or down. You can't select objects, either, but you don't have to -- you
can just refer to objects by their name. The game can certainly be
played and finished with only the keyboard, but it probably wouldn't be
an ideal experience. Adding the ability to turn and look up and down
with the keyboard is not difficult, but I'm not sure how many people
are really comfortable doing it that way. That's something that we'll
probably look at once we get to testing.
The mouse is more
restrictive. The cursor is used to select objects by clicking the left
mouse button, which highlights the object. The right mouse button is
used to perform an action based on whatever verb the button is
currently set to. Right now the set of possible verbs is restricted to
four common actions (TAKE, LOOK, EXAMINE, and INVENTORY), and you pick
the one you want by rotating the mouse wheel (if your mouse has one).
You can also pick the verb for the right button by typing the command
SET RIGHT BUTTON TO <VERB>. For the verbs that require an
object
(TAKE and EXAMINE), the game will automatically assume any selected
object is the target of the action. So for instance, let's say the
right mouse button is currently set to EXAMINE, and the player clicks
on a table to select it. Clicking the right button will generate the
command EXAMINE TABLE and send that to the parser, where it will be
interpreted and executed.
Also, if either mouse button is
clicked and dragged, it will pan the camera for looking around. Holding
both buttons down simultaneously will make the player move forward. So
there is some functionality to the mouse, but you'll still need the
keyboard to play. For the most part, keeping one hand on the mouse and
one on the keyboard should work well, without much interruption.
Of course, most of this is not set in stone, and we can (and likely
will) make changes to it as needed once we get to testing.
Urbatain:
Speaking of interfaces, the premise I've talked about just one question
before, I once thought (as did a lot of adventure-game visionaries)
that the natural evolution of IF was going to be toward 3D and
virtual reality games, toward graphical model worlds with deep
interactivity and simulation. However, as the videogame
market
evolved it rather chased anther kind of vision, one of beautiful high
definition environments with poor world modeling and less
interactivity. Vespers 3D, I think, could take us back to the original
visions of 3D gaming.
And
to speak again about the eureka factor: you are right, I think
in
3D games with controls that simulate a model world and have an
element of simulation, albeit simplistic simulation, such as
Quake for instance, you could have that Eureka!
factor. You
see the enemy, your mind calculates movement, trajectory and timing,
you launch the missile and its flight is simulated
by computational simulation, and... Eureka! Frag! Another
example:
in Clive Barker'sUndying there was a puzzle where an unlit fireplace
was waiting for you to cast the Fire spell upon it. You
didn't
just click on the fireplace and select "burn", as you might in a
graphical adventure, but rather had to experiment by casting different
spells until you found the right one.
I can imagine that the
best evolution for 3D-IF would be a parser controlled by natural
speech, with a microphone.
Rubes:
Well, I agree it would be fascinating to see a game controlled by
natural language entered with a microphone, but I think it will still
be some time before we see it. As for the evolution of world models in
general, I think we are moving towards more advanced systems that allow
for creative experimentation and puzzle-solving, and it will be
interesting to see where developers take it.
Vespers,
however, is really not very advanced in this respect -- it's world
model is really just a straight graphical representation of the IF
world model that Jason created in Inform 6. There are, perhaps, more
options for interaction than you might find in a typical first-person
3D game, but it is designed to work very much like the world model in
IF, to the extent that it can.
That's actually one of the
ultimate goals of this project: to create a 3D world model that
implements the IF world model as closely as possible, so that players
and designers can see how IF might directly translate into 3D. But to
me, that essentially represents just the first step; from there, I'm
hoping people will look at this and begin to think about how we could
begin to explore the medium, to take greater advantage of the things 3D
offers, to make a game that is more than just a direct representation
of an IF world model.
Urbatain:
But as I recall the Vespers model world was built with Platypus, so its
level of simulation is quite a bit deeper than that of a game built
with the standard library!
Did
you observe the complex world-modelling in commercial games
when
planning Vespers 3D? For example I have in mind the Thief series,
especially some of the fan-made missions. Some have managed to tell
quite sophisticated stories within an FPS environment.
Rubes:
I have played a number of commercial games, although as a Mac user I
haven't had as much access to popular PC games as I would have liked.
One of the games I enjoyed the most is
Deus Ex,
which I thought did a nice job of following a simple but entertaining
storyline and providing nice visuals, atmosphere, and environment.
Still, it was more shooter than adventure, which is not what I'm
looking to create. Not long ago I purchased a Mac Intel laptop and
installed Windows XP using Boot Camp, so one of the things I've been
doing lately is going back to try some of the popular adventure games I
missed, mostly to experience them and study their world models and
interfaces. For instance, I've been playing Dreamfall recently and,
although I'm enjoying it, I'm finding the interface to be a real
irritation.
Urbatain:
You
should take a look at some commercial action games. Let me
mention
some with particularly complex 3D
world-modeling: Deus
Ex of course, the Thief series (if you get a copy of Thief 2 you can
get years and years of out of it with its tons of fan-made missions),
Thief: Deadly Shadows of course, System Shock 2, Half Life 2, Portal,
Bioshock. It's curious: all of my favorites are products of
the
same group of people, disciples of the same philosophy about
games inherited from Looking Glass Studios. I can't think of
any
indie game that takes this kind of approach. As for graphical adventure
games, they are mostly stuck in the past; well, maybe Real
Myst
would be worth looking at, as it allows the player to move about freely
in a 3D environment; and maybe Zork Grand Inquisitor, with
its magical system adapted from the Enchanter trilogy, albeit not with
quite the full complexity of Infocom's original.
Rubes:
I think some graphical adventures are stuck in the past, but there are
some really interesting games that have come out or are expected to
come out which to me seem very forward-thinking. The Penumbra games
come to mind. Those focus a great deal on storytelling and immersion,
and use advanced 3D graphics and physics. They also have you
interacting with objects in the game world through "natural" movements
like pulling levers or opening drawers with the cursor, although I'm
not sure that type of interaction is necessarily better. Nevertheless,
I admire their thinking and approach.
Urbatain:
Another quite important thing to consider for IF vs commercial games is
that text allow us to represent perfect model worlds (although
I
could imagine problems and puzzles which a 3D engine would be better
suited for modeling). For example, in IF we have containers and
supporters. The concept is so simple -- one thing can be
inside of
another -- but in graphical adventure games they must
use lists of
sub-objects or a pop-up window. One could expect that 3D worlds would
fix this; however, they continue using sub-lists of objects,
because they are easy to implement. A perfect 3D world would allow us
to really look inside a container. This is not an easy thing
to
implement, however; for an example of real 3D containers that
don't work very well, see Thief: Deadly Shadows. And I'm curious about
supporters. Since their "contents" are visible, they should
be
easier to implement than truly openable 3D containers.
Rubes:
Well, I would say that text does not necessarily allow us to represent
perfect model worlds, particularly with respect to containers and
supporters; depending on the implementation, for instance, you could
have containers holding far more objects than they should be able to
(since weight and space are either overlooked or difficult to
implement). But yes, those types of things are far easier to implement
in text than in 3D. Supporters, like tables, are a little bit easier in
3D these days, particularly if you have a good physics engine at your
disposal. But in general, these are difficult concepts to model in a
practical sense.
Vespers
does have the advantage of containing only a handful of objects the
player can possess, but even then it can still get complicated. I can
only think of a couple of containers in
Vespers
off the top of my head -- the alms box in the entrance hall, and the
cupboard in the kitchen, although I'm probably forgetting others.
Rather than try to model these containers in a highly realistic manner,
however, I chose to model them more practically. In the text version of
Vespers,
for instance, the
only object allowed inside the alms box is the coin -- the code will
not allow the player to place any other object inside. So, I just did
the same thing. The coin is hidden nicely inside the box when the lid
is closed, but no other object can be placed in there.
The
cupboard is a little more complicated, though. In the text game, the
cupboard is described as having only a single door, and the inside is
not described in any detail. We decided to model our cupboard in 3D
based on some designs we found, but the design included 4 doors. So now
we have four different places that the player can (and should) be able
to place objects. I was able to implement this, but the simplest way to
do it was to create a "holder" for an object behind each of the four
cupboard doors. The problem is that you can only place one object in
each holder. From a game standpoint, this really isn't a problem: the
player rarely has more than a couple of objects at any one time, and
there really isn't any need to place objects there anyway. But from a
mimesis perspective, it can be jarring if you put a small coin in the
cupboard and then are told that there is no more room for other objects
in that space.
There are likely more elegant solutions to this issue, but the work
required for that is really not worth it for
Vespers.
Since
the Torque Game Engine does not have a very good physics engine built
in, I decided to implement supporters a similar way: I just created a
series of points on top of each supporter for objects to be located
when placed. So for instance, the bed in the Abbot's room has 5
different locations for placing objects, and if the player wants to put
an object on the bed (for whatever reason), it just finds an empty
location and puts it there. Once all 5 locations are occupied, there is
no more room for objects on the supporter. Again, it's good enough for
our purposes since, in
Vespers
the player will never have more than 5 objects that he can drop (if I
remember correctly). If there were more objects, we might run into some
problems with mimesis, but as with containers a more elegant solution
is not really worth the effort.
Urbatain:
But in text, imagination creates far more perfect worlds than any
3D game could ever presnt. In IF it is so simple to model
having
something inside another (a match inside a match-box). Today you can
easily add complex control of volume and weight in IF games... actually
even back in the 80's and 90's, the PAW system allowed you to have
volume and weight. But Vespers 3D will represent things inside
containers, as viewable object? in a real 3D view? not using pop-up
windows with sub-lists of sub-objects?
Rubes: Well, there aren't many instances of this in
Vespers,
mostly because there aren't many inventory items and containers in the
game. But for those that we do have, yes, objects will be visually
represented inside of other objects. The coin, for instance, appears
inside the alms box when you open it, and when the box is closed, you
can't see it. Same for the food in the cupboard.
Of course, the
text will also reflect this, as it would in IF. So if the player types
LOOK INSIDE ALMS BOX, the answer will be "In the alms box is a coin."
Urbatain: Good! Good!
Ok, so only the inventory reverts to sub-lists, for obvious reasons.
We'll
take a break from the tough questions for a moment for something more
straightforward. Will Vespers 3D be a commercial product,
or will it be free?
Rubes:
That's actually a tough question to answer. Originally I had planned on
making it free, but I also originally planned on spending a lot less to
make the game. It really is difficult to make a 3D game with characters
and animations on a tiny budget. The plan was to use this game as a
springboard to a subsequent, full-length 3D-if game, but to do that I'd
probably have to recoup at least some of the cost of this game. The
problem with charging money for a game like this is that it is very
short compared to most commercial games, so it's not like I can charge
very much. So if I do end up charging for it, it will probably be a
small amount -- probably along the lines of a movie ticket.
Urbatain: Have you
thought of entering it into something like the Independent Games
Festival?
Rubes:
I'd certainly like that, that's the goal -- IGF, IndieCade, and the
like. But there's still a long way to go before we can get to that
point.
Urbatain: Well, to be
honest, I always prefer free indie games, and
it's a shame to see a lot of the IGF winners going commercial, whether
through X-Box Live, or (less annoyingly) as shareware with demos. And
meanwhile you can get all these top-notch free indie games, like Knytt
Stories, the 6 days a sacrifice
series, IF games, and the many online Flash games. It seems
hard
to justify paying for games when all of this is out there for free...
but soon TextFyre should be coming out with high quality IF
games
that I'm sure I will be glad to pay for... so I'm left feeling divided!
Well, maybe you could go an intermediate way like Radiohead, that
soldIn Rainbows online, and buyers could choose what money to pay for
it, between 0 pounds (for free) to 99... ;)
Rubes:
We'll certainly look at different options, but I can also understand
why some of these designers want to charge for their games. It's rare
for an indie game designer to break even on a project, much less make
any significant profit. And it's tough to keep making games for little
or no price -- especially 3D games, which can get very expensive very
fast. I've already spent a considerable amount on
Vespers,
and it's unlikely I'd be able to make another one of these games
without either earning back some of what I spent, or getting an outside
party interested in supporting it. But if you do the latter, then you
have no choice but to charge for the game. So it's a tough spot to be
in.
Urbatain: Okay, back to
the tough questions! Will you censor
yourself at all? Vespers -- not to spoil the plot
for those
who haven't played it yet -- has a good deal of violence and sex. In a
text game, sex can be written about without going
into nasty
details. But I simply cannot conceive how you might manage to adapt
these scenes into 3D. Have you decided to just cut
them? Thank God indie developers don't have to deal with
moral
codes, official censure and laws (I hope... I think...). Correct me if
I'm wrong.
Rubes: It's also
especially challenging with a 3D game that has a first-person
perspective. Anything that requires the direct, coordinated physical
interaction of the player and an NPC, such as sex or violence (or even
simple conversation, for that matter), is going to be difficult in a 3D
FPS game and will require some creative solutions. We haven't decided
to cut any of those parts from the game, but we also haven't worked out
final solutions for them yet, either. We do have some options, and
we'll try them out to see how they work. It's not going to be easy,
though. As far as the sexual material goes, however, suffice it to say
that it won't be graphically depicted (pun intended) in any way.
Urbatian:
But to get beyond the sex and violence issues... you told me before
that some scenes are quite difficult to implement. Let's talk about the
technical issues of an adaptation... The original game has a lot of
"close" contact scenes (maybe this has something to do with that sex...
or not). How do you manage these cinematic or "close contact"
scenes? I have in mind, for instance, the ending scene, and
yes,
that cellar scene, that is similar to the well scene in
Anchorhead. I simply couldn't imagine how to do that in 3D.
Well
in the ending scene I suppose you could always show a pretty
end
picture or a video; but the cellar scene in Vespers and
the well scene in Anchorhead are
interactive; implementing them seems very difficult.
Rubes:
Right, absolutely. It gets back to my point above, that direct,
coordinated physical interaction between the player and another
character is very hard
to resolve in a 3D first-person game. There
are some tricks you can do to restrict where the player might be, or
how much the player is allowed to move or act, but sometimes even those
methods don't always work. The biggest problem is that you can't always
predict where the player is physically located when he tries to perform
a particular task, or when a certain action in the game needs to take
place, which is information that the NPCs need to have in order for
their animations to appear appropriate. One solution is to design the
system so that the player can be manipulated into moving to one or more
predictable locations, at which point the triggered animations will
then make more sense. It's hard to talk about specific examples from
Vespers without
giving too much away about the game, but hopefully that gives you an
idea what we're thinking.
Urbatain: Not really! :)
But I think that I will have to wait for the final release to have
these questions answered... :)
However,
this brings to mind an important issue: that is, 3D narration.
Commercial game developers don't know where they are going with the
medium; sometimes they copy the cinema approach, a bad idea because
they are, and we are, interactive. To be more direct: I'm thinking of
the difference between a first- person and third-person camera. In the
Quake games, when you die, the camera jumps outside of your
body; in the Half-Life series, the camera is ALWAYS inside
Gordon
Freeman. Could you tell us something about this? Maybe for those
difficult scenes you could change the camera to third person?
Rubes:
I've never been a big fan of changing camera perspective in the middle
of a game, at least for games where you're playing a particular role
(in
Quake-style
FPS games, I
think it's less of an issue). I prefer first-person view to
third-person view, since I find that allows me as a player to become
more immersed in the character that I'm playing, and I prefer to keep
the camera perspective that way throughout.
There are some situations in
Vespers
where control of the camera will be taken away from the player for a
few brief cut-scenes, but we're not planning on showing the player
character (the Abbot) in those instances. We've talked about that as a
group a few times, but I think my philosophy is to give players a role
and to let them imagine themselves in that role, rather than explicitly
showing them the character.
Urbatain:
We talked before about the control interface and the difficulty of
allowing the avatar to move around automatically because of the need
for complex path-finding algorithms. However, I think I would like to
see the interface be fully parser controlled. For example, in Facade
the player must use the arrows to move the PC but he must type to speak
to NPCs. I think games that force the player to jump from mouse to
arrows-keys, from arrow-keys to the rest of the keyboard, can be
confusing to play. I would like to be able to control the game
only with text: GO TO THE DOOR, GO NEAR THE TABLE, LOOK NORTH,
LOOK AT THE BLOOD, LOOK AROUND, LOOK TO THE LEFT, TURN AROUND, TURN 45
DEGREES, etc. Yes, this could be a little bit complicated with the need
for pathfinding algorithms and such... but I think it deserves the
effort. Could you comment a little bit about this? About
control
design... what elements should you abandon for sake of
simplicity,
and what is the final design for the interface?
Rubes:
Well, as I mentioned players can use the keyboard almost exclusively as
is. You can't type GO TO <LOCATION>, but you can move
easily
enough with the WASD-type controls. The real problem with allowing GO
TO commands is that you can never predict where the player is when the
command is entered, so at any time there might be an object, a wall, a
door, or an NPC directly in the player's path. So you're left with two
options: just zap the player to the new location (which I feel is too
jarring, and what if an object is already at the destination spot?), or
develop a sophisticated set of path-finding code, which can be
complicated and time-consuming. I certainly agree that constant
switching between keyboard and mouse can be distracting and annoying,
but it would also seem equally (if not more) tiresome to have to type
such specific commands as TURN LEFT 45 DEGREES when the same could be
accomplished by either pressing a single key or slightly moving the
mouse.
As for the interface design, I discussed most of the
interface elements above, but there are a few things I haven't
mentioned. One is to make common commands as simple as possible by
using single keypresses, so INVENTORY can be accomplished by pressing
I, LOOK by pressing L, EXAMINE by pressing X, OPEN by pressing O, and
AGAIN by pressing G. I've tried to make the majority of commands fairly
simple; for instance, examining objects becomes a process of just
clicking on an object and pressing X, opening becomes just clicking an
object and pressing O, and so on.
I've also tried to incorporate
some customization by, for example, utilizing the TAB key: just like
the right mouse button, it can be set to a desired verb, which executes
when the TAB key is pressed. The default is INVENTORY, but it can also
be set to LOOK, EXAMINE, or TAKE, and you set it by entering the SET
TAB KEY TO <VERB> command.
The ability to customize (like
with the TAB key or the right mouse button) got me thinking that we
could allow even greater customization if we want. Why restrict the
verb possibilities to four common actions? Couldn't we allow players to
enter SET TAB KEY TO <VERB> and allow any valid verb to
be used?
And could we also allow players to attach specific verbs to single key
presses as well? Like what if someone wants the T key to execute TAKE,
while another wants it to execute TALK TO? Why not let them specify
this?
For that matter, couldn't we also allow players to attach
whole phrases to specific keys? The way the game interface is set up,
any time a command is issued -- whether from the command line, a single
key press, or the right mouse button -- it works by generating the
appropriate command in text form, and sending it through the parser. So
if the TAB key is set to INVENTORY, pressing the TAB key actually
generates a text string containing "INVENTORY" and sends it to the
parser. So theoretically, it is perfectly feasible to assign a whole
phrase to a specific key. We could, for instance, let players type SET
F1 KEY TO SET TAB KEY TO TAKE, and the result would be that, when the
F1 key is pressed, the phrase "SET TAB KEY TO TAKE" would be sent to
the parser, and the TAB key would be set to TAKE. All sorts of
possibilities become available.
But the real question is, do
players want that level of customization? I sense that the interface is
already complicated enough as it is, and I sense that adding more and
more possibilities might overwhelm too many people. Simplicity is
something that I believe should be sought, so I'm not sure how I feel
about all of this yet.
Urbatain:
One thing that I think is really important in interactive pieces in 3D
worlds is the handling of "close contact" between the avatar and the
object being interacted with (and not just NPCs). For
example, in
most FPS's we never see our own body, but in some we do see just an arm
floating in midair. Some of these arms add to the realism, allowing us
to see ourselves pushing buttons, pulling levers, breaking heads, etc.
As a negative example, though, I have one game in mind: Thief Deadly
Shadows, where we are aware of our whole body, but when we decide to
pick up an object, it just disappears from the ground and is
magically transported to inventory. It's jarring. We have
that
perfect modelled thief but he has telekinesis for moving around
objects. In other games like Blade: Severance (a commercial Spanish
release, also with body-awareness) the the
arm of the
avatar moves somewhat correctly to pick up a piece of bread,
move
it to the mouth and eat it; or in Dark Messiah where we see the arm
fighting enemies, impaling them, cutting ropes for improvised traps,
etc; this effect is really satisfying. So, the question is,
will
there be animations of the arm, or even the whole avatar's body, for
every one of Inform's actions?
Rubes:
We've thought about doing some of that, but probably not for this game.
I think if I had another two or three programmers and artists working
with me, we could probably do it, but it's a lot of fairly complicated
work to get it to be convincing. So for now, we'll still have players
who work telekinetically. ;) It's really a question of resources and
manpower vs. the additional benefit this provides.
Urbatain: How will the
game handle negative feedback? Will
there be animations for "You can't do that..."?
Rubes:
In general, the answer is no. At this stage of development, though,
we're focusing more on the translation over from IF, so most of the
responses like that will still probably be in text form. If it makes
sense to do it graphically and it adds to the game to have some sort of
negative visual feedback, then we might do that for some things.
Urbatain:
Will the game have an audio element? Will there be a voice
telling us we "can't do that" when we attempt something impossible?
Rubes:
Right now, we do have some voice recording for the Abbot. It goes a
little bit against my approach of not revealing aspects of the player
character to the player (such as appearance and sound, which I think
can sometimes break immersion), but I think it's necessary in some
places. For instance, there are some conversations between the player
and other brothers which are dependent on a back-and-forth exchange, so
we really needed a voice for the Abbot to contribute. I think, in
general, it works out well.
Right now we don't have specific
audio recordings for failed actions, only a text response. I'm
experimenting with different kinds of audio feedback, which I think is
important, but I want to use something that breaks immersion as little
as possible.
Urbatain: I don't see a
problem here. We are playing a role in the game, so it's ok to that we
hear the voice of the Abbot!
To
what degree of depth have you implemented Inform's model
world?
For example, have you modeled the system of actions
--
after, before, react_after, react_before, etc. -- or have you
simplified this? If so, do you plan to extend this feature in the
future?
Rubes: The Torque
Game Engine has its own scripting language, and I've just adapted it to
my purposes here, including some structure that is (vaguely) similar to
the way Inform 6 works. So for instance, when I define objects in the
game (like the alms box or the coin) I give them attributes and
properties similar to the way Inform does. So the alms box has a name
field which includes "almsbox" and "box", and an adjective field which
includes "alms", and the parser uses these to determine whether or not
the player is referring to this object. It also has fields for pronoun
("it"), plural (false), container (true), open (false, initially), and
openable (true), as well as fields for parent, child, and sibling
objects.
As for actions and reactions, I've handled that a bit
differently, mostly because the game is played in real-time, and it's
difficult to implement things like before, after, and so on in anything
other than a pure turn-based game. For instance, there are a few
"react_before" cases in
Vespers
(the text version) that respond to a movement command, but that would
be difficult to do in 3D since movement is usually by holding down a
key. So many of these instances are hard-coded in different ways, but
that's okay since my goal was not necessarily to design the system to
be completely independent of the game in the way that Inform is.
Urbatain:
Finally, have you defined a complete language or script similar to
TADS3 or Inform to for developing the game? If so, could you show us
what it looks like?
Rubes: As
I said, I just adpated the scripting language for the Torque Game
Engine to do what I needed. Some of what I designed is similar to
Inform, and some is different. For example, each verb has its own code
for execution. First, it performs a series of checks to make sure the
action can be performed (for instance, the player is close enough to
the object, is facing the object, and so on). Then, it checks the
object itself for any code specific to that verb, and then it executes
the verb action. An example of this would be the INSERT action. If the
player types INSERT COIN IN ALMS BOX, the engine would go to the code
for INSERT and first run through checks to make sure the the coin is in
the player's possession, the alms box is a valid container, the player
is close enough to the alms box, and so on. Then it calls the code
specific to the alms box to see if there are any special issues; in
this case, the INSERT command is only allowed with the coin, and no
other objects. So if the player tried to put another object in the alms
box, here is where the command would return an error message and cancel
the action. But since in this example the coin is the object, it is
allowed to proceed. Back in the INSERT action code, it then performs
the action of visually putting the target object into the container
object, setting the appropriate parent/child/sibling values, and
delivering the appropriate successful library message.
Urbatain:
What role is Jason Devlin playing in the development? Is he directly
involved in the programming and scripting, or is he in more of an
advisory role? Will he stay with Orange River for more
projects?
I'm curious how many good authors TextFyre and Orange River is
going to steal from the IF scene... :)
Rubes:
For this project, Jason is mostly in an advisory and testing role.
There are so many issues, as you can imagine, when moving from text to
3D -- not just in the translation of Vespers, but in the way the 3D/IF
world model functions, and Jason has played a large role in figuring
all of this out. Occasionally we run into parts of the 3D world that
were either not included or not described in the text game, and Jason
helps us figure out what to put in or how to describe it. I would like
for him to design another game for us to make after we're finished with
Vespers, and it would be interesting to see what he could design for a
3D/IF world specifically, not just an IF world. But due to our long
development times, I wouldn't worry about us stealing many authors. ;)
Urbatain: When do you
plan to release Vespers 3D? :)
Rubes:
I'd love to answer, but I honestly have no idea. Not anytime soon,
although perhaps we'll have a demo version (part of Day One of the
game) sometime this year, if I'm lucky.
Urbatain:
Do you have something in mind for Orange River after Vespers 3D is
finished? Maybe, a more ambitious project? Perhaps an original work? Or
another port from a textual IF? Or maybe is too soon to talk about that?
Rubes:
Right now we have no specific plans, but we would be interested in
doing both -- porting a successful IF game (assuming any authors are
interested) and creating a new game that perhaps can take better
advantage of a 3D/IF world model and push its boundaries, as you say.
Movies are a very different medium from books, and each has their own
set of techniques and styles that work only in that medium; similarly,
3D/IF is very different from IF, and to really succeed in this new
medium we need to discover the techniques that work, rather than
relying too heavily on pure IF itself.
We still have a long way
to go before we start looking at new projects, but I'd certainly be
interested in pursuing both pathways, and to hear from anyone
interested in seeing their IF game created in 3D/IF.
Urbatain: That's all
Rubes, thanks a lot for your time and for this project.
Rubes:
Thanks, I appreciate the opportunity to talk about it, and I'm glad you
are interested enough to learn more. I hope it turns out to be a game
people enjoy experiencing.
Some links:
The Monk's Brew:
Mike Rubin's blog
Vespers 3D on The
Great Games Experiment
An
Interview with Mike Rubin on The Rampant Coyote
Vespers
3D
on GarageGames.com
Back to Table of
Contents
Game
Reviews
| Title: |
An
Act of Murder
|
| Author: |
Christopher Huang
|
| Author Email: |
odd1out SP@G openface.ca
|
| Release Date: |
October 1, 2007
|
| System: |
Z-Code (Inform 7) |
| Version: |
Release 1
|
| Reviewer: |
Bill Powell |
| Reviewer Email: |
bill SP@G billpowellisalive.com
|
"Frederic Sheppard." Chief Inspector Duffy pulls at his
moustache mournfully and stares up at the house through
the windshield. "Theatrical sort, usually has a finger in some
play or other. He bought up Gull Point about ten years ago.
Never any complaints from the neighbors, never any
scandals." He pulls at his moustache again. "He was found dead in the
cove at the foot of the cliff behind the house about half an hour ago.
Caller said it looked as though he fell from the study window."
So begins your investigation of a lethal drop from high society. If you
enjoy a good Golden Age detective story, you'll want to play
An Act of Murder.
The game placed 2nd in the 2007 IF Comp, both among the judges and the
authors, and I'd say it deserved it.
The beginning had both strengths and weaknesses. I appreciated the
quick instructions about how to use "ask" and "tell"; these are the
kinds of quick parser instructions that can save hours of a player's
life. On the other hand, I did get anxious at the rather forced
introduction to the main suspects. Fortunately, you're soon left to
your own devices.
The
world is consistent, crisply described, and just spacious enough for
the story. The characters are clearly delineated, and easy to imagine.
Implementing five separate suspects whom you can ask about anything may
seem ambitious, (in the Credits, the author admits originally planning
over 20) but in general, the interaction goes well. As hours passed,
and Chief Inspector Duffy's arrival became imminent, I did get
frustrated at a few "obvious" questions that soared over their heads,
but p