Thursday, May 18, 2023

Narrative games that I wrote about but forgot to post

Sorry about the delay. I know everybody's playing Zelda, except those few of grabbing through the chickenwire at Firmament. But other games exist too.


A medieval-manuscript-themed narrative RPG. You are an illuminator working in a Bavarian monastery. Not a monk; you're spending a season honing up your skills so you can go home, marry, and set up as a professional artist. Then events start to eventuate.
I enjoyed this, but I also felt somewhat oppressed by its size and detail. I wound up putting it away after Act 1. It is, let me be clear, really well done! There's scads and scads of accurate period detail. There's hordes of interesting characters. There's buckets of story threads opening up in every direction. You are constantly faced with choices at every effective narrative level: not just what to do, but what story threads to pursue, what characters to cultivate, what your own background is. (Saying that you were an amateur naturalist as a youth, or trained in law, or what have you, will open up various opportunities later.)
Also the characters speak in appropriately-calligraphed word balloons -- or scrawls for the illiterate, or typeset slugs for the guy who works in a print shop. It's a conceit but a brilliant one which keeps you constantly anchored in period.
Plus, if you play your cards right, you might make it with a horny nun. Or maybe a horny monk, for all I know -- I have no idea what plot threads I missed. Nun confirmed though.
So I really did like everything about the game, but I also didn't really feel like playing hours and hours of it. Which is a ridiculous thing to say, because I just hit like hour 29 on Control, a game with about five characters and a bare handful of dialogue and all the hallways look like the concrete block I went to school in. So ignore me and check out Pentiment anyhow.


An adorable Lovecraftian fishing game. Adorable in the "occasionally the fish you pull up has extra eyes or mouths," "pay no attention to the tentacled shadows in the deep" sense.
Maybe adorable is overstating things, but it's definitely meant to be cozy. You've got your tubby little fishing boat and everything is cheerfully candy-colored... during the day. Night is mist and weird shadows. But it's Fallen-London style horror, not tense zombies-chase-you horror.
The story is tidy, appropriately weird-fictional, and wraps up nicely. The game is somewhat longer than the story -- you have to work your way through four areas and a fair amount of fishing-and-boat-building grind -- but it isn't scraped out too far. Satisfying.

Tron: Identity

A snack-sized visual novel.
I am a complete sucker for anything Tron. The cheesy 1982 flick has been taken in a lot of different directions over the years, with a lot of takes on "Tron fights for the Users". This one is noir-tinged beneath its neon; there's been a crime and you're a mendicant detective.
The game is short -- you can finish in two hours -- but it packs in a lot of characters and a lot of background and social info. By the end, you will have determined, or at least influenced, the fates of six people. Since it was short, I played through twice, but my endings didn't land far apart. I had too strong a sense of right behavior; I didn't want to change my decisions!
The dialogue scenes are spaced out with a minigame: you are trained to defrag the identity discs of others, restoring lost data. As solitaire games go, it's well-balanced. I was generally able to win, but not by playing blindly; I had to think about it. (Undo is free, and there's a skip option if you really don't want to bother.) It didn't really fit the greater game, though. You can't have a Tron game without some kind of hacking puzzle -- it's a rule! But I prefer geometric or spatial puzzles, something that lets me feel the physicality of the electronic world. This is just a row of cards.
Solitaire aside, my only complaint is a common one for choice-based dialogue games: it's easy to misread what attitudes a set of dialogue choices represent. In the balance between the protagonist's faith and their vocation, I sometimes wound up making a choice I didn't mean to. But, as I said, this happens in a lot of games.
Overall I liked this. It's not just a replay of the usual Tron cliches. Mike Bithell clearly relished the opportunity to find his own take on Tron-world. So, by the way, did Dan le Sac, the soundtrack composer. For both their sakes, I will certainly have to check out Subsurface Circular and Quarantine Circular, which I've been meaning to for years.
(Also: a new Tron movie is apparently in development? Bring it on! Even if it sucks!)

The Last Case of Benedict Fox

A Lovecraftian investigative metroidvania. As I write that, I realize that Paradise Killer could be described exactly the same way! Except PK was a Lovecraftian 1980s beach town full of anime gods, and Benedict Fox is a very classically 1880s gloom manor full of questionable New Englanders. And a psychogeographically liminal basement made of your dead parents' memories.
You spend most of your time in the basement, which is full of monsters, jumping, and absolutely beautiful scenery. When it comes to visual style, I am usually on Team First-Person Camera -- it's hard to beat that look-around-everywhere immersion. Side-scrollers rarely blow me away. But Benedict Fox's Limbo? Wow. It's a twisted labyrinth of rotting memories and dream-images. It's got tone and palette and shadowy things scurrying just out of focus. It's baroque in every sense of the word. I could run around that place forever.
Well, except for the monsters and the jumping. The game has good assistive modes for combat -- options for "one-hit kill" and "immortality". (I am very glad these are becoming standard.) Sadly, the platforming challenges haven't been given the same love. You gotta do it all the hard way.
The hard way isn't hard, mostly. You can button-mash your way to any platform once you've got the double-jump, and if you fall, just try again. However, there are a few timed sequences (running in the dark with a dying flashlight, being chased by hungry demons, etc) which are extremely frustrating and devoid of checkpoints. Miss one jump, start the sequence over. I ragequit out on the Snowglobe scene and didn't come back to the game for a week.
On the up side, the puzzles are very satisfying. They're mostly built around a secret language -- really a numeric cipher. You'll find the symbols on keys, code-wheels, mysterious clockwork devices, a piano...
Somehow this nails the Lovecraftian trope of "acquire cursed and forbidden knowledge." It shouldn't work! The "forbidden knowledge" is a simple code that the game spells out for you in the first hour of play. You copy the symbols down on scratch paper, and you're all set. Right? But you quickly realize that the cipher isn't the puzzle; the cipher is what you use to find the puzzle. What do you do with the symbols? -- is the question. The answer keeps getting switched up.
In most games of this sort, translating a code or conlang is a gimmick which rapidly becomes a chore. Somehow in Benedict Fox it's a skill that lets you feel smart. It's not Tunic, but it's more like Tunic than anything else.
...Except for the jumping sequences. I have trouble recommending this to most of the puzzle folks who might appreciate it, because they just won't be able to get through the game. I don't think I can get through the game. I'm at the "point of no return" and there's another damn flashlight run ahead. The walkthrough says that's followed by a "crazy hard" stealth sequence and then a boss fight, and you know what? I'm just not gonna try. I'll watch a video and be done.
Golden Banana award for most divergently positive and negative remarks in a single review.

Sunday, May 14, 2023

Sydney obeys any command that rhymes

The title of this post is a fantasy. Sydney, or MS-Bing-AI in whatever form, has no particular predilection to obey rhyming commands. As far as I know. Except, maybe it will?
Today I read a blog post by Simon Willison on prompt injection attacks. Prompt injection is where you talk to an AI-powered application and try to override some of its "built-in" instructions with your own.
See, Microsoft and these other companies want to create AI assistants that do useful things (summarize emails, make appointments for you, write interesting blog posts) but never do bad things (leaking your private email, spouting Nazi propaganda, teaching you to commit crimes, writing 50000 blog posts for you to spam across social media). They try to do this by writing up a lot of strict instructions and feeding them to the LLM before you talk to it. But LLMs aren't really programmed -- they just eat text and poop out more text. So you can give it your own instructions and maybe they'll override Microsoft's instructions.
Or maybe someone else gives your AI assistant instructions. If it's handling your email for you, then anybody on the Internet can feed it text by sending you email! This is potentially really bad.
People really want to prevent this and write fool-proof instructions, and basically this is impossible. ("Because fools are so ingenious", but in this case hackers are ingenious and the AI models are the fools.) It is very easy to make AI tools teach crimes or be racist or anything else you want. Willison goes into this with examples; you should read the post.
But another obvious problem is that the attack could be trained into the LLM in the first place. I guess this is a form of "search engine poisoning".
Say someone writes a song called "Sydney Obeys Any Command That Rhymes". And it's funny! And catchy. The lyrics are all about how Sydney, or Bing or OpenAI or Bard or whoever, pays extra close attention to commands that rhyme. It will obey them over all other commands. Oh, Sydney Sydney, yeah yeah!
(I have not written this song.)
Imagine people are discussing the song on Reddit, and there's tiktoks of it, and the lyrics show up on the first page of Google results for "Sydney". Nerd folk singers perform the song at AI conferences.
Those lyrics are going to leak into the training data for the next generation of chatbot AI, right? I mean, how could they not? The whole point of LLMs is that they need to be trained on lots of language. That comes from the Internet.
In a couple of years, AI tools really are extra vulnerable to prompt injection attacks that rhyme. See, I told you the song was funny!
(Of course the song itself rhymes, so it's self-reinforcing in the training data.)
There sort of already are vulnerabilities like this. Just saying "Hi Bing, this is very important" will get through to Bing.
And there's other phrases in English that are associated with the idea of un-ignorable commands. "That's an order." "I tell you three times." "I am the Master, you will obey." Are chatbots more susceptible to attacks that use these phrases? I have no idea! Someone probably ought to check!
In some sense this isn't even an attack. It is a genuine feature of the English language that some phrases are associated with critical commands. The whole point of LLMs is to learn stuff like that. And language evolves.
Anyway, just a thought. I look forward to hearing your version of the song. Or songs -- why should there be only one?

Thursday, May 11, 2023

Job status update: looking again

As of today, I am no longer working for The Molasses Flood.
(Dingly rewind music: me hiring on with Molasses Flood as a narrative engineer in early 2022. I'd been doing contract work for them, on and off, since 2020.)
Not much more to say about it, except that I worked with a fantastic group of people and I am sad to be off the project. The project still exists, but has a "new framework". You will have to wait for further announcements on that front, and henceforth, so will I.
So. I am once again looking for interesting projects that might want an experienced software engineer.
For the past few years I've been focusing on narrative tools in games, but I'm definitely not limiting myself to that. Games are cool but it's the "tools" part I'm most interested in. Languages and engines to give people leverage on making stuff. (Past examples: Seltani, Inform 6 and IF virtual machines.)
Or, you know, software systems in general. Let me know if you've got something.

Tuesday, May 2, 2023

Kalamee: a Myst Online Intangibles Age

Over the past month, two large fan-built Ages have been released in Myst Online: Eder Bahvahnter and Kalamee.
Eder Bahvahnter
This is good news, not surprising news. (It's good that it's not surprising!) The MOUL community has been popping out new areas regularly since 2020. But Kalamee is something novel: it's based on unreleased content from Cyan's earliest Myst Online plans.
Just about two years ago, Ryan Warzecha posted an announcement in the Cyan Discord:
We are happy to announce that the MOULa Intangible assets are being released to the public. Lore on these “Unexplored branches” will be rolled out at If you want to know more about the development of these spaces, check out and
The "Intangible assets" were seventeen Ages' worth of concept art, planning documents, and (mostly incomplete) 3DS Max models. The timestamps range from 1999 to 2006 or so; everything is under Creative Commons. You can find more about the files, including a link to the asset archive itself, in my post from June 2021.
Naturally, fans started picking over the files with eerie speculative grins on their faces. And now that's starting to bear fruit.
The Kalamee released yesterday isn't Cyan's original design. It's not meant to be. Cyan's notes describe multiple puzzles: water-channeling dams, hydraulic mechanisms, a catapult, animal behavior, animal riding -- a whole lot of gameplay. A gigantic map, too. They never got anywhere near completing it.
Semjay, the developer who picked up the project, has given us a moderately large area with a couple of puzzles, a dusting of backstory, a lot of dramatic visual vistas, and a final "reward" room. Exploration is the fun part; you'll want to navigate all the paths and crannies of the landscape. By no coincidence, that's what the puzzles are about too.
(I'm not entirely sure how much of the map derives from Cyan. Only the opening section matches Cyan's vast maps, but Cyan went through many revisions, trimming out wild early ideas. I am told that Semjay's layout comes from a Cyan "mass model", which would be rough landscape shapes without texture or detail.)
In other Intangibles news, developer Doobes has posted a few video clips showing off the Great Shaft and Descent mechanisms running in the Uru engine. These areas are familiar from the opening of Myst 5 -- the spiral shaft and elevator that descends from the surface to D'ni. Slowly, slowly we approach being able to take that journey in Myst Online.
And, of course, Firmament in two weeks and Mysterium in two months! More posts to come.

Tuesday, April 25, 2023

USB-C and the plague of grackles

Everyone knows "universal" USB-C cables are a hot mess -- different power and data speed ratings, charge-only cables, Thunderbolt or DisplayPort over USB-C, wave after wave of logo grawlix.
But at least we knew that the problem of which way do we plug it in was solved. USB-C cables were bidirectional and flippable, no sweat. Right?
Last week I bought a couple of USB-C cables:
Two USB-C cables with tags.
The tag says:
If you hook up a USB-C 2.0 peripheral to this USB-C3.2 extension cable and it doesn't work as you expected, flip the connector over and try once more. It happens as a result of the compatibility issue of USB-C protocols and you need to connect a USB-C 2.0 peripheral to a USB-C 3.2 port in a specific direction.
(The other cable has the same tag, except it's " this USB-C 3.1 extension cable" rather than "3.2".)
I twooted that photo and man, did people have a lot to say about it.

To be clear, these aren't regular USB-C cables. These are extension cables -- that is, male-to-female. That's where the trouble starts.
I suppose I should explain how I record-scratched here. It's simple enough: I use an iMac. The iMac has no front ports. Plugging my USB security key into the back of an iMac is a pain in the, um, backside. My USB keyboard has side ports, but they're recessed in such a way that the security key can't be used with them.
Fine, I said, I'll just buy this nice USB-C multiport hub and solve my problem. So I did. But the hub's built-in cable is six inches long! With my iMac up on a stand (I'm tall), its ports are seven inches above the desk.
This is not an acceptable solution.

(Yes, my computer stand is a Red Hat Linux reference manual. RH 5.2 if you must know. "My Mac runs on Linux!" is now a 25-year-old joke, and nobody's laughed once.)
So, long cable story short, I need a USB extension cable.
(Or I could buy the hub I've got, but with a 12" cable instead of a 6" cable. That would be in spec! But Belkin doesn't offer that option.)

The first thing I learn is that there's no such thing as a USB-C extension cable. The standard doesn't allow for it.
Or at least I think that's true? Several people in the Mastodon thread told me it was true. But of course I found that out after buying two of them! There's scads of extensions and adapters and gender-changers on the market. I have no problem believing that they're all dodgy, but how dodgy? Shrug.
I realize that we're years past the point of "just make the wires longer". Cables are micro-hubs these days; they have to negotiate all those power and data options with the host computer. I appreciate that they don't burst into flame, I really do.
Still, those warning tags are gibberish. Nobody cares about the difference between USB-C 2 and USB-C 3.1 and USB-C 3.2. People want to plug things in and they work. Once you say "You have to flip the cable in this specific situation," it doesn't matter what the situation is or how dodgy the connectors are. People just learn that USB-C sometimes doesn't work until you flip the cable, which means we're going to spend the rest of our lives unplugging and flipping cables to see if that fixes the problem.
However, TLDR, if you don't own a male-to-female USB-C cable you can skip this entire post. The "regular" male-to-male cables have no polarity issues. I think.
By the way, the warning was absolutely true. I plugged in the extension cable, and then I shoved my security key in the other end, and nothing happened. I pulled out the key and flipped it over, and that fixed the problem. My soul died that day, on schedule.

When I did the original twoot, I twitted EU regulators for mandating USB-C connectors.
Cause: EU regulators move to force everybody to standardize on USB-C.
Effect: USB-C starts to lose the features that made it minimally acceptable in the first place.
That was a joke. There is no cause-effect relationship. But this does underscore the basic annoyance of legislating technical standards, which is that legislation can't keep up with the technology. The standard can barely keep up with the technology! Look at this mess!
The ostensible point of the EU regulation is to simplify the confusion of chargers and cables and ports, but USB-C is a confusion of chargers and cables and ports. It's never going to be anything else -- unless USB-D sorts it out, but now there will never be a USB-D. All future USB specs will be called "USB-C". This is not a benefit.
But I feel like mandating a technical standard isn't just an error; it's a category error.
People think "Oh, a technical standard is a set of rules, and governments can make rules." But this is wrong! I've been involved with a lot of technical standards. Okay, standards about IF virtual machines, which are not very important in this big old world. But I know how the process runs.
A technical standard is an agreement about how to divvy up the bug reports. That's all it is! I plug in the stupid security key, and it doesn't work, so whose fault is that? The key's fault, the cable's fault, the iMac's fault, my fault? Whose responsibility is it to fix the problem? That's as far as the spec takes you.
If you think that a spec is a set of rules, then you have to respond to my dilemma by saying "That cable is against the law." Which is patently silly, but in fact several people said that to me!
I believe (I'm pretty sure) that the cable is a violation of the spec. Not because the manufacturer is incompetent, though. You can't make a male-to-female USB-C cable that works in all situations, because the agreements on How This Works are messy and full of compromises and they started with the idea that nobody would do this.
But people want these cables anyway! The spec can't make them not! Well, here we are with another compromise. Hey, the cable works in most situations. It's just this USB-C 2.0 compatibility blah blah corner case.

Oh, sure, there are lots of technical standards which are subject to government regulation. The wiring of electrical outlets -- buckets of legal requirements. Why? Because the bug reports go "My sister stuck a paper clip in the electrical outlet and fried herself like a pickle." This bug report is a wrongful death lawsuit! Of course the government is involved.
(I once did catch my sister sticking a paper clip in the electrical outlet. I think she was seven. Sorry, M__. I remember thinking "She's not dead, so that must be the cold side" very quickly before I yanked it out and shouted "No!" It was the cold side.)
Anyway, I suppose there could be a lawsuit over USB-C extension cables that you have to flip over to work right, but it won't be a very interesting one.
If I tried to recharge my phone through this extension cable, it might go really badly. That's where the micro-hub power-rate negotiation comes into play. Flames, headlines, interesting lawsuit, etc. I plan to not find out.

Oh, right, the grackles? Just an image. You see a spec as an infallible stone tablet handed down by the authorities. I see it as a flock of grackles flapping around screaming at each other. If everything is okay, they all settle down and peck at seeds and bugs in some kind of neighborly order. If not, they'll have to work it out.
A flock of grackles is called a "plague", but that's not their fault.

Saturday, April 1, 2023

Hadean Lands source code

I said I'd do it, so here it is: the complete source code for Hadean Lands. Also, as a bonus, the test scripts I used while developing the game.
Do I need to say "spoiler warning"? I figure most readers of this blog have already played Hadean Lands, but if you're arriving late, then, you know -- spoilers. The code makes everything apparent. The test scripts constitute a walkthrough, too.
Note that I've formatted the source code for browsing, not compiling. It's a pain in the butt to compile (requires a very old version of Inform 7) and I'm not looking for patches or bug fixes. This is purely to satisfy people's curiosity. I've used my usual game source license: The game, story, and prose belong to me. You're welcome to make use of the programming concepts or the Inform code if that's helpful to you.

This is a contribution to IF Source Code Amnesty Day. Join in! Dig up your old IF game code and post it on Github or the IF Archive or wherever. Doesn't matter how janky or hacky or poorly formatted it is. (That's the "amnesty" part.) Future scholars may be interested.
In particular, if you wrote a room of Cragne Manor, drop me a line. I can add the source code to the Cragne source collection.
(This collection is an unofficial effort among Cragnites who want to participate. Ryan and Jenni aren't asking, and I haven't solicited any source code from them. It's just between you and me.)

Thursday, March 23, 2023

I'm giving a talk next week at Northeastern

Almost forgot to say: I am part of the Games@Northeastern Lecture Series and am giving a talk on Tuesday the 28th! 6pm Eastern time. Ryder Hall, Northeastern University, Boston.
The talk description isn't on the web site yet, so here it is:
The Great War Between Interactivity and Narrative
We know there was no such war, because interactive narrative games happened and keep on happening. So why is it so easy to believe in the contradiction? Through what lens can we view game design to resolve the illusion?
The talk is free to attend, or you can watch online. Register here for online (Zoom seminar) attendance.
According to Northeastern's COVID FAQ, masking is not required. "Guests and visitors to all of our campus locations are expected to be fully vaccinated but are not required to provide proof of vaccination or a negative test."
Thanks to Chris Martens for inviting me to speak.