Style | StandardCards

Planet Interactive Fiction

Friday, 17. January 2025

Renga in Blue

Cornucopia: The Multiverse

(Continued from my previous posts on Cornucopia.) Since last time I made quite a bit of progress; so much progress that this is a “I better make a post before it becomes too hard to describe everything” moment as opposed to a “I’m stuck” moment. The first small thing that happened is that I managed […]

(Continued from my previous posts on Cornucopia.)

The infamous “addendum rules” book from 1985, and yes, this is going to come up today. Via Chamblin Bookmine, which amusingly dates it as 2017 (the number in the corner is not a date).

Since last time I made quite a bit of progress; so much progress that this is a “I better make a post before it becomes too hard to describe everything” moment as opposed to a “I’m stuck” moment.

The first small thing that happened is that I managed to defeat the troll the “proper” way. It was by absolute luck. Let me pretend first I thought things out.

There is a game from 1998 (Enlightenment by Taro Ogawa) which is one of my favorite early IFComp games (it gets some criticism for being too hard, but I’m the sort of person that voluntarily plays Cornucopia). You’re at the end of the game, there’s a troll to get by, and you, the paranoid adventurer, have lots of light.

You are carrying:
  your backpack (providing light and being worn and closed)
  your sword (providing light)
  your cross (providing light and being worn)
  your amulet (providing light and being worn)
  your lamp (providing light)

You need to ditch all of it, then get the troll’s own light source (his eyes) snuffed out. At the end the troll will get eaten by a grue.

From the Beyond Zork documentation, via the Infocom Documentation Project.

Cotton is Zork-inspired, so it makes sense he’d have grues, although the logic here doesn’t quite work the same as Ogawa’s game. The troll here lurks in the dark. The grue-like creatures seem to be tracking the player, and going by smell. So, when the player arrives at the troll and it is dark, the “abominable” smell of the troll becomes the new target. (Grues can take down pretty much anything as long as it is dark, so that part at least is consistent with Zork.)

You are in part of a trolls lair, all manner of stuff is strewn around, including parts of its previous meals. To the west is a low tunnel and to the south what looks to be a tiny cavern. A huge and hairy troll stands here blocking your way.

>TURN OFF LAMP
The battery lamp is now off.
Darkness falls, you hear a few tentative steps in the dark and then a very loud crunching and chomping, it then goes very quiet.

I wish I could say I thought all that through, but instead: I was noodling around and I accidentally wandered into the troll lair while it was dark.

I’ll take the wins where I can find them. Past the troll is a crown which counts as a treasure and I think that’s the only result.

There’s a second small thing I found early (which turned out to be big later). I found yet another spot where the levitate self spell works: at the fountain with the “goldfish”.

>CAST LEVITATE SELF
You float upwards towards the top of the fountain. You are floating near the top of a large fountain of water. The noise from the jet of water is quite loud and the spray is soaking you.

After a few turns you float back down. I thought this was something meant to be saved for later. Also, doing this uses up the levitate self spell (unlike the tower-climbing use and the fly-over-tiles use we’ve seen in previous posts).

As an aside, regarding the “burning spells in the spellbook while casting” — I mentioned this doesn’t match AD&D behavior, and it doesn’t, by standard rules. However, according to Zenopus Archives, there was an article by Gary Gygax in the June 1982 edition of Dragon which described casting spells directly from a spell book, with the spells disappearing accordingly. This later landed in the Unearthed Arcana book, which I had actively blocked from my memory.

From the cover of the aforementioned magazine, via eBay.

The upshot is Cotton could have seen this article and used it as a reference, rather than just going with his own homebrew! Still, the levitate behavior is irregular, and the preserve-in-certain-circumstance exception seems intended to help with the puzzle structure.

Put a pin in all this, I’ll get back to it later.

My big breakthrough happened at the room where the torch originally appears:

You are in a short north-south corridor. The south end leads to a spiral staircase leading down. There is a doorway to the east and on the west wall there is an iron bracket. The bracket contains a flaming torch.

>GET TORCH
Taken.

>TURN BRACKET
An opening slowly appears in the wall next to the iron bracket.

>W
You are in what was the reception room for the King’s Quarters. There is a small closet in the south wall.

This gets close to opening up, quite literally, a whole multiverse. We just need to kill a demon first.

The closet to the south contains an obstacle I haven’t managed to wrangle yet. Another time.

You are in a small closet which is very unwholesome with rotting clothes everywhere, basically it stinks. The centre of the closet floor seems covered in what appears to be a horrible brown mould.

>EXAMINE MOULD
As you try to do that the mould ejects a large number of spores, which completely cover you.

(death message etc.)

The demon-killing part turns out to be trivial. Going west one more step leads to the King’s Bedroom, and a moment that’s more for lore-plot than it is to actively stump the player.

You are in the King’s bedroom, it was once richly furnished but only decay remains. The exception to the decay is a huge four poster bed. There are exits to the east, south and west. Sleeping on the bed is by all appearances a very beautiful woman.

>EXAMINE WOMAN
What you thought was a sleeping woman isn’t, from a closer examination you see that she has a pair of wings, horns and all the physical accoutrements one would expect a Demon to have, nasty!

>KILL DEMON WITH RUNE SWORD
You strike at the Demon while she is sleeping and unable to protect herself. The power of the rune sword banishes her back to the Hell from whence she was summoned.

(Mind you, if you haven’t figured out the tile thing yet here, you won’t have the means to kill the demon, so this still counts as a puzzle.) It seems that the reason the demon-summoning circle wasn’t usable in any sense is that it already did its work, with the demon still actively summoned!

Moving the bed requires the demon is dead first, and this leads to a secret area.

>MOVE BED
Moving the huge bed reveals a secret chamber in the north wall.

>N
You are in a small dusty chamber, which has lain unused for many years, a southern exit leads back to the King’s bedroom. A large full length mirror, on the north wall, dominates this small chamber. An old leather bound diary has been dropped here.

>GET DIARY
Taken.

>READ DIARY
The old diary’s cover, which is bound in a very high quality leather, indicates that this once belonged to a King named Fftumbol, or perhaps it means the line of Fftumbol – it is not very clear.

>OPEN DIARY
The old diary opens.

>READ DIARY
The old diary’s contents are all rather boring containing the trivia of the day to day running of court life. The last entry is much more interesting and has been done in a great hurry. The court Wizard, Fflluccer, has apparently summoned, for an unspecified reason, a demon. Fflluccer, the fool, has lost control of it and she is rapidly depopulating the castle. Not even the power of the sword has been of any use, what is left of the court are fleeing in all directions.

I’m guessing Fffllucer thought he could get a succubus girlfriend, and things went awry? This is AD&D, not Pathfinder!

(That was a joke. The game I’m referring to, Wrath of the Righteous, came out in 2021.)

The mirror is the important part:

You are in a small dusty chamber, which has lain unused for many years, a southern exit leads back to the King’s bedroom. A large full length mirror, on the north wall, dominates this small chamber.

>EXAMINE MIRROR
The large mirror is completely blank, no reflection at all.

>CAST DETECT MAGIC ON MIRROR
The large mirror is very highly magical, it is as if the large mirror was in many places at the same time.

Trying to enter the mirror as-is causes a death reminiscent of Ferret: “The large mirror not being focussed on anything yet, spreads your molecules all over the multiverse.” I ran through my verb list and found RUB MIRROR sets a destination, rotating between six possibilities: “The large mirror shimmers and a weird reflection appears.”

  • A “distorted” countryside “tinged with green” — walking in kills via arsenic
  • A “swirling grey mist” — this is just a single room that loops
  • An “icy waste” where you die without protection from cold (*)
  • A “huge cavern” with a “low dais” which is safe to enter (*)
  • A “chasm” at a ledge (*)
  • A “small square room with a metal door” which traps the player without a method out (*)

For this post we’ll visit the four marked with an asterisk, starting with the “huge cavern”.

>ENTER MIRROR
You are at the narrow south end of a huge cavern which must be at least a hundred feet high, and at least two hundred in width at its widest point. The floor is littered with rubbish, mostly rotting food. There are passages leading to the south and west, the southern one is much wider than the western one which appears to lead into a small chamber.

>N
You are standing on a dais which is at at the north end of the huge cavern. The dais is raised about one foot above the rest of the ground. There appears to be some sort of design carved on the dais. The dais doesn’t seem to be part of the ground, there is a very thin gap all the way around its edge where it meets the floor. There is a large weight here, with a carrying ring fixed to its top.

There’s a rope to the west attached to something out of sight (sixty feet), and if you take the weight over and tie it there will be a “grating noise”. This is the dais opening up into a pit, so you can walk over, try to go down, and die by falling into the pit. Oops. Levitate doesn’t work there, unfortunately; I still need to work out what to do.

Going south from the Huge Cavern incidentally hops back to the secret room, but that’s not true of every place; some require return via a different method.

At the chasm area, the way back seems to step out in a void, but you can answer YES to the game’s YES/NO question and arrive back to safety anyway.

>ENTER MIRROR
You are on a small crumbling ledge on the east side of a deep chasm. The sound of dripping water reaches your ears echoing up from the chasm’s depths. Along the ledge to the south is a cave like entrance into the cliff wall.

>W
Are you sure you want to step out into the chasm?
>YES
You step off the ledge into the chasm and suddenly you find that….. You are in a small dusty chamber, which has lain unused for many years, a southern exit leads back to the King’s bedroom. A large full length mirror, on the north wall, dominates this small chamber.

Actually moving forward takes the player to a “cruel looking idol” with two sockets, one with a red gem and one empty. In some games this would be a cue to steal the red gem, but here we take the green gem that I had sensed was evil (but not magic!) and drop it in. The idol helpfully steps aside.

You are at the eastern end of a large cavern, which is dominated by a cruel looking idol. The idol, which is right before you, is some eight feet tall and incredibly obese. The air is thick and overpowering with the smell of incense. Its mouth is full of very sharp teeth and he has six arms all of which end in very nasty looking talons, all in all a very nasty bit of work.

>PUT GREEN GEM IN SOCKET
As you place the green gem in the socket the idol seems to grin at you, and for an instance you become dizzy and disoriented as a waft of stale air passes your face.

Inside there is a room dedicated to the High Priest, where you can snag a gold idol (a mini-version of the big one), a gold ring, and a cloak of feathers which is helpfully warm.

With the cloak on, it is possible to survive a trip to the cold.

I haven’t had much luck here yet.

>ENTER MIRROR
You are in an icy wilderness, there are ice spicules blowing all about you. To the east there is an icy plateau.

>S
You are on the north side of a crevasse – there is a thin ice bridge spanning the gap. The crevasse looks very deep and dark. It sounds as though there is water at the bottom.

The bridge leads to a dead end, and there isn’t an illusion there: it just stops. There’s an igloo to the east (that reacts badly if you’re holding a torch) which contains an ice key (described as “made in Iceland”, ha ha) but I have not found a place for it to go. I am fairly certain I am missing something.

What was even worse (the first time around) is that there is no way out. No jumping into a chasm to magically go into a mirror instead.

I was thinking about the “manual” from a few entries ago…

This is not so much a manual more a diatribe on the brilliance of the inventor of a device which enables one to transport oneself virtually anywhere. This device is apparently box-shaped with a selection of dials and buttons on its upper surface. Reading between the lines it seems there was at least one prototype which was limited in its transport abilities using only a series of buttons for control.

…and that it’d be nice if I could find said device, because it seemed likely to help in these places that seemed like random traps. Additionally, one of the other worlds hinted that the prototype device would likely help.

>ENTER MIRROR
You are in a small square room, the walls of which are completely blank.
There is a gold door in the south wall.

>OPEN GOLD DOOR
You open the door and a little man rushes out and says ‘Oh thank you very much, I have been stuck in there for ages’. I only came back for this, he says, waving a small box, it should have got me out of there but it seems it is not quite perfect yet. He then turns a dial, presses a button on the small box and just disappears. In his haste to depart a note slips from his pocket.

(The player is otherwise trapped in the scene above. The note hints about inserting rods in ROD order from the top down, whatever that means.)

Still with no idea where to look, I went back to the main map and started doing EXAMINE ALL everywhere. I had discovered that the button F5 actually types the phrase, and it gives descriptions of every item in a room. Many games are very hesitant about this kind of help (I’ve even seen GET ALL disabled to avoid this) but here the help has a built-in hotkey!

Perhaps you know where this is going.

>CAST LEVITATE SELF
You float upwards towards the top of the fountain. You are floating near the top of a large fountain of water. The noise from the jet of water is quite loud and the spray is soaking you.

>EXAMINE ALL
transport box : The small box has five coloured buttons on its top side. They are coloured blue yellow, green, pink and black, there is no indication as to their use. The box has the distinct appearance of being extremely delicate, and probably the slightest bump would damage it.
black button : I see nothing special about black button.
blue button : I see nothing special about blue button.
green button : I see nothing special about green button.
yellow button : I see nothing special about yellow button.
pink button : I see nothing special about pink button.

aaaaaa it was right there.

This incidentally burns the “levitate self” spell, which might normally be a problem. To get at what I mean, here’s a meta-map:

You start at the cottage where treasures are stored. To get into the underground, you either levitate up to a tower (which doesn’t burn the levitate) or pass through an area with a card, an illusion, and a slot that eats up the card. So if you want to keep returning treasures to the cottage, the levitate route is needed; not only does a treasure get removed from the game, but the route can only be used once, after which there seems to be no way to the main underground section.

With this thought in mind, I went back to the icy area to test buttons, trying to return back to the mirror.

>ENTER MIRROR
You are in an icy wilderness, there are ice spicules blowing all about you. To the east there is an icy plateau.

>PUSH BLACK BUTTON
You are in a small dusty chamber, which has lain unused for many years, a southern exit leads back to the King’s bedroom. A large full length mirror, on the north wall, dominates this small chamber.

The black button works, great! But what happens if I push the black button again?

>PUSH BLACK BUTTON
You are in a lit chamber about twenty feet square. The dust is very thick on the floor. The chamber is partitioned-off half way across with a transparent crystal wall. Behind the wall you can see several chairs, all but one of them has a skeleton sitting in it. A sign above the skeletons reads ‘TROPHY ROOM’. On the north side there is a closed door and beside it, at about waist height, there is a small slot. There is an inscription on the door which reads as follows:- AUTHORIZED PERSONNEL ONLY.

Pushing the black button yet again, from the skeleton room, returns back to the secret chamber. This means the act of inserting the gold card into the slot can be skipped, and the route via the skeleton room can be now used to re-enter the main part of the map.

The transport box simply doesn’t work in many places, although it definitely allows hopping in the gold door section I was previous trapped in; however, this is my longest entry yet for Cornucopia, so it is a good place to stop for a breather until next time.

Thursday, 16. January 2025

The People's Republic of Interactive Fiction

Dec 2024 Meeting Post Mortem

The People’s Republic of Interactive Fiction convened on Friday, Dec. 13, 2024 in the MIT Trope Tank and over Zoom. Keltana, Hugh,  Josh Grams,  Doug Orleans,  Matt Griffin, and  Pinkunz, were online.  Zarf, Mike Stage, Andrew Stephens, Emery Joyce, Dana Freitas, Cidney Hamilton (not pictured), and Michael Hilborn, anjchang welcomed newcomers Kit Riemer and Dave Gilbert […]

The People’s Republic of Interactive Fiction convened on Friday, Dec. 13, 2024 in the MIT Trope Tank and over Zoom. Keltana, Hugh,  Josh Grams,  Doug Orleans,  Matt Griffin, and  Pinkunz, were online.  Zarf, Mike Stage, Andrew Stephens, Emery Joyce, Dana FreitasCidney Hamilton (not pictured), and Michael Hilborn, anjchang welcomed newcomers Kit Riemer and Dave Gilbert to the MIT Trope Tank. Warning: What follows is probably not proper English, but just my log of notes from the meeting to jog people’s memories.

Hybrid PR-IF meeting photo courtesy of Keltana, edited by anjchang.
Group photo at Cambridge Brewing Company courtesy of Emery Joyce (The Xenographer), edited by anjchang.

Celebrating the post PR-IF meeting dinner ritual to say farewell to the Cambridge Brewing Company.

EJ is working on the Short Games Showcase: https://itch.io/jam/if-short-games-showcase-2024. an exhibition of shorter interactive fiction works made in 2024. There’s still time to vote!

Andrew Stephens showed a working iPad demo of a game he’s working on.

Kit is working on a Translation Game https://slugzuki.itch.io/verses

Matt gave an update on Narrascope, happening at Drexel University June 20-22nd. NarraScope 2025 is accepting submissions for talks and papers until February 7, 2025. Also they’re looking for volunteers.


Zarf Updates

2025 IGF nominees, quick takes

IGF finalists were announced yesterday. I don't have a pile of reviews queued up for this year, but I can at least post my quick comments. (The only new review in this post:) Thank Goodness You're Here! by Coal Supper -- game site A diminutive, ...

IGF finalists were announced yesterday. I don't have a pile of reviews queued up for this year, but I can at least post my quick comments.


(The only new review in this post:)

Thank Goodness You're Here!

A diminutive, violent, nonverbal salesman goes to Yorkshire. Run around punching things and solving puzzles.

This got nominated for approximately everything. Look, TGYH! is fundamentally a trivial game. It has no guiding principle except "Throw nonsense at the wall, as hard as possible." Does it really deserve all these awards?

...Yes. Yes it does. It really is the best animation and the best voice performance and the background graffiti and the accents and the subtitles and the song and oh god. The Yuichi-Yokoyama sense of scale. Even the design, which pretends to be an open-world setup with arbitrary fetch quests, does a tremendous amount of work to keep everything bouncing along.

(Okay, you can argue that this is a satire of the point-and-click format. That's a guiding principle. But TGYH! goes way beyond that.)

I'd say that the complete randomness leads to a bit of a pacing problem; it's all kind of uniform, with no big goals in sight. (When you achieve a big goal, it's always a surprise.) Running around can feel like a grind, even though you can't get very stuck. And then, with no warning, it's over. But you know what -- fine. It's a winner. I even forgive them for getting "Ilkley Moor" stuck in my head forever.


(Games I've already played:)

Indika

That Russian nun game. Surreal, ambiguous -- ambiguous about how surreal it is, which is a good trick. Basically a walk-and-talk about faith and sin and free will, wrapped up in a walking simulator with light puzzles and platforming. I enjoyed it and then I had to think about the ending (I don't think it's nihilistic! But you might disagree!) That's all I ask out of a short game like this.

Full review here.

Animal Well

Loved it. Beautiful, sneaky, all about the joy of discovery. An open-world metroidvania, which is harder than it sounds.

I liked that your expanding bag of platforming tricks gives you more and more ways to approach levels. (And people will discover them in different orders -- open-world, right?) A lot of areas that present as "precision platforming" turn out to be easier later in the game. It's still a platformer but my modest dexterity sufficed me.

Also, I reached the <spoiler> without <spoiler>ing <spoiler> and therefore didn't have to get all the <spoiler>s. And the game allowed for that. That's pretty cool!

Full review here.

Miniatures

A small mixed-media point-and-clicky thing, in the line of Vignettes or Islands: Non-Places. It didn't blow me away but it was short, evocative, and good for unwinding of an evening.

The Rise of the Golden Idol

More static deduction, Lemurian style. The gameplay is expanded in interesting directions, the story is more engaging, and it's not pixel art any more. All improvements.

I worried the Golden Idol gimmick itself was mined out, after the first game. (Or even in the middle of the first game!) It's not -- the designers found a good new direction to take it in. But I hope they're not stuck in this setting forever. I'd like to see a fresh start.

Full review here.

The Thaumaturge

A meaty RPG set in a slightly alternate 1905 Warsaw. It teases being a Witcher knockoff, but really it's bouncing off of Disco Elysium. That's fine -- it bounces in its own direction.

Excellent narrative work. Excellent writing and sense-of-place. (I have many favorite characters and you will too.) Not bloated in length. The combat, yeah, that's a slog, but whatever -- switch to easy mode and call it the price of admission.

Full review here.


(Games I have not played, or have not played much:)

Caves of Qud

I have not played Caves of Qud. I am scared of Caves of Qud.

Seriously, I have read many articles about Qud, including the chapters in Procedural Generation and Procedural Storytelling (ed. Tanya X. Short and Tarn Adams). One of my friends livetwooted chunks of his experience. It sounds amazing. I'm glad it exists. I don't feel the need to get into it.

UFO 50

I played a few chapters at a party. Again, it seems cool, but it's not my nostalgia bracket and I'm not hankering for fifty small games.

Blue Prince

I played a demo of this last summer. It seems like an interesting idea and I love the vibe. Looking forward to the release.

Mouthwashing

This has been recommended quite a bit. I am not in a horror mood right now (real world, thanks) but I may get to it.

Consume Me

Sounds harrowing. I wind up loving some of these "teen years of horror" games, and bouncing off others. Not sure how this one will land.

Arctic Eggs

I know everybody loves this, but man, I did not get into it.

Ginger

I said "what the hell" several times in a row, and then I made it do something, and then I said "what the hell" very loudly indeed.

(That was on the demo of Ginger. It's not fully released yet.)

Instant top of my list for "what the hell" games. I have no idea if it will be playable in any real sense, but I am going to try.


Post Position

All the Way for the Win

All the Way for the Win was just published by Penteract Press — today! It’s available for sale from their online store. This book of poetry begins by narrating the birth of the universe and concludes after describing the eradication of the last human-authored poetic text. While it doesn’t deal with everything in between, it’s … Continue reading "All the Way for the Win"

All the Way for the Win was just published by Penteract Press — today! It’s available for sale from their online store.

This book of poetry begins by narrating the birth of the universe and concludes after describing the eradication of the last human-authored poetic text.

While it doesn’t deal with everything in between, it’s meant to touch on many aspects of human history and experience.

The poems in the book consist entirely of three-letter words.

Six of the poems from it were published at the very end of 2024 in DIAGRAM.

The book has received two great endorsements:

“DNI LOL. XML DIY SSL. P&L ICU MIA ILY. IDK KPI FAQ GTG. WTF AFK FTW.”
Tan Lin aka TAL

“How fun, the way the pen can act and fit its aim: new art did cry out and hum for ear and eye.”
Lai-Tze Fan

I hope many of you will enjoy the poems that are online — and that several will go all the way and read the book!


Choice of Games LLC

“Hunter: The Reckoning — The Beast of Glenkildove” is out now! Full moon. Cold night. Dark shadow. Warm gun.

In partnership with World of Darkness and Paradox Interactive, Choice of Games is proud to announce the release of Hunter: The Reckoning — The Beast of Glenkildove by William Brown, now available on Steam, iOS, and Android. It’s 25% off until January 23! William Brown’s earlier game The Mysteries of Baroque is 33% off as well! Full moon. Cold night. Dark shadow. Warm gun. The Beast of G

In partnership with World of Darkness and Paradox Interactive, Choice of Games is proud to announce the release of Hunter: The Reckoning — The Beast of Glenkildove by William Brown, now available on Steam, iOS, and Android. It’s 25% off until January 23!

William Brown’s earlier game The Mysteries of Baroque is 33% off as well!

Full moon. Cold night. Dark shadow. Warm gun. The Beast of Glenkildove has stalked Ireland for centuries. Now, you must hunt it.

Hunter: The Reckoning — The Beast of Glenkildove is an interactive novel by William Brown, set in the World of Darkness. It’s entirely text-based, without graphics or sound effects, and fueled by the vast, unstoppable power of your imagination.

Eight years ago, when you were eighteen, the Beast of Glenkildove killed one of your closest friends. You’ve never returned to Ireland since that day.

It’s difficult to remember what happened. As you’ll soon learn, the human mind blots out the traumatic memories of facing a werewolf.

Now, you must stalk that werewolf across the shadowed glens and fogbound mountains of Ireland, hunting a shapeshifting killing machine with your friends, your wits, and a shotgun.

But you and your friends are not alone. You have entered a world of Hunters, humans who dare to challenge the dominion of the monsters who rule over them. Can you trust the fanatics of the Society of Leopold, the scholars and savants of the Arcanum, the ruthless Duffy crime family, or the enigmatic biotech company Fada?

Can you even trust your oldest friends?

Redemption for some. Retribution for others. A reckoning for all.

• Play as male, female, or nonbinary; befriend or romance humans and supernaturals of any gender
• Kill, study, capture, document or negotiate with the creatures you hunt
• Craft your own traps, gear, and weapons to take the Hunt to the enemy
• Find camaraderie and romance with the only people in the world that you can trust to fight alongside you
• Adopt and train your own wolfhound to assist you in the Hunt
• Build and maintain your own safehouse at the Wolf’s Head Inn in the Wicklow Mountains

Become the thing that even nightmares fear.

We hope you enjoy playing Hunter: The Reckoning — The Beast of Glenkildove. We encourage you to tell your friends about it, and recommend the game on Facebook, Instagram, Tumblr, and other sites. Don’t forget: our initial download rate determines our ranking on the App Store and on Steam. The more times you download in the first week, the better our games will rank.


Renga in Blue

Cornucopia: Satan’s Game

(My previous posts about Cornucopia are needed to understand this one.) So the Dungeons & Dragons references got even stronger since last time. My main piece of progress was figuring out the stone dragon. Kind of. >ENTER OPENING You are in a small spherical shaped room inside the dragon’s head. In front of you are […]

(My previous posts about Cornucopia are needed to understand this one.)

1979 printing, via eBay. “Roll the dice to see if I’m getting drunk!”

So the Dungeons & Dragons references got even stronger since last time.

My main piece of progress was figuring out the stone dragon. Kind of.

>ENTER OPENING
You are in a small spherical shaped room inside the dragon’s head. In front of you are two round windows which look out into the cavern you have just come from. Just under the windows is a small desk with a chair beside it. The desk has three buttons which are coloured red, brown and amber, the desk also has two levers coloured black and blue. It is quite warm in here, the heat seems to be coming from below.

>PUSH RED BUTTON
There is a click and then a low wheezing noise.

>OUT
The control room exit seems to have vanished.

I realized that the red button closed the hatch to the outside, while the amber button opened it. I ended up closing the hatch, then messing with the brown button, black lever, and blue lever entirely at random. I unfortunately do mean random as I was just mucking about but somehow I hit the right combination that when I went to test going south again where the mechanism previously activated, I found myself safe.

From Dave Arneson’s Dungeonmaster’s Index (1977).

You are at the south end of a large cavern. To the south the cavern narrows down to a small passage. Crouching and facing the narrow passage is a large rock formation which looks exactly like a dragon.

>S
You are in a long north-south corridor which has been carved out of the solid granite.

I somehow got doubly lucky (again, I think) insofar as there is a door that looks like it ought to be a stopping point that mentions the lever positions. This particular save game has the giant rat already dead, so I just have to hope that’s right. (Probably not, eh? I’ll deal with it when it comes.)

>S
You are at the south end of the granite corridor. The exit to the south is glowing slightly. Written upon the wall here is the following – Have you got the levers right!

>S
You are in an oblong shaped room which has exits to north, south and west. The floor has a wooden trap door let into it. The room is otherwise quite bare.

The leads to a small part of the map I’ll call the Magi Area.

Going down the trap door leads to a “small dark room” with an “arch” that is blocked by a “granite block”. The game notes the block is “obviously not part of it and has been put there with the intention of stopping a through passage.” Neither the block nor the arch register as magic (or evil) and nothing I’ve thrown has had any effect.

The magi’s quarters have nothing, but there’s also a laboratory with a mummified hand…

You are in what was once the Magi’s laboratory, a strange chill comes over you in this place probably as a result of the lingering remnants of fiendish magic spells. There are exits to the west and north. There is a severed hand lying on the floor here. It looks to have been mummified.

…and a library, with a “guide book” and a “large die with one hundred faces”.

>W
You are in what was the Magi’s library – the walls were covered in bookshelves, which presumably contained many books on arcane magic. What little there was left of the shelves after the vandals left has long since rotted away, the floor is covered in the resulting dust. There are exits to the north and east. There is a small guide book discarded here. A large die with one hundred faces lies here.

The book is described as the “Dungeon Masters Guide Book”. It opens to page 739, and reading it just says it is “quite useless” as it shows “the best way to roll dice of different dimensions.” (If the water weird wasn’t enough, it’s definitely clear here what game the author was thinking of.)

The large die rolls to be 6279, and always the same number. (The description notes it doesn’t have normal side-numbering, but doesn’t say it is the same number on all sides, so I suspect the die is heavily weighted.)

>ROLL DIE
You spin the large die and it comes to rest showing the number six thousand two hundred and seventy nine.

None of the above objects (mummified hand, die, guide book) are marked as magic or evil. The hand gets marked as a treasure, so it is possible it doesn’t have any use other than getting points.

My adventures in magic-dom continued past this thanks to solar penguin in the comments, who speculated about just levitating past the magic tiles rather than stepping on all of one color.

>CAST LEVITATE SELF
As the spell takes effect you rise up in the air, suddenly an extra strong gust from the draught catches you and sweeps you towards the other end of the room, passing over the floor without touching it. The draught sweeps you out of the other end of the room and you find yourself….. You are in a strange room, it has five walls and therefore five corners, in the eastern corner is an exit which is almost totally concealed. The walls are covered in symbols and diagrams of a most arcane sort. The room is otherwise quite devoid of furnishings or markings.

>EXAMINE SYMBOLS
Strangely as you study these symbols you find you start to understand them, it seems whoever used this place used the walls to take notes on in his/her? attempt to summon a demon from one of the planes of hell. The success or otherwise of the attempts is not made clear.

This does not burn the levitate spell, so it still is usable to go back up the tower (you can’t carry everything at once, so dragging stuff to the cottage for points requires multiple loads).

Unfortunately, I have been unable to summon the demon. The symbols are not marked as magic, or evil (!). There is no illusion in the room. (I have been checking, still, despite the dispel getting used up back at the countryside. For one thing, it is possible you aren’t supposed to pass through that room at all, and another, DISPEL ILLUSION and DETECT ILLUSION are separate spells, and it may be there’s an illusion later that you can detect but don’t need to kill entirely in order to bypass.)

Speaking of spells, the one that’s been burning a hole in my pocket, er, spellbook, is DISPEL MAGIC. I can use it on the rune sword, for instance, and it gets totally destroyed; you can also cast it on the spell book itself to cause it to consume itself in a fireball. (It’d be amazing if this was the intended use for the spell! I’d have to be near the end of the game, though.) The complex is otherwise filled with quite a few non-magical things (according to the spell) so I haven’t found any other effects.

I’m still not ready for hints, but anyone who hasn’t looked at a walkthrough is welcome to chime in with ideas in the comments.

Hundred-sided die, via Board Game Barrister.

Wednesday, 15. January 2025

Zarf Updates

The Visible Zorker

Here's a little something I've been working on: The Visible Zorker! This screenshot has spoilers for Zork 1. This whole project is spoilers for Zork 1. That's the point. Really, go give it a shot. It's a toy. You can read the rest of this ...

Here's a little something I've been working on: The Visible Zorker!

A screenshot titled "The Visible Zorker". The left side of the window shows the opening of Zork 1, up to the command OPEN WINDOW. The right side shows a list of ZIL function calls and the message "With great effort, you open the window far enough to allow entry." This screenshot has spoilers for Zork 1. This whole project is spoilers for Zork 1. That's the point.

Really, go give it a shot. It's a toy. You can read the rest of this post later.

...Okay, a quick introduction. The left pane is regular old Parchment, the Z-code interpreter, playing Zork 1. You type commands; the game responds.

Just regular old Parchment? Not quite! This is Parchment exposed. The upper right pane shows the stack trace for the current turn. That's all the ZIL functions called, and all the text printed, when executing the most recent command.

And the bottom right pane shows the ZIL source code -- the original text, written by Infocom folks in the 1980s. Click on any function or printed string; it'll show you that code in context.

Now check out the other tabs!

A list of rooms and objects from Zork. A list of variables, starting with "HERE: EAST-OF-HOUSE", "SCORE: 0", "MOVES: 3". A list of timer functions: "I-LANTERN count 200", "I-CANDLES count 40", "I-THIEF count -4", "I-SWORD count 0-1". Only I-THIEF is marked as active. A list of filenames: "zork1.zil", "1actions.zil", "1dungeon.zil", etc.

The "World" tab shows the game world as nested objects. The "State" tab shows ZIL global variables. "Timers" is the table of timers and daemons -- functions called every turn or counting down to a future call.

All of these displays update live, every turn, as you play the game. You can click on any line to see the ZIL source that implements it.

And those green buttons? Those display my comments on the source. ZIL isn't the easiest language to read (it's a Lisp derivative), so I wrote up some helpful footnotes.

Really, go play with it. Run around. See how Zork works. Haven't you always wondered?

(I mean it about the spoilers, though.)

Seriously, you did what?

Infocom's games are among the best-researched works in videogame history. The Z-machine format has long since been documented. The games have been disassembled and analyzed. And then, in 2019, we got their original ZIL source code.

But most players have never read this stuff. What if I built a way to visualize the Z-machine as it executed? Like the Visible Woman at the science museum. Internals illuminated; cheerfully explaining itself; transgressively fascinating. (Especially if you're a twelve-year-old science nerd... boy.)

I think of it as a kind of exploratory programming. It's on the code-reading side rather than code-writing -- but reading code is so much of software development!

Or you can think of it as the Penn-and-Teller approach to the magic of game design. Zork is a great trick, and knowing how it works makes it greater.

And wow, this was a fun project to work on. A challenge, on several levels.

What was hard about this?

The first problem was extracting the data that the Visible Zorker needs.

I said that Zork (and the Z-machine) had been analyzed to the bones right? Yes, but not in the way I needed. Remember, ZIL is a compiled language. All the functions in the source code have been converted to numeric opcodes, operating on numbers.

Here's a bunch of opcodes extracted from the compiled game file. This is the function at memory address $100D8. We've had this listing since the 1990s:

Routine 100d8, 2 locals (0000, 0000)

100dd:  GET_PROP        L00,#07 -> L01
100e1:  JL              L01,#00 [FALSE] RTRUE
100e5:  SUB             #00,L01 -> -(SP)
100e9:  PUT_PROP        L00,#07,(SP)+
100ee:  GET_PROP        L00,#11 -> -(SP)
100f2:  CALL            (SP)+ (#04) -> -(SP)
100f7:  RTRUE

And here's the corresponding ZIL source, which we got in 2017:

<ROUTINE AWAKEN (O "AUX" (S <GETP .O ,P?STRENGTH>))
     <COND (<L? .S 0>
        <PUTP .O ,P?STRENGTH <- 0 .S>>
        <APPLY <GETP .O ,P?ACTION> ,F-CONSCIOUS>)>
     T>

If you have a reference, you can see how these match up. The first line gets property 07 from the object in local variable 00 -- that must be the STRENGTH property. It stores that value in local variable 01. Then it checks whether that's less than zero. (JL is "jump if less than...") And so on.

But -- here's the trick -- how did I know that these definitions went together? How did I know that function $100D8 corresponded to the AWAKEN routine rather than, say, I-FIGHT or INFESTED?

In some cases it's easy. Here's another disassembled routine:

Routine 10a3e, 0 locals ()

10a3f:  JE              G78,#39,#23,#2b [FALSE] 10a4f
10a46:  PRINT_RET       "You can't do that."
10a4f:  JE              G78,#38 [FALSE] RFALSE
10a53:  PRINT           "It looks pretty much like a "
10a66:  PRINT_OBJ       G76
10a68:  PRINT_RET       "."

The PRINT and PRINT_RET opcodes contain embedded string data -- the disassembler knows how to decode this. It's easy to find the ZIL code that corresponds to that. It must be this function:

<ROUTINE DUMB-CONTAINER ()
     <COND (<VERB? OPEN CLOSE LOOK-INSIDE>
        <TELL "You can't do that." CR>)
           (<VERB? EXAMINE>
        <TELL "It looks pretty much like a " D ,PRSO "." CR>)>>

So the first thing I did was write a ZIL parser. It runs through the source files and parses all the functions. For each function, it records (a) the function name; (b) the location in the ZIL source; (c) all the strings used in TELL statements.

And then I wrote a parser for the disassembly dump, which runs through and extracts (a) the function address and (b) all the embedded strings in PRINT opcodes.

I figured I'd have to write a fussy search algorithm to match up functions in the first list with functions in the second list. And for function with no embedded text, like AWAKEN? I'd have to match them up by hand!

...Then it turned out that the ZIL compiler generated functions in strict source code order. I didn't have to do any searching; the two lists were already in the same order. Exploratory programming, right?

(It wasn't quite that easy. ZIL supports conditional compilation -- like #ifdef in C -- and my parser had to account for that. Just a bit more work. On the up side, I needed those source code locations for the app anyhow.)

Well, that takes care of the functions. What about the objects? Here's a ZIL object definition:

<OBJECT LAMP
    (IN LIVING-ROOM)
    (SYNONYM LAMP LANTERN LIGHT)
    (ADJECTIVE BRASS)
    (DESC "brass lantern")
    (FLAGS TAKEBIT LIGHTBIT)
    (ACTION LANTERN)
    (FDESC "A battery-powered brass lantern is on the trophy case.")
    (LDESC "There is a brass lantern (battery-powered) here.")
    (SIZE 15)>

The same disassembler can generate a list of the object data:

164. Attributes: 17, 31
     Parent object: 193  Sibling object: 183  Child object:   0
     Property address: 1a97
         Description: "brass lantern"
          Properties:
              [18] 44 51 44 5f 44 c8 
              [17] 6e 32 
              [16] e9 
              [15] 00 0f 
              [14] 87 4d 
              [11] 87 5f 

Happily, the object description ("brass lantern") is embedded in the object data, so that's easy to match up.

...or is it? What about this object dump?

 59. Attributes: 5, 6
     Parent object:  82  Sibling object:  60  Child object:   0
     Property address: 1091
         Description: "Maze"
          Properties:
              [30] 3c 
              [29] 36 
              [23] 3a 
              [11] 90 cd 

The description is "Maze"... just like the other fourteen "Maze" rooms. How do I tell those apart?

Turns out the property data describes the exits. Property 23 is UP, 29 is WEST, 30 is EAST, so can we find a maze room definition with pattern? We can. And hey, that tells us what rooms $36, $3A, and $3C are too...

Mind you, at first I didn't know what property matched with which direction! Extra puzzle fun. But it was solvable, working backwards from the dead ends and the Troll Room.

Working through this mapping was a real deja vu moment. I was mapping the Zork maze! One room at a time, checking the exits... It felt like 1980 all over again.

Then I did it all again for the global variables list, the properties, the attributes...

After all that, I remembered that Allen Garvin, Ben Rudiak-Gould, and Ethan Dicks did lot of this analysis work back in 2007. That didn't solve all my problems -- they didn't have the ZIL source, so they made up their own function names and so on. ($100D8 is CheckStrength in that file.) But it confirmed the property, attribute, and global variable numbers pretty well.

So after that it was easy, right?

Hooking up Parchment to a display UI was pretty easy. That was a question of collecting internal Z-machine info into a JS object and exporting it. (A list of global variable values, a list of object locations, a list of function addresses called this turn... Just numbers.) Then I had to convert all the address mappings I'd worked out (and objects, globals, etc) into JSON data. The UI loads all that JSON, and then it can display $100D8 as AWAKEN.

Designing that UI was a journey. Again, exploratory: a very iterative process.

I started out with the basic ideas of a call tree, a list of printed strings, a table of objects. But how is that presented? Does the call tree include printing strings, or are those separate tabs? What does the source-code pane display at any given time?

I built a display pane, tried it out, and asked "What can't I see?" Then I did it again. And again. "What button am I reaching for that doesn't exist?" (I didn't know that the source pane needed forwards/backwards buttons until I reached for them.)

The Timers tab wasn't even an idea until I asked "Where is the lamp's battery counter stored, anyway?" I had unconsciously assumed it would be a property of the lamp object, because that's how Inform works. But it's not. It's not a global variable either. Where the heck is it?

Turns out it's a timer function which counts down from 200. When that runs out, it displays a message from LAMP-TABLE and resets to 100. Then 70, then 15, then it's dead. So the total lamp life is 385, but you have to dig quite a bit to understand why.

But you can't illuminate the workings of Zork without showing the lamp counter! So I added the Timers tab. Once I looked at it, I realized it was indispensable.

More questions...

How long did this take?

I wrote the ZIL parser over Thanksgiving, just because I was hanging out at my parents' place with my laptop. But I didn't seriously get started on the project until, let's see, Dec 22. That's when I started banging Parchment into the shape I needed.

So a bit over three weeks. Mind you, I've been pretty obsessed with this project. I worked on it a lot over the holidays.

Do you plan to add anything more to it?

Not much. There's a few UI tweaks left, and I could keep adding commentary as long as I feel like. But it's basically done.

I might add a "Map" pane. That would be fun. It'd be a bunch of SVG work, though, so I didn't try to include it in today's release.

Ooh, map! Could you use this tool to build a "more playable" Zork, with a built-in map, inventory and room displays, and so on?

You could certainly do some of that.

I think it's a limited path, though. Any attempt to really modernize the Infocom games would involve changing the game -- that is, compiling a new version. New game responses, enhanced descriptions, different timers, etc. Some people have already tried this; see this Modern Planetfall project.

That's a perfectly valid approach. But it's not what I'm interested in. I am approaching this as an educational project, a museum exhibit. Most obviously, I'm not worrying about spoilers. The Visible Zorker is 100% spoilers and that's fine.

If you really want to update Zork for a modern audience, you have to think about adapting the puzzles so they're more approachable but still good puzzles. That's a much harder problem.

Are you going to do the rest of the Infocom games?

I doubt it. It wouldn't be much fun. I'd have to reconstruct the object numbers and functions addresses and so on for each game, and maybe rewrite some of the display logic as well. (I tried to keep it general, but some things are still hard-coded for this specific Zork release.)

Also, I wouldn't learn any more React that way. One unstated goal of this thing was to get some React on my resume.

(See also BlorbTool, which I released last month.)

Mind you, if you want to hire me to do the rest of the Infocom games, I'd be fine with that. That'd be awesome. That's what resumes are for, right?

What about other kinds of games?

I dunno. What other kinds of games would work? Not many games have this kind of complex game logic and source code available.

Are there easter eggs in the Visible Zorker?

Where could I possibly hide such a thing?


Updates

Jan 15th: Fixed some syntax-coloring bugs. Local variables are tinted brown now. Added some commentary.


Roottrees redux

I beta-tested, so take this as a promo rather than a full review. Roottrees! They're back! And more hand-drawn than ever! This isn't the hand-drawn part. If you haven't played The Roottrees Are Dead, now's the time to jump in. One of the ...

I beta-tested, so take this as a promo rather than a full review.

Roottrees! They're back! And more hand-drawn than ever!

A corkboard with three blank cards on it. A scrap of paper above says "Complete the family tree of the Roottree Sisters". This isn't the hand-drawn part.

If you haven't played The Roottrees Are Dead, now's the time to jump in. One of the top static deduction games to follow in the Obra Dinn's wake. Like I said about original free version of Roottrees:

The Roottrees are a five-generation dynasty of candy magnates from western Pennsylvania. Or rather, they were, because the most famous scions of that line just died in a plane crash. You're handed a blank family tree and ordered to fill in the names, faces, and professions of every blood descendant of old Elias Roottree. It's 1998 and you have a state-of-the-art terrible web browser. Get searching.

Now the UI is spruced up, it's got a contextual "ask the rubber duck" hint system, there's more voice acting, and the AI-generated art is gone. The plaid shirt is really plaid now. You have a search history to review your findings; that was my dearest wish from playing the old version.

If you have played Roottrees, now's the time to play it again. It's still a fun puzzle. Really, I found it nearly as much of a challenge the second time around. I'd forgotten a lot of the critical details since last April.

But also, once you complete the original game, a whole new chapter unlocks: Roottreemania! You've found the known descendants -- now hunt for rest!

(You know, the ones born on the wrong side of the sheets. Love-Roottrees. Roottrees bar sinister. Some Roottrees slept around, is what I'm saying.)

The new chapter is as big again as the original. The final sealed-envelope challenge is deeper and asks more deductive twists of you. But like the original, you can't get very stuck on it. Figure out as much as you can, use as many hints as you like, and then hit the "wrap it up" button. You'll get a satisfying story ending even if you haven't figured out every detail.

Did I say recommended? Recommended.


Renga in Blue

Cornucopia: Smashing Success

(Continued from my previous posts, which you definitely need for context before reading this one.) The spellcasting in Cornucopia, as Matt W. has pointed out, is “Vancian”, following roughly the same model as Dungeons & Dragons. Vancian is so named because of the Dying Earth series of novels by Jack Vance, where wizards memorize spells […]

(Continued from my previous posts, which you definitely need for context before reading this one.)

The spellcasting in Cornucopia, as Matt W. has pointed out, is “Vancian”, following roughly the same model as Dungeons & Dragons.

From the 1969 Lancer printing, via eBay.

Vancian is so named because of the Dying Earth series of novels by Jack Vance, where wizards memorize spells and then forget them as they are cast. Cornucopia uses casting directly from a spellbook with the same sort of disappearance effect (except for the case of levitating at the tower, as I showed off in my last post; that seems to be to allow the player to take that route multiple times without penalty).

Testing various inventory items with save-and-load. Notice the green gem, the one found hiding in a throne, being “evil” but not “magic” — how does that work?

Having such a system isn’t a guarantee D&D was involved (after all, maybe the author went right to the source!) but there’s a critter that I’m fairly sure is D&D-only.

Water Weird as drawn for the 1977 AD&D Monster Manual by David Sutherland.

Back at the kitchen (adjacent to the giant rat, which we’ll also reckon with in a moment) I was testing out GET ALL everywhere and found death.

You are in what appears to be the old kitchen. There is a flight of stone stairs leading up and doorways in the east and west walls. In the northwest corner a spring enters the kitchen and pours into a large granite basin. The water level in the basin is kept constant by a drain hidden from view.

>GET ALL
granite basin : As you approach the basin with the spring water in it a strange form rears up and grabs you, obviously some form of water weird. The strange form pulls you into the basin and you are drowned. From your sitting position you can see through a glass screen into a room that looks strangely familiar. On either side of you are further skeletons, they have a somewhat glum look on their skulls just as you do. You are dead and have become yet another trophy for the long departed owners of this place.

Fortunately, there’s a weirdly specific spell from the spellbook that immediately came to mind.

>OPEN BOOK
Opening the spell book reveals :- detect magic spell; dispel magic spell; purify water spell; dispel illusion spell; detect illusion spell; levitate self spell; detect evil spell.

>CAST PURIFY WATER
The spring water is now quite pure and the water weird has been killed.

With this done, I was able to get the empty green bottle filled with water (mind you, it isn’t FILL BOTTLE or FILL BOTTLE WITH WATER, but the oddly phrased PUT WATER IN BOTTLE). This technically provides a solution for getting thirsty while going east from the dried brook, but I have yet to work out anything to do with the grate (the only thing you can find there).

The culvert ends here in a blank wall and the water disappears down a grating set in the floor. The culvert extends away to the west along a narrow ledge. The grating is of a fine mesh, such as to catch most things that would be brought along by the current of water, if there was any.

>OPEN GRATING
The grating can’t be opened or closed.

Adjacent to the water weird is a giant rat. The giant rat succumbs to simply stabbing quite a few times (with a combat scene just like Goblin Towers, or Zork) but something about this feels wrong.

>KILL RAT WITH RUSTY SWORD
A quick stroke gets the giant rat in the side and blood starts to trickle down one of its legs.
You dodge but the giant rat still manages to nip you.

>KILL RAT WITH RUSTY SWORD
A quick stroke gets the giant rat in the side and blood starts to trickle down one of its legs.
You dodge but the giant rat still manages to nip you.

>KILL RAT WITH RUSTY SWORD
With a deft side step you stab your sword into its heart. The giant rat slumps down dead.

This leaves behind merely a giant rat corpse, which you can pick up (it is heavy and have to drop everything other than the lamp), but I haven’t found any use for it.

My last piece of “progress” wasn’t really progress in a sense: I was able to get by the troll.

1982 AD&D Troll figure, via eBay.

The troll, remember, ate any swords I tried to use to attack it.

You are in part of a trolls lair, all manner of stuff is strewn around, including parts of its previous meals. To the west is a low tunnel and to the south what looks to be a tiny cavern. A huge and hairy troll stands here blocking your way.

I was testing out various options when I tried SMASH TROLL.

The troll breaks into a million pieces and is destroyed.

>S
You are in a small cavern which looks like it was the sleeping chamber for the troll. The only exit leads to the north. Lying discarded here in one corner is the King’s crown.

SMASH works on everything in the game, destroying the object. Important treasures? Smashable. Statue standing on a pedestal with hidden gold necklace? Smashable. Giant full sized dragon made from rock? Definitely smashable. Although you still die if you try to go south due to dragon flame. It appears that the troll stopping the player is dependent on the “troll object” being present while the dragon flame is hard-coded for going south from the dragon.

>SMASH GRATING
The grating breaks into a million pieces and is destroyed.

While you can smash the grating that “can’t be open or closed”, it doesn’t allow leading to any new areas, so that seems to be wrong. Smashing the tree still results in the player dying if they try to climb the tree.

You are at the centre of the Royal Gardens, there is a tree here in full bloom, the blooms are pink. The perfume from the blooms is very heady. The base of the tree is circled by some kind of goo, within this goo there appear to be many jewels.

>SMASH TREE
The tree breaks into a million pieces and is destroyed.

>U
You get up into the low branches, it seems the tree is somewhat sentient and resents this. The tree shakes you from its branches and you fall into the goo at its base, which is extremely corrosive. From your sitting position you can see through a glass screen into a room that looks strangely familiar. On either side of you are further skeletons, they have a somewhat glum look on their skulls just as you do. You are dead and have become yet another trophy for the long departed owners of this place.

This presents an unusual dilemma: what if SMASH is the legitimate and only method of solving some puzzle in the game, in an intended way? (Surely the troll isn’t.) Would I be able to tell? Will doing things the “right way” nonetheless feel like cheating? If nothing else, I now know it’s just a treasure past the troll and not some long branching path.

I’d like to close out by listing out all the obstacles I’m stuck on and theorize about solutions. The evil tree seems like a good place to start.

A 1st edition D&D treant, art by David A. Trampier.

And yes, the tree is detected via spell as evil:

>CAST DETECT EVIL ON TREE
Surprisingly for something so marvellous the tree seems to have an evil awareness.

You can die by a.) climbing and being dunked in the goo, which dissolves you b.) trying to get one of the gems in the goo, which dissolves you, c.) falling unconscious from the tree’s perfume, and falling into the goo, which dissolves you.

If you try to set it on fire with the torch the tree “shies away” from the torch and “no matter what you do you just cannot set fire to it”. The goo itself is not flammable. I do suspect fire is involved in a solution still somehow, just in needs to get conveyed to the tree in a more forceful way (and before you ask, THROW TORCH AT TREE just gets the response “Dropped”).

Next up is the stone dragon at the cave. Going inside, I mentioned three buttons and two levers.

>ENTER OPENING
You are in a small spherical shaped room inside the dragon’s head. In front of you are two round windows which look out into the cavern you have just come from. Just under the windows is a small desk with a chair beside it. The desk has three buttons which are coloured red, brown and amber, the desk also has two levers coloured black and blue. It is quite warm in here, the heat seems to be coming from below.

>PUSH RED BUTTON
There is a click and then a low wheezing noise.

>PUSH AMBER BUTTON
There is a click and then a whooshing noise.

The brown button causes a click no matter what sequence I try to do things in, and the levers just pull (or push) and then move back to the center with no apparent reaction. I’ve tried quite a few variations followed by testing going south past the fire (in the hope something happened silently) but no luck with that either. I suspect I’m just missing the right permutation of moves, though; I don’t have much to work with other than brute force testing.

Other than those two spots I’m stuck on small things, or what might not even be puzzles:

  • The statue facing west only yielded the necklace; I don’t know if there’s some other secret involving the statue moving.
  • There’s a small alcove seen when entering the fungus elevator; that might simply be the elevator entrance that can reached from the throne area, though, and not really a puzzle.
  • The area with the gold card can only be left (at the moment) via using up the card at a door. The gold card does seem to be a treasure so I must be missing something. Also, what does the “that will do nicely” message mean?
  • The card is solid gold with an ebony edging and writing on one side in a bold gothic script which reads ‘Admit one only’. On the other side in almost microscopic letters it says ‘that will do nicely’, the meaning of which seems quite obscure.

  • There’s a “compost heap” at the garden I haven’t been able to do anything with.
  • I still have a fountain at the garden to deal with. There’s pirahna protecting some gold coins, and there’s a “water jet” at the fountain in the garden still awaiting an item. I suspect I will know the item when I see it (and it will help with the fish problem may influence the empty brook).
  • There is a lovely carved stone fountain here, it is quite a rude design. The jet of water is so large it could easily support a small object if placed exactly right. The pool at the base of the fountain has many gold coins that have been tossed into it. There are what appear to be goldfish swimming about in it.

    >PUT BOOK ON JET
    It would just fall off the jet of water, so there’s no point.

I get the uncanny feeling this is one of those kind of games where there’s “wrong” ways to solve things and you can easily put the game in an impossible state with a wrong solution. Maybe I can get the giant rat to follow me over to the tree and distract it? Or make friends with the troll?

Tuesday, 14. January 2025

Post Position

The OUTPUT Anthology is Out!

I’m delighted that after more than four years of work by Lillian-Yvonne Bertram and myself — we’re co-editors of this book — the MIT Press and Counterpath have jointly published Output: An Anthology of Computer-Generated Text, 1953–2023 Book launch events are posted here and will be updated as new ones are scheduled! This anthology spans … Continue reading "The OUTPUT Anthology is Out!"

I’m delighted that after more than four years of work by Lillian-Yvonne Bertram and myself — we’re co-editors of this book — the MIT Press and Counterpath have jointly published

Output: An Anthology of Computer-Generated Text, 1953–2023

Book launch events are posted here and will be updated as new ones are scheduled!

This anthology spans seven decades of computer-generated text, beginning before the term “artificial intelligence” was even coined. While not restricted to poetry, fiction, and other creative projects, it reveals the rich work that has been done by artists, poets, and other sorts of writers who have taken computing and code into their own hands. The anthology includes examples of powerful and principled rhetorical generation along with story generation systems based on cognitive research. There are examples of “real news” generation that has already been informing us — along with hoaxes and humor.

Page spread from OUTPUT with Everest Pipkin’s i’ve never picked a protected flower

Page spread from OUTPUT with Talan Memmott’s Self Portrait(s) [as Other(s)]

Page spread from OUTPUT with thricedotted’s The Seeker

It’s all contextualized by brief introductions to each excerpt, longer introductions to each fine-grained genre of text generation, and an overall introduction that Lillian-Yvonne and I wrote. There are 200 selections in the 500-page book, which we hope will be a valuable sourcebook for academics and students — but also a way for general readers to learn about innovations in computing and writing.

You can buy Output now from several sources. I suggest your favorite independent bookseller! If you’re in the Boston area, stop by the MIT Press Bookstore which as of this writing, has 21 on hand as of actually publishing this post, has 14 copies!

Upcoming Book Launches, Talks, and Events

January 20 (Monday) Toronto book launch with me, Matt Nish-Lapidus, & Kavi Duvvoori, at the University of Toronto’s Centre for Culture & Technology, 6pm–7:30pm. Free & open to the public; please RSVP.

February 24 (Monday) Carnegie Mellon University book launch with the editors, room TBA, 5:30pm–7pm. Free & open to the public.

March 11 (Tuesday) Massachusetts Institute of Technology book launch with the editors, MIT’s Room 32-155, 5pm-6:30pm. Free & open to the public. Book sales thanks to the MIT Press Bookstore.

March 29 (Saturday) AWP (Association of Writers & Writing Programs) Conference, on the panel “Making a Literary Future with Artificial Intelligence,” Concourse Hall 151, 1:45pm–3pm.

April 5 (Saturday) Both co-editors are on a panel at Baltimore’s CityLit Festival, details TBA.

Previous Events

November 11 (Monday): Both editors spoke at the University of Virginia, Bryan Hall, Faculty Lounge, Floor 2. Free & open to the public. 5pm.

November 20 (Wednesday): Online book launch for Output, hosted by the University of Maryland. Both editors in conversation with Matt Kirschenbaum. Free, register on Zoom. 12noon Eastern Time.

November 21 (Thursday) Book launch at WordHack with me, David Gissen, Sasha Stiles, Andrew Yoon, and open mic presenters. Wonderville, 1186 Broadway, Brooklyn, 7pm. $15. Book sales.

December 6 (Friday) Output will be available for sale and I’ll be at the Bad Quarto / Nick Montfort table at Center for Book Arts Winter Market, 28 W 27th St Floor 3, 4pm–8pm.

December 9 (Monday) Book launch at Book Club Bar with the editors, Charles Bernstein, Robin Hill, Stephanie Strickland, and Leonard Richardson. 197 E 3rd St (at Ave B), New York City’s East Village. Free, RSVP required. 8pm. Book sales thanks to Book Club.

December 13 (Friday) European book launch with the editors, Scott Rettberg, and Tegan Pyke. University of Bergen’s Center for Digital Narrative, Langesgaten 1-2, 3:30pm. Free & open to the public, book sales thanks to Akedemika. This event was streamed & recorded and is available to view on YouTube.

January 13 (Monday) “The Output Anthology at Computer-Generated Text’s Cultural Crux”, a talk of mine at the UCSC Computational Media Colloquium, Engineering 2 Room 280, 12:30pm–1:30pm. Free & open to the public.


Renga in Blue

Cornucopia: The Long Departed

(Continued from my previous post.) I’ve done, as promised, some serious mapping, and can share the layout and the initial obstacles. But first, a look at the verb list: This is quite a wide coverage for this era and feels more aligned with Infocom than a Commodore PET game (as this originally started as). While […]

(Continued from my previous post.)

I’ve done, as promised, some serious mapping, and can share the layout and the initial obstacles. But first, a look at the verb list:

This is quite a wide coverage for this era and feels more aligned with Infocom than a Commodore PET game (as this originally started as). While Goblin Towers had very little change between the two versions, I highly suspect Cornucopia had serious additions to at least the text; not only are there a fair number of lengthy room descriptions, it more “fun” messages than usual while messing around with verbs the game understands, mirroring Zork’s multiple “jump” responses for instance:

>JUMP
Well done.
>JUMP
That is really childish!
>JUMP
I suppose you want a medal for that.
>JUMP
Wheeeeeeeee

SMELL and LISTEN are also notable (and do, in fact, get used, sometimes for pure environment); PRAY is good to keep in mind given the theological theme, and PLUCK is the most unusual of all the verbs (although it seems to just be a synonym for “TAKE”).

Now, a grand tour of the map, where I’ll start with a meta-map. (This is arranged by connectivity between regions, where each region is a set of rooms.)

The player starts at the cottage which I showed the map of last time; let’s take the route entering the giant fungus first. You step in an “elevator” and there’s a small alcove briefly visible (I have not been able to interact with it yet) before landing at:

You are on the edge of a small brook, which has long since dried up. A path follows along the course of the brook to the east and west. Across on the other side of the brook you can see lush rolling countryside.

The west is a “solid gold” card with “Admit one only” on one side and “that will do nicely” on the other; I assume it is a treasure, but we’re about to consume it in a moment.

To the east there’s a culvert that leads up until a grate:

The culvert ends here in a blank wall and the water disappears down a grating set in the floor. The culvert extends away to the west along a narrow ledge. The grating is of a fine mesh, such as to catch most things that would be brought along by the current of water, if there was any.

Heading down the culvert has an unfortunate side effect: the player starts getting thirsty. The “green bottle” the player starts with seems to be empty, but even with a fountain later the command FILL BOTTLE doesn’t seem to be understood, so I’m not sure what’s going on. I suspect visiting here first is out-of-order of how it is supposed to be.

Heading north from the landing point of the dried brook is a “countryside” where “you are walking through some green countryside, but don’t seem to be getting anywhere.” Dropping an item (like the SWORD) causes it to “disappear from view” but from mucking about I decided every direction except back south to the dried brook simply loops the player. I became highly suspicious:

>CAST DISPEL ILLUSION
As the illusion fades you find that… You are in a large well lit cavern. The roof soars away so as to seem almost as high as the sky. You are near the west wall of the cavern and can see an exit carved into the very rock. To the south you can make out the small brook you crossed earlier. A sword which is quite rusty but in a useable condition.

(The sword is the item that was dropped earlier, which had previously disappeared.)

This has the side effect that I likely don’t need to keep hunting for possible illusions elsewhere, although it may be that this entire route is wrong and the illusion should be ignored in favor of getting through the grate somehow.

Removing the illusion allows going west, whereupon the player is trapped and can’t even go back east.

You are in a lit chamber about twenty feet square. The dust is very thick on the floor. The chamber is partitioned-off half way across with a transparent crystal wall. Behind the wall you can see several chairs, all but one of them has a skeleton sitting in it. A sign above the skeletons reads ‘TROPHY ROOM’. On the north side there is a closed door and beside it, at about waist height, there is a small slot. There is an inscription on the door which reads as follows:- AUTHORIZED PERSONNEL ONLY.

However, the gold card can be put in the slot:

>PUT CARD IN SLOT
From deep within the walls you hear a whirring sound and a voice says ‘That will do nicely’ and at the same time a door slides open, the gold card is drawn into the slot and disappears.

>N
You are in a hall orientated north to south. It is about sixty feet long by some twenty feet wide. On either side of the hall is a row of doric columns, carved from solid marble. These support a high arched ceiling. The south end of the hall leads nowhere but the other looks to open out into a large chamber. The walls are decorated with countless heraldic shields, depicting the magnificent lineage of the former owners of this place.

This jumps to an area on the meta-map I called Throne/Kitchen…

…but let’s wait on visiting there and go an entirely different route, levitating up the tower. I’ve already shown off the troll at the very bottom. I still haven’t gotten anywhere with that route, so let’s step out of the tower into a series of passages.

There’s not anything to see here — it’s just a 4 by 3 grid — and if this was Infocom I’d be highly suspicious of some geographical-placement puzzle afoot, chasing or evading some creature. As things currently stand the only extra item of interest is a statue.

You are at a junction of an east-west passage with a north-south one. At the centre of the junction a large stone statue stands on a pedestal, the statue is facing the west.

>GET ALL
pedestal : You can’t take a pedestal.
statue : You can’t take a statue.

As I mentioned in my last post, the GET ALL trick is extremely handy for parsing what’s useful here; I might normally have just tried to examine the statue but not the pedestal, missing a treasure in the process.

>EXAMINE PEDESTAL
You notice that there is a slight gap between the heel of one of the statues legs and the pedestal, in this gap a small gold necklace has been concealed.

The gold necklace, according to the spell, is not magic, so likely not used in a puzzle otherwise.

The west-facing statue is highly suggestive that we might be turning the statue around (like Hollywood Hijinx or Whembly Castle), but attempting to do so just gets a joke from the parser:

>EXAMINE STATUE
The statue stands on a low pedestal in the middle of the junction, the statue faces west and has a somewhat expectant look upon its face. One of its arms also points in this direction, as if directing someone.

>TURN STATUE
Hmm, zo zis is very interesting, do you get zese urges very often hmm!

So keep an eye on that I guess? Actually going to the west leads to a room with many colored tiles…

You are in a room which is wider at the east end than at the west end, its length is greater than its width even at its widest point. Strangely there is a powerful draught blowing from this end of the room towards the smaller end, it is probably something to do with the rooms shape. The floor is covered in gaily coloured tiles; red, green blue and yellow ones. The walls are coloured to match and the whole makes your eyes fairly boggle.

…where just trying to walk across is failure.

You cross the floor not caring which you tread on, and stepping on a tile of each colour at least once. You suddenly realise that you are back at the position you started from, although the transition back to the wide end of the room came unnoticed by you.

You can instead WALK ON RED TILES (or YELLOW, BLUE, or GREEN) in order to get to a room. There’s one for each color. The red tiles lead to an armory with a rune sword, the yellow tiles lead to a gallery with a painting, the blue tiles lead to an empty room, and the green tiles lead to a “gadget room”.

You are in a small rectangular room, it is quite unremarkable having no special features at all, even the exit to the east is plain. In the centre of the room is a large stone casket the top of which has been forced open and fallen to the floor where it has shattered. The stone casket contains:- user manual; emerald rod.

The manual is enigmatic:

This is not so much a manual more a diatribe on the brilliance of the inventor of a device which enables one to transport oneself virtually anywhere. This device is apparently box-shaped with a selection of dials and buttons on its upper surface. Reading between the lines it seems there was at least one prototype which was limited in its transport abilities using only a series of buttons for control.

So that’s fun to look forward to! (I also don’t know what the emerald rod does yet either.)

Hopping back to the passages, going east leads to the Throne / Kitchen area, the same area reachable via using the gold card.

The throne has another secret item (a green gem). To the east there’s another elevator, this time one that goes up and lands the player in the fungus forest. Going up there’s an odd pair of lavoratories where there’s a snake that sticks its head out; the player can attack it with a sword and make it disappear, leaving them free to grab a sapphire rod.

Heading down leads to a kitchen instead.

You are in what appears to be the old kitchen. There is a flight of stone stairs leading up and doorways in the east and west walls. In the northwest corner a spring enters the kitchen and pours into a large granite basin. The water level in the basin is kept constant by a drain hidden from view.

>E
You are in what was the kitchen’s grain store, all that is left is a pile of rotted cereals. The exit is to the north. There is a giant rat here gorging itself on the grain.

I have not managed to do anything with the rat yet; there’s a plain sack just lying about heading the other direction.

From the throne room you can also head straight north (passing by a torch on the way which can be picked up) and find a garden.

Resolving the slightly maze-like aspect, there’s a compost heap to the west (haven’t found a use yet) and a whistle to the east. To the far north there’s a fountain with deadly fish.

You are in a part of the formal Royal Rose gardens. Nearby you can hear the tinkle of water from a fountain.

>N
There is a lovely carved stone fountain here, it is quite a rude design. The jet of water is so large it could easily support a small object if placed exactly right. The pool at the base of the fountain has many gold coins that have been tossed into it. There are what appear to be goldfish swimming about in it.

>EXAMINE GOLDFISH
On a closer examination the goldfish are in fact piranha.

(I have not found anything that properly goes onto the jet of water yet.)

Finally in the middle there’s a tree that has some deadly goo. Or if you hang around it is deadly. Or climb the tree it is deadly.

You are at the centre of the Royal Gardens, there is a tree here in full bloom, the blooms are pink. The perfume from the blooms is very heady. The base of the tree is circled by some kind of goo, within this goo there appear to be many jewels.

Heading back to the throne area, there’s a different exit down that leads to some “cells”.

Some have various things scratched in them (see the map) and there’s also some magazines where you can play Spot the Typo.

You are in a room with three exits. There is an extremely unwholesome smell here. The walls seem to have many deep and long scratches in them. There is a large pile of discarded magazines here.

>GET ALL
pile of magazines : Taken.

>READ MAGAZINES
The pile of magazines contains the following – Torturers Weekly, 101 Ways to Torture an Elf, Inflicting Pain Monthly, Bone Choppers Annual, Computnig Toady and Torture for Fun and Profit.

I’m sure something elaborate might happen here (maybe after we “ring for service”?) but it’s a pretty empty area so far. Heading down even further goes to a cavern with a stone dragon.

You are at the north end of a large and apparently very old cavern. A narrow tunnel leads away to the north. High overhead a forest of stalactites, some of them huge. To the south you can see a large and unusually shaped rock formation.

>S
You are at the south end of a large cavern. To the south the cavern narrows down to a small passage. Crouching and facing the narrow passage is a large rock formation which looks exactly like a dragon.

You can climb in the dragon and find some buttons and levers and I’m sure the controls are just lovely, but I hit this point right at the end of my last session and I knew my post was already going to get rather long, so I decided it was a good point to stop. Still, let me show what happens if you try to just ignore the dragon:

As you approach the narrow passage a huge gout of flame shoots from the Dragon’s mouth incinerating you. From your sitting position you can see through a glass screen into a room that looks strangely familiar. On either side of you are further skeletons, they have a somewhat glum look on their skulls just as you do. You are dead and have become yet another trophy for the long departed owners of this place.

You incidentally still are playing from here except you are now in the skeleton room, but dead. I do wonder if this has an Acheton-like scenario where dying is required, but it may just be meant here as a bit of worldbuilding as we fall victim to the long departed owners.

Despite the conglomeration of events feeling randomly put together, I still feel like there’s some coherence; not quite the full lore of Zork, but at least enough of a consistent mood I started to feel like I was in a “real environment” rather than just a series of puzzles. I have yet to try seriously solving anything though, so who knows what wonders / terrors / bad comma splices will eventually unfold.

Monday, 13. January 2025

top expert

let’s make IF S3E1: relations revisited

With “let’s WRITE IF” concluded, what’s next? spring thing, here we come. As I’ve mentioned here and elsewhere, I have two small games planned for the 2025 Spring. One is Portrait with Wolf. I’ve written a lot about that in the past few months. As of right now, that project is complete from a Top […]

With “let’s WRITE IF” concluded, what’s next?

spring thing, here we come.

As I’ve mentioned here and elsewhere, I have two small games planned for the 2025 Spring. One is Portrait with Wolf. I’ve written a lot about that in the past few months. As of right now, that project is complete from a Top Expert point of view. I’ve shared code and project templates for readers to make games of their own. You can find them on my itch.io page:

https://kamin3ko.itch.io/lyric-storytelling-widget

https://kamin3ko.itch.io/linear-storytelling-widget

I’m excited to share the completed game with you! I hope you’ll check it out when it releases.

The other game has also been written about extensively here at Top Expert: Marbles, D, and the Sinister Spotlight. It’s been a while, though, so I thought we could back up and review some of its key elements. Like Portrait with Wolf, it uses a lot of variable text, though the implementation details are quite different. My specific goal when starting this project was to learn about relations and scenes. Both always seemed a little mysterious to me, as I don’t often see them discussed online. Relations, in particular, feel a bit intimidating. We may as well start there.

why do I want to relate.

I think the biggest hump to get over, when it comes to relations, is to understand why one would bother with them. At least, that was my initial struggle. Let’s just get this out of the way:

A lot of what relations can do could be accomplished with variables, properties, kinds, and so forth.

By the time we’re ready to investigate relations, most of us will be very comfortable using these other methods:

now the perch status of the parrot is true.
now nest of the parrot is the tropical abode.
now the tropical abode is occupied.

And so forth. If we’re scanning through the chapter on relations in the documentation, it might be natural for us to wonder what we’ll get out of them.

In my assessment, we get a couple of things. The first is a simple and readable way to associate things, texts, or numbers without creating one-off variables and so forth. It makes for consistency, portability (and shareability), and ease of use. Besides: they really aren’t so strange. In fact, we have likely been using them from the very start. These sentences and phrases make sense, don’t they?

now the player is in the secret lab;
if the blue blazer is worn by the player:
the sleeve is part of the jacket.
the ancient elvish sword of great antiquity is carried by the adventurer;

These constructions, called “sentences” in Inform, are all made possible by relations. Several relations are defined in Inform’s Standard Rules, and many beginning authors will have used one or more. So, as you can see, they allow us to characterize things in the game world simply and succinctly. How would we make our own?

making our own relation.

We can think about a new relation in terms of a sentence we would want to write. Consider birds and nests. Maybe we have a game about getting birds to their homes. To start, let’s keep things simple. Getting any bird to any nest is good enough. To get the most out of things, let’s write the sentence two ways. To start, let’s use the nest as the subject.

housing relates one thing (called the roost) to one thing.

OK. The start of our declaration, “housing”, will be the name of our relation: the housing relation. I can give a nickname to the first noun (here, the “roost”). This allows me to use phrases like “roost of the blue jay” in my code. Note that this is a one-to-one, exclusive relationship. A thing can only have one roost, and vice versa.

Next, we need to define the verb(s) we can use in our sentences.

the verb to house implies the housing relation.

This is straightforward, and gives us everything we need to start using the relation in code.

now the nest houses the blue jay.

Until otherwise directed, Inform will remember where the blue jay resides. We can also say things like this, using the “roost” that we defined above.

say "The blue jay currently occupies [the roost of the blue jay]."

Inform is pretty smart about recognizing the verbs we use. However, if we need to define a verb ourselves, we use this format:

the verb to house (she houses, they house, she housed, it is housed) implies the housing relation.

To make the most of things, it is best to make what is called a “reversed” relation. This will allow us to write more sentences using the same concepts.

the verb to perch in (he perches in, they perch in, he perched in, it is perched in) means the reversed housing relation.

What’s different? The nouns have switched places. This enables sentences like

now the blue jay perches in the nest.

It may not be clear why this matters. Readability is one reason. Ease of construction is another. If we try having relations that are not one to one (think about player inventory, where many items can be carried by one person), we may find that some sentences make more sense than others.

At our basic, beginner’s level, it might be as simple as finding the way that works best for us.

experiments.

OK, let’s further the “putting birds in nests” idea. We start, as always, by declaring a room. Let’s go further by putting birds and nests there.

lab is a room.
a bird is a kind of animal.
a nest is a kind of thing.
the tropical abode is a nest in lab. 
the common residence is a nest in lab.
the ground rest is a nest in lab.
an ostrich is a bird in lab.
a parrot is a bird in lab.
a blue jay is a bird in lab.

OK. We have two kinds and some things to play with. Here’s our relations once again:

housing relates one thing (called the roost) to another.
the verb to house (he houses, they house, he housed, it is housed) implies the housing relation.
the verb to perch in (he perches in, they perch in, he perched in, it is perched in) means the reversed housing relation.

Let’s make a custom action where we send birds to nests.

sending it to is an action applying to two things.
understand "send [something] to/-- [something]" as sending it to.

Now, we could send anything to anything, but this relation is only intended for birds and nests. I have options. I could make an instead (less preferred) rule or a check rule (usually recommended). Unless you have something special in mind, I recommend “check” (see Wade’s comment below). A typical “check” would look like this.

check sending something to something:
	unless the noun is a bird and the second noun is a nest:
		say "Birds must be sent to nests; no other combination will work." instead.

However, these days I’ve been trying to use the whole action processing turn. I’ll check things during “carry out” for that reason. This will leave things open for me to use “after” and “report” rules if I want.

carry out sending something to something:
	unless the noun is a bird and the second noun is a nest:
		say "Birds must be sent to nests; no other combination will work.";
	otherwise:
		now the noun perches in the second noun;
		say "Great. Now the [noun] perches in the [roost of the noun]."

Just as we’ve seen with wearing and other common relations, “the noun perches in the second noun” is enough to associate the two things. We can immediately begin referring to them in phrases like “roost of the noun.”

If we want to change the way a nest is listed (room descriptions or inventory), we can tweak that:

after printing the name of a bird (called the avian) while listing contents:
	if the avian perches in something, say " (perched in [the roost of the avian])";

Here’s another action processing usage:

check taking when the noun perches in something:
	say "You don't want to disturb [the noun]'s rest." instead.

As we’ve seen, these relationships can vary text and be used as conditions for action processing rules. Using simple, straightforward sentences to manage relations is a powerful tactic that also makes it easy to standardize and share code.

what’s missing.

Because our relation associates “one thing to one thing,” we have declared that the relationship is exclusive. A bird cannot have more than one nest, and a nest cannot have more than one bird. When we declare this relationship (now the noun perches in the second noun), we are simultaneously negating any other bird-nest that either previously had. If the blue jay is perched in a new nest, the old nest will become empty, and any bird already in the new nest will be evicted.

To work this into a game, we would likely want to report the updated relationship, just like Inform prints “Taken” when the player takes something.

Inventory illustrates why we might want relations that are not one-to-one. A person can carry multiple things, but only one person can carry a given thing. We could associate multiple things with multiple things: perhaps more than one person has multiple job responsibilities, some shared, some unique.

But these permutations can seem complex at first, so we’ll be focusing on one-to-one relationships in future posts.

next.

more relations.

Today’s Code

I update multiple social media accounts when I release new posts, but I’m most active on BlueSky. Get updates on all my stuff (game dev, Top Expert, and Gold Machine) there.

https://bsky.app/profile/bitingcat.bsky.social

My Discord ID is probably “golmac”.

Categories: , ,

2 responses to “let’s make IF S3E1: relations revisited”

  1. Wade Avatar

    I could probably use relations more than I do. This was a helpful reminder that most of Inform’s built-in stuff already is relations.

    I have one suggestion for this episode’s demo, which is that it’s probably preferable to check for the nest/bird combo at the check stage.

    i.e.

    check sending something to something: unless the noun is a bird and the second noun is a nest: instead say “Birds must be sent to nests; no other combination will work.”;

    Once the action reaches the ‘carry out’ stage, it’s considered to have succeeded in Inform’s techincal conception of things. Therefore if you shortly after used a test like ‘if rule succeeded’ after someone tried to put a non-bird in a nest, Inform would believe that the action had actually succeeded. Also, any other carry out rules for this action will still fire, if you add them later.

    Check’s the usual place to block the normal operation of an action if there’s a reason to block it. And ‘insteading’ out at the check stage will result in the action being seen to have failed.

    Of course, the great thing about building new actions from scratch is that their rulebooks start empty. It’s easy to manage almost everything about them by just reordering your rules in the source if you want. But in any pre-existing action, I would not parry it at the carry out stage except in wild circumstances.

    Like

  2. Drew Cook Avatar

    Hi Wade! So, perhaps I am underselling things when I say “usually recommended” regarding a “check” rule. And I think maybe I’ll show it both ways. check and carry out. But I like to avoid “instead”/failure for custom actions because I often use “after” or “report” messages for them.

    I added the “check” with a little blurb. Thanks for commenting!

    Like

Leave a comment


Choice of Games LLC

Coming Thursday, “Hunter: The Reckoning — The Beast of Glenkildove”

We’re excited to announce that Hunter: The Reckoning — The Beast of Glenkildove is releasing this Thursday, January 16th! You can play the first three chapters for free today, and check out the author interview as well! And don’t forget to wishlist it on Steam! The more wishlists we get, the better the game will do on Steam on release day.

We’re excited to announce that Hunter: The Reckoning — The Beast of Glenkildove is releasing this Thursday, January 16th!

You can play the first three chapters for free today, and check out the author interview as well!

And don’t forget to wishlist it on Steam! The more wishlists we get, the better the game will do on Steam on release day.

Sunday, 12. January 2025

Zarf Updates

NarraScope is open for talk submissions

Now that we're past the holidays, here's your reminder that NarraScope is accepting talk proposals. (It's been open for a few weeks, but you know, holidays.) The deadline is February 7th. This year we also have a track for academic papers. We're ...

Now that we're past the holidays, here's your reminder that NarraScope is accepting talk proposals. (It's been open for a few weeks, but you know, holidays.) The deadline is February 7th.

This year we also have a track for academic papers. We're trying to do more with Drexel, our host university this year, so this is a bit of crossover. The paper submission form isn't open yet, so keep an eye on that if you're of the academic persuasion.

Oh, there's also a brand-new NarraScope account on Bluesky. So brand-new that we haven't said anything yet, but that will change soon... And all the other contact lines are still open, of course.

See you in June in Philadelphia, I very much hope.

Saturday, 11. January 2025

Renga in Blue

Cornucopia (1982)

The first moment I was absolutely gleeful in Cornucopia was when I opened a spell-book in the starting area. >OPEN BOOK Opening the spell book reveals :- detect magic spell; dispel magic spell; purify water spell; dispel illusion spell; detect illusion spell; levitate self spell; detect evil spell. This is what you start with! This […]

The first moment I was absolutely gleeful in Cornucopia was when I opened a spell-book in the starting area.

>OPEN BOOK
Opening the spell book reveals :- detect magic spell; dispel magic spell; purify water spell; dispel illusion spell; detect illusion spell; levitate self spell; detect evil spell.

This is what you start with! This game is going to take a while. I have the rest of January blocked out.

I recently played Brian Cotton’s game Goblin Towers, which was his second published after Catacombs by Supersoft, and it was quite simple, to the extent it may have been written first. (Read those two posts if you would like the historical background on the Cotton games.) Cornucopia returns to a more complex world, and in fact is allegedly Cotton’s most complicated game, trying to go for a full Zork experience (or I guess Enchanter, except Enchanter wasn’t out yet when this game was released!) Remember, it was clear from Goblin Towers that Cotton was thinking of Zork, not Crowther/Woods or Scott Adams as most other writers were.

From the Classic Quests catalog, via the Museum of Computer Adventure Games.

There’s reference in Cornucopia to Goblin Towers right at the start, which makes me think it is in the same universe. Before showing off what I mean, I should mention that this game (like Catacombs) was lost until the Classic Quests version for DOS showed up; also just like Catacombs, this game was originally broken and unable to be finished. However, Cornucopia has a fix! If you want to play, use the Fixed Game link here which makes the game completable.

Having commited a heinous crime against the Gods (spitting on the steps of the temple, I think), you are summoned before them. This is an extremely rare occurrence, as most offenders are summarily executed with a lightning bolt! As you cower before the Gods, half blinded by their splendour, they reveal why they have spared you – temporarily. They have a small task for you to perform: ‘Find the Cornucopia and bring it here’ they boom.

While we have a designated collect-the-treasures spot, just like Cotton’s other two games, there’s a secondary objective now of getting a specific Cornucopia for the Gods. I like the “spitting on the steps of the temple, I think” — it’s as if our main character has committed so many crimes against the Gods the narrator isn’t sure which one is considered the heinous one. Either that, or the narrator is like a storyteller making things up on the fly that never entirely filled in that detail.

You are outside a small cottage, a doorway leads into it although there doesn’t seem to be a door. The cottage is surrounded by a forest made up of huge and grotesque growths of fungi, a damp dismal mist shrouds the ground making everything quite indistinct. The outlines of a path leading south can just be made out.

Just like Goblin Towers, we start outside a cottage, and from the cottage there is a forest and a tower. Assuming it is the same forest, it is now a different maze and overgrown with fungus (see how Adventure Quest has the “degenerate forest” following the normal one of the first game).

Going in the cottage:

You are inside a small cottage, little better than a hovel really, the only exit is to the north. There is a huge wooden table in the middle of the room, it appears to be extremely old and is obviously well used. Sitting on the wooden table is :- spell book; rusty sword; battery lamp; small note; green bottle.

A couple subtleties here with how items work: you can examine items, but they won’t always give more descriptions. However, the “lying on the ground” descriptions are a little more complete than the one given in the list here.

A battered battery lamp is here with what appears to be an everlasting battery in it.

The sword has both an ground description (“quite rusty but in a usable condition”) and an EXAMINE description.

This sword is in very poor condition and has obviously been used by a hacker, by the state of the blade, it is rusty and pitted. A sword which is a disgrace to its owner.

The other important detail is that not only does GET ALL work, but it seems to give away every referrable item in the room. That makes it easy to tell what should be zeroed in on in each description (some games try to prevent this, but given the allegedly difficulty here I’ll take any advantage I can get).

>GET ALL
wooden table : The wooden table is beyond your strength to lift.
spell book : Taken.
rusty sword : Taken.
battery lamp : Taken.
small note : Taken.
green bottle : Taken.

The table can incidentally both be looked under and broken, so there’s a fair amount of physical simulation going on. For the last items: The green bottle, cryptically, contains nothing. The small note reads “leave treasure here”. The spellbook has a description of the outside, and must be opened to be read:

>READ BOOK
The spell book is large with thick padded covers. The covers have runic designs around the edges and particularly ornate bits in the corners, the whole is decorated with small gemstones and gold leaf. It must be worth a fortune.

It contains, as I already showed off, spells; here’s the details on each one:

detect magic spell (CAST DETECT MAGIC ON OBJECT, tell you if an item is magic)
dispel magic spell (CAST DISPEL MAGIC ON OBJECT, remove magical abilities of object)
purify water spell (CAST PURIFY WATER, will cleanse nearest body of water)
dispel illusion spell (CAST DISPEL ILLUSION, will remove any illusion close by)
detect illusion spell (CAST DETECT ILLUSION, will inform the player of any illusions close by)
levitate self spell (CAST LEVITATE SELF, rise vertically)
detect evil spell (CAST DETECT EVIL ON OBJECT, determine if an object is “based in evil”)

Now, the big catch here is that the spells disappear when used, at least sometimes. I’m not clear the conditions, for example, using CAST LEVITATE SELF when in the starting hut:

You rise into the air and hover around for a while before slowly dropping back down again, quite good fun in fact.

The spell is now missing from the spellbook. However, there’s a part I’ll show off shortly where levitate self helps solve a puzzle, and the spell remains! Maybe there’s a “if it is useful, you hang on to it” rule? It makes the DETECT ILLUSION spell a bit dicier to use (since the whole point is a binary yes or no, and if you already know yes why not go straight to dispel?) However, I’m early enough in the game I might be misunderstanding what’s going on; it may also be possible to find a way to replenish spells or even add new spells.

In the forest there are two ways to exit (unless some random maze room has an illusion that needs dispelling or whatnot — I haven’t gone through and tested it everywhere yet since saving and loading will be needed). The first is a large fungus just to the south of the cottage:

You find yourself in a strange forest of giant fungus growths, they create an eerie feeling. No particular direction seems to suggest itself to you here. There is a particularly huge specimen here, with what appears a dark opening in it.

>ENTER FUNGUS
As you enter the fungus you get a weird sinking feeling You are in a circular room, above and below you it is dark. You have a weird feeling of falling.

The inside is described as an “Elevator down” in the short room description, and there’s a “sensation of falling” until arriving at a countryside.

>WAIT
Time passes……
You are on the edge of a small brook, which has long since dried up. A path follows along the course of the brook to the east and west. Across on the other side of the brook you can see lush rolling countryside.

>W
You are at what was once the source of the brook but is now just a tangle of broken boulders. The only way out from here is to the east. There is a small slim oblong piece of card here.

>EXAMINE CARD
The card is solid gold with an ebony edging and writing on one side in a bold gothic script which reads ‘Admit one only’. On the other side in almost microscopic letters it says ‘that will do nicely’, the meaning of which seems quite obscure.

There’s a wide open space I have yet to fully explore, so I’ll get back to y’all soon on that. The same is true for the other route out, which involves finding the tower in the forest. You can’t climb due to a lack of “handholds”, but the levitate spell works.

>CAST LEVITATE SELF
You rise up and up and up, the top of the tower seemingly getting no closer. The power of the spell seems to be wavering but still you are rising and just as the spell runs out of steam you find yourself… You are in a small room at the top of a tall tower. In the centre of the room, which is circular, there is a staircase leading down into darkness. The room is lit with the light that comes through a single window. Through this window you have a somewhat dismal view over a large area which is covered with huge fungus growths. This view is only broken by the sight of a somewhat delapidated cottage. Against the wall opposite the window is a large wardrobe, this was apparently at one time used as some sort of a bedroom.

The wardrobe has a Fabergé egg (our first treasure).

Again, the map spreads out quite extensively, and just a clipping to show what I’m dealing with:

I’ll get into the details next time, although let me draw attention to the troll at the bottom of the stair (if you just keep going down the stair after levitating into the tower you’ll find him).

You are at the bottom of spiral staircase which has opened out onto a small landing. It is very dark here and with the state it is in, it has been used as a toilet by some large animal, it smells abominable. To the east is a low tunnel.

>E
You are in part of a trolls lair, all manner of stuff is strewn around, including parts of its previous meals. To the west is a low tunnel and to the south what looks to be a tiny cavern. A huge and hairy troll stands here blocking your way.

>KILL TROLL WITH SWORD
The troll being a rather dull creature just grabs the rusty sword from you and without further ado eats it.

This reminds me quite a bit of the Zork I troll that eats things that you toss at him (although you can wield a weapon without it, too, being eaten). My guess is I need to find some kind of poison or sleep drug and it will do its work.

For now, quite a bit of mapping to do. This feels like the most “dense” game I’ve played for All the Adventures since Dungeon Quest.

Friday, 10. January 2025

Renga in Blue

Arsène Larcin: The Banality of Tomorrow

(My previous posts on the game are needed to understand this one.) I managed to finish the game, with some help from Rob digging through source code in the comments. I was in fact very close to the end, but it required a leap of absurdity to get through. Specifically, on one of my runs […]

(My previous posts on the game are needed to understand this one.)

I managed to finish the game, with some help from Rob digging through source code in the comments. I was in fact very close to the end, but it required a leap of absurdity to get through.

Back side of the packaging, from videogamegeek.

Specifically, on one of my runs I had found a POMME (apple). It was nowhere remarkable or specific, it was just another item in a room.

If you have a load of inventory you try to fence with the apple contained within, it gets no offer.

This is meant to be a pun. The apple is in fact an Apple, that is, an Apple Computer, the secret computer we are looking for! I was threw off by both the fact it was not very secret, but also the level of removal from the language; I think if I was holding an APPLE the pun might of occurred to me, but since I was mentally translating it, I only visualized it as a real apple, maybe for use in some specific event later where someone can be bribed with food.

Now, the problem is — as the instructions specify — we are supposed to then make a getaway with a vehicle. The VOLER (steal) verb comes into play again. Rob wasn’t sure where, but he knew that it was possible to steal some keys. I wasn’t seeing any scenes at either the bar or the restaurant until I realized it was possible to ASSEOIR (sit). You get offered a menu and then can order, and then have an encounter where you can try to steal.

You are told you need to order a dish so as to not raise suspicion.

In the scene above, we’ve been caught, and the manager searches Larcin and confiscates all the stolen items.

There’s a similar scene at the bar; I wasn’t able to steal anything resembling a car key in either one.

What actually worked was stealing at the register! Maybe there’s valet service such that the car keys get stored there?

You fortunately don’t need to say specifically you’re going for TROUSSEAU (keychain) but this was still quite random as the VOLER verb usually gives a “don’t understand” message.

I did have to go through the process twice. The first time through, I took the keys down to the parking lot and went trying to unlock doors none of them would open. Trying to steal again at the register led to failure, but if I ended the burglarizing session, and then went back to the register to try again on a fresh day, I was able to get another keychain. The second one worked.

Thus ends a very odd game that straddled between feeling like a strategy game and an adventure game. I would say it counts as an adventure: the chain is a puzzle which requires the magnet to solve, the moment-to-moment action felt more like roleplaying than the “big picture” style gaming that strategy normally involves, and realizing the odd pun with the apple is not something that’d be part of any strategy game. It’s still essentially a very minimal adventure game with strategy game dressing.

I’d like to end with another source that Rob found, of an interview done with the Louis-Philippe Hébert and the young authors of Logidisque’s first game (Têtards, or tadpoles). Roughly 1:19 is when Hébert starts speaking.

I’ll quote part:

Il ya un choc culturel parce que on découvre tout à coup un nouveau médium. Un nouveau médium donc une nouvelle possibilité, de créer de nouveaux objets … ça nous pousse que dans nos dans nos traditions, parce que évidemment la plupart d’entre nous avons une formation littéraire ou cinématographique …

There’s a cultural shock because we’ve suddenly discovered a new medium. A new medium, and therefore a new possibility, to create new objects … that pushes us in our traditions, because obviously most of us have a literary or cinematographic background …

We’ve only had a few people for All the Adventures (like Robert Lafore) who styled themselves in this period as “writers” or “artists”; Hébert here is recognizing that the leap over mediums is difficult to make, and he claims that young people in particular have a certain “banalité de demain”, that is, banality of tomorrow, where they have an easier time dealing with the new medium that seems to be “the future” as they were born into it.

Coming up: a large and very difficult puzzle-fest with an elaborate magic system. Back to roots!


Interactive Fiction – The Digital Antiquarian

Railroad Tycoon II

Like a lot of boys, I grew up loving trains. And like a lot of men, I retain my fascination for them today. Once upon a time, I could happily spend hours and hours with my Lionel locomotives. They were, back in that era at least, satisfyingly heavy, made out of the same good solid […]

Like a lot of boys, I grew up loving trains. And like a lot of men, I retain my fascination for them today.

Once upon a time, I could happily spend hours and hours with my Lionel locomotives. They were, back in that era at least, satisfyingly heavy, made out of the same good solid iron as the full-sized models they imitated; they even smoked the same as the real things when you dropped a bit of “smoke fluid” down the stack. I wiled away many an afternoon driving my trains around and around in circles, learning through trial and error just how fast I could take those corners before disaster struck. But for better or for worse, after I was given a Commodore 64 for Christmas in 1984, model railroading fell by the wayside pretty quickly. (How’s that for a parable of the modern homo digitalis?)

Nevertheless, and much to the chagrin of my long-suffering wife, I’m always chomping at the bit to visit any train museum that happens to be within range, whether I’m in Dallas or Nuremberg, Odense or London. I look upon any opportunity to actually ride the rails even more favorably; I love me a vintage tourist railroad, no matter how cheesy. Heck, I still get a little thrill from boarding a train that serves merely as everyday public transportation, something that’s a lot more common here in Europe than it is back in the States. Speaking of which: back in the 1990s, when I was still living in my country of birth, I took a break from my usual backpacker holidays to foreign climes in order to ride the trains of the perpetually underfunded underdog Amtrak all the way from one side of the United States to the other. In marked contrast to most people who have dared such a journey, I’d do it again in a heartbeat. Ditto the trip I once took from Vladivostok to Moscow on the Trans-Siberian Railroad (if and when Russia comes to its senses and stops being a geopolitical Doctor Evil, of course).

Just what is the appeal of trains? I could prattle on here about how they’re a far more environmentally friendly way to travel than planes or cars, but that’s not what causes them to tickle my romantic fancies. The range of feelings that trains evoke in me and in countless others is as rich as it is diverse. Small wonder that they’ve been such a staple of folk and pop music practically since Robert Stephenson’s Rocket first puffed down a track in 1829. The rock and roll of a train became the rhythm of twentieth-century music. A train can carry you away to a better life, or it can carry your baby away to a life without you. A train can be as life-affirming as a heartbeat or as mysterious as a nightmare.

But trains are more than just a set of all-purpose metaphors. They’re also feats of engineering that continue to entrance the little boy in me. The biggest locomotives from the Age of Steam are nothing short of awe-inspiring in their sheer size, artifacts of a lost epoch when high technology meant building on an ever more gigantic rather than an ever more miniaturized scale, when a single piston could be several times the size of a person and a single wheel taller than a willow tree. The newest railroading wonders may not have quite the same nostalgic allure as their coal-fired ancestors, but they too live at the ragged edge of technological feasibility, traveling at more than 300 miles per hour on the magnetic cushions that serve them in lieu of wheels.

Then, too, the historian in me marvels at trains as the wellspring of the modern world. As the first form of fast, efficient mechanized transportation, they produced first-order and knock-on effects that touched every aspect of people’s lives. The very concept of the nation-state as we know it today is largely a tribute to railroads, those steel ties that bind a multiplicity of localities together in a web of travel and trade. The clocks that regulate so much of our lives owe their existence to the emergence of “railroad time,” to which everyone had to learn to synchronize their activities in place of the older, less precise practice of reckoning time by the position of the Sun in the sky. Wide-angle corporate capitalism as we know it today was invented by the great railroad trusts and the oligarchy of so-called “robber barons” who ran them, ruthlessly enough to make Jeff Bezos blush.

Indeed, the facts and figures and lore and legends of railroading are so bottomless that some people get obsessed with the subject almost to the exclusion of all else. Personally, I missed my chance at becoming a hardcore trainspotter as soon as I got my hands on that childhood Commodore 64. That said, the old flame still burns brightly enough that any computer game which focuses on trains is likely to get a little bit of extra attention from me.

I don’t want the game to be too dry or technical; it has to bring the culture of the rails to life, has to make me feel something. Do that, and chances are I’ll be all over your game. Sid Meier’s Railroad Tycoon is one game that did it, marrying an aesthetic presentation that is executed as perfectly as was possible with the computers of 1990 — the theme song that plays over the opening credits is one of the few pieces of game music I occasionally find myself humming at random while I’m doing something else — with a rich and compelling layer of strategic possibility; for my money, it’s rivaled only by Pirates! for the title of Meier’s very best game, beating out even the storied Civilization. I like Railroad Tycoon’s spiritual successor, Chris Sawyer’s Transport Tycoon, a lot as well, even though its focus on trains is somewhat diluted by all the trucks, planes, and ships it throws in. And on a very different note, Jordan Mechner’s adventure game The Last Express uses the last voyage of the Oriental Express from Paris to Constantinople as a metaphor for the passing away of the entire Belle Époque in Europe during the fateful summer of 1914; I find playing it to be an experience of almost unbearable poignancy, filling me with nostalgia for a lost past of dinner jackets, evening gowns, and refined drawing-room conversation that I never actually knew.

Needless to say, then, I wanted to like Railroad Tycoon II even more than I do the typical game that I play for these histories. That always produces a certain trepidation of its own. I’m therefore thrilled to be able to say that — spoiler alert! — it lived up to the high expectations I had for it, enough so as to become the fourth train game to find a place in my intensely idiosyncratic Hall of Fame.


The story of Railroad Tycoon II begins with a young Missourian named Phil Steinmeyer, who in 1994 sold to the Los Angeles-based studio and publisher New World Computing a light wargame called Iron Cross that he had designed and programmed all by himself during evenings and weekends. In some ways, Iron Cross was quite forward-looking, doing a lot of what SSI’s Panzer General did to major commercial success that same year: it personalized the experience of war, by having you create a character, CRPG-style, and lead him through a dozen scenarios, with the possibility of promotion or demotion looming at the end of each of them. Sadly, though, it didn’t fully live up to its concept, failing to find the sweet spot between simplicity and interesting choices that Panzer General had nailed, coming off more like a prototype than a finished product. It was not an injustice that Panzer General revitalized its publisher and spawned a long-running series of similar games, while Iron Cross came and went from store shelves in a scant few months.

Still, it was good enough to become Steinmeyer’s entrée to the games industry. Impressed by his enthusiasm, work ethic, and programming talent, New World’s founder Jon Van Canegham asked him to stick around as a regular contractor, working remotely — a rarity at that time — from his Midwestern home. Steinmeyer’s next project for New World was another strategy game with CRPG flavorings, one whose legacy would prove far more enduring than that of Iron Cross: he became the main programmer on Van Canegham’s own Heroes of Might and Magic, which was released in late 1995 to strong sales. He moved even further up in the pecking order with the sequel. On Heroes of Might and Magic II, which was released barely one year after its predecessor, he was credited not only as the lead programmer but as the co-designer, alongside Van Canegham.

Steinmeyer and New World parted ways just after Heroes II was finished, for reasons that are a little obscure. In a 2000 magazine column, Steinmeyer claimed that “my publisher [i.e., New World] was experiencing financial troubles, and abruptly cut relations with all third-party developers, including me.” I’m actually not aware of any serious financial problems at the company around this time, although it had just been acquired by 3DO, which may have led to a change in policy regarding contractors. In later years, there was significant bad blood between Van Canegham and Steinmeyer. I don’t know whether it stemmed from the circumstances of the latter’s departure from New World or from subsequent events. (See my postscript below for more on these matters.)

At any rate, Steinmeyer decided to turn PopTop Software, the little one-man company under whose auspices he had been developing games for New World, into a real studio with real employees and a real office, located in St. Louis, Missouri. For the re-imagined PopTop’s first project, he wanted to create another colorful, accessible strategy game, yet one very different from Heroes of Might and Magic in theme and mechanics. He had decided that, with the capabilities of computers having come such a long way since 1990, the time was ripe to build upon the template of legendary designer Sid Meier’s Railroad Tycoon, one of his favorite games of all time. He hired a staff of half a dozen or so others — mostly industry neophytes who were willing to work cheap — to chase the dream alongside him.

His timing was propitious: MicroProse Software, the publisher of the original Railroad Tycoon, wasn’t doing very well and was desperate to raise cash. Having moved on to Transport Tycoon, they saw little commercial potential in returning to a railroad-only strategy game. In fact, they had already rejected Bruce Shelley, Sid Meier’s co-designer on Railroad Tycoon, when he came to them inquiring about the possibility of a direct sequel. Steinmeyer was amazed when MicroProse answered his own initial query not by offering to publish the sequel but by offering to sell him the rights to the name outright. Steinmeyer would later call clinching that deal his most “awesome” single moment during the development of the game.

But it did leave PopTop still in need of a publisher. In early 1998, Steinmeyer signed on with an upstart consortium known as Gathering of Developers — or, to use the acronym that they positively reveled in, G.O.D.

G.O.D. could only have come to exist during the late 1990s, a heady time in gaming, when people like John Carmack and John Romero of DOOM and Quake fame were treated as rock stars by their adoring fans. Scatter-bombing rhetoric that smacked more of a political revolution than a business startup, G.O.D. trumpeted their plan to upend the traditional order in gaming and give control and money to the creatives at the studios instead of the suits at the major publishers. The full story of G.O.D., an incongruous cocktail of naked greed and misplaced idealism, will have to wait for another day. For now, suffice to say that G.O.D. never succeeded in becoming the revolutionary collective its founders wanted it to be, not least because the only people willing and able to pony up the seed capital they needed were the folks at Take Two Interactive, one of the very same traditional publishers that they so loudly professed to despise. For PopTop, however, Take Two’s involvement was ultimately all to the good, as it gave them access to a mature international distribution network of which Railroad Tycoon II would take full advantage.

Phil Steinmeyer shows off an early build of Railroad Tycoon II at the 1998 E3 trade show. PopTop’s little booth was all but blotted out and drowned out by a colossus next door devoted to Space Bunnies Must Die!, a schlocky and deafening melange of everything trendy in gaming at the time. In the end, though, Railroad Tycoon II won “Best Strategy Game” at the show and has aged like fine wine, while Space Bunnies has aged like milk.

First released in North America in November of 1998, Railroad Tycoon II was later translated into German, French, Spanish, and Portuguese for the European market, and, even more far-sightedly, into Chinese, Japanese, and Korean to cover the fast-growing consumer economies of East Asia. Combined with a Mac port, a Linux port(!), and reasonably credible ports to the Sony PlayStation and Sega Dreamcast consoles, all of this outreach delivered worldwide sales that may have exceeded 1.5 million copies.

In light of this, it’s remarkable how under-remembered and under-sung Railroad Tycoon II is today. To be sure, you can still buy a “Platinum edition” of the game at the usual digital storefronts. Yet it keeps a weirdly low profile for a title that at the turn of the millennium was the third most successful “builder”-style game ever, trailing only the perennially popular SimCity and Rollercoaster Tycoon, a game by Chris Sawyer of Transport Tycoon fame that was released five months after Railroad Tycoon II.

In this reviewer’s opinion, Railroad Tycoon II was a sparkling creative success as well as a commercial one, making it all the more deserving of remembrance. We’ve seen a fair number of train games built on similar premises in the years since 1998, but I don’t know that we’ve ever seen a comprehensively better one.


If you haven’t played a “traffic simulator” like this before, the first thing to understand about Railroad Tycoon II is that it’s an extremely abstract simulation, where each trip you see on the screen stands in for hundreds if not thousands of ones that you don’t see. In the opening scenario of the campaign, which begins at the dawn of American railroading in 1830, it will take your little engine that could more than a year to drag two wagons full of passengers from Baltimore to Washington, D.C. The real first locomotives were slow, but they weren’t that slow.

From a purely technical perspective, the most amazing thing about Railroad Tycoon II is its pseudo-3D graphics engine, which lets you rotate the camera to peer around mountains and to zoom way in or way out, depending on whether you need to fuss with the details of track and station placement or take in the big picture of your transport empire. Here we’ve zoomed out far enough to see a goodly chunk of eastern Canada in the late nineteenth century.

Surrounded by other robber barons as you are, you can’t afford to neglect the financial angle in the more complicated scenarios, where buying and selling stock cleverly can be more important than laying down the most efficient routes.

Almost every new scenario in the campaign sent me off to learn more about the real history behind it. Here I’m on the verge of rewriting history by fulfilling the quixotic imperialist dream of the British mining magnate Cecil Rhodes: that of building a single railway line that stretches across the length of Africa, from Cape Town to Cairo.

The generic, randomized newspaper messages of the first Railroad Tycoon have been partially replaced by headlines ripped from real history.

With its globalized commercial ambitions, Railroad Tycoon II is careful to steer clear of touchy politics. For example, the era of Chairman Mao’s “Great Leap Forward” for China, which killed twice as many people as the First World War and six times as many as the Holocaust and set Chinese agriculture back by two decades through a combination of malice and incompetence, is presented strictly as an engineering problem.


A comparison of Railroad Tycoon I and II provides a good education in just how much gaming changed during the eight years that separate them. The first game relies heavily on procedural generation to add variety to its handful of maps. There are only a few ways to customize your experience, and no broader framework of progression beyond the “New Game” button.

Railroad Tycoon II, on the other hand, has two 18-scenario campaigns to offer if you include its Second Century expansion pack, plus plenty more singleton hand-crafted scenarios, each with its own historical context, starting and stopping dates, and victory conditions. But if you don’t want to mess with most of that — if you just want to set up a bunch of trains and watch them run — you can do that too by playing in sandbox mode. If, by contrast, you want maximally cut-throat competition, you can play in networked multiplayer mode with some of your mates, engaging in epic business conflicts that can become, as Bob Proctor wrote in his review for Computer Gaming World, “as vicious as any Starcraft game.” In short, Railroad Tycoon II does everything it can to let you turn it into exactly the kind of train game that you most want to play. In my case, that means playing through the campaigns, which I absolutely adore.

The first campaign — the one found in the base game — is divided into thirds: six scenarios taking place in North America, six in Europe, six in the rest of the world. It gives you the sense of living through a huge swath of railroad history, even as it gradually teaches you the ins and outs of what proves to be a deceptively complex game, slowly ramping up the difficulty as it does so. Its scenarios challenge you in a wide variety of different ways, guaranteeing that, by the time you finish all of them, you’ll have engaged with if not completely mastered all of the game’s facets. Some of the scenarios are all about logistics: get a line built from City A to City B before time runs out. Some make you think about your larger role in the economy, by demanding that you adequately service a range of industries. And still others force you to engage with the nitty-gritties of the financial game, by insisting that you acquire a certain corporate or personal net worth by a certain date.

Indeed, in some of the most difficult scenarios, the efficient operation of your railroad provides no more than the seed capital for the real key to victory, your shenanigans on the stock market. If you want to win gold on every scenario — the gold, silver, and bronze victory levels are another way the game lets you set your own goals for yourself — you’ll need to learn to wheel and deal as shrewdly as Cornelius Vanderbilt and as heartlessly as Jay Gould. I recall struggling futilely for days with the thirteenth scenario, which expected me not only to connect Delhi, Calcutta, and Kabul between the years 1850 and 1880 but to be the only surviving railroad left on the Indian subcontinent at the end of that time period if I wanted the gold medal. Then one day I figured out that I could pump and then dump all of my starting company’s stock, leaving it as nothing more than a one-station rump on the map, and use my windfall to buy up a controlling interest in the most dangerous of my two rivals. After that bit of skullduggery, it was smooth sailing. Guile never felt so good.

The Second Century campaign is even more audacious and creative, if a bit shakier in its granular implementation. As the name would imply, it focuses on the later period of railroading that gets somewhat short shrift in the original campaign, beginning during the Great Depression and winding up in a surprisingly dystopic middle 21st century, when global warming and nuclear war have led to civilizational regression on a global scale and you’re now forced to work with old-time steam locomotives once again. Whether this sobering vision will prove prescient remains to be seen, but, in the meanwhile, I can’t say enough admiring things about PopTop’s determination to continue bending and twisting their core game in intriguing new directions. Some of the Second Century scenarios are essentially new games unto themselves, like the one where you have to keep Britain connected and functional during the Blitz, or the one where you have to bring up sufficient troops from the eastern hinterlands of the Soviet Union to resist the Nazi invaders pouring in from the west. Sometimes the scenarios play radically with scale, as in the one that wants you to build a subway system to service a city instead of a railroad network to serve a country or a continent.

Even when giving due consideration to the premise that this is a campaign for veterans, most of the Second Century scenarios are really, really hard — a little bit too hard in my opinion. Less subjectively, there’s a general lack of polish to the second campaign in comparison to the first, with more bugs and glitches on display. In too many of these scenarios, your chances of winning gold are heavily dependent on luck, on the economy turning just the way you need it to just when you need it to. All of this would seem to indicate that the second campaign got a lot less testing than the first, such that PopTop may not have even fully realized how difficult it really was. It’s still worth playing if you finish the first campaign and want more, mind you. I just wouldn’t get too stressed about trying to win gold on every single scenario; I had a lot more fun with it once I accepted that silver or even bronze was good enough and stopped save-scumming and putting myself through all manner of other contortions to bring home the gold.

Inside the scenarios, Phil Steinmeyer made an unusual and refreshing choice in strategy-game sequels, electing not to build upon the blueprint of Railroad Tycoon I by heedlessly piling on additional layers of complexity. In some ways, this sequel is actually simpler than the original, despite the gulf of eight years of fairly frenetic technological development in computing that lies between them. There’s generally less emphasis placed on the mechanics of running your railroad. You must still choose between single or double tracks, and must learn when one or the other is more desirable from a cost-benefit standpoint, but you don’t have to futz around with signals. Two trains running in opposite directions on the same piece of track don’t ram into one another; the one just pulls politely over to a siding that magically appears and waits for the other one to pass by. Likewise, your options for manipulating cargoes and consists[1]In railroad speak, a “consist” — the noun is pronounced with the accent on the first syllable, not on the second as in the verb — is the particular collection of wagons that a given locomotive pulls. at stations are reduced. Most strikingly, tunnels don’t exist at all in Railroad Tycoon II; your only option for getting to the other side of a mountain range is to go around it, to go over it — very slowly! — or to try to find a natural pass through it.

Any way you slice it, the absence of tunnels is kind of weird. Otherwise, though, if you haven’t played the first Railroad Tycoon, you’ll probably never notice the things that Railroad Tycoon II is missing. If you have, you will, and you might even be a bit put out — there’s real joy to be found in getting a complicated network of signals functioning like the proverbial smoothly running machine — but you’ll soon get over it. For Railroad Tycoon II makes up for its simplifications in traffic and cargo management with a lot of meaty sophistication in other areas. The stock market and the management and investment of your corporate and personal wealth are, as I already noted, as vital and rewarding as ensuring that your trains run on time. Meanwhile the specificity of the scenarios turns the game into a form of living history that the more generic, semi-randomized maps found in the original are unable to match. The same tool that PopTop used to build all of the campaign scenarios is included with the game, for those who want to roll their own. There was once a thriving community of scenario builders on the Internet. This is no longer the case, but their leavings can still be found and downloaded. Or, if you buy the Platinum edition of Railroad Tycoon II, you’ll find that a curated selection of 40 of the very best fan-made scenarios is already included.

Last but not least, I have to pay due tribute to the masterful aesthetics of Railroad Tycoon II. There are some contrary old grognards out there who will tell you that audiovisuals don’t matter in strategy games. That’s an opinion that I’ve never shared. Whatever else they may be, computer games are a form of mediated entertainment, and good mediation goes a long way toward making our time spent with them enjoyable and memorable.

Railroad Tycoon II is a fine case in point. Even today, it’s a lovely game just to see and hear, with audiovisuals that immerse you deeply in its subject matter. Every control you manipulate is presented onscreen as a mechanical switch, which, when you click on it, clunks with the same satisfying metallic solidity that I appreciated so much in my Lionel trains as a kid. The video clips that play before the campaign scenarios, mostly sourced from old public-domain newsreel footage, have a graininess that only adds to the period flavor. Playing in the background as you watch your trains puff along is an old-timey blues soundtrack recorded on real acoustic instruments, all wailing harmonicas and resonator guitars, fit to accompany Robert Johnson down to the crossroads for his meeting with the Devil. Each scenario in the campaign is introduced by the game’s one and only voice actor, a crusty geezer who likes to use words like “whippersnapper.”

Now, you could say that all of this is best suited to the Age of Steam, that it’s becoming more than a little anachronistic by the time you’re driving sleek, high-speed electric locomotives through the Chunnel, and you’d be absolutely right. But those sentiments must be tempered by the understanding that Railroad Tycoon II was developed on a shoestring by barely half a dozen people. Phil Steinmeyer used a variety of techniques to compensate for the large team of artists he lacked, such as photographing model trains and importing them instead of trying to draw each locomotive from scratch. He also compensated through the technology of the game engine itself. “Railroad Tycoon II had 3D terrain, good shadows and lighting, and, perhaps most importantly, a higher standard resolution (1024 x 768) than any competing game,” he notes. Back in the day, it pulled off the neat trick of looking like it had had a far bigger development budget than was actually the case.

Today, the combination of clean and evocative audiovisuals, progressive design approaches, and a slick and elegant interface all add up a game that subjectively feels like it’s considerably younger than it really is. The few places where it does show its age — like the lack of an undo function when laying track, which forces you to do the save-and-restore dance if you don’t want to waste tons of money tearing out your mislaid lines — only serve to highlight the general rule of modern elegance. You don’t need to be wearing any nostalgia goggles to appreciate this one, folks. Just fire it up and see where it takes you. If the toot of a steam whistle stirs your soul anything like it can still stir mine, you might have found your latest obsession.


Postscript:
Heroes of Might and Magic II and Railroad Tycoon II: Separated at Birth?

When I first announced that I’d be writing about Railroad Tycoon II, reader eldomtom2 pointed me to some allegations that Greg Fulton, the co-designer of Heroes of Might and Magic III, leveled against Phil Steinmeyer in an online newsletter in 2021. In the course of a somewhat rambling narrative that he admits is rife with hearsay — his association with New World Computing didn’t begin until after Steinmeyer’s had ended — Fulton posits that Steinmeyer kept the Heroes I and II source code he had written for New World and used them as the basis for Railroad Tycoon II. When the first demo of the latter game was released in mid-1998, Fulton discussed with his colleagues how it “felt familiar.” One colleague, he says, then “decompiled the [Railroad Tycoon II] executable and found Heroes II references in the code.” Fulton goes on to say that New World’s corporate parent 3DO sued PopTop and G.O.D. over the alleged code theft:

After some legal wrangling, the judge ordered both NWC and PopTop to produce printouts of the complete source code for HoMM2 and RT2. In the end, it was clear Phil had used the HoMM2 source code to make RT2. In his defense, he asserted [that] JVC [Jon Van Canegham] had told him he could freely use HoMM2’s game engine. JVC found this claim laughable.

Ultimately, Take Two Interactive, who had a stake in Gathering of Developers, asked 3DO what they wanted to make the lawsuit go away. 3DO asked for 1 million USD… and there it ended.

I’m not sure whether we are to read that last sentence as meaning that 3DO was paid the demanded $1 million or not.

What are we to make of this? At first blush, the accusation against Steinmeyer seems improbable. I can hardly think of two strategy games that are more dissimilar than Heroes of Might and Magic II and Railroad Tycoon II. The one is a turn-based game of conquest set in a fantasy world; the other is a real-time game of business set in the world we live in. The one has a whimsical presentation that lands somewhere between fairy tales and Gygax-era Dungeons & Dragons; the other is solidly, stolidly real-world industrial. And yet, surprising as it is, there does appear to be something to the charges.

When you start a new standalone scenario in Railroad Tycoon II, the different difficulty levels are represented by icons of horses running at varying speeds. This is a little strange when you stop to think about it. How are such icons a good representation of difficulty? And what are horses doing in our train game at all? I’ve heard the “iron horse” appellation as often as the next person, but this seems to be taking the analogy way too far.

Well, it turns out that the icons are lifted straight out of Heroes of Might and Magic II, where they’re used, much less counterintuitively, to represent the speed at which your and the other players’ armies move on the screen when taking their turns. I can hazard a guess as to what happened here. Steinmeyer probably used the icons as placeholder art at some point — and then, amidst the pressure of crunch, with a hundred other, seemingly more urgent matters to get to, they just never got changed out.

For what it’s worth, these are the only pieces of obvious Heroes II art that I’ve found in Railroad Tycoon II. Yet the presence of the icons does tell us that Steinmeyer really must have been dipping into his old Heroes II project folder in ways that were not quite legally kosher. Based on this evidence, I wouldn’t be at all surprised to learn that there are some bits and pieces of code as well in Railroad Tycoon II that started out in the Heroes games. Personally, though, I’m willing to cut him some slack here. The code in question was presumably his code to begin with, after all. And, given how drastically different the games in question are and how low-level the code that he reused must therefore be, the repurposing seems likely to have saved him a few days at the most.

So why was Jon Van Canegham — a man once described by Neal Halford, a game designer who worked with him for several years at New World, as “terminally mellow” — so much less inclined to be forgiving? I think there may have been some external factors involved. Greg Fulton remembers Canegham telling him that “Phil Steinmeyer was the main programmer on Heroes 1 and Heroes 2.  He offered up ideas, just like Debbie [Canegham’s wife] did, so I gave him a design credit.  After he left, he told anyone who would listen [that] he was the reason Heroes was a success.”

Again, there’s some truth to these accusations. While he was trying to build a buzz around Railroad Tycoon II in the months before its release, Steinmeyer was indeed happy to call himself “the designer of the first two Heroes of Might and Magic games” — full stop. In one preview, Computer Gaming World rather cryptically described him as the designer who “will forever be remembered as the man who saved Heroes of Might and Magic from self-destruction.” In addition to being manifestly incorrect in its core assertion — absolutely nobody remembers Phil Steinmeyer in those terms today — this sentence would seem to imply that Steinmeyer has been telling his journalist friends tales out of school, ones that perhaps don’t cast the schoolmaster at New World in an overly positive light.

I think we can see where this is going. Angered by these exaggerations and possible imprecations — and by no means entirely unjustifiably — Van Canegham must then have started working to deprecate Steinmeyer’s real contributions to Heroes II, a game on which Van Canegham had once seen fit to give him a full-fledged co-designer credit alongside himself, not the mere “additional design” credit he received for Heroes I. And he must have told the legal department at 3DO about his other grievance as well, the one he might be able to use to bleed his cocky former colleague. It became, in other words, a good old-fashioned pissing match.

I don’t know whether any of this really did result in Steinmeyer’s camp having to pay Van Canegham’s camp money, much less precisely what sum changed hands if it did happen. As always, if you have any additional insight on the subject, feel free to chime in down below in the comments. For my own part, though, I think I’ll stop chasing scandals now and go back to playing Railroad Tycoon II. I still have the last few Second Century scenarios to get through…



Did you enjoy this article? If so, please think about pitching in to help me make many more like it. You can pledge any amount you like.


Sources: The book Railroad Tycoon II: The Official Strategy Guide. Computer Gaming World of March 1989, November 1994, February 1997, August 1998, September 1998, December 1998, January 1999, March 1999, August 1999, and October 2001; Next Generation of May 1998.

Online sources include an archive of all 42 “Inside the Sausage Factory” columns that Phil Steinmeyer wrote for Computer Games magazine, the Fanstratics newsletter where Greg Fulton conveys Jon Van Canegham’s accusations of code theft against Steinmeyer, a 1998 CNET GameCenter Q&A with Bruce Shelley, a 2000 Eurogamer interview with PopTop historical consultant and scenario designer Franz Felsl, and an extended 2007 Gamasutra interview with Mike Wilson.

Where to Get It: Railroad Tycoon Platinum is available as a digital purchase on Steam and GOG.com.

Footnotes

Footnotes
1 In railroad speak, a “consist” — the noun is pronounced with the accent on the first syllable, not on the second as in the verb — is the particular collection of wagons that a given locomotive pulls.

Renga in Blue

Arsène Larcin: VOS REFLEXES DE CHAT

Two quick corrections from my previous post before I move on with the game. First off, it turns out you can’t just type (for example) RESTAURANT to jump from the third floor to the first floor and go all the way to the relevant room, at least in normal circumstances. I swear I had it […]

Two quick corrections from my previous post before I move on with the game.

First off, it turns out you can’t just type (for example) RESTAURANT to jump from the third floor to the first floor and go all the way to the relevant room, at least in normal circumstances. I swear I had it happen once, but it may have been a glitch or me misunderstanding some text in the French. The right way to travel between floors is to hop in L’ASCENSEUR (the elevator) with the command ASC and then it will give you a choice of floors. Pressing a number will go to the relevant floor, then pressing “9” will step off. There’s still some extra movement conditions (like if you’re sneaking in a room, you have to use SORtir to get out first before you go somewhere else on the same floor) but that essentially covers everything.

Secondly, as more than one person has pointed out, “voler” (which can be typed as VOL) is described on the commands screenshot as taking a noun, so the meaning shifts from “fly” to “steal”. I was still baffled for a bit after because it seems like it doesn’t work for stealing items (it doesn’t work as a synonym for “take”).

I finally did find that at the roof of the hotel, there is a PISCENE (pool) with a locker room, and if you go in the locker room you can VOL the lockers and take money directly. For all the other thefts you make, you’re grabbing items to trade with a fence (which I’ll show off in a moment).

The overall structural design is that the night you go sneaking, you have fifty turns; after the fifty turns are over, you TERMINER, which finishes the session. After this, a fence comes and visits your room, and offers money for each of the items you’ve stolen that are considered “valuable”. You then pay off your bill and have a new bill to keep staying at the hotel.

The third item there is what FUMER (smoke) can be used on, although the game just tells you that you can’t because it’s very illegal. Given how much loot we’re swiping, it seems odd our main character has an issue with breaking the law.

Since the stealth happens at night, it is by default dark, and if you try to start stealing things without remedying this fact you’ll have a chance of simply tripping in the dark and giving yourself away in that fashion. Fortunately, room 001 seems to always have a LAMPE.

Although taking it doesn’t automatically work. Here, we hear noises and hide in a corner but it turns out to be a false alarm.

Once the lamp is safely taken (just random), the dark is no longer a problem. Now we normally can have free reign of the hotel: we can use the PASSE from our room to unlock any locked door, and the lamp will keep us from stumbling in the dark. Mind you, we still might randomly have an attempt at swiping an object fail:

Here, we wake the person by trying to pick up the brooch, and escape via having the reflexes of a cat.

There’s one other obstacle that can come up, which is a chain across the door.

The MAGNET I mentioned in my last post works; you can TIRer (pull) the chain and you get congratulated for being clever. I was originally puzzled because the use of the object is passive (that is, the magnet is used automatically if you’re holding it) so I didn’t realize the magnet was being used there. I was visualizing security so shoddy I could just yank the chain by hand and it’d break.

So this game technically had one puzzle (two if you count the light). You might also count the “square key” I’ve found, which I have yet to be able to use, and the fact I have no idea where the computer is. I’ve checked every single room; an excerpt:

201 -> empty
202 -> empty
203 -> empty
204 -> SCULPTURE
205 -> LUSTRE (chandelier)
206 -> empty

301 -> TELEVISION
302 -> AIMANT (magnet)
303 -> OUR ROOM
304 -> empty
305 -> STEREO
306 -> BOUQUIN (book)

Note these are randomized each game, and even randomized within a game; I had a save state where I went back to a room I had visited in a prior iteration and found a second object that wasn’t there before. I think that’s supposed to represent guests moving things around. I do suspect I might be missing something involving the various guests, but I have yet to get any commands to work when I see one.

Note that shot above shows the outside of one of the two penthouse suites (601, 602) but both of them were empty!

The only even vaguely suspicion room was one with a DISQUE, which I am assuming is of the computer variety. (The fence describes it as a DISQUE DE GRANDE VALEUR — that is, of high value — but only offers $10 for it. That wouldn’t buy even half a French-translated Sierra game.)

Perhaps if I’m lucky enough to run across DOCTEUR O’BRIEN in my travels there’s some action that works (maybe he’s toting around a device that unlocks a secret door?) Keep in mind (based on the interview from 1984) the author said sometimes he couldn’t beat the game, so it is quite possible I just rolled a bad seed and have to replay to see certain conditions.

On top of that I’m not sure what the square key is for. It could go to a vehicle; studying the instructions, after you swipe the computer you’re supposed to make a getaway in a car.

Or maybe something is supposed to happen only in later burglar jaunts? I’ve only tried out the first two, maybe there’s some developments when you hit number five. The game loop really just has you visiting each and every room so it’s not easy to check if something small has changed.

The source is in BASIC but has resisted my very light prodding to see if I can find any enlightenment; I might need to resort to fierce prodding instead.

Wednesday, 08. January 2025

top expert

let’s TEST IF#2: playtesting your game

It’s dangerous to go alone! previously, on let’s make IF… While this article is specifically about Inform development, most of its key concepts apply to a wide variety of interactive fiction works. In the first post of this two-post series about playtesting parser games, I discussed best practices for testing someone else’s game. You can […]

It’s dangerous to go alone!

previously, on let’s make IF…

While this article is specifically about Inform development, most of its key concepts apply to a wide variety of interactive fiction works.

In the first post of this two-post series about playtesting parser games, I discussed best practices for testing someone else’s game. You can refresh your memory here:

What about testing your own game? As I said last time, testing the work of others is a good way to understand a tester’s perspective. It’s also a good way to learn what it takes to recognize the effort involved in high-quality playtesting. That’s important: being able to appreciate the help people are giving you.

“I don’t have time to test” and other myths.

As I wrote last time, everything that gets released gets tested. Your only choice as an author is whether your work gets tested privately, with time for you to make adjustments before release, or whether the testing comes in the form of public reviews, when it is too late for you to change first impressions. It simply isn’t true that there is no time to test, because testing always happens. The real question is whether one has time to meet the deadline for an event or not. Sometimes, it’s ok to say “no” to that question. It all depends on whether you are willing to let a deadline dictate the quality of your work. Sometimes, actually, that’s fine. It all depends on your goals as a creator.

Release context changes things a lot. It isn’t terribly feasible to do a lot of testing with speed IF (Ectocomp La Petite Mort for instance), and nobody really expects that. Some events value expression over polish. There’s nothing wrong with that! But you can’t get a do-over for IF Comp, if that’s what interests you. Consider the level of polish expected for your event of choice, and go from there.

when should I start testing.

When should you start testing? A lot depends on the complexity and size of the work. IF the game not very complex (no fiddly systems, not many custom actions, modest world model), you can probably wait until you have a finished throughline (the game can be completed, beginning to end) before testing. If you have a large game, on the other hand, you probably won’t want to wait that long. My own game, Repeat the Ending, was first tested after maybe five rooms were completed. I had a custom magic system with a lot of bugs to work out. I continued to test intermittently for the rest of the project (over a year).

You do not want to write a big game with a lot of complex interaction/simulation/etc and only test at the end. What if there are flaws in these systems? Or if the fundamentals of your story are off? It is very hard to repair the foundations of a finished game, so don’t wait.

Unfortunately, I can’t provide a “complexity equation” based on word count, custom actions, number of rooms, and number of things. This is mostly a vibes-type decision. My suggestion is that you err on the side of caution. When in doubt, test.

Some things to consider before testing:

  • Make sure you can finish the content.
  • Run a spell checker.
  • If hints are needed, either provide them or be available to answer hint requests from testers.
  • If you are going to include a content warning in your game, have it in place so that you can ask about it.
  • If testing will be repetitive or if players might need extra in-game information, consider providing test commands and providing a test build so that testers can use debug commands.

how do I start testing.

Once you’ve prepared and double-checked your work, you’ll need to find some testers. For this, you’ll need to go where the testers are. Forums and Discord servers are good places to look. Typically, any place where people discuss the kind of game you are making (platform/medium/content) is a good option. Social media might do in a pinch, mileage will definitely vary. Once you’ve found a venue, you’ll need to put out a call. Ideally, the call will cover a few, key items:

  • Platform and or medium (“an Inform game”)
  • Genre description (“humorous sci-fi”)
  • Length (“should take an hour or so”)
  • Difficulty/puzzle content (“puzzler, sometimes challenging”)
  • Timeframe (“I’d like to get this back in a week”)

It’s best to keep things brief here. I personally like a bulleted list, though I think you should do whatever will be enable you to be succinct.

Hopefully you will get a few testers. If not, you may want to bump your post after a day or two, or else look somewhere else. As I mentioned last time, if you volunteer to test the work of others, you are much more likely to find testers for your own work. If you are a new author, look for ways to be a part of the community; this will help you. You’ll probably enjoy it, too!

You probably don’t need a lot of testers. After all, you will need some later. This is either because you will make more game (in the case of a longer work) or because you will need people to test the fixes made after testing. Close off your call after you get a handful of people, with a comment that you will need help in the future, if anyone is interested.

Don’t put your test game in a public forum. Send it via PM instead. Publicly sharing a game, even an unfinished one, can disqualify it from events. In your PM, ask any questions you might want the testers to answer. Note that, for many authors, story and worldbuilding may be as important as mechanics and bugs. Try to consider all possibilities. You’ll want to keep these questions brief as well (I like bullet points here too), just to avoid creating confusion or distractions. Prioritize your concerns and focus on what seems the most pressing.

You could try sending different questions to different testers, but some testers don’t answer questions. They just don’t! So you may regret spreading things out and getting nothing back. In my experience, it is best to send the same thing to everyone. Those who answer will send different answers sometimes, and that’s potentially useful.

Finally, tell the tester your preferred format for results. I prefer a transcript document. The transcript is a document of parser gameplay. It contains all commands and output for a play session. I further want comments in the transcript.

Because, as of this writing, the transcript functionality of Parchment (ubiquitous web player for parser games) is a little rough, it is very possible that even experienced players of parser games will not be familiar with this process. I typically say something like “I would like a transcript file with comments. If you’ve never made one before, let me know and I’ll help you out!”

I currently recommend the latest version of Lectrote (a local application for playing parser IF games) because it automatically generates transcripts.

https://github.com/erkyrath/lectrote/releases

So far as comments go, it is customary for players to type comments directly into the game, prefacing their comments with an asterisk or other symbol. You can add some code to your Inform 10 game (if that’s what you’re using) to add a searchable response (this code was initially provided to me by Wade Clarke).

first after reading a command:
	if the player's command matches the regular expression "^\p|^<*+='>":
		say "(Noted.)";
		reject the player's command;

The in-game output will look something like this:

>* I'm so happy to be playing this game!
(Noted.)

the wait.

It’s hard to wait! Some testers will get started right away. Some will take time. Some will never get back to you. Even though you might associate high emotional stakes with your project–you may have invested a lot of emotional or intellectual energy–it’s important to try to remain philosophical. Everyone else is getting to it in-between whatever else is going on in their lives. Even if your game feels very personal to you, most people will not develop similar attachments.

If this is your first time, you might feel anxious. That’s pretty normal, I think. At least, I felt that way. Hang in there! People will get back to you soon. If you need a break, this is a good time to take one. Do some non-IF stuff for a few days, or play some games. Do whatever you like; just take care of yourself.

results.

The results will hopefully begin coming in. Ideally, you will have comments in a transcript and answers to your questions. Start thinking about how to organize things. Some authors have a spreadsheet. Others manage ideas and activities in some other ways. My method is pretty simple: a to-do list at the top of my Inform 10 project. Big-picture items, such as comments about story or gameplay mechanics, go in the list. Small items, like typos, minor bugs, and the like, are dealt with, one at a time and in order, by reading through individual transcripts.

The important thing is that you have a reliable way to manage feedback; something that works for you.

Big-picture items like gameplay loops, characters, and plot may have a discretionary element. You may or may not want to change the story, for instance. It’s often good to first get feedback from multiple people to determine if there is consensus. Perhaps some love your protagonist; others find them annoying. Consider all of this, but honor your own goals as a creator, too.

You may have a lot of bugs to deal with. If there is something flawed in a core mechanic, you will want to take care of that right away! If you add more mechanics or problems, you might be building on sand. Be sure your foundations are stable and durable.

Pay attention to what people do. If the transcripts contain many failure messages, is that acceptable? Or is some polish needed? Perhaps synonyms or more informative failure responses are in order. Distinguish between challenge and annoyance. Take the player’s side while maintaining your desired level of challenge or friction.

Carefully consider the player’s comments in the transcript. Remember that you know your own game too well to know what players will think. These are the reactions of potential players and reviewers. Are your descriptions adequate? What about the tone? Do they ever express frustration or annoyance? These comments may be immediately actionable or else turn up on a to-do list somewhere.

You can ask clarifying questions of testers. One round of questions is my recommended limit unless tester replies suggest an interest in discussion. Wait until all of the feedback comes in, then determine your top issues. These should be big-picture questions about design and story; their answers will inform your to-do list.

If you had positive experiences with a tester (even if the feedback isn’t all praise!), you can ask them if they would be open to doing more testing in the future.

disagreements.

If your experience is at all like mine, you may have some disappointments. Some players may never get back to you. Others may not “get” what you are trying to do. Still others might not answer your questions, or comment in their transcript. I know it’s easy for me to say, but don’t be bothered by this. Do your best, at least.

As I said earlier, anybody who volunteers to test your game is offering up their spare time. That’s a precious resource! There might be a million reasons for someone not to do all that you asked, and, chances are, it’s got nothing to do with you. Try to see that your disappointment and someone else’s unavailability can both be real, and that the relationship between the two is probably not malice. Try to stay out of your feelings.

It might be a little harder if someone expresses overt disinterest in your work. That feels more personal, doesn’t it? However, it’s useful information. No matter the quality or effort, some aspect of your game might be rejected by certain people. This is something you actually need to know. It can prepare you for reviews and reception later. On the other hand, you may want to make changes to please such players.

There were multiple times during the production of Repeat the Ending when I said to myself, “Oh, well, this isn’t a game for everyone.” That’s a really healthy thing to recognize and accept. Such testers will help you get there.

You do not want to argue with testers. It will probably hurt your reputation and possibly limit your chances of finding future testers. Besides: you wanted to know what they think; you can’t argue with their experience! It’s theirs, after all. Thank them and move on. While IF is a hobby for nearly all of us, professionalism is a good model for dealing with tester disagreement. Try, once more, to stay out of your feelings.

looking ahead.

While some testing experiences can have a cost in emotional energy, you have hopefully made net gains thanks to a better understanding of your project. Should you change the story? Alter the mechanics? Stay the course? That’s all up to you, of course, but you now have an idea of how detached audiences will respond to your work. What are you trying to do? Win a contest? Get good reviews? Publish an iconoclastic work, critics be damned? Weigh your own artistic goals against the feedback you’ve received and make some decisions about the future of your work.

It may seem early but consider when you might do another round of testing. These are good mile markers for a project–test dates. If you’ve made a lot of changes to a complex gameplay loop, you’ll want somebody to check them. Perhaps you’ve added more content to a longer work: that means more testing. Try to think about larger projects in an iterative way, and plan accordingly.

After all, everything gets tested eventually, but you get to decide how and when.

next.

I’ve resumed work on Marbles, D, and the Sinister Spotlight! Wow, what a doozy. Lots of varied text working in context with scenes. So much to do! I’ll try to have something up soon.

Tuesday, 07. January 2025

Renga in Blue

Arsène Larcin (1982)

The center of gravity of Canada’s computing history has always been Ontario. A group at the University of Toronto in 1945 started a committee and took a tour of the United states in 1946, visiting essentially every major computer. Planning started in 1948 on what would be dubbed the UTEC, with a functioning version assembled […]

The center of gravity of Canada’s computing history has always been Ontario. A group at the University of Toronto in 1945 started a committee and took a tour of the United states in 1946, visiting essentially every major computer. Planning started in 1948 on what would be dubbed the UTEC, with a functioning version assembled in 1951. The full-scale version ended up not being built, because it turned out to cost essentially the same to buy a Ferranti Mark I from Britain, but the UTEC was still essentially Canada’s first general-purpose computer.

Source, via Government of Canada Publications.

IBM’s presence in Toronto dates all the way back to the 1920s, and hence when they started in electronic computing it became their major center of research.

1968 photo taken by George Dunbar of Leslie Mezei, showing computer art made at the University of Toronto on an IBM 7094. Source.

One of the (many) candidates for “world’s first personal computer” was the MCM/70, first shown in May 1973 at the Fifth International APL Users’ Conference in Toronto.

In 1969, a census of existing digital computers and process controllers found the majority (1045 out of 2037) being in Ontario. However, in second place there was Quebec, at 485.

Sperry Canada, for instance, started there in 1950 (the geographical positioning being somewhat motivated by military considerations, as Quebec had closer proximity to the by-plane Greenland route over to the USSR). Concerns with French-speaking separatists led the Canadian government to have an interest in developing the Quebec economy; thus while Circuit Design Corporation put a research group in Toronto, they put their manufacturing in Quebec City aided by funding from the Canadian government.

Our unity is not secure if people in some extensive regions have to put up with opportunities and standards well below those of other Canadians…

Jean Marchand, Canadian politician

It is still true an idle listing of Canadian computing accomplishments has the word “Ontario” appear a disproportionate number of times. While what has been argued to be the first videogame came out of Toronto (Bertie the Brain, 1950)…

Photo by Bernard Hoffman for LIFE Magazine.

…and while Peter Jennings (also Toronto) made what is arguably the first commercial Canadian game (MicroChess, which did well enough that it helped fund the making of VisiCalc) and the first Canadian game company we know of is not from Toronto but still Ontario (Speakeasy Software, 1978)…

By early 1978, we had four titles ready for the Apple II — “Bulls and Bears”, “Warlords”, “Microtrivia” and “Kidstuff”. Trying to fit them into 16k and make them worth buying was certainly a challenge. This was before floppy disks! The only means of reproduction was audio tape. I found a company in Ottawa that produced educational audio tapes for doctors and talked them into replicating our tapes. The only problem was that only 50% of them worked and we didn’t know which 50% they were! So our 8 and 10 year old kids would load them one at a time on our home machine and pick out the good ones. Talk about cheesy technology.

Brian Beniger, who founded the company with his wife Toni

…Quebec did eventually have their own accomplishments in videogaming. For us, starting specifically with the company Logidisque, founded by Louis-Philippe Hébert.

Louis-Philippe Hébert was an author with a strong interest in computers and the intersection between the two; he did a thesis while at the University of the Montreal in the 60s entitled

Application de principes mathématiques à la lecture et l’écriture de textes

that is,

Application of Mathematical Principles to the Reading and Writing of Texts.

Hébert, reading his poetry in 2011. Source.

While writer in residence at the University of Ottawa from 1977-1978 he got a Apple II and learned to program, making his own word processor. He got to meet with Steve Wozniak himself a year later while visiting California, who asked:

How come a smart guy like you writes in French?

The same year he formed a group dedicated to computers, and two years after that he registered the trademark for Logidisque. They published their first games in 1982, and they appear to be the first original games from Quebec.

I should emphasize regarding the term original games. Hugo Labrande has identified companies that sold translations, most notably Computerre, some which came before Logidisque, so they’re not quite the first company from Quebec to sell games, just “original” games.

Translations of Sierra games from their Summer 1982 catalogue.

It makes sense given Louis-Philippe Hébert’s long interest in electronic text (and rugged continuing use of French despite ribbing by the Woz) that’d his company would release the first original French-Canadian adventure game, Arsène Larcin by Éric Primeau.

From boardgamegeek.

The author Primeau joins the ranks of many, many teenaged adventure authors: he was 17. A friend of his knew someone who worked in a company located close to Logidisque; both Primeau and his unnamed friend got invited by Hébert for a visit in May of 1982. While there Hébert showed off the trading simulation game Caraïbes; Primeau was invited to try making a port, which he finished in a month.

To follow up, Primeau pitched a text adventure game. He had seen Scott Adams on a friend’s TRS-80 (specifically, Mission Impossible) and was influenced to try his own game, which he worked on starting in June, finished in time to be published nearly the same time as Logidisque (and Quebec’s) first game, Têtards. As French games were just getting started it not only is Quebec’s first adventure but one of the first adventures worldwide to appear in French. It was sold as a “roman interactif”, or interactive novel, reflecting Hébert’s literary bent (this was before Infocom started using “interactive fiction”!)

From an interview with Primeau, via Québec science, 1984, April.

As the name suggests this is a spin-off of Arsène Lupin, the gentleman-burglar created by the French author Maurice Leblanc in the early 20th century. I’m not going to go into lore, as there doesn’t seem to be any specific references in this game; just as an aside, note that the original author had Lupin face off against an “unlicensed” version of Sherlock Holmes (Herlock Sholmes) and while most his thefts were of “realistic” artifacts some of his stories involved fantasy items like the Fountain of Youth.

You, as, Arsène Lupin Larcin, have arrived at the Hotel Majestyk, and your task is to find a secret computer.

Unlike Mad Martha where you picked a name to separate yourself from the avatar, here you are picking what name to sign in with, which would no doubt be a pseudonym. So this doesn’t quite remove the player from the avatar in the same way; a player can choose to still pretend they are Larcin but still sign in with their real name.

You start in your room, 303.

“OBJETS DE VALEUR VISIBLES: RIEN DE PARTICULAR…” is simply “visible valuable objects: nothing special”. The two money values represent the amount in your pocket (starting at $0) and the bill to pay for the hotel room (at $300).

Inside 303 there is a “GARDE-ROBE SECRET” (secret wardrobe). Entering the wardrobe you can find a PASSE (pass-key).

Movement is incidentally quite irregular compared to a regular adventure game. While the above was the result of using ENTRER (enter) and getting out again is a matter of using SORTIR (leave) once you leave the hotel room there are no compass directions. You are instead able to consult a map and type the name of the place you want to go.

While I’ve seen modern games go this route and it isn’t that dissimilar from, say, the “big map” view of a Lucasarts-style game where you just click on your destination instead of type it…

Return to Monkey Island map, via Mobygames.

…what is quite irregular is that you also travel between floors this way. For example, you can go straight to the restaurant on the ground floor by typing RESTAURANT.

There’s otherwise not a lot of direction as to which rooms to start poking around in; the main catch is that this is an adventure-roguelike. The location of the computer is randomly generated each game, and the various characters move around in random ways. In the interview I linked earlier, even Primeau himself admitted he couldn’t always beat the game.

Même moi qui ai conçu ce jeu, je ne suis jamais assuré de trouver l’ordinateur: je sais comment gagner, mais je ne suis pas certain d’y parvenir.

Even I, the designer of the game, am never sure of finding the computer; I know how to win, but I’m never certain I’ll succeed.

So this might get a bit fussy! There does seem to be things resembling “puzzles” (I have, for example, found a magnet, although I’m not sure what it’s for) but this might possibly fall on the side of a strategy game. (Even given the Scott Adams inspiration, this is understandable, given the author’s previous immediate job was porting the strategy game Caraïbes. The irregular movement concept likely comes from there; it is a game set in the Caribbean where you type the word of the place you want to go when you are at a port, kind of like the later game Pirates!)

A random room I’ve broken into. I’m pretty sure the “television” and “magnet” are placed at random and would be elsewhere on a different playthrough.

This means the game might be absolutely horrible to beat; while there’s nothing as confusing as Madness and the Minotaur there could be a situation with a puzzle where the only reason you can’t solve it is that the random number generator failed to go your way! There is one advantage I do have: the author was nice enough to put full command lists.

Ignoring the “location movement verbs” which are really just nouns, the game has a parser which clips the first three letters of each word, getting:

VER (verrouiller = lock)
TIR (tirer = pull)
PLO (plongée = dive)
SOR (sortir = leave)
PRE (prendre = take)
DEP (deposer = drop)
DEV (déverrouiler = unlock)
ASS (asseoir = sit)
LEV (lever = stand)
ECO (écouter = listen)
VOL (voler = fly)
ENT (entrer = enter)
NAG (nager = swim)
FUM (fumer = smoke)
BOI (boire = drink)
JOU (jouer = play)

What’s FLY there for? Are we escaping by helicopter? And it looks like you can’t be a cool French gentleman-burglar without some kind of cigarette.

I’ll try a stab at visiting every room (using the power of saving my game to not waste time) and report in next time what encounters I have.

(Thanks to Ethan Johnson and QuarterPast for help scrounging images, and Hugo Labrande for doing a great deal of research on this topic before I arrived. I also found John Vardalas’s book The Computer Revolution in Canada quite helpful.)

Monday, 06. January 2025

Choice of Games LLC

New Author Interview! William Brown, “Hunter: The Reckoning — The Beast of Glenkildove”

Full moon. Cold night. Dark shadow. Warm gun. The Beast of Glenkildove has stalked Ireland for centuries. Now, you must hunt it. Hunter: The Reckoning — The Beast of Glenkildove is an interactive novel by William Brown, set in the World of Darkness. It’s entirely text-based, without graphics or sound effects, and fueled by the vast, unstoppable power of your imagination. Choice of Games
Hunter: The Reckoning — The Beast of Glenkildove

Full moon. Cold night. Dark shadow. Warm gun. The Beast of Glenkildove has stalked Ireland for centuries. Now, you must hunt it.

Hunter: The Reckoning — The Beast of Glenkildove is an interactive novel by William Brown, set in the World of Darkness. It’s entirely text-based, without graphics or sound effects, and fueled by the vast, unstoppable power of your imagination.

Choice of Games Editor Mary Duffy sat down to talk with William about this upcoming game. You can play the first three chapters of Hunter: The Reckoning — The Beast of Glenkildove today; the rest of the game will release on January 16th! Be sure to wishlist it on Steam—it really helps.

Hunter: The Reckoning was actually your first World of Darkness game as a player, and it was a given that you’d pitch us a Hunter game when we asked you. Tell me what drew you/draws you to that world.

Yes, Hunter: The Reckoning was my first experience of the World of Darkness. What I liked best about it was its emphasis on ordinary people – admittedly, ordinary people in extraordinary circumstances, ordinary people with extraordinary drives and obsessions, but still ordinary people.

The other World of Darkness games sometimes had a bit of tendency to treat ordinary people as basically uninteresting. If you weren’t a supernatural of some description, you didn’t really matter. You were an extra, there to be fed on or be collateral damage or just to be completely ignored. The idea of the Reckoning turned that on its head: suddenly, your vampire’s take-away Happy Meal, your mage’s meaningless set-dressing, had a shotgun, an armful of Molotov cocktails, and a bunch of equally angry friends.

Along with that came the idea that Hunters, because they were after all just human, were fragile and flawed. They’re loners, relying on home-made gear and second-hand weapons, keeping themselves awake on all-night stake-outs with black coffee and cigarettes (assuming, probably correctly, that they’ll die violently long before lung cancer gets to takes its shot). They’re also people with mortgages and marriages and jobs and kids, all of which they’re endangering by pursuing the Hunt.

I like the idea that Hunters aren’t part of big, world-spanning organizations and that they don’t have infinite resources to draw on. A Hunter is going up against enemies that are far, far more powerful than them, enemies that can draw on untold supernatural and mundane resources. They have to plan and research and train and prepare obsessively, they have to use every scrap of ingenuity they have to give themselves any chance of survival. And as things get darker, they have to decide just how far they’re prepared to go to achieve their aims.

You’ve written some fantastic, unique stories for COG: The Mysteries of Baroque and Cliffhanger, one a bit of a 19th century Gothic literature homage, the other bringing 1930s retro-futurism/pulp adventure to interactive fiction. Despite the supernatural underpinnings of Hunter: The Reckoning, Beast of Glenkildove is in some sense the most slice-of-life or true to life game you’ve written for us. Tell me about what it’s like writing characters in the present day with present day (a well as werewolf-based) problems.

I tried to ground Beast as much as possible in reality, particularly in the early chapters. I think that WoD supernatural horror works best when it has a strong foundation in something real. So I drew a lot on real life – most of the main characters are at least partly based on people I grew up with or knew in college. I tried to find their voice when I was writing their dialogue – sounding it out in my head, trying to decide if it was something that I could hear them saying.

I also drew on the stories that I heard growing up in Wicklow: folklore, crimes, disappearances, strange and colourful characters. I go back there every summer: while I was writing Beast, I’d eavesdrop and people-watch in the local pubs, pump my family for stories and gossip, and just wander through the woods trying to get at what makes this part of the world unique.

What will WOD fans find surprising about your approach to the world of Hunter in Beast of Glenkildove?

I hope that one of the things that will come across is a renewed sense of how rich and strange the World of Darkness is. Vampires, werewolves and other scary things can lose their sense of menace and mystery when they’re thoroughly explored and catalogued. One of the things that I was trying to do in Beast is to reset that. You’re playing a character who’s an outsider to the supernatural world: they don’t know any of the things that WoD players would take for granted, like tribes and clans, and so they can’t classify things in those terms. Everything out there in the darkness is, at least at the start, just one terrifying, undifferentiated mass of Horrible Things – with only hints as to the factions and alliances and intrigues and secret wars which define the other game lines.

Some of these take the form of stories and weird tales that the PC will hear throughout the game; brief microfictions that hint at the bigger World of Darkness beyond the scope of Beast. I like the idea that in a world as riddled with supernatural corruption as the World of Darkness, these kinds of stories are everywhere, Masquerade or no; it’s just that Hunters are the only people who lack the self-preservation instincts to simply resolutely ignore them.

Finally, I’ve included a number of Easter Eggs referring to other Choice of Games World of Darkness titles; Jim Dattilo and Jeffrey Dean were very gracious about letting me use characters from Out for Blood and Parliament of Knives respectively and Kyle Marquis and I were working on Beast and The Book of Hungry Names at the same time, so we agreed on a few shared setting elements and even arranged a crossover of sorts.

One of my favorite Pavement lyrics is “Beware, the head of state says that she believes in leprechauns/ Irish folktales scare the $%*! out of me.” And they do! What is it about Irish storytelling and myths that make it such a fertile ground for your imagination?

I think one of the key things to understand about Irish folklore is its playfulness and its ambiguity. A typical Irish person’s attitude to a story is not to consider whether it’s true but whether it’s entertaining. So the older generation in particular will tell stories about Fionn mac Cumhaill, the Other Crowd, the Good People, the púca and ghosts in the same way they might tell stories about historical Irish figures of the past like Michael Dwyer or Charles Stewart Parnell or Éamon de Valera. If they’re telling a story about a child being stolen by the sidhe, they don’t insist on being believed the way that an alien abductee insists on being believed. They know what they think is true but as long as the story holds their audience’s attention, they’re satisfied.

I think there’s a political dimension to this attitude. The rational, evidence-based approach was, after all, an English import. Surveyors coming with chains, measuring staves, and compasses, measuring and mapping land that had previously been described and controlled through folk tradition and memory, was usually a prelude to that land changing hands, from Irish to British owners. Under these circumstances, the Irish propensity to mythology, superstition, and exaggeration (noted with considerable irritation in British sources) was a form of self-defence, a way of making sure that there were some things kept beyond the imperial reach.

Ireland was nicknamed “Wolfland” by the English and Scottish settlers who came there from the 16th century onwards. For them, there was a connection between the native Irish and the wolves, living out in the darkness beyond the Pale (the zone of British control around Dublin). For the British, part of the process of “civilising” Ireland meant cutting down woods, draining bogs, and killing wolves; Cromwell put a bounty on wolf heads.

In The Beast of Glenkildove, the werewolves represent a kind of violent eruption of this forgotten, primeval Ireland into the urban civilisation that displaced it. I think we’re all a little bit simultaneously fascinated and terrified by the idea of the wild. We worry that our technology is alienating us from the natural cycle of the seasons but at the same time we’re horrified by the violence and ruthlessness of the reality of nature. I think that’s where folk horror lives.

Was there an NPC you enjoyed writing most?

I love all of my children equally.

In all seriousness, I’d find it hard to choose. I tried to make every character, even relatively minor ones, as memorable and engaging as possible. They were all lots of fun to write: Sister Judith, Tottenham, Ray and Dekko, the Mulcahy, Arthur Snow… maybe among my favourite scenes, though, were the ones where the core cast just kind of bounced off one another and argued or teased each other or joked around. Those scenes kind of wrote themselves; it really was like hanging out in the pub with friends.

Has your feeling for the game world changed as you’ve been immersed in writing a Hunter story?

I’ve certainly learned quite a lot about topics like how to make homemade explosives. My Google search history over the past year or so would make worrying reading for law enforcement.

I’ve tried to imagine the World of Darkness from the perspective of those who are mostly kind of on the penumbra of the supernatural world: people who’ve seen some shit and have (sometimes wildly misguided) ideas or theories about what’s really going on, but who are very much not insiders.

If you were the PC in Glenkildove, what would your character sheet/customization look like?

Predictably, I’d be an Inquisitive creed Hunter with an Academics specialisation and the Folklore Library edge. Assuming a werewolf didn’t eat my face, I’d try to hook up with the Arcanum.

Saturday, 04. January 2025

Renga in Blue

Mad Martha (1982)

We’ve seen Chris Evans once before, with the two-pack Mines of Saturn/Return to Earth, originally published by Evans himself under Saturnsoft, but later picked up for distribution by Mikro-Gen. Despite many sites claiming 1983 for Mad Martha, it first gets mentioned in a December 1982 issue of Computer and Video Games. The 1982 version seems […]

We’ve seen Chris Evans once before, with the two-pack Mines of Saturn/Return to Earth, originally published by Evans himself under Saturnsoft, but later picked up for distribution by Mikro-Gen.

Despite many sites claiming 1983 for Mad Martha, it first gets mentioned in a December 1982 issue of Computer and Video Games. The 1982 version seems to be Saturnsoft-only, and the only copies that have surfaced have been Mikro-Gen branded, which explains the discrepancy.

Mad Martha ended up being incidentally important to Mikro-Gen’s history. Briefly: Mikro-Gen went to the ZX Microfair in August of 1983, being placed next to a small company known as a Crash Micro Games Action (of Crash magazine). The two struck up a relationship and Crash received a copy of Mad Martha and gave it a good review (it “prove[s] how much fun a BASIC written adventure can be”). Crash had enough reach that the company Mikro-Gen ended up being one of the well-known British companies through the 80s.

Via Spectrum Computing.

I mentioned the Crash story before, but what I didn’t mention — because I didn’t play the game yet — was how inexplicable the Crash story was. That’s because this game is very bad, and I’ll pull out another review made when the game was published just to show I’m not talking from future-perspective. (And yes, art is subjective, etc., but I tend to be pretty good at figuring out where the boundaries are of “this works as long as you accept norms A, B, and C” but even going up to the Greek alphabet won’t save this game.)

I will grant the game does one very solid thing at the start. While the intro text starts with “you, as Henry Littlefellow” it then asks for your name (for example: “Jason”), and consistently addresses you by that name, clearly establishing Henry Littlefellow as someone different. This is similar to how Softporn Adventure made sure the “puppet” was entirely different from “you”; the “puppet” has a somewhat sleazy objective so it helps to be separated a step.

(In addition to our name, the game asks to pick a difficulty level, 1 to 3 — I’ll come back to this later.)

Henry — that is, the avatar, not us — is wanting to go on a night on the town, and do so by stealing his wife’s cash and sneaking out. His final goal is to turn his 50£ into 100£; however, his alert wife is waiting with an axe and will do Henry in at any mis-step.

Waking up the baby? Axed to death. Tripping over a cat? Axed to death? Wandering out to the bar to spend all his wife’s money on beer and then amble home? Still axed to death, but this time with feeling.

Each location in the game has graphics; first the graphical view is shown, then a text description.

The parser is extraordinarily slow. To be fair, all the Brit-games for ZX Spectrum have been slow, but this one is spectacularly slow, as in the machine needs to be cranked to 7x or 8x times speed to even have a reasonable response time. The author’s previous games didn’t have this problem, so I don’t know what happened; the only other comparable game I can think of is the unoptimized version of Basements and Beasties.

That might be acceptable if the parser was good; it is not.

> examine bed

You examine the china utensil!
Inside it’s rim is a small key

Yes, examine just ignores whatever noun you put and chooses one for you. In general, the parser only accepts the right command it is fishing for and no others.

After “open door”.

Through door 1.

I eventually stopped trying to interact with things, here I was still flailing.

Through door 2 is the room with the baby, and once you enter the baby starts crying.

You can “give dummy to baby” in order to calm him down, then grab an old lamp from the floor and pop over to door 3.

The cabinet has some OIL that you can use to FILL LAMP, and then as long as you’ve picked up the matchbox you can LIGHT LAMP. This is needed because the room beyond the door is dark and you’ll trip over the cat and die (via axe) without light. The rest of the map, incidentally, also requires you to hold the lamp lest the same fate be suffered (including in, say, a bar or a casino).

The matches are used passively, you just go direct to LIGHT LAMP while holding them.

Past the door is a “lounge”, and examining the couch will examine the family portrait instead (of course) revealing a safe. With the key from earlier in hand you can open the safe…

…and then get dropped into a mini-game.

Here’s where difficulty comes into play: it determines our number of lives which apply through this game and the mini-game immediately following this one.

Here, we move slowly back and forth and pound bills slowly appear on the ground while the cat wanders around trying to trip us underfoot. Number keys move up and down, Henry moves either left or right automatically. and if Henry has hit the far side of the scrolling screen, he turns around the other direction.

Picking up a bill creates a dot on the ground and you can trip over the dots and lose a life; the cat also is death. Strategy-wise, I found it best to start by just moving up and down quite a bit while the bills started piling on the ground, and then once the screen was dense enough to find a horizontal stretch with lots of money and let Henry just go (he might trip over a cat on the way, but that’s only one life).

Immediately after this game comes Frogger.

It took me exceedingly long to get through here; one thing I was doing wrong at the start was pounding the keys (5 through 8, 5 is left, 8 is right) rather than just holding, which registers the movement a little better but does make it difficult to stop.

The traffic moves left to right, and the key rather confusingly moves constantly to the right but wraps around from the right side of the screen to the left. You have to push “down” on the key to pick it up, and the time is very tight to both grab the key and make it back — you basically can’t spend any time at all adjusting and have to jump into traffic right away. I did one step left, and then held down; this let me get down about two-thirds of the way, and then I had to let the key go for a moment to avoid jumping under a car, then pressed it to resume. Then I had to immediately turn back direction and pray as the timer is such you can only win with two or three seconds to go at most.

Note how the game is here referring to Henry, while in the parser it refers to you.

With the keys in hand you finally get to wander outside.

Other than a jail (if you wander into it, game over) and your house (which you have to voluntarily enter back into, but Martha is waiting, game over) there’s a casino, bar, and cinema.

The card is just laying around outside; you’ll need it for the casino.

The bar must be visited first. A drunk will ask you to buy him a drink; do so, and he’ll give you a movie ticket.

With the ticket you can get into the movie theater… .

…where there is a tie lying around. You should wear the tie, because the club requires a tie in the dress code to get in.

Once in, you need to play one more mini-game to win: bet on the Wheel of Fortune. You can distribute 1 pound at a time on multiple numbers, or put them all on the same number, or do some mix; after you do so, the wheel spins around. The number of spins it makes gets the odds that a winner receives back.

Having picked five numbers, and the Wheel mid-spin.

At this point the game was tiring me so I just used save states. Fortunately, if you save, spin, and see the wheel hits a particular number, reloading and betting on that specific number will not change that behavior. That makes it easy to win to the end, and be rewarded with text-character graphics dancing ladies.

That’s it. Everything’s over. Hitting a button resets the game. Given Henry’s wife is still waiting with an axe I expect his night of pleasure to be cut short off-screen.

This sounds almost amusing just narrated out, but the incredibly finicky parser hid some extremely basic puzzles and some amazingly painful mini-games.

Dismal and painful to play. It was well known back in 1983, as Mikro-gen spent a bit on publicity. You were meant to get into the tongue-in-cheek mood of the game, but it is so bad that you’d rather get a dental drilling.

— Exemptus, from Computer Adventure Solution Archive

Slow, terrible puzzles and some god-awful arcade sequences.

— Gunness, also from Computer Adventure Solution Archive

Computer & Video Games did a October 1983 review (not too far off from when the Mikro-Gen version came out) and it was a full page as scathing as I’d ever seen from that era.

The review goes into technical issues with the game itself and calls it “user hostile”.

I tried doing useful things with the potty, but was not rewarded. I tried opening the window without success. I opened the door, and found myself in a corridor, from where I entered a bathroom, complete with “throne” and toilet roll. Neither of these objects reacted when I tried to use them, nor could I have a bath. I concluded that I was extremely clean and must be in need of a laxative.

A very slow parser where a fair number of the commands are going to get sucked up due to objects just not being implemented ends up being one of the most intensely frustrating experiences 1982/1983 can offer.

There’s probably something interesting to be said regarding the “degenerate hero” genre in Britgames; 1983 games will include Denis Through the Drinking Glass where the husband of Prime Minister Margaret Thatcher really just wants to go get a drink. We’ll have to build up to some other games before making any conclusions, I reckon, including — unfortunately — another game from 1983, Mad Martha II.

Via Mobygames. “If you upset the Pope, on your own head be it. I’m not going into the fiery furnace because of your irreverance. And speaking of the Pope — don’t in front of Ian Paisley unless you want a right earful of the Armagh twang.” I’m sure this made sense to Brits of the 80s, but I’ll save researching for another time.

Thursday, 02. January 2025

Post Position

A Glance at NaNoGenMo 2024

It’s already been a full month since the most recent National Novel Generation Month (NaNoGenMo 2024). I surely should have written up some thoughts sooner. Other computer-generated texts have kept me busy, though! The anthology I edited with Lillian-Yvonne Bertram, Output: An Anthology of Computer-Generated Text, 1953–2023, was published on November 5 and we’ve been … Continue reading "A Gla

It’s already been a full month since the most recent

National Novel Generation Month (NaNoGenMo 2024). I surely should have written up some thoughts sooner. Other computer-generated texts have kept me busy, though!

The anthology I edited with Lillian-Yvonne Bertram, Output: An Anthology of Computer-Generated Text, 1953–2023, was published on November 5 and we’ve been going to discuss it, read from it, and hear people’s reactions. More information about Output can be found in my previous blog post, which I’m updating to reflect upcoming events.

Many of the selections in the book are excerpts from NaNoGenMo projects — not only ones in the Novels section, because this activity inspires people to do all sorts of more-than-50,000-word projects.

I do notice that while everyone seems to be in a rapt fervor about generative AI, and there is an overabundance of POD books produced using commercial LLM-based systems, this is what’s happening with NaNoGenMo:

2020: 56 completed projects.
2021: 56 completed projects.
2022: 33 completed projects.
2023: 23 completed projects.
2024: 22 completed projects.

I haven’t yet retooled as a data scientist, but it seems that fewer and fewer projects are being completed in recent years. I also feel that more of the projects are not in the spirit of the original NaNoGenMo, which called for a sample “novel” to be shared along with code. Some participants employ proprietary commercial LLMs, so sharing code is not (in my understanding of the requirement) a possibility. Of course, opinions vary. Hugovk and the community have been accepting of projects of this sort, so I won’t clamor to kick them off GitHub.

Worth noting, however: Not all LLM-based NaNoGenMo projects are unfree. If open/free LLMs are part of one’s project, they can be shared along with the code used to invoke them. That’s how Barney Livingston restaged his novel generator based on frames of the movie A.I. He even ran the model locally, a great alternative to Bitcoin mining for heating your house during the bleak November. While he found the results more coherent, he notes: “I think repeating this with future tools will result in even blander results, AI was much more amusing back when it was shonkier.” There’s another way that even a commercial LLM-based system can be used with sharable code as the result: Have the system generate the code from very high-level instructions, as Chris Pressey did with The Resistance. The result has its compelling moments and charms — police_station is always written in snake case, for instance, and consider the paragraph: Maria Smith responded, “We need to act on the situation.” while outlining the situation. antagonist replied, “What’s our first step?” With 9483 lines of code in 77 source files, it’s no wonder that Pressey considers the generated system to have a “glorious trainwreck-y quality.”

Whatever’s going on with NaNoGenMo trends in the 20s, my own enthusiasm for this online event is undimmed. I contributed an offhand project this year, The Fall. I’m more keen on the code (a single page) than the output, if that makes any sense. The composition technique my generator uses is perhaps less sophisticated than the similar one employed by Vera Chellgren’s Algorithm Pretending to Be AI. I learned that co-creator of BASIC Thomas E. Kurtz had died during the month, and decided to do something as a tribute to him: My project is implemented in a modern-day BASIC. The BASIC programming language, which became the lingua franca of home computing, prompted many of us to explore the creative potential of the computer, and to use it as a language machine, in fun and literary ways. So perhaps there would have been no NaNoGenMo without BASIC?

Somewhat related, I was pleased to see that Charles Mangin started his project on an Apple II (although in 6502 assembly, not BASIC) and wound up with a fine mash-up of Frankenstein and Jane Eyre produced by a one-line bash script. And speaking of scripts, I was intrigued by the beginnings of a generated primer for Shavian, an alternate alphabet for English. Another innovative project, based on craft tradition and making connections between number, color, and verbal art, was Lee Tusman’s quilt poems.

One of the first people to start work in 2024, James Burt, posted some about his work. “Working with the LLM fills me with awe,” he wrote, at first, of these systems’ prodigious ability to generate text. At the end of the process, though, he found that “It was an interesting experiment, although the book produced was not particularly engaging. There’s a flatness to LLM-generated prose which I didn’t overcome.” I wonder if such deflation was shared by other NaNoGenMo participants who have been around for a while and are trying out LLMs, or are new to the game and are trying out LLMs? I did like some projects using Transformer-architecture models based on massive text corpora, but they were the ones that were conceptually clever and extreme: Barney Livingston’s re-creation of A.I. A.I. by an A.I. and Chris Pressey’s taking AI assistance with coding way over the top. And, Livingston did end up saying that he probably wouldn’t redo his experiment again, and that he “strongly suspect[s] we’re well into the diminishing returns stage of large language models.”

But we need not use LLMs, or even more concise statistical models. Plenty of other directions are being explored. I look forward to their being several dozen generated book projects in years to come, using models large, small, existing, and … novel.


Choice of Games LLC

Scales of Justice—Will you challenge Fate—or follow it?

Hosted Games has a new game for you to play! Journey into the magical world of Therania, a place where heroism and villainy are paths of Fate that can be foreseen in one’s destiny. Join forces with four eccentric individuals with puzzling goals and fight, plan, persuade, or run as you attempt to get a grip on your own legacy!  Scales of Justice is 40% off until January 9th! Julia developed this gam
Scales of Justice

Hosted Games has a new game for you to play!

Journey into the magical world of Therania, a place where heroism and villainy are paths of Fate that can be foreseen in one’s destiny. Join forces with four eccentric individuals with puzzling goals and fight, plan, persuade, or run as you attempt to get a grip on your own legacy! 

Scales of Justice is 40% off until January 9th!

Scales of Justice is a 600,000-word interactive novel, the first volume in a planned series by Julia Owl. It’s entirely text-based–without graphics or sound effects–and fueled by the vast, unstoppable power of your imagination.

Rumours circulate the streets of Capital. Rumours of an artefact, as dangerous and powerful as one can only fear. Some claim it’s capable of twisting one’s true nature, shaping it much to the owner’s whim; others say that it can identify a soul’s essence, putting the Ritual of Fate in a tight spot for the first time in centuries. The mage who made it is unknown; whispers in shadows only talk about a labyrinth, set somewhere hidden to protect its power. Many want to get it; many others, to destroy it. You? You are none of those–you just want to live.

And yet, your (almost) safe and peaceful life as a humble adventurer is threatened by a letter with today’s date on it, written in your mother’s hand…

  • Play as male, female or nonbinary; gay, straight, bisexual, or asexual.
  • Meet four distinct characters, with stories and ideals that highly differ from one another: a runaway heir, a rogue knight, a lost alien, and a foreign leader. Romance, befriend or doom them, and watch their tales shape your own.
  • Choose one of the three species available and discover your own worldview and the world’s view of you. What is it like to be a human, a half-elf, or a half-satyr in this vast realm?
  • Fight, conjure, heal, plan, or persuade–choose your path and deal with trouble in your own way.
  • Buy yourself a horse! You want one, don’t you? 
  • Learn, think, doubt, conclude. This world has a pre-written destiny – will you abide by it or challenge it? Who are you, and who will you become? 

Who is worthy of holding the scales?

Julia developed this game using ChoiceScript, a simple programming language for writing multiple-choice interactive novels like these. Writing games with ChoiceScript is easy and fun, even for authors with no programming experience. Write your own game and Hosted Games will publish it for you, giving you a share of the revenue your game produces.