Discussions about interactive fiction

Archive for February, 2012

T3: Fun with Dispensers

I’m trying to create a tray of doughnuts from which the PC can take
one or two (that is, one at a time), after which there will still be
doughnuts on the tray but the game will tell the player, "Don’t you
think you’ve had enough for this morning?"

The Dispenser class seems the obvious choice for the tray, but I’m
having difficulty making everything work smoothly. For starters, I
can’t quite see whether I need to create a separate pluralDoughnuts
object that is ALSO sitting on the tray. If I don’t do that, then as
soon as the player has taken all of the doughnuts I plan to let him
have, the tray will be functionally empty, so if the player takes the
doughnuts somewhere else, drops them, and comes back, ‘x doughnut’
will claim there are none in scope, even though the tray is still
described as containing them.

But if I _do_ create a separate pluralDoughnuts object (which is not
takeable), then I need to use a replaceAction to transfer ‘take
doughnuts’ onto an object of the SingleDoughnut class. Trouble is, the
doughnuts being dispensed by the Dispenser are anonymous, so
replaceAction can’t get at them.

Then there’s this:

> x doughnuts

doughnut: It’s golden-brown and covered with frosting.
doughnut: It’s golden-brown and covered with frosting.

This is beyond horrible. What one wants is for the software to judge
whether there is more than one doughnut in scope and change its output
accordingly — but that’s difficult to achieve if there are both
SingleDoughnut objects and a pluralDoughnuts object to which the
player might be referring.

In addition to examining and taking, I also need to handle touching,
tasting, smelling, eating, dropping, and so on. Each of these actions
may need to be handled in a slightly different fashion depending on

(a) the player is in the same room with the tray, or a different room;
(b) the player is holding one doughnut, or several;
(c) the player types ‘doughnut’ or ‘doughnuts’.

I’m frankly flummoxed. Has anyone dealt with this type of thing before
— a Dispenser that won’t dispense all of the isEquivalent contents,
but will let you look at them?

Also, of course, Dispenser is a subclass of Container, but a tray is a
Surface. I’m not ready to tackle that little wrinkle yet.

Even a trail of breadcrumbs would be welcome at this point…. Thanks!


posted by admin in Uncategorized and have Comments (3)

(part of) a browser Glk

I see we’re getting multiple Z-machine implementations running in web
browsers. Far be it from me to let Glk/Glulx fall too far behind. :)

I *am* behind, but I want to show off what I’ve got. Which is… the
HTML/CSS/Javascript half of a web-based Glulx interpreter.


This is not actually hooked up to a Glulx interpreter. It’s the front
end. I’ve got a fake game in there — also written in Javascript —
which accepts a few one-word commands to exercise the display
capabilities. Check it out.

The *back* end (once I write it) will be a Glk library that runs under
a web server (via CGI script). Replace the fake game code with an AJAX
call, and presto — any Glk interpreter running as a web app.

But this front end doesn’t have to be used that way. It could just as
easily be hooked up to a real game interpreter written in Javascript.
Then you’d have a client-side web app, like Parchment. (I will
eventually document the AJAX-or-Javascript API that this thing uses.
It’s morally equivalent to the Glk API, but rearranged to allow for
the batch-mode interaction pattern. Details to come.)

This is a work in progress. Implemented so far: grid and buffer
windows, line input, multiple windows, different styles. Character
input is the only critical feature I have left. (Graphics, sound, and
timed input count as non-critical features.) There’s also a big
handful of UI annoyances to clear up.

Tested only in Safari 3 and (Mac) Firefox 2. I expect massive failure
on IE. This is my first big HTML/Javascript app — at my age! — so
I’ve done a lot of flailing, particular with keyboard and mouse event

(Tested on iPhone. Result: massive failure. :)


"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves…"
You don’t become a tyranny by committing torture. If you plan for torture,
argue in favor of torture, set up legal justifications for torturing
someday, then the moral rot has *already* set in.

posted by admin in Uncategorized and have Comments (18)

I6: Strange locking behavior – what's up?

Here’s the situation:

I have a locked box in a room with nothing else terribly useful.
The key to the locked box is in the room but concealed.

Before I can open the box, I try to lock it, (cause, you know, someone will
try that) and here’s the bizarreness that happens:

>lock box

(with yourself)
(first taking yourself)
You are always self-possessed.

Now I have two questions, (well, three, but the first, "WTF?" is hardly

1) Why is it doing this? Why does it try to use yourself as a key?
2) How can I stop this?

Once the key is revealed in the room, and you try locking the box, you get

>lock box

(with the key)
The panel is already locked.

Which is acceptable output. The first isn’t.

Can anyone suggest a way to trap the command or otherwise fix the first
sceneario so it doesn’t spew out ridiculous lines about using yourself and
taking yourself?

Thanks, all!


posted by admin in Uncategorized and have Comment (1)

Investigative vs. Exploratory IF

I just played The Elysium Enigma and it reminded me of Deadline for an
interesting reason. Both games are heavily NPC oriented, but even more
than this, the flow of play seems very different from most games I’ve

I think the difference is the type of puzzles involved. Your goal in
both of these games is to find out what’s going on, and when you think
you know enough, make a decision about how to end the game. This puts
a lot more of the burden for advancing the plot on the player. In a
traditional (I’m calling it "exploratory") game, nothing happens until
you solve the right puzzles, and then you’re pointed towards the next
puzzles by the map opening up or physical constraints on the PC. "Find
the key" is the fundamental puzzle of exploratory IF. But in an
"investigative" game, solving puzzles gives you new information. The
line between player and PC is more blurry; you can have a good idea of
what’s going on, but if the PC doesn’t have the evidence to prove it,
it may be hard to figure out what to do. Often what you need is to
share the right information with the right character, but even when
you do, an obvious path may not open up from there. The flow of plot
is much more open – you need to solve many puzzles to get a perfect
score, but few of them are required to solve each other. The end of
the game is a lot more uncertain too – instead of dying or winning,
there are lots of partial success endings.

I’m very interested in this "investigative" form, but I’m having a
very difficult time getting my head around it. I ended up using a
walkthrough for EE after completing it once because I didn’t feel like
repeated playthroughs to get a perfect score. I discovered some very
cool puzzles that I’d completely missed, which was impressive in
hindsight but since I had no clue those puzzles were even there, it
seemed like a little bit of a waste. I also played the game very
secretively, hiding as much as possible from characters who didn’t
seem trustworthy. I think this is a habit learned from exloratory
games, but in this game, full disclosure will get you more
information. Part of the reason is that the PC is someone with power
and authority. Deadline is the same way; doing sneaky unethical things
will not help you reach the "best" ending. In contrast, the PC of
Lydia’s Heart, a very traditional-feeling game, is a young girl afraid
for her life, and she is justified in robbing and tricking even
somewhat sympathetic characters.

Here’s a summary:

Exploratory IF:

* PC is an inexperienced maverick
* Sneakiness, theivery and sometimes violence are rewarded
* Failure often results in death
* One clear winning ending
* Many replays or save&restores may be necessary
* Goals and successes are clear and obvious within the game
* NPC interaction is minimal or peripheral
* "find the key" is the central puzzle; solving it expands the map
* Puzzles are interlinked; all must be solved to reach the endgame

Investigative IF:

* PC has power and authority
* Open and ethical behavior is rewarded
* Failure does not usually end in death
* Many partially-successful endings
* Possible to reach some degree of success in a single play-through
* Goals and successes must be evaluated by the player, not just the PC
* NPC interaction is central
* "get the evidence" is the central puzzle; solving it may or may not
add conversation topics
* Puzzles are largely parallel; a partial success can be reached
without solving them all

These two types of game are so different that I think they may attract
completely separate audiences; calling them both IF might do them a

So what I’m wondering now is, what OTHER types of IF are there? Can
you put most games you’ve played in one of these two categories (do
they already have names?) or is there more?

posted by admin in Uncategorized and have Comments (5)

Quick Question about Commercial Interpreters

A quick question:

What are commercial IF companies using for interpreters?  Are they
rolling their own Z-Machine compliant exes, or are they licensing
Frotz or another freely available interpreter with their games?  (I
admit I’m currently ignorant as to the license restrictions on
Frotz.)  I’m assuming that these companies are supplying all necessary
bits "in the box", and are not leaving it to the users to go find
their own interpreter on the ‘tubes.

I had another question, but I can’t for the life of me remember what
it was.


posted by admin in Uncategorized and have Comments (4)

Second Question: Inform 6 Designers Manual

I finally remembered the second question:  Is the I6DM still available
as a book?  Is it still being printed?  I see on Amazon that there are
22 copies available, but is it still in print or are there more runs

I have two copies, although one is currently being borrowed by a
"friend."  I may have need for several more.


posted by admin in Uncategorized and have Comments (2)

I7: eliminating room description heading after UNDO

I’m working on a one-room game and so awhile back asked for help on
how to stop the printing of the name of the room, e.g., at the very
beginning of the game.  I got the reply to just include:

The room description heading rule is not listed in any rulebook.

And, lo, it works wonderfully.  Except, the room description heading
is still listed when someone types UNDO.  Does anyone know how to get
rid of that?


posted by admin in Uncategorized and have Comments (2)

New Air max87 90 95 97 Shoes company

Our company sell  new sneakers Welcome to visit our website, and
orders our product Our price is cheap

posted by admin in Uncategorized and have No Comments



posted by admin in Uncategorized and have Comment (1)

[IFDB] New feature: style sheets

I’m sure everyone who’s used IFDB can tell I’m more of a programmer than a
visual designer – so one of the "to do" items from the start has been to
enlist someone with some real visual design skills to give the site a better
look.  But in keeping with the wiki style of the site, I’ve decided to take
a slightly different tack.  Rather than finding the One True Style Sheet,
I’ve deployed a feature that lets anyone create their own custom style
sheets, and makes those creations available to all members.

You can reach the new style sheet controls from the Edit Profile page –
scroll down to section 3, Display Preferences.  To create a new style sheet
of your own, you’ll need to know how to use CSS, but once there are a few
style sheets in the "gallery" you’ll be able to choose a custom look just by
selecting an existing entry.

If you have a knack for Web site design, I hope you’ll take a look – I for
one look forward to having some nicer layout designs to choose from!

–Mike Roberts
mjr underscore at hotmail dot com

posted by admin in Uncategorized and have Comments (10)