<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Zarf Updates</title><link href="https://blog.zarfhome.com/" rel="alternate"/><link href="https://blog.zarfhome.com/feeds/posts/default" rel="self"/><id>https://blog.zarfhome.com/</id><updated>2026-05-23T02:21:44+00:00</updated><author><name>Andrew Plotkin</name></author><subtitle>Interactive fiction, narrative in games, and so on</subtitle><category term="80 days"/><category term="a monster's expedition"/><category term="aaron reed"/><category term="abuse"/><category term="accessibility"/><category term="activision"/><category term="adventure"/><category term="adventure games"/><category term="adventures"/><category term="ai"/><category term="alchemy"/><category term="algorithms"/><category term="alt-frequencies"/><category term="an airport for aliens currently run by dogs"/><category term="anchorhead"/><category term="animal well"/><category term="app store"/><category term="apple"/><category term="apple arcade"/><category term="apple tv"/><category term="apple vision pro"/><category term="archiving"/><category term="arfs"/><category term="args"/><category term="arisia"/><category term="arrog"/><category term="art"/><category term="ascension"/><category term="astronomy"/><category term="audio"/><category term="awards"/><category term="backwards compatibility"/><category term="balticon"/><category term="baphl"/><category term="beer"/><category term="bite me"/><category term="blaseball"/><category term="blockchain"/><category term="blockhouse"/><category term="blog"/><category term="blogs"/><category term="boodler"/><category term="book of ti'ana"/><category term="books"/><category term="boston"/><category term="bostonfig"/><category term="brian moriarty"/><category term="bugs"/><category term="call of the sea"/><category term="card games"/><category term="casual games"/><category term="casual rpgs"/><category term="caves of qud"/><category term="chants of sennaar"/><category term="chogon"/><category term="chuck carter"/><category term="citizen sleeper"/><category term="cliff johnson"/><category term="cloudpunk"/><category term="cocoon"/><category term="colossal cave"/><category term="comics"/><category term="conferences"/><category term="console"/><category term="consoles"/><category term="conventions"/><category term="cosmic encounter"/><category term="covid-19"/><category term="craft"/><category term="cragne manor"/><category term="cranky"/><category term="creaks"/><category term="crowdfunding"/><category term="crpgs"/><category term="ctfws"/><category term="cyan"/><category term="cyoa"/><category term="dash"/><category term="davey wreden"/><category term="deadline"/><category term="deater"/><category term="deck-building games"/><category term="deirdra kiai"/><category term="delve films"/><category term="design"/><category term="diane duane"/><category term="digital antiquarian"/><category term="doctor who"/><category term="documentary"/><category term="doobes"/><category term="dreamhold"/><category term="dungeon"/><category term="echo bazaar"/><category term="echoes of the eye"/><category term="eclipse"/><category term="economics"/><category term="edifice gumshoe"/><category term="eliza"/><category term="elon musk"/><category term="emily short"/><category term="endings"/><category term="enshittification"/><category term="episodic games"/><category term="eric anderson"/><category term="extrasolar"/><category term="faction paradox"/><category term="fanfic"/><category term="firmament"/><category term="flash games"/><category term="flashpaper"/><category term="game design"/><category term="games"/><category term="gdc"/><category term="genre"/><category term="get lamp"/><category term="glk"/><category term="glulx"/><category term="graham nelson"/><category term="graphical adventures"/><category term="greenlight"/><category term="greydragon"/><category term="guild of archivists"/><category term="guillaume lethuillier"/><category term="hadean lands"/><category term="hannah gamiel"/><category term="heaven's vault"/><category term="heliopause"/><category term="her story"/><category term="history"/><category term="horror"/><category term="hugos"/><category term="hulu"/><category term="humble"/><category term="humble store"/><category term="hypercard"/><category term="hypertext"/><category term="ico"/><category term="if"/><category term="ifarchive"/><category term="ifcomp"/><category term="ifdb"/><category term="iftf"/><category term="igf"/><category term="immortality"/><category term="indiecade"/><category term="indiepocalypse"/><category term="indika"/><category term="infocom"/><category term="inform"/><category term="inform 6"/><category term="inform 7"/><category term="ink"/><category term="intangibles"/><category term="interactive comics"/><category term="interactive fiction"/><category term="interpreters"/><category term="interviews"/><category term="inua"/><category term="inventory"/><category term="ios"/><category term="iosfizmo"/><category term="iosglk"/><category term="iosglulxe"/><category term="ipad"/><category term="iphone"/><category term="irc"/><category term="islands"/><category term="itch"/><category term="itch.io"/><category term="jams"/><category term="jason scott"/><category term="jason shiga"/><category term="javascript"/><category term="jayiscomp"/><category term="jayisgames"/><category term="jenni polodna"/><category term="jim munroe"/><category term="job"/><category term="john m ford"/><category term="jon ingold"/><category term="journey"/><category term="karateka"/><category term="ken williams"/><category term="kickstarter"/><category term="kld"/><category term="kory heath"/><category term="lake"/><category term="language"/><category term="layoffs"/><category term="lectrote"/><category term="legacy of kain"/><category term="legendary"/><category term="lego"/><category term="leviathan"/><category term="life"/><category term="lightmatter"/><category term="link farm"/><category term="linking book"/><category term="llms"/><category term="los angeles"/><category term="m37"/><category term="macos"/><category term="magic"/><category term="maps"/><category term="mark deforest"/><category term="mastodon"/><category term="mateusz skutnik"/><category term="mazes"/><category term="meanwhile"/><category term="memory blocks"/><category term="metapuzzles"/><category term="michael gentry"/><category term="microsoft"/><category term="mit"/><category term="mmo"/><category term="mmos"/><category term="mobile"/><category term="movie"/><category term="movies"/><category term="mud"/><category term="muds"/><category term="music"/><category term="my secret hideout"/><category term="myst"/><category term="myst online"/><category term="mysteriacs"/><category term="mysterium"/><category term="mystery hunt"/><category term="narrascope"/><category term="narrative"/><category term="neptune"/><category term="neural nets"/><category term="nick montfort"/><category term="nonlinear"/><category term="nonprofit"/><category term="norco"/><category term="noshowconf"/><category term="nostalgia"/><category term="not games"/><category term="obduction"/><category term="observation"/><category term="off-topic"/><category term="okidata"/><category term="old papers"/><category term="open source"/><category term="oregon trail"/><category term="outer wilds"/><category term="pacing"/><category term="paradise killer"/><category term="parser"/><category term="patents"/><category term="patreon"/><category term="patrick dulebohn"/><category term="pax"/><category term="philadelphia"/><category term="philip shane"/><category term="phogg"/><category term="photos"/><category term="physics"/><category term="pittsburgh"/><category term="plague"/><category term="planet of lana"/><category term="pocket storm"/><category term="poetry"/><category term="politics"/><category term="portal"/><category term="possibility space"/><category term="pr-if"/><category term="practice"/><category term="preservation"/><category term="prif"/><category term="prince of persia"/><category term="printed artifacts"/><category term="procgen"/><category term="professional validation for the win"/><category term="programming"/><category term="prompt engineering"/><category term="prytania"/><category term="purple blurb"/><category term="puzzle books"/><category term="puzzle boxes"/><category term="puzzle hunts"/><category term="puzzles"/><category term="python"/><category term="quick links"/><category term="quixe"/><category term="rand miller"/><category term="realmyst"/><category term="return to monkey island"/><category term="reviews"/><category term="rime"/><category term="rise of the golden idol"/><category term="riven"/><category term="road trips"/><category term="roadwarden"/><category term="roberta williams"/><category term="robyn miller"/><category term="rpgs"/><category term="rss"/><category term="ruminations"/><category term="rusty lake"/><category term="ryan veeder"/><category term="ryan warzecha"/><category term="sales"/><category term="science fiction"/><category term="search"/><category term="seattle"/><category term="security"/><category term="selenitic"/><category term="seltani"/><category term="sexual assault"/><category term="sfwa"/><category term="shade"/><category term="shadow of the colossus"/><category term="sherlock holmes"/><category term="shipping"/><category term="skia"/><category term="skiasharp"/><category term="slack"/><category term="social media"/><category term="software"/><category term="soul reaver"/><category term="source code"/><category term="space paranoids"/><category term="spider and web"/><category term="spirit ai"/><category term="spore"/><category term="sports"/><category term="starry expanse"/><category term="static site generators"/><category term="steam"/><category term="steam deck"/><category term="steampal"/><category term="steve meretzky"/><category term="stray gods"/><category term="stross"/><category term="structure"/><category term="sub-q"/><category term="subcutanean"/><category term="submachine"/><category term="subscriptions"/><category term="sunset"/><category term="survival horror"/><category term="susan cooper"/><category term="swarthmore"/><category term="system's twilight"/><category term="tabletop games"/><category term="tacoma"/><category term="tagging"/><category term="talks"/><category term="teaser"/><category term="television"/><category term="telltale"/><category term="terminology"/><category term="terps"/><category term="text"/><category term="the beyond"/><category term="the case of the golden idol"/><category term="the cosmic wheel sisterhood"/><category term="the dark is rising"/><category term="the fool and his money"/><category term="the fool's errand"/><category term="the molasses flood"/><category term="the past within"/><category term="the prisoner"/><category term="the roottrees are dead"/><category term="the talos principle"/><category term="the thaumaturge"/><category term="the witness"/><category term="the wreck"/><category term="thematic apperception"/><category term="theory"/><category term="thinkycon"/><category term="tinyapp"/><category term="too many authors to list"/><category term="tools"/><category term="toronto"/><category term="trademarks"/><category term="trailers"/><category term="transcripts"/><category term="transient"/><category term="tron"/><category term="tv"/><category term="twine"/><category term="twitter"/><category term="ui"/><category term="unavowed"/><category term="unity"/><category term="uru"/><category term="usenet"/><category term="valve"/><category term="versu"/><category term="vghf"/><category term="videos"/><category term="vince weaver"/><category term="visible zorker"/><category term="vr"/><category term="wadjet eye"/><category term="walking simulators"/><category term="web"/><category term="web services"/><category term="werewolf"/><category term="windows"/><category term="wordless narrative"/><category term="wordplay"/><category term="worldcon"/><category term="writing"/><category term="wumpus"/><category term="xmpp"/><category term="xyzzy"/><category term="xyzzy awards"/><category term="z-machine"/><category term="zarf"/><category term="zarfhome"/><category term="zarfplan"/><category term="zcode"/><category term="zed"/><category term="zil"/><category term="zilf"/><category term="zoe quinn"/><category term="zork"/><category term="zork 3"/><entry><title>A brief digression into Infocom tie-in novels</title><link href="https://blog.zarfhome.com/2026/05/infocom-tie-ins" rel="alternate"/><published>2026-05-23T02:21:44+00:00</published><updated>2026-05-23T02:21:44+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-05-23:/2026/05/infocom-tie-ins</id><summary type="html">Last week someone passed around a link to a post: "Classic Zork Novels, Now in E-book Format!" That's right, it's another instalment of "Somehow, obscure Zork media returned"! This time we're stepping out of the digital realm and into the world ...</summary><content type="html">&lt;p&gt;Last week someone passed around a link to a post: "&lt;a href="https://www.reddit.com/r/zork/comments/1tbv4cb/classic_zork_novels_now_in_ebook_format"&gt;Classic Zork Novels, Now in E-book Format!&lt;/a&gt;"&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;That's right, it's another instalment of "Somehow, obscure Zork media returned"!&lt;/p&gt;
&lt;p&gt;This time we're stepping out of the digital realm and into the world of official Zork (and Zork adjacent) prose. Presented here are four novels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;The Lost City of Zork&lt;/em&gt; by Robin W Bailey&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The Zork Chronicles&lt;/em&gt; by George Alec Effinger&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Enchanter&lt;/em&gt; by Robin W Bailey&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Wishbringer&lt;/em&gt; by Craig Shaw Gardner&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks to the work of dedicated fans, these books have been available as scanned pages for many years in places like The Internet Archive. But with advances in OCR tools, it was now possible for me to convert these pages back into editable text with no compromise to accuracy.&lt;/p&gt;
&lt;p&gt;-- PaulloDEC, &lt;a href="https://www.reddit.com/r/zork/comments/1tbv4cb/classic_zork_novels_now_in_ebook_format"&gt;May 13th&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;See the post for download links. PaulloDEC has now followed up with &lt;a href="https://www.reddit.com/r/zork/comments/1tgehky/zork_gamebooks_now_available_as_ebook_downloads/"&gt;downloads of the four Zork-themed gamebooks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, this is convenient. These aren't rare books. As the post says, you can easily find scans of them (e.g. &lt;a href="https://archive.org/details/lostcityofzork0000bail"&gt;here&lt;/a&gt;). The used paperbacks are also not too hard to track down. I have &lt;em&gt;Wishbringer&lt;/em&gt; and &lt;em&gt;The Zork Chronicles&lt;/em&gt; on my shelves. But &lt;code&gt;.epub&lt;/code&gt; files are easier to tote around.&lt;/p&gt;
&lt;p&gt;The post got me looking at the books again, though. They're rather puzzling artifacts.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;hr /&gt;
&lt;p&gt;The gamebooks aren't that surprising. They were written in 1983, a time when Infocom games were really popular, and Choose-Your-Own-Adventure-TM books were really popular, so why not do some knock-offs and see if they sell? (I have no idea if they sold.) They were written in-house by Steve Meretzky and published by Tor Books.&lt;/p&gt;
&lt;p&gt;Digression from the digression: Tor was a young company (the same age as Infocom!), but it had launched with star power in both its editorial staff and its initial author lineup. Just to name a couple, they had Gene Wolfe, Orson Scott Card, and a promising newcomer who went by Robert Jordan. It seems they were happy to take on some smaller fry as well.&lt;/p&gt;
&lt;p&gt;Again, I don't know what the sales figures looked like, but Infocom didn't follow up with any more gamebooks after the four Zork titles. So it's a fair guess that sales were tepid.&lt;/p&gt;
&lt;p&gt;The books themselves are, let's say, workmanlike. Or maybe the later ones are really good! No, probably not. I confess that I've barely flipped through them. &lt;/p&gt;
&lt;p&gt;Even more disgression: The first gamebook mentions the "Three Palantirs of Zork". (The three crystal spheres in &lt;em&gt;Zork 2&lt;/em&gt; are referred to as "palantirs" in the source code, but the game never says the word out loud.) This mostly indicates that the books weren't notable enough for the Tolkien estate to sue over.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;The novels, on the other hand, are way more interesting.&lt;/p&gt;
&lt;p&gt;Timing, for a start. Here's the full list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://archive.org/details/planetfall00cove"&gt;Planetfall&lt;/a&gt;&lt;/em&gt;, Arthur Byron Cover, 1988&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://archive.org/details/wishbringer0000gard"&gt;Wishbringer&lt;/a&gt;&lt;/em&gt;, Craig Shaw Gardner, 1988&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Enchanter&lt;/em&gt;, Robin Wayne Bailey, 1989 (no scan online)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://archive.org/details/stationfall0000cove"&gt;Stationfall&lt;/a&gt;&lt;/em&gt;, Arthur Byron Cover, 1989&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://archive.org/details/zorkchronicles0000effi"&gt;The Zork Chronicles&lt;/a&gt;&lt;/em&gt;, George Alec Effinger, 1990&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href="https://archive.org/details/lostcityofzork0000bail"&gt;The Lost City of Zork&lt;/a&gt;&lt;/em&gt;, Robin Wayne Bailey, 1991&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As you see, the two &lt;em&gt;Zork&lt;/em&gt; tie-in books shipped after Infocom had dissolved entirely -- and well before Activision brought the brand back with &lt;em&gt;Return to Zork&lt;/em&gt;. Curious!&lt;/p&gt;
&lt;p&gt;The novelization project must have kicked off in 1986 or 1987. At that point, Infocom was in financial straits and had been acquired by Activision. It seems certain that the books were a flailing attempt to find more revenue &lt;em&gt;somewhere&lt;/em&gt;. But unlike with the gamebooks, the original Infocom crew doesn't seem to have been involved at all. Other than a &lt;a href="https://invisiclues.org/library/sl-new-books-planetfall-wishbringer"&gt;1988 press release&lt;/a&gt; in the Status Line newsletter, I can't find any discussion of the novels in Infocom memos or internal discussion. (If you find something in the &lt;a href="https://archive.org/details/infocomcabinet"&gt;Cabinet&lt;/a&gt; that I missed, let me know!)&lt;/p&gt;
&lt;p&gt;My assumption is that Activision set up a deal for six books in three years (or two a year with options to continue), and that's how long it ran. The shutdown of the Infocom office wouldn't have factored in.&lt;/p&gt;
&lt;p&gt;As to the authors... the &lt;a href="https://invisiclues.org/library/sl-new-books-planetfall-wishbringer"&gt;Status Line article&lt;/a&gt; says "new novels by leading authors", which is a stretch. &lt;a href="https://www.isfdb.org/cgi-bin/ea.cgi?1406"&gt;Craig Shaw Gardner&lt;/a&gt; and &lt;a href="https://www.isfdb.org/cgi-bin/ea.cgi?1403"&gt;Robin Wayne Bailey&lt;/a&gt; were newcomers with a couple of readable but not groundbreaking fantasy novels each. &lt;a href="https://www.isfdb.org/cgi-bin/ea.cgi?480"&gt;Arthur Byron Cover&lt;/a&gt; had a few more years of publication history but was definitely not a big name. On the other hand, all three had done tie-in or shared-world work; they were clearly happy to crank out words to spec in somebody else's playground.&lt;/p&gt;
&lt;p&gt;Oh, but then there was &lt;a href="https://www.isfdb.org/cgi-bin/ea.cgi?201"&gt;George Alec Effinger&lt;/a&gt;, the genuine star of the list. His debut novel &lt;em&gt;&lt;a href="https://archive.org/details/whatentropymeans0000geor"&gt;What Entropy Means to Me&lt;/a&gt;&lt;/em&gt; (1972) had earned a Nebula nomination out of the gate. The following years had produced a string of offbeat, absurdist stories in a deadpan style which drew critical if not mainstream attention. I discovered Effinger in high school with &lt;em&gt;&lt;a href="https://archive.org/details/heroics00effi"&gt;Heroics&lt;/a&gt;&lt;/em&gt;, in which a senior citizen is assigned a professional supernatural guide and dragged across post-civilizational America to complete her collection of &lt;a href="https://en.wikipedia.org/wiki/Depression_glass"&gt;twentieth-century Depression glass&lt;/a&gt;. The Great Plains have been Teflon-coated. ("So that nothing would stick to them.") Shoulda been as famous as &lt;em&gt;Hitchhiker's&lt;/em&gt;, as far as I was concerned.&lt;/p&gt;
&lt;p&gt;Effinger had just landed his mainstream breakout with &lt;em&gt;&lt;a href="https://archive.org/details/whengravityfails00effi"&gt;When Gravity Fails&lt;/a&gt;&lt;/em&gt; (1987), a thriller about a brain-hacked gumshoe named Marîd Audran. It was cyberpunk with a North-African, Arab-Futurist tilt; it made a splash. Effinger was busy turning that hit into a trilogy. Why would he step off the escalator of success to do a videogame tie-in?&lt;/p&gt;
&lt;p&gt;As an on-ramp to the videogame industry, perhaps. &lt;em&gt;The Zork Chronicles&lt;/em&gt; is dedicated (in part):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To Rob Sears of Infocom, and Brett Sperry, Mike Legg, and the rest of the gang at Westwood Associates, who have made my own Infocom game, &lt;em&gt;Circuit’s Edge&lt;/em&gt;, a reality.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Again, a bit of a stretch. "Infocom" by that point was a brand name in Activision's portfolio. &lt;em&gt;&lt;a href="https://www.mobygames.com/game/247/circuits-edge/"&gt;Circuit's Edge&lt;/a&gt;&lt;/em&gt; wasn't a text adventure at all. It was a graphical RPG, set in the same Marîd Audran continuity as the cyberpunk trilogy. &lt;a href="https://www.stayforever.de/circuits-edge-a-conversation-with-michael-legg/"&gt;This interview&lt;/a&gt; notes that Effinger was deeply involved in the design and writing, despite not being a gamer or a computer nerd (at least not at that point).&lt;/p&gt;
&lt;p&gt;I'm afraid I never played &lt;em&gt;Circuit's Edge&lt;/em&gt;. I preferred Effinger's older stuff to the brutal and cynical Audran books, and the idea of a combat-heavy RPG didn't really appeal. Nonetheless, I was glad to see that the game existed and the author was making some money off of it.&lt;/p&gt;
&lt;p&gt;But back to &lt;em&gt;The Zork Chronicles&lt;/em&gt;. I wouldn't be at all surprised if Effinger took on the project for the sheer fun of it. It was an opportunity to go back to his absurdist roots. Mirakles of the Elastic Tendon (the Adventurer's most &lt;a href="https://www.mocagh.org/infocom/zorkps-alt.jpg"&gt;barbarian&lt;/a&gt;-esque iteration) meets up with Glorian of the Knowledge, the shape-changing supernatural guide from &lt;em&gt;Heroics&lt;/em&gt; and &lt;em&gt;What Entropy Means to Me&lt;/em&gt;. In fact the whole project is less a Zork novel than a few Zork characters and familiar scenery transplanted into Effinger's peculiar and whimsical world.&lt;/p&gt;
&lt;p&gt;Also there's a great quantity of very bad computer puns. (The Dipped Switch, the Scroll Lock, and alas more.) If Effinger came up with those, it's because he read a lot of microcomputer manuals in a hurry and then decided to share the pain.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;After all that, what really confused me was the title page.&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/05/zchron-title.jpeg"&gt;&lt;img alt="The title page of a paperback book. &amp;quot;George Alec Effinger / The Zork Chronicles / A Byron Preiss Book / An Infocom Book / Avon Books, New York&amp;quot;" height="690" src="https://blog.zarfhome.com/pic/2026/05/zchron-title-s.jpeg" width="400" /&gt;&lt;/a&gt;
The title page of &lt;em&gt;The Zork Chronicles&lt;/em&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I set off on this road trip with one question: who owns the rights to these books? (I hope you're not disappointed at finding such a pedantic issue at the end of all these circuitous, or circuits'-edge-ous, digressions!) But that page doesn't really clear anything up, does it? This Effinger book is an Infocom book &lt;em&gt;and&lt;/em&gt; a Byron Preiss book &lt;em&gt;and&lt;/em&gt; it's from Avon Books.&lt;/p&gt;
&lt;p&gt;Better check the copyright page:&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/05/zchron-copyright.jpeg"&gt;&lt;img alt="The copyright page of a paperback book. &amp;quot;ZORK: THE NOVEL is an original publication of Avon Books.... Copyright 1990 by Byron Preiss Visual Publications.&amp;quot;" height="668" src="https://blog.zarfhome.com/pic/2026/05/zchron-copyright-s.jpeg" width="400" /&gt;&lt;/a&gt;
The copyright page of &lt;em&gt;The Zork Chronicles&lt;/em&gt;, and also my thumb.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;That's straightforward: the novel's copyright is owned by Byron Preiss Visual Publications.&lt;/p&gt;
&lt;p&gt;Why, though? For a tie-in novel, you'd generally expect the rights to be owned by the company that licensed the work. Those Zork gamebooks from 1984 all say "Copyright Infocom, Inc." Star Trek novels of the era say "Copyright Paramount Pictures". The X-COM novel I've got (don't laugh, it's Diane Duane) says "Copyright MicroProse". And so on. It's work for hire, and the company does the hiring. Only not in this case.&lt;/p&gt;
&lt;p&gt;At first glance, I thought Byron Preiss Visual Publications was the publisher. But that's clearly wrong. The publisher is Avon Books, an old-school publisher of genre paperbacks. Mostly romance (that's where the money was and still is) but back then Avon had a well-established sideline in sci-fi and fantasy. They were clearly in charge of the book's layout; they reserved the back flyleaf as an ad for Avon's then-big series launch, Roger Zelazny's Second Amber Chronicles.&lt;/p&gt;
&lt;p&gt;(To be sure, the back flyleaf of the &lt;em&gt;Wishbringer&lt;/em&gt; novel is an ad for &lt;em&gt;Planetfall&lt;/em&gt;.)&lt;/p&gt;
&lt;p&gt;So if Byron Preiss was not the author, licensor, or publisher, what was his role? The best explanation I've found is from an article "&lt;a href="https://ore.exeter.ac.uk/articles/journal_contribution/The_Strange_Case_of_Byron_Preiss_Visual_Publications/29748458"&gt;The Strange Case of Byron Preiss Visual Publications&lt;/a&gt;" (PG Williams, &lt;em&gt;Journal of American Studies&lt;/em&gt;, 2019). (The &lt;a href="https://doi.org/10.1017/S0021875818001494"&gt;magic citation thingie&lt;/a&gt; says "2021", I don't know why.)&lt;/p&gt;
&lt;p&gt;The article is primarily about Preiss's adventures in the comics industry in the late 1970s. It doesn't mention Infocom or gaming at all. However, it begins:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Between 1976 and 1979 Byron Preiss operated as a book packager specializing in graphic novels, bringing comics creators together on original stories and licensed properties and delivering the finished product to publishing houses.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Further explanation from the article:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;These agents, known as “book packagers,” would generate ideas for authors and bring writers, studios, and fashionable subjects into conversation. Packagers could have a book’s licensing rights finalized before the first draft was finished – in some cases, before writing had begun.&lt;/p&gt;
&lt;p&gt;[...] BPVP brought comics creators together to deliver books to publishing houses as
finished packages. Preiss sometimes wrote these books himself, or he paired up writers and artists, or he bought the rights to creative properties that other creators developed under his editorial control. Preiss operated as a book packager and not a self-publisher on the basis that if you only published a few books at a time, the resources invested were not likely to recoup adequate profit; he pursued multiple projects simultaneously...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In other words, Preiss ran a sort of middleman empire, setting up a whirlwind of deals -- and somehow having all the rights land in his pocket. It seems sketchy to me, but hey, I wasn't in the business. And he did get a lot of books published.&lt;/p&gt;
&lt;p&gt;The article focuses on Preiss's ambition to legitimize "graphic novels", and the reaction of comics fandom to this new and opinionated player. Preiss apparently annoyed a lot of people.&lt;/p&gt;
&lt;p&gt;It's also worth noting that the Infocom deal wasn't Preiss's first contact with the game industry. Under the label Byron Preiss Video Productions, he worked with Trillium/Telarium and Windham Classics to produce &lt;a href="https://www.mobygames.com/company/4630/byron-preiss-video-productions-inc/"&gt;adventure-game adaptions&lt;/a&gt; of four books.&lt;/p&gt;
&lt;p&gt;To digress even further (hey, this is the fun stuff): Preiss had attempted to get in on the &lt;em&gt;Masquerade&lt;/em&gt; treasure-hunt craze. &lt;em&gt;&lt;a href="https://bpreiss.com/secret.html"&gt;The Secret&lt;/a&gt;&lt;/em&gt; (1982) presented itself as an illustrated encyclopedia of modern Faerie. (The artists included then-newcomer &lt;a href="https://butlerart.com/exhibits/john-jude-palencar/"&gt;John Jude Palencar&lt;/a&gt;, now a big-name SF illustrator.) The book was supposed to clue the location of twelve treasure-boxes around the US. Apparently only three have been found -- one as recently as &lt;a href="https://northendwaterfront.com/2019/10/north-ends-baseball-fields-are-site-the-secret-treasure-hunt/"&gt;2019&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Whew! Okay, back to the question.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;So where are they now?&lt;/h3&gt;
&lt;p&gt;George Alec Effinger suffered life-long health problems. He died in 2002 in his beloved home town of New Orleans. (The Budayeen, Marîd Audran's home turf, apparently draws as much from the French Quarter as from the Middle East.)&lt;/p&gt;
&lt;p&gt;The other three authors of the Infocom novels are still around, as far as I know. So is Steve Meretzky. Apparently Meretzky was even at &lt;a href="https://blog.zarfhome.com/2026/03/twine-zork-gdc"&gt;GDC 2026&lt;/a&gt;, although I didn't catch him there.&lt;/p&gt;
&lt;p&gt;Byron Preiss was &lt;a href="https://icv2.com/articles/comics/view/7160/in-memoriam-byron-preiss"&gt;killed&lt;/a&gt; in a &lt;a href="https://www.cbr.com/publisher-byron-preiss-dead-at-the-age-of-52/"&gt;car accident&lt;/a&gt; in Long Island in 2005. His multifarious publication businesses were all apparently a one-man show; they did not survive his death. His widow &lt;a href="https://icv2.com/articles/comics/view/8272/ibooks-byron-preiss-visual-publications-file-chapter-7"&gt;announced in 2006&lt;/a&gt; that BPVP was filing for Chapter 7 bankruptcy. The company assets would be sold to pay off creditors.&lt;/p&gt;
&lt;p&gt;So who got them? I expected this to require a tedious legal trawl, but in fact the &lt;a href="https://www.comicsbeat.com/boylston-acquires-preiss-assets/"&gt;answer&lt;/a&gt; turned up on the first web search. (The open web: not yet entirely &lt;a href="https://techcrunch.com/2026/05/19/google-search-as-you-know-it-is-over/"&gt;destroyed&lt;/a&gt;!) &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;J. Boylston, Publishers, announces the acquisition of the companies owned by the late Byron Preiss. Ibooks, the trade publishing house known for its extensive backlist titles in science fiction, fantasy, history, popular culture, and military nonfiction will continue its publishing program of bringing new and solid titles to the marketplace. Readers of notable authors as Isaac Asimov, Roger Zelazny, Stan Lee, John Betancourt, and Chris Beakey will enjoy new and familiar favorites as the company develops its rich backlist while presenting a new generation of writers to booksellers.&lt;/p&gt;
&lt;p&gt;-- &lt;a href="https://www.comicsbeat.com/boylston-acquires-preiss-assets/"&gt;Press release, December 2006&lt;/a&gt;, via ComicsBeat&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The ComicsBeat article notes that the sale price was $125,000, which "seems low given the number of contracts Preiss had – numbering in the thousands." Here's &lt;a href="https://www.pipelinecomics.com/blacksad-ibooks-byron-preiss/"&gt;another article&lt;/a&gt; saying the same. However, it's likely that most of those contracts had expired or reverted.&lt;/p&gt;
&lt;p&gt;I should explain that the typical book contract has a reversion clause. If the publisher allows the book to go out of print, they lose the publication rights. The author (or copyright holder) is then free to seek out another publisher or self-publish the book.&lt;/p&gt;
&lt;p&gt;Preiss must have had some good sellers, on the sheer numbers. But I can't imagine that the Infocom titles were high on the list. They must have gone out of print (with Avon) almost immediately. And then they sat in Preiss's closet, unused. I don't know if Preiss's deals with the &lt;em&gt;authors&lt;/em&gt; were still in force, but it's a moot point if the books weren't being sold.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ibooksinc.com/"&gt;J. Boylston &amp;amp; Co&lt;/a&gt; still exists. They've got a web site up as &lt;a href="https://ibooksinc.com/"&gt;ibooksinc.com&lt;/a&gt;. ("IBooks", with varying capitalization, was another brand that Boylston picked up from the Preiss estate.) The site even still lists &lt;a href="https://ibooksinc.com/imprints/bpvp/index.html"&gt;Byron Preiss Visual Publications&lt;/a&gt; as an imprint. The titles number in the hundreds, though, not thousands. And the Preiss portfolio is rather scattered, with only a few listed directly under "&lt;a href="https://ibooksinc.com/imprints/bpvp/index.html"&gt;BPVP&lt;/a&gt;".&lt;/p&gt;
&lt;p&gt;Alfred Bester, Roger Zelazny, Isaac Asimov, and Tanith Lee are proudly featured on the site. As is &lt;em&gt;The Secret&lt;/em&gt;, the treasure-hunt extravaganza. Arthur Byron Cover, Craig Shaw Gardner, Robin Wayne Bailey, and George Alec Effinger are not to be found.&lt;/p&gt;
&lt;p&gt;No, wait, a Bailey fantasy trilogy called "Dragonkin" is listed. Go him. &lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;So that's where we stand. A brief experiment in IF novelization, abandoned and left to evaporate in the sun. Feel free to download the books off the &lt;a href="https://www.reddit.com/r/zork/comments/1tbv4cb/classic_zork_novels_now_in_ebook_format"&gt;links&lt;/a&gt; &lt;a href="https://www.reddit.com/r/zork/comments/1tgehky/zork_gamebooks_now_available_as_ebook_downloads/"&gt;above&lt;/a&gt;; nobody's watching.&lt;/p&gt;
&lt;p&gt;I doubt anybody is all that excited to read them. I plowed through &lt;em&gt;Wishbringer&lt;/em&gt; this week. Skimmed through it, I should say, with grim tenacity. The writing wasn't &lt;em&gt;bad&lt;/em&gt;, but it was, well, cutesy. The game characters and scenery were, honestly, well done. Gardner clearly thought about them and came up with his own takes, neither slavish nor unrecognizable. Still, a slog.&lt;/p&gt;
&lt;p&gt;Even &lt;em&gt;The Zork Chronicles&lt;/em&gt; -- for all my admiring comments about Effinger's writing -- defeats me. I've read it in bits but never all the way through. Effinger can do cutesy and make me like it. But he can't make the Topiary Garden (Zork 2) or the Scenic Vista (Zork 3) more interesting than they were the first time. And the puns, yeesh.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Above The Powers That Be is the Autoexec," explained Glorian. "Above the Autoexec is the Control Character. No one I ever know has ever seen the Control Character. A lot of us Association members even think he's a myth. I mean, a non-existent myth, not like the real myths the rest of us are."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;See? Simultaneously adorable and grating. And that's if you're &lt;em&gt;into&lt;/em&gt; Effinger's stuff. He's at his best when he can spin off into unexpected tangent after unexpected tangent. The prescriptive rote of Zork IP just weighs him down.&lt;/p&gt;
&lt;p&gt;Still, it's a part of Infocom history.&lt;/p&gt;
&lt;p&gt;Hey, the ibooks site lists a contact address for "Media rights inquiries". Should I... hmmm... maybe I will.&lt;/p&gt;
&lt;p&gt;More news if I get a reply.&lt;/p&gt;</content><category term="infocom"/><category term="zork"/><category term="byron preiss"/><category term="george alec effinger"/><category term="arthur byron cover"/><category term="craig shaw garder"/><category term="robin wayne bailey"/><category term="books"/></entry><entry><title>Titanium Court</title><link href="https://blog.zarfhome.com/2026/05/titanium-court" rel="alternate"/><published>2026-05-20T01:29:06+00:00</published><updated>2026-05-20T01:29:06+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-05-20:/2026/05/titanium-court</id><summary type="html">Titanium Court is a stylized match-3 battle game in which you are possibly kidnapped by fairies. I loved it and I didn't like it. I mean, I didn't like playing it. I loved the game. It's doing two things. (Two big things. An infinite number ...</summary><content type="html">&lt;p&gt;&lt;em&gt;&lt;a href="https://store.steampowered.com/app/2364580/Titanium_Court/"&gt;Titanium Court&lt;/a&gt;&lt;/em&gt; is a stylized match-3 battle game in which you are possibly kidnapped by fairies. I loved it and I didn't like it. I mean, I didn't like &lt;em&gt;playing&lt;/em&gt; it. I loved the &lt;em&gt;game&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It's doing two things. (Two big things. An infinite number of tiny things.)&lt;/p&gt;
&lt;p&gt;One big thing is to build a narrative game on top of an RTS/autobattler on top of a match-3. All of these mechanics are coupled. Throupled? You arrange your battlefield by making groups of three tiles disappear; this also gains you resources, with which you buy units. Winning battles (or losing them) advances the storyline, as does exploration and dialogue; but you also occasionally take a shower, which is a match-3 grid of soap, water, and introspection.&lt;/p&gt;
&lt;p&gt;The other big thing is to tell a story in you go to fairyland. I mean &lt;em&gt;you&lt;/em&gt;, the person reading this review. Not "the protagonist" or "Wendy Darling" or "Alice". Not me -- I already went and came back. You.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;p&gt;People are always being snatched away to fairyland to learn some valuable lesson about themself or life. Okay, not always. Alice and Wendy are bad examples. Instead think &lt;em&gt;Labyrinth&lt;/em&gt; or &lt;em&gt;Groundhog Day&lt;/em&gt; or the TARDIS (modern era). The &lt;em&gt;Divine Comedy&lt;/em&gt;, if you're middle-aged. It's an entirely familiar pattern. And since &lt;em&gt;Titanium Court&lt;/em&gt; is a game, it's couched in the (entirely familiar) second-person language of adventure games: you discover a castle, you enter the gates, you sit at the table and eat fairy-fruit.&lt;/p&gt;
&lt;p&gt;(It doesn't say "fairy-fruit", so you don't notice. I didn't notice.)&lt;/p&gt;
&lt;p&gt;So fairyland offers you a whole storyline about changing your life, deciding what you need, choosing your axioms. It's all very metaphorical. It's done up in &lt;em&gt;Midsummer Night's Dream&lt;/em&gt; by way of so many fourth-wall breaks that you could build a new proscenium out of the rubble. Fine. Good solid stuff.&lt;/p&gt;
&lt;p&gt;Only gradually do you catch on that the protagonist is negative space. I don't mean in the usual &lt;a href="https://www.ifwiki.org/AFGNCAAP"&gt;AFGNCAAP&lt;/a&gt; sense -- that's a way for you, the generic "you", to put yourself in an adventure that's &lt;em&gt;not&lt;/em&gt; about you. &lt;em&gt;Titanium Court&lt;/em&gt; &lt;em&gt;is&lt;/em&gt; about you; it's all about you; but the only "you" available is... you. What do &lt;em&gt;you&lt;/em&gt; want from your life?&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/05/tc-baseball.png"&gt;&lt;img alt="A screenshot showing a grid of terrain rendered in pixelated blue, magenta, green, and yellow. Below the map is an inset showing a baseball player swinging at a ball. To one side is a resource chart. Magenta curtains frame the screen." height="339" src="https://blog.zarfhome.com/pic/2026/05/tc-baseball-s.png" width="600" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Is it baseball? It might be baseball.&lt;/p&gt;
&lt;p&gt;These completely standard game-narrative tropes are stuck together in such an obvious way that it took me half the game to realize that they don't make &lt;em&gt;any&lt;/em&gt; sense together. The sense that they do not make is the illogic of fairyland. It's kind of brilliant.&lt;/p&gt;
&lt;p&gt;(I think this is what &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/03/wanderstop"&gt;Wanderstop&lt;/a&gt;&lt;/em&gt; was groping for and absolutely could not find because Davey Wreden thought it was a game about &lt;em&gt;him&lt;/em&gt;.)&lt;/p&gt;
&lt;p&gt;I really enjoyed... thinking about &lt;em&gt;Titanium Court&lt;/em&gt;. I enjoyed being surprised by &lt;em&gt;Titanium Court&lt;/em&gt;, which happened repeatedly. I enjoyed the jokes and the clowns. I enjoyed discovering all the wacky variations it throws at the "match-3 battlefield" premise.&lt;/p&gt;
&lt;p&gt;I didn't particularly enjoy &lt;em&gt;playing&lt;/em&gt; &lt;em&gt;Titanium Court&lt;/em&gt;. RTS combat isn't my thing. Match-3 actively bores me. I put in about six hours total, drilling for the mad little scenes with Robin or Puck. Everything in between left me feeling irritably dissatisfied with the time I'd just spent.&lt;/p&gt;
&lt;p&gt;But that's fine! Because one of the questions the game asks is &lt;em&gt;how much effort do you want to spend on this.&lt;/em&gt; By the time I'd put in six hours, I found four &lt;em&gt;&lt;code&gt;(spoiler)&lt;/code&gt;&lt;/em&gt; and had the option to use them. The game asked me, very directly, if I was done playing; if that was all I wanted out of &lt;em&gt;Titanium Court&lt;/em&gt;. Yes, I said, I'm done. So I rolled the credits.&lt;/p&gt;
&lt;p&gt;I know there's &lt;em&gt;enormously&lt;/em&gt; more to the game that I never saw. There's way more than four &lt;em&gt;&lt;code&gt;(spoiler)&lt;/code&gt;&lt;/em&gt; to be found. Plus I only did three &lt;em&gt;&lt;code&gt;(spoiler)&lt;/code&gt;&lt;/em&gt; of I think thirteen. That's all fine. What I wanted from the game was a way out, and it offered me one with grace and compassion and not a hint of disdain. I took it and didn't look back.&lt;/p&gt;
&lt;p&gt;I highly recommend taking a look -- whatever you want.&lt;/p&gt;
&lt;p&gt;Very minor footnote: The game nearly uses the color palette of &lt;a href="https://www.mobygames.com/game/878/exodus-ultima-iii/screenshots/apple2/178212/"&gt;Apple 2 hi-res graphics&lt;/a&gt; (blue, green, magenta, yellow instead of orange). &lt;em&gt;But&lt;/em&gt; it uses them in impossible combinations -- characters are detailed in blue and magenta, which cannot exist side-by-side on the Apple. This left me with a sense of ineffable disorientation which pervaded the entire game and which, yes, I might be totally making this up, I have no idea if AP Thomson was an Apple 2 nerd, but it's the kind of thing &lt;em&gt;Titanium Court&lt;/em&gt; leaves me wondering.&lt;/p&gt;</content><category term="reviews"/><category term="titanium court"/></entry><entry><title>That firefighting game I played in Toronto</title><link href="https://blog.zarfhome.com/2026/05/firefighting" rel="alternate"/><published>2026-05-10T01:57:06+00:00</published><updated>2026-05-10T01:57:06+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-05-10:/2026/05/firefighting</id><summary type="html">"What is the first computer game that you played?" One of those social forum threads which is really about reader demographics rather than games. Still, I tried to remember. No, my answer wasn't Adventure. I played Adventure in '79 or so -- ...</summary><content type="html">&lt;p&gt;"What is the first computer game that you played?" One of those social forum threads which is really about reader demographics rather than games. Still, I tried to remember.&lt;/p&gt;
&lt;p&gt;No, my answer wasn't &lt;em&gt;Adventure&lt;/em&gt;. I played &lt;em&gt;Adventure&lt;/em&gt; in '79 or so -- but before that, I probably ran into &lt;em&gt;Oregon Trail&lt;/em&gt; or &lt;em&gt;Lemonade Stand&lt;/em&gt; or one of those other BASIC games on a school PET machine. And I definitely played one of the &lt;em&gt;Star Trek&lt;/em&gt; variants on a neighbor's Apple 2 (not a II+, this was way early). &lt;/p&gt;
&lt;p&gt;But there's also a game that I played at the Ontario Science Center in... man, I really don't remember when. Certainly 1980 or earlier. It might have been before or after my initiation into &lt;em&gt;Adventure&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I will describe the game. You tried to contain a firest fire. The game was built in an arcade-like cabinet, but it was not a commercial arcade game. You had a graphical map of a forest, done in colored ASCII art. You had a cursor controlled by d-pad-style buttons. There was an info display showing wind speed and direction.&lt;/p&gt;
&lt;p&gt;A fire got started. (One red square!) You had to control the spread. Your tools were water-bombs -- very limited supply -- and setting back-fires. Maybe you could drop firefighters as well; I don't remember.&lt;/p&gt;
&lt;p&gt;I do remember that if you were fast and lucky, you could bang the cursor over to the initial spark and water-bomb it before it spread. That was the ideal outcome. Otherwise, things got out of control real fast. I didn't grasp the scenario well enough to use backfires effectively, but I understood the cheese-it solution.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;p&gt;Come to think of it, I must have played Apple 2 games by then. Because I was clueful enough to recognize that it was &lt;em&gt;not&lt;/em&gt; running on an Apple; the Apple couldn't do color-blocks mixed with text like that.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;I'll dispense with the tension up front: this game has been identified. Not &lt;em&gt;found&lt;/em&gt; -- it's unlikely that the original version survives anywhere. But someone recalls it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am replying to a 13-year-old message, I know, I know, but still, for the record:&lt;/p&gt;
&lt;p&gt;The game in question was built to the extent of two or possibly three machines. They used an S-100 computer, likely using a Z80, and a custom graphics display that had originally been designed to run the TTC's Downsview control room. They were placed in a custom cabinet using OSC's unique push-buttons (remember the red rubbery tops?) The game used a cellular automata, like Conway's Life, to model the spread of the fire.&lt;/p&gt;
&lt;p&gt;The machines stayed with the OSC for years and one of them was taken on the road with their show that visited schools. The last I heard is that one of them ended up in the Firefighting Museum in Sault, but I have never heard back from them.&lt;/p&gt;
&lt;p&gt;So no, it's not the DOS game, it was all custom and actually pre-dates DOS.&lt;/p&gt;
&lt;p&gt;-- maurymarkowitz, &lt;a href="https://www.reddit.com/r/tipofmytongue/comments/cd99w/tomt_forest_fire_fighting_simulation_early_80s/"&gt;reddit thread, 3 Feb 2023&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There's no name for the game; it might not have &lt;em&gt;had&lt;/em&gt; a name. I don't think it had a splash screen or anything like that. But that was definitely it.&lt;/p&gt;
&lt;p&gt;As the thread notes, there was a later DOS game called &lt;a href="https://www.mobygames.com/game/28249/fire-fighter/"&gt;Fire Fighter&lt;/a&gt; (Eben Sprinsock, 1985) which was similar. Possibly close enough to have been directly inspired by the Toronto original? You can &lt;a href="https://archive.org/details/msdos_Fire_Fighter_1985"&gt;play the DOS game&lt;/a&gt; at Archive.org.&lt;/p&gt;
&lt;p&gt;Interestingly, the DOS game is turn-based but the original was definitely real-time. Or at least real-ish time. &lt;/p&gt;
&lt;p&gt;maurymarkowitz continues:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Found my notes, such as they are:&lt;/p&gt;
&lt;p&gt;The company was called United Technologies International, or UTI. Bunch of former UofWaterloo people most of whom ended up in the GTA or Ottawa (back when that was a big tech hub!). Their first machine used three 8080, one for a CPU, another for a disk controller, and a third for the graphics.&lt;/p&gt;
&lt;p&gt;The two game machines were built in 78 or 79. They used a single 8080 running CP/M, but I suspect there might have been a second for the graphics even though it had only one display. When I first saw them they were side-by-side in the Communications area where the PDP-11 used to be. Many years later (late 80s I think) I saw one had been moved upstairs into the Natural Resources area which was open and looked down into comms, but no one ever went there so that one was always free to use.&lt;/p&gt;
&lt;p&gt;At least one was still operational as late as 1998 mounted in the van they took to the schools. The guy that ran the outreach thinks its last public showing might have been at the CNE that year. He thinks the machine itself was around until 2000 when the shut down the outreach program. That's the one they thought ended up in the Sault. But it turns out I did contact them in the Sault and they say they never had it.&lt;/p&gt;
&lt;p&gt;So I guess they're in a landfill somewhere. Probably beside Science North's PDP-1! :-(&lt;/p&gt;
&lt;p&gt;-- maurymarkowitz, &lt;a href="https://www.reddit.com/r/tipofmytongue/comments/cd99w/tomt_forest_fire_fighting_simulation_early_80s/"&gt;reddit thread, 4 Feb 2023&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There's a couple of other forum threads which turn up the same information. (Because the same guy googled them, just like I'm doing now.) &lt;a href="https://toronto.livejournal.com/7739200.html"&gt;This post&lt;/a&gt; from Livejournal remembered more of the gameplay:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For example, maybe you took a bulldozer icon and cleared out some trees to make a firebreak, maybe you started a fire to burn out an area so that when the "real" forest fire got to that point, it had nothing to burn, or you sent in planes to drop water on parts of the fire, or you dropped smokejumpers, just had ordinary firetrucks, or whatever.&lt;/p&gt;
&lt;p&gt;-- planettom, &lt;a href="https://toronto.livejournal.com/7739200.html"&gt;toronto.livejournal.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(Same thread is linked from &lt;a href="https://forums.atariage.com/topic/276227-forest-fire-similar-games-and-the-origin/"&gt;this post&lt;/a&gt; on forums.atariage.com.)&lt;/p&gt;
&lt;p&gt;And... that's all the information there is. I have not located any photos or original records. Thanks to &lt;a href="https://www.reddit.com/user/maurymarkowitz/"&gt;maurymarkowitz&lt;/a&gt; for collecting what we've got.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;So why am I posting this?&lt;/p&gt;
&lt;p&gt;First, to collect information in one place. Livejournal is not a reliable platform. Reddit &lt;em&gt;probably&lt;/em&gt; isn't going to shrivel up and evaporate, but can we really be sure? At least this way the info is on &lt;em&gt;two&lt;/em&gt; web sites with a history of sticking around.&lt;/p&gt;
&lt;p&gt;Second, because the Ontario Science Center &lt;a href="https://www.ontariosciencecentre.ca/about-us/media-room/important-announcement"&gt;closed two years ago&lt;/a&gt;. I had no idea. &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On June 21, 2024, the Ministry of Infrastructure announced the &lt;a href="https://news.ontario.ca/en/release/1004747/professional-engineering-advice-leads-to-closure-of-ontario-science-centre"&gt;closure&lt;/a&gt; of the Ontario Science Centre to visitors, due to the building’s deteriorating infrastructure, including the potential for roof failure due to snow load as early as this winter.&lt;/p&gt;
&lt;p&gt;We understand this building holds many memories.&lt;/p&gt;
&lt;p&gt;For 55 years, the Ontario Science Centre has been a beloved landmark in our province. Our building itself has been a cherished space for generations of visitors, sparking wonder and curiosity about science and the world around us, every day. It's been the site of first jobs, first field trips, and countless "aha" moments. The memories made within these walls are truly special.&lt;/p&gt;
&lt;p&gt;While we are no longer able to welcome visitors at our current location, we will continue to deliver innovative science experiences virtually, through pop-up experiences and in an interim facility, as we plan for our new permanent home at Ontario Place. We will share more details shortly.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;My memories of the place go beyond that one videogame. The building was iconically 70s-futuristic -- a space-age outpost sprawling down a forested ravine in the heart of the Toronto. My mental imagery of The Future comes straight from the Ontario Science Center... and Ontario Place, speaking of which.&lt;/p&gt;
&lt;p&gt;I revisited the museum in college, and then again in 2015. The game was long gone but I remembered some of the other exhibits. It was still a magical place.&lt;/p&gt;
&lt;p&gt;In 2022, I heard that the sky-bridge between the museum buildings was in bad repair and &lt;a href="https://www.thetrillium.ca/news/municipalities-transit-and-infrastructure/after-cover-your-ass-meeting-science-centre-vp-wanted-second-opinion-of-2022-bridge-closure-9295589"&gt;had to be closed&lt;/a&gt;. See also &lt;a href="https://toronto.citynews.ca/2024/07/11/a-timeline-of-events-in-the-ontario-science-centre-closure/"&gt;this timeline&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;At the time, people were speculating that the whole museum had been starved of maintenance funds so that Rob Ford could shut it down and replace it with luxury condos. Or maybe it was Doug Ford. Forces of evil, anyhow.&lt;/p&gt;
&lt;p&gt;The report about the roof has been &lt;a href="https://globalnews.ca/news/11252077/ont-science-centre/"&gt;disputed&lt;/a&gt;. The replacement building at Ontario Place remains a fantasy, although the museum now has a pop-up exhibit space on the waterfront.&lt;/p&gt;
&lt;p&gt;I have another whole set of memories around the &lt;a href="https://www.youtube.com/watch?v=jJpmk7QOq30"&gt;1970s playground&lt;/a&gt; at Ontario Place. That's another post, though.&lt;/p&gt;
&lt;p&gt;Ontario Place turned up as an abandoned Illyrian city on &lt;em&gt;Star Trek: Strange New Worlds&lt;/em&gt;. That was weird.&lt;/p&gt;</content><category term="toronto"/><category term="museums"/><category term="firefighting game"/><category term="history"/><category term="ontario place"/></entry><entry><title>Those ZIL grammar flags</title><link href="https://blog.zarfhome.com/2026/05/zil-grammar-flags" rel="alternate"/><published>2026-05-08T00:02:22+00:00</published><updated>2026-05-08T00:02:22+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-05-08:/2026/05/zil-grammar-flags</id><summary type="html">A couple of months ago I referred to a quote from Infocom's internal ZIL manual: The other four tokens—ON-GROUND, IN-ROOM, HELD, and CARRIED—are incredibly confusing, and no one really understands them except Stu, so he should probably write ...</summary><content type="html">&lt;p&gt;A couple of months ago I &lt;a href="https://blog.zarfhome.com/2026/02/1989-in-context"&gt;referred to&lt;/a&gt; a quote from Infocom's internal ZIL manual:&lt;/p&gt;
&lt;div class="PreWrap"&gt;
&lt;blockquote&gt;
&lt;p&gt;The other four tokens—&lt;code&gt;ON-GROUND&lt;/code&gt;, &lt;code&gt;IN-ROOM&lt;/code&gt;, &lt;code&gt;HELD&lt;/code&gt;, and &lt;code&gt;CARRIED&lt;/code&gt;—are incredibly confusing, and no one really understands them except Stu, so he should probably write this bit.&lt;/p&gt;
&lt;p&gt;-- &lt;em&gt;&lt;a href="https://eblong.com/infocom/other/Learning_ZIL_Meretzky_1995.pdf"&gt;Learning ZIL&lt;/a&gt;&lt;/em&gt;, chapter 9.6&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/2026/02/1989-in-context"&gt;That post&lt;/a&gt; was about the social context in which Steve Meretzky wrote those words. So I didn't get into what the ZIL tokens meant.&lt;/p&gt;
&lt;p&gt;But this week the question came up on the Visible Zorker Discord. Let's get technical!&lt;/p&gt;
&lt;p&gt;(This post is also available on my &lt;a href="https://www.patreon.com/posts/those-zil-flags-157670492"&gt;Patreon&lt;/a&gt;.)&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;hr /&gt;
&lt;p&gt;What kind of tokens are we talking about? The manual again:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There are several tokens which can appear in parentheses within a syntax definition: &lt;code&gt;HAVE&lt;/code&gt;, &lt;code&gt;TAKE&lt;/code&gt;, &lt;code&gt;MANY&lt;/code&gt;, &lt;code&gt;EVERYWHERE&lt;/code&gt;, &lt;code&gt;ADJACENT&lt;/code&gt;, &lt;code&gt;HELD&lt;/code&gt;, &lt;code&gt;CARRIED&lt;/code&gt;, &lt;code&gt;ON-GROUND&lt;/code&gt;, and &lt;code&gt;IN-ROOM&lt;/code&gt;. This parenthetical list appears after either or both OBJECTs:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;SYNTAX
  GIVE
    OBJECT (HAVE)
  TO
    OBJECT (ON-GROUND IN-ROOM)
  = V-GIVE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(I've spaced out the &lt;code&gt;&amp;lt;SYNTAX&amp;gt;&lt;/code&gt; line for clarity.)&lt;/p&gt;
&lt;p&gt;This example defines a grammar line: &lt;code&gt;GIVE ___ TO ___&lt;/code&gt;. The &lt;code&gt;V-GIVE&lt;/code&gt; routine will handle the action. The parenthesized tokens define some behavior for the two object slots. The parser will use this information when searching the world for objects to match the player's command.&lt;/p&gt;
&lt;p&gt;(Note: The manual dates from 1989. &lt;code&gt;EVERYWHERE&lt;/code&gt; and &lt;code&gt;ADJACENT&lt;/code&gt; were added with the "new" V6 parser used in &lt;em&gt;Zork Zero&lt;/em&gt;, etc. I'm still dealing with the early games, so I'll skip &lt;code&gt;EVERYWHERE&lt;/code&gt; and &lt;code&gt;ADJACENT&lt;/code&gt; in this post.)&lt;/p&gt;
&lt;p&gt;So how to figure out what &lt;code&gt;ON-GROUND&lt;/code&gt; and &lt;code&gt;IN-ROOM&lt;/code&gt; mean? Look at the parser code, right? Here we run into our first problem: the parser code and the syntax definitions use &lt;em&gt;different names&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Here's a set of &lt;a href="https://github.com/visible-zorking/visi-zork1/blob/master/gamesrc/gparser.zil#L838"&gt;definitions&lt;/a&gt; from Zork 1:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;CONSTANT SH 128&amp;gt;
&amp;lt;CONSTANT SC 64&amp;gt;
&amp;lt;CONSTANT SIR 32&amp;gt;
&amp;lt;CONSTANT SOG 16&amp;gt;
&amp;lt;CONSTANT STAKE 8&amp;gt;
&amp;lt;CONSTANT SMANY 4&amp;gt;
&amp;lt;CONSTANT SHAVE 2&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The initial &lt;code&gt;S&lt;/code&gt; is ZIL convention for constants (perhaps "static"), followed by abbreviations. &lt;code&gt;SOG&lt;/code&gt; is &lt;code&gt;ON-GROUND&lt;/code&gt;, for example. Annoyingly, &lt;code&gt;SH&lt;/code&gt; must be &lt;code&gt;HELD&lt;/code&gt; rather than &lt;code&gt;HAVE&lt;/code&gt;!&lt;/p&gt;
&lt;p&gt;By the way, note Infocom's preference for numbering from the &lt;em&gt;high bit down&lt;/em&gt;. Clearly &lt;code&gt;HELD&lt;/code&gt; was defined first. &lt;code&gt;SHAVE&lt;/code&gt; needed more letters because &lt;code&gt;SH&lt;/code&gt; was already taken. And they haven't used the low bit at all (yet). You see the same thing with &lt;a href="https://github.com/visible-zorking/visi-zork3/blob/master/gamedat/game-info#L261"&gt;attribute flags&lt;/a&gt; and &lt;a href="https://github.com/visible-zorking/visi-zork3/blob/master/gamedat/game-info#L290"&gt;property numbers&lt;/a&gt;; all games start with the high value, but not all make it down to zero.&lt;/p&gt;
&lt;p&gt;It would be smart to verify our understanding in, as it were, real life. Let's look at the &lt;code&gt;GIVE TO&lt;/code&gt; grammar line in Zork 1. Turns out the manual example was simplified. Here's the &lt;a href="https://github.com/visible-zorking/visi-zork1/blob/master/gamesrc/gsyntax.zil#L216"&gt;real definition&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;SYNTAX
  GIVE
    OBJECT (MANY HELD HAVE)
  TO
    OBJECT (FIND ACTORBIT) (ON-GROUND)
  = V-GIVE PRE-GIVE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Messier... We have both an action routine (&lt;code&gt;V-GIVE&lt;/code&gt;) and a &lt;em&gt;preaction&lt;/em&gt; routine (&lt;code&gt;PRE-GIVE&lt;/code&gt;). The preaction routine checks prerequisites before the start of action handling proper.&lt;/p&gt;
&lt;p&gt;We also have a different kind of object flag: &lt;code&gt;(FIND ACTORBIT)&lt;/code&gt;. This is well-explained in the manual. If the player omits the second object (by typing &lt;code&gt;GIVE SANDWICH&lt;/code&gt;), the parser will try to fill in the blank by looking for an object in the room with the &lt;code&gt;ACTORBIT&lt;/code&gt; attribute. That is to say, an NPC. If there's exactly one, great! If there's two or more, ask for disambiguation.&lt;/p&gt;
&lt;p&gt;But back to the &lt;code&gt;ON-GROUND&lt;/code&gt; stuff. We can rip apart the compiled game file to look at the grammar table. (I use the &lt;a href="https://ifarchive.org/indexes/if-archive/infocom/tools/ztools/"&gt;txd&lt;/a&gt; tool for this.) The &lt;a href="https://github.com/visible-zorking/visi-zork1/blob/master/gamedat/grammar-dump.txt#L352"&gt;grammar line&lt;/a&gt; is eight bytes:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[02 00 ff 00 1e 86 10 3f] &amp;quot;give OBJ to OBJ&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I'll spare you the full decoding. (See &lt;a href="https://eblong.com/infocom/other/Internal_Secrets_Ko_2019.pdf"&gt;Michael Ko's document&lt;/a&gt; for that.) The relevant bytes are &lt;code&gt;$86&lt;/code&gt; for the first object &lt;code&gt;(MANY HELD HAVE)&lt;/code&gt; and &lt;code&gt;$10&lt;/code&gt; for the second &lt;code&gt;(ON-GROUND)&lt;/code&gt;. Do those bits match up with the definitions above? Yes! Whew.&lt;/p&gt;
&lt;p&gt;Let me rewrite the table, showing both the &lt;code&gt;SYNTAX&lt;/code&gt; names and the &lt;code&gt;CONSTANT&lt;/code&gt; labels:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;HELD       SH     128  ($80)
CARRIED    SC      64  ($40)
IN-ROOM    SIR     32  ($20)
ON-GROUND  SOG     16  ($10)
TAKE       STAKE    8  ($08)
MANY       SMANY    4  ($04)
HAVE       SHAVE    2  ($02)
    (unused)        1  ($01)
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;p&gt;Armed with this knowledge, we can dig into the mysterious tokens.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;TAKE&lt;/code&gt; and &lt;code&gt;HAVE&lt;/code&gt; aren't that mysterious. The manual tells us that &lt;code&gt;TAKE&lt;/code&gt; means that we will try to automatically take a (portable) object before the action begins. &lt;code&gt;HAVE&lt;/code&gt; means the object must be in the player's inventory for the action to succeed. &lt;/p&gt;
&lt;p&gt;You'd think these would always go together. Not always! For example, the &lt;code&gt;READ&lt;/code&gt; action has the &lt;code&gt;TAKE&lt;/code&gt; flag but not &lt;code&gt;HAVE&lt;/code&gt;. You'd &lt;em&gt;prefer&lt;/em&gt; to be holding a book in order to read it, but a plaque bolted to the wall is still readable.&lt;/p&gt;
&lt;p&gt;Conversely, the &lt;code&gt;DROP&lt;/code&gt; action has the &lt;code&gt;HAVE&lt;/code&gt; flag but not &lt;code&gt;TAKE&lt;/code&gt;. You can only drop something you're holding, but it would be peculiar to auto-take something &lt;em&gt;in order&lt;/em&gt; to drop it.&lt;/p&gt;
&lt;p&gt;The rules point up some interesting corner cases. The &lt;code&gt;EAT&lt;/code&gt; action has &lt;code&gt;TAKE&lt;/code&gt;, but the &lt;code&gt;DRINK&lt;/code&gt; action does not. Why? Because drinkables are liquids, and taking liquids always has special rules -- if it's possible at all. You should be able &lt;code&gt;DRINK&lt;/code&gt; from a stream, or at least try, without executing &lt;code&gt;TAKE WATER&lt;/code&gt; behind the scenes.&lt;/p&gt;
&lt;p&gt;(Mind you, the rules aren't always clear. In Zork 1, lots of actions have &lt;code&gt;TAKE&lt;/code&gt;, but only a few have both &lt;code&gt;TAKE&lt;/code&gt; and &lt;code&gt;HAVE&lt;/code&gt;. Looks like &lt;code&gt;BURN&lt;/code&gt;, &lt;code&gt;LIGHT&lt;/code&gt;, &lt;code&gt;EXTINGUISH&lt;/code&gt;, and &lt;code&gt;WAVE&lt;/code&gt;. Why those?)&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Okay, let's get to the &lt;em&gt;mysterious&lt;/em&gt; tokens.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SH&lt;/code&gt;, &lt;code&gt;SC&lt;/code&gt;, &lt;code&gt;SOG&lt;/code&gt;, and &lt;code&gt;SIR&lt;/code&gt; are used in exactly one place in the parser code. It's &lt;a href="https://github.com/visible-zorking/visi-zork1/blob/master/gamesrc/gparser.zil#L875"&gt;this stanza&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;COND (,LIT
  &amp;lt;FCLEAR ,PLAYER ,TRANSBIT&amp;gt;
  &amp;lt;DO-SL ,HERE ,SOG ,SIR&amp;gt;
  &amp;lt;FSET ,PLAYER ,TRANSBIT&amp;gt;)&amp;gt;
&amp;lt;DO-SL ,PLAYER ,SH ,SC&amp;gt;)&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notice that they are used in pairs: &lt;code&gt;SH&lt;/code&gt; with &lt;code&gt;SC&lt;/code&gt;, &lt;code&gt;SOG&lt;/code&gt; with &lt;code&gt;SIR&lt;/code&gt;. That's how they're handed off to the &lt;a href="https://github.com/visible-zorking/visi-zork1/blob/master/gamesrc/gparser.zil#L1021"&gt;&lt;code&gt;DO-SL&lt;/code&gt;&lt;/a&gt; routine, which is quite short. Feel free to look at it, but here's the gist:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DO-SL&lt;/code&gt; takes a container and two bit flags. If the slot has the &lt;em&gt;first&lt;/em&gt; flag, we'll check the container's &lt;em&gt;immediate&lt;/em&gt; children. If the slot has the &lt;em&gt;second&lt;/em&gt; flag, we'll check the container's &lt;em&gt;indirect&lt;/em&gt; descendants (those at the second level or below). If the slot has &lt;em&gt;both&lt;/em&gt; flags, we therefore wind up checking &lt;em&gt;all&lt;/em&gt; of the container's descendants, at every level. (There's a special case for this but it's just a shortcut.)&lt;/p&gt;
&lt;p&gt;That may seem rather abstract, but think about how it works with the stanza above. The line &lt;code&gt;&amp;lt;DO-SL ,PLAYER ,SH ,SC&amp;gt;&lt;/code&gt; simply means: Check the player's inventory. A &lt;code&gt;SH&lt;/code&gt; &lt;code&gt;(HELD)&lt;/code&gt; slot will match anything the player is directly holding. A &lt;code&gt;SC&lt;/code&gt; &lt;code&gt;(CARRIED)&lt;/code&gt; slot will match anything the player is carrying &lt;em&gt;in a container&lt;/em&gt;. If a slot has both tokens (which is by far the common case), any object anywhere in the player's inventory will match.&lt;/p&gt;
&lt;p&gt;The line &lt;code&gt;&amp;lt;DO-SL ,HERE ,SOG ,SIR&amp;gt;&lt;/code&gt; does exactly the same thing, but checking the room contents, with the &lt;code&gt;SOG&lt;/code&gt; &lt;code&gt;(ON-GROUND)&lt;/code&gt; and &lt;code&gt;SIR&lt;/code&gt; &lt;code&gt;(IN-ROOM)&lt;/code&gt; flags. The first means directly on the ground; the second means things in containers in the room; both flags together mean anywhere in the room. &lt;em&gt;Except&lt;/em&gt; for the player's inventory! We briefly set the player non-transparent, so this line doesn't search inside the player. That keeps the &lt;code&gt;HERE&lt;/code&gt; search from getting mixed up with the previous &lt;code&gt;PLAYER&lt;/code&gt; search.&lt;/p&gt;
&lt;p&gt;Again, most verbs pair &lt;code&gt;ON-GROUND&lt;/code&gt; with &lt;code&gt;IN-ROOM&lt;/code&gt;. (It's odd for an action to apply to only things in containers.)&lt;/p&gt;
&lt;p&gt;Oh, and the room search only runs if the location is &lt;code&gt;LIT&lt;/code&gt;. Zork convention is that dropped objects are inaccessible in pitch darkness. You can manipulate your inventory in the dark, like a good spelunker should -- but &lt;em&gt;only&lt;/em&gt; your inventory.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Well, now that we've dug through the details, it seems straightforward. Why did Meretzky say it was confusing? &lt;/p&gt;
&lt;p&gt;Turns out I skipped over one tricky detail. The &lt;code&gt;SH&lt;/code&gt;, &lt;code&gt;SC&lt;/code&gt;, &lt;code&gt;SOG&lt;/code&gt;, &lt;code&gt;SIR&lt;/code&gt; tokens are &lt;em&gt;suggestions&lt;/em&gt;, not requirements.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;HAVE&lt;/code&gt; is a requirement. Some actions can only be done when you're carrying a thing; they need to fail when you're not. But &lt;code&gt;HELD&lt;/code&gt; &lt;code&gt;(SH)&lt;/code&gt; and company only come into play for disambiguation.&lt;/p&gt;
&lt;p&gt;Let's go back to that original manual example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;SYNTAX
  GIVE
    OBJECT (MANY HELD HAVE)
  TO
    OBJECT (FIND ACTORBIT) (ON-GROUND)
  = V-GIVE PRE-GIVE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you're carrying the lunch, you can type &lt;code&gt;GIVE LUNCH TO TROLL&lt;/code&gt; -- that's fine. (The troll eats it.)&lt;/p&gt;
&lt;p&gt;But you can equally well type &lt;code&gt;GIVE TROLL TO LUNCH&lt;/code&gt;. That fails the &lt;code&gt;HAVE&lt;/code&gt; test ("You're not carrying the troll") -- but before that point, it skims right by the &lt;code&gt;HELD&lt;/code&gt; token for the troll and the &lt;code&gt;ON-GROUND&lt;/code&gt; token for the lunch. Like I said, just suggestions.&lt;/p&gt;
&lt;p&gt;Say you were carrying a spicy meatball and &lt;em&gt;also&lt;/em&gt; a spicy pepper in a glass jar &lt;em&gt;and&lt;/em&gt; there was a spicy burrito on the floor. Then the command &lt;code&gt;GIVE SPICY TO TROLL&lt;/code&gt; would have three options. The &lt;code&gt;HELD&lt;/code&gt; token would cause it to prefer the meatball, because you're holding it directly.&lt;/p&gt;
&lt;p&gt;Similarly, in &lt;em&gt;Deadline&lt;/em&gt;, &lt;code&gt;GIVE HERRING TO WOMAN&lt;/code&gt; would prefer Mrs Rouke (standing in the room) to Ms Dunbar (sitting on the couch, and therefore not &lt;code&gt;ON-GROUND&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Again, it's common for these tokens to appear in pairs. Zork 1 has the &lt;a href="https://github.com/visible-zorking/visi-zork1/blob/master/gamesrc/gsyntax.zil#L302"&gt;syntax&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;SYNTAX LUBRICATE OBJECT WITH OBJECT (HELD CARRIED) = V-OIL&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So &lt;code&gt;LUBRICATE HINGES WITH GREASY&lt;/code&gt; would prefer a greasy object anywhere in your inventory to one lying on the ground.&lt;/p&gt;
&lt;p&gt;(Of course Zork doesn't have even one greasy object. That command is for the benefit of people trying a trick that worked in &lt;em&gt;Colossal Cave&lt;/em&gt;!)&lt;/p&gt;
&lt;p&gt;But look at &lt;a href="https://github.com/visible-zorking/visi-zork1/blob/master/gamesrc/gsyntax.zil#L407"&gt;this one&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;SYNTAX TALK TO OBJECT (FIND ACTORBIT) (IN-ROOM) = V-TELL&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This &lt;em&gt;doesn't&lt;/em&gt; have the &lt;code&gt;ON-GROUND&lt;/code&gt; token. So &lt;code&gt;TALK TO WOMAN&lt;/code&gt; would disambiguate to a female NPC sitting on the couch, rather than one standing in the room. Why on earth would you want that behavior?&lt;/p&gt;
&lt;p&gt;The answer is, you wouldn't! But this situation &lt;em&gt;can't happen&lt;/em&gt; in Zork; the three NPCs never enter containers. So the mistake isn't noticeable. In fact the NPCs in &lt;em&gt;Deadline&lt;/em&gt; don't sit on the furniture either, so it never comes up there either. (My example with Rourke and Dunbar was fake, sorry.)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/visible-zorking/visi-zork1/blob/master/gamesrc/gsyntax.zil#L376"&gt;Similarly&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;SYNTAX PUT ON OBJECT (IN-ROOM ON-GROUND CARRIED MANY) = V-WEAR&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This lacks &lt;code&gt;HELD&lt;/code&gt;, so it prefers items you're carrying in containers to items you're holding directly. This is ridiculous. &lt;code&gt;PUT ON HAT&lt;/code&gt; should not prefer the hat in your backpack to the hat in your hand. &lt;/p&gt;
&lt;p&gt;The problem is, demonstrating these bugs is &lt;em&gt;hard&lt;/em&gt;. You need to find two objects with a synonym in common, put one of them in a container, and then try a particular verb.&lt;/p&gt;
&lt;p&gt;Here's a demonstration. Remember that all treasures in Zork, including the &lt;code&gt;PAINTING&lt;/code&gt;, can be referred to as &lt;code&gt;TREASURE&lt;/code&gt;...&lt;/p&gt;
&lt;div class="PreWrap"&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;gt; I
You are carrying:
   A painting
   A brass lantern (providing light)
   A sword
   A brown sack
   The brown sack contains:
      A jewel-encrusted egg
      A clove of garlic&lt;/p&gt;
&lt;p&gt;&amp;gt; PUT ON TREASURE
You can't wear the jewel-encrusted egg.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;See? Picking the egg over the painting is silly! But of course the command &lt;code&gt;PUT ON TREASURE&lt;/code&gt; was silly to begin with. I guarantee that nobody at Infocom ever tested it. You need to spend a week staring at the parser logic to know how to even set this experiment up.&lt;/p&gt;
&lt;p&gt;To perform the parallel experiment for &lt;code&gt;ON-GROUND&lt;/code&gt;/&lt;code&gt;IN-ROOM&lt;/code&gt;, drop both the sack and the painting and type &lt;code&gt;TALK TO TREASURE&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The upshot is that if you're building a &lt;code&gt;&amp;lt;SYNTAX&amp;gt;&lt;/code&gt; line with &lt;code&gt;ON-GROUND&lt;/code&gt; and &lt;code&gt;IN-ROOM&lt;/code&gt;, getting it wrong almost doesn't matter. You'll never get any feedback that you should have used the other one (or both). Thus, confusing. It's a detail which is almost impossible to &lt;em&gt;learn&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The difference between &lt;code&gt;HELD&lt;/code&gt; and &lt;code&gt;CARRIED&lt;/code&gt; is a &lt;em&gt;bit&lt;/em&gt; clearer, because inventory containers are common and you don't want to screw up the affordances of the &lt;code&gt;DROP&lt;/code&gt; action. But the &lt;code&gt;DROP&lt;/code&gt; syntax is the same in every game; they copied those basic verbs around. Most Infocom folks probably never needed to know why &lt;code&gt;DROP&lt;/code&gt; is written the way it is.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;In conclusion...&lt;/p&gt;
&lt;p&gt;Nah, I'm not building up to a grand thesis here. I'm pointing out the ways that a design system can be opaque, even to the people who invented it.&lt;/p&gt;
&lt;p&gt;I guess the lesson is that ZIL should have provided a simpler set of options for common use. Maybe define &lt;code&gt;HELD&lt;/code&gt; and &lt;code&gt;IN-ROOM&lt;/code&gt; for most verbs, and then fancier terms (&lt;code&gt;HELD-DIRECT&lt;/code&gt; vs &lt;code&gt;HELD-INDIRECT&lt;/code&gt;, &lt;code&gt;IN-ROOM-DIRECT&lt;/code&gt; vs &lt;code&gt;IN-ROOM-INDIRECT&lt;/code&gt;) for the few cases that really required them. If there were any.&lt;/p&gt;
&lt;p&gt;Also, more regression tests. Create a "game" with a playground of objects, containers, and NPCs; run through every combination of actions and objects and containment setups. Or at least enough combinations to exercise every possible parsing outcome, plus all the weird experiments above.&lt;/p&gt;
&lt;p&gt;As far as I know, ZIL never had this testing setup. Neither did the hobbyist IF systems of the 1990s. Inform 7 has a very large suite of &lt;a href="https://github.com/ganelson/inform/tree/master/inform7/Tests"&gt;unit tests&lt;/a&gt;, but I don't know if they're written to exercise the &lt;em&gt;parser&lt;/em&gt; as distinct from the I7 compiler.&lt;/p&gt;
&lt;p&gt;Future goals? Maybe.&lt;/p&gt;</content><category term="if"/><category term="interactive fiction"/><category term="infocom"/><category term="zil"/><category term="parser"/></entry><entry><title>Spring games of the id</title><link href="https://blog.zarfhome.com/2026/05/spring-id-games" rel="alternate"/><published>2026-05-06T23:53:39+00:00</published><updated>2026-05-06T23:53:39+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-05-06:/2026/05/spring-id-games</id><summary type="html">The common thread this time is "the id". I don't mean the games are horny; they're not. (Although PSI has "flirt" dialogue options.) I mean somebody wanted a specific thing and made a game that catered to it. You want a style of puzzle that ...</summary><content type="html">&lt;p&gt;The common thread this time is "the id". I don't mean the games are horny; they're not. (Although &lt;em&gt;PSI&lt;/em&gt; has "flirt" dialogue options.) I mean somebody wanted a &lt;em&gt;specific thing&lt;/em&gt; and made a game that catered to it. You want a style of puzzle that videogames don't do much, or you want a building-climber with zero risk of falling, or you want 3000 books piled on the floor. Here you go.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Puzzle Spy International&lt;/li&gt;
&lt;li&gt;Murder at the Birch Tree Theater&lt;/li&gt;
&lt;li&gt;Gecko Gods&lt;/li&gt;
&lt;li&gt;Librarian: Tidy Up the Arcane Library!&lt;/li&gt;
&lt;li&gt;Legacy of Kain: Defiance: Remastered&lt;/li&gt;
&lt;/ul&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;hr /&gt;
&lt;h2 id="puzzle-spy-international"&gt;Puzzle Spy International&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Travel-Friendly Cake -- &lt;a href="https://store.steampowered.com/app/3406690/Puzzle_Spy_International/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A short puzzler made up of Hunt-style puzzles. That is to say: basically paper-and-pencil puzzles where you get a lot of clues and maybe a grid and no immediate idea what to do with it all. But when you start putting pieces together, a pattern emerges, and then a final solution. Neat! This form is very familiar to me as a Boston resident; in fact, some of my friends are off doing a &lt;a href="https://26.baphl.org/"&gt;BAPHL&lt;/a&gt; as I write this. (I skipped it for &lt;a href="https://www.somervilleopenstudios.org/"&gt;Open Studios&lt;/a&gt;.) However, the form is not common at all in videogames. I hope this becomes more of a trend.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;PSI&lt;/em&gt; (yes, the letter "Ψ" is their logo) is short and on the easy side. Hints are available to make it even easier. That's fine! It's a pleasant day's spy-themed entertainment. With just a hint of dating sim for flavor, if you're into that.&lt;/p&gt;
&lt;h2 id="birch-tree-theater"&gt;Murder at the Birch Tree Theater&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Crucible Juice -- &lt;a href="https://www.cruciblejuicegames.com/murder-at-the-btt"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Golden-Idol-alike set in a cursed community theater. "Cursed" because people keep dying! Totally by accident! Deduce the details of ten (or more) deaths, from 1975 through 1995, and figure out who's &lt;em&gt;really&lt;/em&gt; behind it all.&lt;/p&gt;
&lt;p&gt;(That's not actually a mystery -- one character is consistently a sociopathic jackass in every scene, although he's not the only one. Maybe I should say "jack-dog"; the characters are all rendered as anthro animal cartoons. Jackhound? Hm.)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Birch Tree Theater&lt;/em&gt; is a good playable example of its genre. It's fun to see the theater and its dramatis personae through the decades. The shows are mostly &lt;em&gt;musical&lt;/em&gt; theater, which gives the author scope for innumerable furry-musical puns and filks. You don't have to be a fan of musicals to get them. Well, you probably have to be a fan to get &lt;em&gt;all&lt;/em&gt; of them, but I caught "Alan Minken" so I figure I'm doing pretty well.&lt;/p&gt;
&lt;h2 id="gecko-gods"&gt;Gecko Gods&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Inresin -- &lt;a href="https://geckogods.com/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A nonviolent(*) open-world puzzle adventure in a tropical archipelago. These sorts of adventures always involve climbing charismatic megastructures, which I love. Normally the climbing is part of the puzzle. In this one, you're a gecko! You can climb literally anything! You can dance on the ceiling! Falling doesn't hurt because you're so small! Perfect.&lt;/p&gt;
&lt;p&gt;(* Almost nonviolent. Sometimes you have to beat up some hostile beetle-pots. They can't hurt you much though.)&lt;/p&gt;
&lt;p&gt;Notionally, you're trying to solve puzzles to light up statues and stuff to bring back the Gecko Gods. In fact you're there to smash pots and eat tasty bugs. Puzzles are just a way to keep score.&lt;/p&gt;
&lt;p&gt;...Okay, I'm kidding. The puzzles are quite good. Not brain-crushing hard, but a good variety of levers (which you can grab with your tiny gecko mouth), wires to connect up, balls to push onto plates (with your tiny gecko head), and so on. There's a few slider puzzles but they're not &lt;em&gt;too&lt;/em&gt; painful. And of course lots of disorienting three-dimensional architecture to crawl around, including on the ceiling.&lt;/p&gt;
&lt;p&gt;Eating bugs is still the best part. I have no idea how, but your tiny gecko viewpoint somehow invites you to be distracted by every tasty bug you see. Even though snacking down provides &lt;em&gt;no bonus whatsoever&lt;/em&gt;. Other than an achievement for eating one of every species -- but you can't eat just one bug! C'mon. This is master-level embodiment work.&lt;/p&gt;
&lt;p&gt;I haven't finished this; I think I'm working on my third island of five. It's a pretty large-scale game, and not just in comparison to your tiny gecko self. Will finish though.&lt;/p&gt;
&lt;p&gt;EDIT-ADD: Did not in fact finish. The game ends with a timed race which is kinda bullshit. I watched it on youtube.&lt;/p&gt;
&lt;h2 id="librarian"&gt;Librarian: Tidy Up the Arcane Library!&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by ArtRising -- &lt;a href="https://store.steampowered.com/app/4197610/Librarian_Tidy_Up_the_Arcane_Library/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some games have a convoluted design history, full of pivots and agonizing "find the fun" focus sessions. Other games, you can tell, had a &lt;em&gt;one-line&lt;/em&gt; design process: "Oh my god what if you were in a giant messy room full of books and you had to &lt;em&gt;shelve&lt;/em&gt; them &lt;em&gt;all?!"&lt;/em&gt; Sold. Write it and ship it.&lt;/p&gt;
&lt;p&gt;Seriously, click through that game link and look at the &lt;a href="https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/4197610/dfa6f20575bdc163437dfe3cc403fad645a07cf6/ss_dfa6f20575bdc163437dfe3cc403fad645a07cf6.1920x1080.jpg"&gt;screenshot&lt;/a&gt;. If you don't immediately Get It, you're not the target audience.&lt;/p&gt;
&lt;p&gt;I'm afraid &lt;em&gt;Arcane Library&lt;/em&gt; doesn't entirely fulfil its promise. At root it's an incremental game. You start out picking up books one at a time; then you begin to acquire magic to make the job go faster. The problem is that this wheel turns about one-and-a-half times and then jams. &lt;/p&gt;
&lt;p&gt;I say "incremental" but really these games trade on the &lt;em&gt;exponential&lt;/em&gt;, right? Every phase is supposed to go ten times faster than the last, until you're blasting through paper clips or potatoes or whatever in planetary-sized gulps. Here, your fifth shelf of books goes a &lt;em&gt;lot&lt;/em&gt; faster than your first; your tenth shelf goes somewhat faster than your fifth; after than you're kind of in a rut.&lt;/p&gt;
&lt;p&gt;I think if the game had more varieties of spells, with more interesting interactions, it would have held together. Maybe &lt;em&gt;40000&lt;/em&gt; shelves instead of 400? With a rank of spells that operated on a whole new level -- shelves instead of books? Or a lot more secrets. (There are four locked chests but no surprises beyond that.) As it is, I decided I'd had enough after an hour or so.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Footnote:&lt;/em&gt; A friend insists that you're supposed to play without using the spells at all. Just put away 3000 books, by hand, one at a time. If that's your kink, have I got a game for you.&lt;/p&gt;
&lt;h2 id="defiance"&gt;Legacy of Kain: Defiance: Remastered&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Crystal Dynamics -- &lt;a href="https://www.crystaldynamics.com/projects/legacy-of-kain-defiance-remastered/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I played this in 2003 and &lt;a href="https://eblong.com/zarf/gamerev/quick-take-reviews.html"&gt;reviewed&lt;/a&gt; it with the faintest of praise. My entire 2003 commentary:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;An acceptable followup to the first two &lt;em&gt;Soul Reaver&lt;/em&gt; games, but not inspired. The paradox story elements from &lt;em&gt;SR2&lt;/em&gt; are abandoned completely -- not that they were all that strong to begin with, but I was hoping that the conclusion would be more interesting. The major story revelations are all either murky or implausible. I still want more games set in this universe, but they need to start over with better writers. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If I had known that the &lt;a href="https://blog.zarfhome.com/2026/04/games-with-nothing-in-common#legacy-of-kain-ascendance"&gt;next Nosgoth game&lt;/a&gt; would take 23 years to ship, I might have been kinder!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Historic note:&lt;/em&gt; A followup game called &lt;em&gt;&lt;a href="https://www.neogaf.com/threads/legacy-of-kain-dead-sun-updated-with-e3-2012-square-enix-teaser-and-pre-boss-video.997613/"&gt;Dead Sun&lt;/a&gt;&lt;/em&gt; was planned in 2010 with Sam Barlow at the helm. It was cancelled in 2013, freeing Barlow to go off and write &lt;a href="https://blog.zarfhome.com/2016/01/igf-nominees-my-comments#her-story"&gt;much&lt;/a&gt; more &lt;a href="https://blog.zarfhome.com/2022/10/immortality"&gt;interesting&lt;/a&gt; games. (And yet we mourn.) Some remnant of &lt;em&gt;Dead Sun&lt;/em&gt; was spun off into a multiplayer battler called &lt;em&gt;&lt;a href="https://en.wikipedia.org/wiki/Nosgoth"&gt;Nosgoth&lt;/a&gt;&lt;/em&gt;, which never got out of beta.&lt;/p&gt;
&lt;p&gt;So what's it like to come back to a twenty-year-old game that I never planned to replay? I sure didn't remember much of it.&lt;/p&gt;
&lt;p&gt;You alternate playing Kain and Raziel, recrossing the same territory in different time periods, until they converge at the end for a final beat-down with the Elder God. That's about all I remembered. That's about all there is &lt;em&gt;to&lt;/em&gt; remember.&lt;/p&gt;
&lt;p&gt;Oh, there's plenty of &lt;a href="https://www.dark-chronicle.co.uk/def/script/index.php"&gt;story&lt;/a&gt;. You cross paths with the regulars: Moebius and Vorador, Ariel and Janos Audron. You even have a run-in with Mortanius, who hasn't been on-stage since Kain corked him in the original &lt;em&gt;Blood Omen&lt;/em&gt;. (Time travel: a scriptwriter's gift to cameos.) &lt;/p&gt;
&lt;p&gt;It's just, you know, lots of revelations and people sneering at each other. We get more history of the Elder Race vs the Hylden, but as usual, the Hylden are boring. The Hylden Lord escapes at the end, which is either sequel-bait or a reverse-setup for &lt;em&gt;Blood Omen 2&lt;/em&gt; -- I'd completely forgotten &lt;em&gt;him&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Any given exchange is a pleasure to listen to! The voice actors are having a blast. (Check the making-of bonus videos.) But when I try to lay out what &lt;em&gt;happens&lt;/em&gt;, I get: "The writers put Kain and Raziel through their paces." No wonder they get so antsy about free will.&lt;/p&gt;
&lt;p&gt;I had fun. There's plenty of puzzle-shrines and puzzle-tombs and puzzle-courtyards to keep you busy. The environmental puzzles are the heart of these games; &lt;em&gt;Defiance&lt;/em&gt; provides them in top form. As a bonus, most of these maps are polymorphic. Kain and Raziel run through the &lt;em&gt;same&lt;/em&gt; areas -- from different starting points, using different abilities, solving different puzzles, breaking or fixing architecture in ways that will be reflected in each others' time periods. It's a genuinely impressive design stunt.&lt;/p&gt;
&lt;p&gt;On the down side, this is all paced out with endless hallway fights. Fights, fights, fights. They just don't vary that much, as Kain or as Raziel. You beat on mooks until they bleed and then suck them dry, blood- or soul-wise. Bosses: dodge first, then pound. &lt;/p&gt;
&lt;p&gt;The one exception is Turel, the boss-vampire cut from the first &lt;em&gt;Soul Reaver&lt;/em&gt; script. You finally get to take him out -- and his fight is a stylistic gesture back to the environmental puzzle-fights of that earlier game. A good bit. Otherwise, it's all a bit of a slog. Or a bit of a &lt;em&gt;sluagh&lt;/em&gt;. (Sorry.)&lt;/p&gt;
&lt;p&gt;"Zarf, you Nosgoth fanboy, you protest way the heck too much." You bet your tattery blue ass I'm a fanboy. I love the whole ridiculous setting. Raziel is one of my household gods. (Limited-edition &lt;a href="https://eblong.com/zarf/photo/photo_IMG_2236.JPG.html"&gt;18" figurine&lt;/a&gt; guarding my book collection.) When &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2026/04/games-with-nothing-in-common#legacy-of-kain-ascendance"&gt;Ascendance&lt;/a&gt;&lt;/em&gt; and this remaster came out, I grabbed both and played right through.&lt;/p&gt;
&lt;p&gt;What I love about the world of Nosgoth is that it's big, underexplained, and trails off in a thousand weird directions. It's exactly the kind of setting that &lt;em&gt;doesn't&lt;/em&gt; benefit from having all its cracks filled in and smoothed out. Vorador forged the original Reaver blade? No, argh! This is exactly why Sam Barlow's mission was to start fresh with new characters and a new era.&lt;/p&gt;
&lt;p&gt;That said, I will give &lt;em&gt;Defiance&lt;/em&gt; its due: it wraps up Raziel's story on a hell of a high note. &lt;strong&gt;(Spoilers:)&lt;/strong&gt; It effectively recasts the entire Kain-and-Raziel arc as a twisted vampire love story. Seriously, Raziel dies in Kain's arms swearing eternal fidelity. Not a dry eye in the house, albeit probably tears of blood. &lt;/p&gt;
&lt;p&gt;Okay, yes, Kain has spent the last 1500 years of linear history being an unsurmountable and utter dick to Raziel. For plot reasons. Still -- OTP forever. Go them.&lt;/p&gt;</content><category term="reviews"/><category term="puzzle spy international"/><category term="gecko gods"/><category term="librarian"/><category term="tidy up the arcane library"/><category term="soul reaver"/><category term="legacy of kain"/><category term="defiance"/></entry><entry><title>Visible Zork 3 is now available to all</title><link href="https://blog.zarfhome.com/2026/05/visible-zork-3" rel="alternate"/><published>2026-05-01T04:01:34+00:00</published><updated>2026-05-01T22:52:37+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-05-01:/2026/05/visible-zork-3</id><summary type="html">Three months ago, I launched the Visible Zorker Patreon with a promise: fund me and I will create a new Visible Infocom game every month. You did! And now the tree bears fruit. I decided to put the games on a two-month delay, so that Patreon ...</summary><content type="html">&lt;p&gt;Three months ago, I &lt;a href="https://blog.zarfhome.com/2026/01/the-visible-zorker-patreon"&gt;launched&lt;/a&gt; the &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Visible Zorker Patreon&lt;/a&gt; with a promise: fund me and I will create a new Visible Infocom game every month.&lt;/p&gt;
&lt;p&gt;You did! And now the tree bears fruit.&lt;/p&gt;
&lt;p&gt;I decided to put the games on a two-month delay, so that Patreon supporters would have a leg up. I worked on &lt;em&gt;Visible Zork 3&lt;/em&gt; in February; I made it available on the Patreon page on March 1st.&lt;/p&gt;
&lt;p&gt;Two months have passed. (Happy Workers' Day!) And thus &lt;em&gt;&lt;a href="https://eblong.com/infocom/visi/zork3/"&gt;Visible Zork 3&lt;/a&gt;&lt;/em&gt; is now live on the &lt;a href="https://eblong.com/infocom/visi/"&gt;project page&lt;/a&gt;. The &lt;a href="https://github.com/visible-zorking/visi-zork3"&gt;source code repository&lt;/a&gt; is also live, licensed under the open-source MIT license.&lt;/p&gt;
&lt;div class="ImageWrap ImageBorder Center"&gt;
&lt;p&gt;&lt;a href="https://eblong.com/infocom/visi/zork3/"&gt;&lt;img alt="A screenshot titled &amp;quot;The Visible Zorker: Zork 3&amp;quot;. The left side of the window shows the opening of Zork 3, up to the command TURN ON LAMP. The right side shows a list of ZIL function calls and the message &amp;quot;The lamp is now on.&amp;quot;" height="495" src="https://blog.zarfhome.com/pic/2026/05/visizork3-app.png" width="600" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Enjoy the lonely, shadow-lit, eerily silent world of &lt;em&gt;Zork 3&lt;/em&gt;... It's a bit of a tonal shift from the first two games, isn't it? The cartoonish treasure-hunts have been replaced with a somewhat philosophical meditation on virtue. (One might compare the route &lt;em&gt;&lt;a href="https://wiki.ultimacodex.com/wiki/Virtues_in_Ultima_IV"&gt;Ultima 4&lt;/a&gt;&lt;/em&gt; took a few years later.)&lt;/p&gt;
&lt;p&gt;To be sure, there are still some brightly-colored puzzles left over from the original MIT &lt;em&gt;Zork&lt;/em&gt;. The blend isn't entirely smooth. But it's the wrap-up we have for the world of Zork... well, until &lt;em&gt;Enchanter&lt;/em&gt; crashes back in. That will be another episode.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;p&gt;EDIT-ADD: I meant to add some bits of trivia from the &lt;em&gt;Zork 3&lt;/em&gt; source, but I forgot when I was writing up this post last night. Let me just drop one in:&lt;/p&gt;
&lt;p&gt;The Royal Puzzle ("CHINESE PUZZLE" in the 1979 MIT Zork source) is credited to "WILL WENG". Who the heck is Will Weng? A quick search reveals that one Will Weng was the crossword puzzle editor for the New York Times from 1969-1977! Surely the same person?&lt;/p&gt;
&lt;p&gt;Weng was succeeded as NYT crossword editor by Eugene T. Maleska, who was succeeded in 1993 by Will Shortz. The latter names are very familiar to me from Games Magazine in the 1980s, but I did not remember Will Weng at all. How he came to contribute a puzzle to an MIT computer game is sadly not recorded.&lt;/p&gt;
&lt;p&gt;More readings on &lt;em&gt;Zork 3&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.filfre.net/2012/09/zork-iii-part-1/"&gt;The Digital Antiquarian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://golmac.org/an-introduction-to-zork-iii-it-all-came-down-to-that/"&gt;Drew Cook&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;Behind the curtain, in early-access land, the release cycle rolls on. Patreon supporters got hold of &lt;em&gt;Visible Deadline&lt;/em&gt; in April. They got &lt;em&gt;Visible Starcross&lt;/em&gt; today.&lt;/p&gt;
&lt;p&gt;Now that the pump is primed, you can expect a new game every month on the &lt;a href="https://eblong.com/infocom/visi/"&gt;project page&lt;/a&gt;. &lt;em&gt;Deadline&lt;/em&gt; will appear on June 1st, &lt;em&gt;Starcross&lt;/em&gt; on July 1st, &lt;em&gt;Suspended&lt;/em&gt; on August 1st. There may be a one-month break after that, as &lt;a href="https://narrascope.org/"&gt;NarraScope&lt;/a&gt; is going to eat up a bunch of June (and then push out the following schedule slots).&lt;/p&gt;
&lt;p&gt;Here's some previews of upcoming goodies:&lt;/p&gt;
&lt;div class="ImageWrap ImageBorder Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/05/deadline-map.png"&gt;&lt;img alt="A diagram of the first flood of the Robner mansion. The locations of Rourke, Dunbar, and Mrs Robner are marked. Heavy blue lines run through some of the rooms, showing routes that the characters follow when navigating the map. Light pink lines join other rooms; these are sight lines down hallways." height="421" src="https://blog.zarfhome.com/pic/2026/05/deadline-map-thumb.png" width="500" /&gt;&lt;/a&gt;
Part of the map of &lt;em&gt;Deadline&lt;/em&gt;, showing the routes used for NPC movement and visibility. (Here is a &lt;a href="https://blog.zarfhome.com/pic/2026/05/deadline-map.png"&gt;larger view&lt;/a&gt; including the grounds.)&lt;/p&gt;
&lt;/div&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/05/starcross-chart.jpeg"&gt;&lt;img alt="A chart drawn in radial white lines on a starry background. Geometric symbols with four-digit designations are marked in orange and magenta. A legend on the right, on a silvery background, says &amp;quot;M. C. S. Starcross: Mass Detector Output&amp;quot;." height="333" src="https://blog.zarfhome.com/pic/2026/05/starcross-chart-thumb.jpeg" width="500" /&gt;&lt;/a&gt;
My recreation of the &lt;em&gt;Starcross&lt;/em&gt; Mass Detector Chart. (High-resolution source &lt;a href="https://archive.org/details/Infocom_Starcross_Chart_Recreation"&gt;archived here&lt;/a&gt;.)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;(Of course, if you join the &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Patreon&lt;/a&gt; at the $4 level, you get in on the early tier. That means you get &lt;em&gt;Deadline&lt;/em&gt; and &lt;em&gt;Starcross&lt;/em&gt; today, &lt;em&gt;Suspended&lt;/em&gt; in June, and so on. This is the carrot. There is no stick; everything winds up open-source eventually.)&lt;/p&gt;
&lt;p&gt;As you see, I am trying to add a little something creative and insightful to each game. It's not just lists of objects and variables. I will also do new, high-quality scans of feelie material that I have access to. (See my &lt;a href="https://archive.org/details/Casebook_Deadline_Infocom_Apple/"&gt;&lt;em&gt;Deadline&lt;/em&gt; scans here&lt;/a&gt;! Mind you, I really have to rescan those pages in 600dpi lossless. I didn't get this A3-bed scanner for nothing.)&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;So where are we with the &lt;a href="https://eblong.com/infocom/visi/"&gt;Visible Zorker&lt;/a&gt;? I feel pretty good about it!&lt;/p&gt;
&lt;p&gt;I &lt;a href="https://blog.zarfhome.com/2026/01/the-visible-zorker-patreon"&gt;originally said&lt;/a&gt; that I was aiming at $500/month in Patreon support. That number was, as I admitted, an arbitrary goal. But the Patreon is over the $300 mark as I write this. I expect that will bump up if &lt;em&gt;Zork 3&lt;/em&gt; makes a splash. Now that we're in the swing of a public release every month, maybe it will move significantly.&lt;/p&gt;
&lt;p&gt;So I'm happy with the response. More importantly, I'm having fun. This is fun! The Visible Zorker was a genuinely new thing in the world. Nobody else is doing it. Oh, plenty of people &lt;em&gt;could&lt;/em&gt; have done it -- there's no real technical challenge in there -- but I thought of it. I get to be the one. I can build in my sense of history, my sense of design, and my sense of whimsy.&lt;/p&gt;
&lt;p&gt;It's a real boost in a world which seems intent on treating us all as machine parts, one mouse-click away from outsourcing.&lt;/p&gt;
&lt;p&gt;So I'm on board to do the next batch of games. Maybe next year I'll feel burned out and overwhelmed. I can't say. But right now, I'm jazzed to start the next one. (&lt;em&gt;Suspended&lt;/em&gt; is up next! What a great piece of visual design that package was.)&lt;/p&gt;
&lt;p&gt;Thanks for coming on this -- can I say adventure? Adventure, I said it -- with me.&lt;/p&gt;</content><category term="if"/><category term="interactive fiction"/><category term="zork"/><category term="zork 3"/><category term="infocom"/><category term="visible zorker"/><category term="patreon"/><category term="zarf"/></entry><entry><title>2026 Hugo Award finalists</title><link href="https://blog.zarfhome.com/2026/04/2026-hugo-finalists" rel="alternate"/><published>2026-04-23T02:29:06+00:00</published><updated>2026-04-23T02:29:06+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-04-23:/2026/04/2026-hugo-finalists</id><summary type="html">The 2026 Hugo Award finalists are up. Awkward for me: I really like many of the nominees, but I haven't read (seen, played) a majority of any category. So I can't give a useful overview or say that any given work is "best of the year". I'll ...</summary><content type="html">&lt;p&gt;The &lt;a href="https://file770.com/lacon-v-announces-2026-hugo-awards-finalists/"&gt;2026 Hugo Award finalists&lt;/a&gt; are up. Awkward for me: I really like many of the nominees, but I haven't read (seen, played) a majority of any category. So I can't give a useful overview or say that any given work is "best of the year". &lt;/p&gt;
&lt;p&gt;I'll just recommend a bunch!&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;p&gt;(I am not registered for Worldcon this year. I attended last year, which makes me eligible to vote this year, but I didn't submit nominations. I might vote in the finals though.) (EDIT-ADD: Nope, I'd have to register for this year to vote in the final ballot.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Novel:&lt;/strong&gt; &lt;em&gt;A Drop of Corruption&lt;/em&gt; (Robert Jackson Bennett) is an enormously readable fantasy-meatpunk mystery... with kaiju. (Series; this is book two.) &lt;em&gt;Shroud&lt;/em&gt; (Adrian Tchaikovsky) is the old-school genre of "humans visit alien planet -- &lt;em&gt;badly.&lt;/em&gt;" (Haven't seen one of those since &lt;em&gt;Dragon's Egg&lt;/em&gt;.) &lt;em&gt;The Incandescent&lt;/em&gt; (Emily Tesh) is magical-college but from the &lt;em&gt;teacher's&lt;/em&gt; side, which I thought was very interesting. Ending maybe doesn't hold together but it's still a good read. &lt;em&gt;The Raven Scholar&lt;/em&gt; (Antonia Hodgson) is an entertaining court succession crisis. I haven't read &lt;em&gt;The Everlasting&lt;/em&gt; but I've enjoyed Harrow's previous stuff so I'll probably get there.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Novella:&lt;/strong&gt; &lt;em&gt;Automatic Noodle&lt;/em&gt; is semi-cozy robot restaurant fic. I say "semi" because there's some nasty online harassment which kind of took it out of the comfort zone for me, but all does end happily. I read &lt;em&gt;The River Has Roots&lt;/em&gt; (Amal El-Mohtar) but I'm afraid it didn't stick with me. &lt;em&gt;What Stalks the Deep&lt;/em&gt; (T. Kingfisher) is more Ruritanian myco-horror. The series is getting more nuanced in neat ways. Also the author seems to be writing books &lt;em&gt;literally&lt;/em&gt; faster than I can read them; I have no idea how she does it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Novelette:&lt;/strong&gt; I haven't read any of the nominees but I'm excited to see a new Scott Lynch story and will definitely track it down.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Graphic novel:&lt;/strong&gt; This probably makes me an uncultured oaf, but I'm really enjoying &lt;em&gt;The Power Fantasy&lt;/em&gt; (Kieron Gillen, Caspar Wijngaard, Clayton Cowles). No, the world did not need another take on superheroes; yes, this one is well done.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Related work:&lt;/strong&gt; I &lt;em&gt;want&lt;/em&gt; to read &lt;em&gt;Inventing the Renaissance&lt;/em&gt; (Ada Palmer) but I have not yet dug in and done it. I &lt;em&gt;have&lt;/em&gt; read most of &lt;em&gt;Last War in Albion&lt;/em&gt; (Elizabeth Sandifer) -- interest: I support her Patreon. The nominated chapter, "The Cuddled Little Vice (Sandman)", is a stand-alone deep-dive into Neil Gaiman And That Whole Situation, but starting right at Gaiman's launch as an ambitious journalist. It's a hell of a read.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dramatic Long Form:&lt;/strong&gt; &lt;em&gt;KPop Demon Hunters&lt;/em&gt; was as much fun as everybody said. I don't think a single thing in the plot &lt;em&gt;surprised&lt;/em&gt; me, but they got a lot out of the Rumi-Celine parental relationship.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dramatic Short Form:&lt;/strong&gt; Okay, I have good coverage here. &lt;em&gt;Murderbot&lt;/em&gt; (two episodes nominated) was excellently done. "The Story &amp;amp; the Engine" got in my head enough that I turned into a &lt;a href="https://blog.zarfhome.com/2025/07/73-stories"&gt;Dr Who blogger&lt;/a&gt; for a day. &lt;em&gt;The Wheel of Time&lt;/em&gt;, hey, I never read the books but they got three watchable seasons out of it. And &lt;em&gt;Severance&lt;/em&gt; is very impressive, although not in a pleasant way. (And I still think it should have been a one-season firecracker with a WTF ending. This is, after all, the spiritual remake of &lt;em&gt;The Prisoner&lt;/em&gt;.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fan Writer:&lt;/strong&gt; I know nobody reads down this far, but I follow and enjoy James Nicoll's book reviews. I particularly admire his unfailing optimism and faith in the human &lt;em&gt;bwaaaaaahhh&lt;/em&gt; okay I couldn't finish that sentence. He's fun to read. Interest: I once went to a fan meetup at James's game store, back when he ran a game store.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Game&lt;/strong&gt;: I surely loved the heck out of &lt;em&gt;Blue Prince&lt;/em&gt;. The &lt;em&gt;Citizen Sleeper&lt;/em&gt; games are solid work. (My comments: &lt;a href="https://blog.zarfhome.com/2022/09/recent-narrative-games-summer-2022#citizen-sleeper"&gt;CS1&lt;/a&gt;, &lt;a href="https://blog.zarfhome.com/2025/02/timekillers-round-two#citizen-sleeper-2"&gt;CS2&lt;/a&gt;.) I haven't played the others, largely due to the fact that I can't parry for crap and skip any game where I need to. &lt;em&gt;Dispatch&lt;/em&gt; is the non-combat one that I missed; heard good things about it but never got around to.&lt;/p&gt;
&lt;h3&gt;But let's talk about stats!&lt;/h3&gt;
&lt;p&gt;You may recall from my &lt;a href="https://blog.zarfhome.com/2025/08/hugo-game-stats"&gt;2025 post&lt;/a&gt; that, in last year's Best Game category, the final round of voting was pretty clearly split between "indie gamers" and "AAA gamers". I'm not trying to nail down category definitions; I'm just observing that almost every voter who put &lt;em&gt;Dragon Age: Veilguard&lt;/em&gt; first put &lt;em&gt;Zelda: Echoes of Wisdom&lt;/em&gt; second, and vice versa. Everybody else was split between &lt;em&gt;Caves of Qud&lt;/em&gt;, &lt;em&gt;1000xResist&lt;/em&gt;, &lt;em&gt;Tactical Breach Wizards&lt;/em&gt;, and &lt;em&gt;Lorelei and the Laser Eyes&lt;/em&gt; -- but those folks generally did not rank the two "big games" high.&lt;/p&gt;
&lt;p&gt;As a result, there were nearly (though not entirely) two separate races. &lt;em&gt;Dragon Age&lt;/em&gt; won one, &lt;em&gt;Qud&lt;/em&gt; won the other, and then &lt;em&gt;Qud&lt;/em&gt; handily beat &lt;em&gt;Dragon Age&lt;/em&gt; in the final showdown.&lt;/p&gt;
&lt;p&gt;Will the same logic apply in 2026? Let's have those nominees again:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Blue Prince&lt;/em&gt; (Dogubomb / Raw Fury)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Citizen Sleeper 2: Starward Vector&lt;/em&gt; (Jump Over the Age / Fellow Traveller)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Clair Obscur: Expedition 33&lt;/em&gt; (Sandfall Interactive / Kepler Interactive)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Dispatch&lt;/em&gt; (AdHoc Studio)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Hades II&lt;/em&gt; (Supergiant Games)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Hollow Knight: Silksong&lt;/em&gt; (Team Cherry)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of those companies are Nintendo or Electronic Arts, that's for sure. Or even Bioware. These are all plausibly indie games; all six got labelled as "independent" in industry award shows. Although I've seen plenty of argument over whether &lt;em&gt;Clair Obscur&lt;/em&gt; was too big or too big-budget to really count.&lt;/p&gt;
&lt;p&gt;On the other hand, &lt;em&gt;Silksong&lt;/em&gt; and &lt;em&gt;Hades 2&lt;/em&gt; both came in with the &lt;em&gt;expectation&lt;/em&gt; of being Momentous Games Releases. &lt;em&gt;Clair Obscur&lt;/em&gt; was a surprise, but rapidly hit escape velocity and, e.g., swept the heck out of &lt;a href="https://www.polygon.com/the-game-awards-2025-all-winners/"&gt;The Game Awards 2025&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So when I observed a split in 2025, what was I really seeing?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If it was between fans of giant traditional game companies and fans of small studios, then it doesn't apply at all this year.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If it was between fans of big-budget behemoths and scrappy little projects, then it may be &lt;em&gt;Clair Obscur&lt;/em&gt; against everybody else.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If it was between fans of long-expected titles and fans of surprise newcomers, then it's &lt;em&gt;Silksong&lt;/em&gt; and &lt;em&gt;Hades&lt;/em&gt; vs the world. (&lt;em&gt;Citizen Sleeper 2&lt;/em&gt; is a sequel but not in a way that makes it big news.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If it's people who think award-winning games should win more awards vs people who want to give weird little niches a chance, then it's &lt;em&gt;Silksong / Hades / Clair Obscur&lt;/em&gt; against &lt;em&gt;Blue Prince / Dispatch / Citizen Sleeper&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Obviously none of these cases predict a winner. The whole point of the runoff system is that the race is not superdetermined by a single litmus test. (Nothing in 2025 told you in advance that &lt;em&gt;Qud&lt;/em&gt; would be the favorite indie game.) &lt;/p&gt;
&lt;p&gt;Really I'm just pinning down some cases, so that my post-2026 analysis has hypotheses to falsify! Gonna be an interesting race regardless.&lt;/p&gt;</content><category term="hugos"/><category term="worldcon"/><category term="awards"/></entry><entry><title>A bunch of games with nothing in common</title><link href="https://blog.zarfhome.com/2026/04/games-with-nothing-in-common" rel="alternate"/><published>2026-04-18T13:21:05+00:00</published><updated>2026-04-18T13:21:05+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-04-18:/2026/04/games-with-nothing-in-common</id><summary type="html">I know I haven't done a game-review wrap-up since... January? Yikes. And those were mostly reviews I wrote back in the November. (Fall is IGF judging season.) Infocom stuff has taken up most of my free time -- not to mention GDC travel and NarraScope ...</summary><content type="html">&lt;p&gt;I know I haven't done a game-review wrap-up since... &lt;a href="https://blog.zarfhome.com/2026/01/2026-igf-nominees"&gt;January&lt;/a&gt;? Yikes. And those were mostly reviews I wrote back in the November. (Fall is IGF judging season.)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://eblong.com/infocom/visi/"&gt;Infocom stuff&lt;/a&gt; has taken up most of my free time -- not to mention &lt;a href="https://blog.zarfhome.com/2026/03/twine-zork-gdc"&gt;GDC travel&lt;/a&gt; and &lt;a href="https://narrascope.org/"&gt;NarraScope planning&lt;/a&gt;. But I have played a &lt;em&gt;few&lt;/em&gt; games. I mean, new Nosgoth lore, I can't turn that down.&lt;/p&gt;
&lt;p&gt;Here's some stuff that's been going on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Séance of Blake Manor&lt;/li&gt;
&lt;li&gt;Intelligence&lt;/li&gt;
&lt;li&gt;The Artisan of Glimmith&lt;/li&gt;
&lt;li&gt;Blippo+&lt;/li&gt;
&lt;li&gt;Kevin's Playing in Berlin &lt;/li&gt;
&lt;li&gt;Planet of Lana 2&lt;/li&gt;
&lt;li&gt;Legacy of Kain: Ascendance &lt;/li&gt;
&lt;/ul&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;hr /&gt;
&lt;h2 id="the-seance-of-blake-manor"&gt;The Séance of Blake Manor&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Spooky Doorway -- &lt;a href="https://www.spookydoorway.com/the-seance-of-blake-manor/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A line-art mystery game set in rural Ireland, 1897. This is &lt;em&gt;not&lt;/em&gt; the static detection genre; it's a good old-fashioned (doubly old-fashioned!) mystery where you walk around a hotel and ask people questions and try to catch them in lies. And dig through their luggage while they're having a drink down the bar.&lt;/p&gt;
&lt;p&gt;Specifically, it's non-static in that time passes. You can run out. Time only passes when you &lt;code&gt;EXAMINE&lt;/code&gt; or &lt;code&gt;ASK SOMEONE ABOUT&lt;/code&gt; -- as we say in parser-land -- but since those are the things you &lt;em&gt;do&lt;/em&gt; in the game, it's a real limit. The limit got on my nerves and I didn't finish the game.&lt;/p&gt;
&lt;p&gt;I can see exactly how they got there. The manor is full to the Plimsoll line with random stuff -- you can pry into every shelf and drawer in every room. You &lt;em&gt;don't&lt;/em&gt; want to lawnmower all that, or ask every person about every topic. You're not supposed to! Figuring out what's worth your time is a core game skill. And the only way to land that is to give every query a tiny &lt;em&gt;(tiny)&lt;/em&gt; opportunity cost. You really have plenty of time; the tutorial sequences make that very clear.&lt;/p&gt;
&lt;p&gt;And yet. Some critical objects are not distinguished at all. Sometimes you really do have to examine every bookshelf in every room until you run across the Bible with writing in the flyleaf.&lt;/p&gt;
&lt;p&gt;It's not a big deal to waste ten game minutes, or even thirty. But the prospect of blowing &lt;em&gt;unbounded&lt;/em&gt; game time looking for a puzzle-unlock was... hurty. So I hit a walkthrough. And once I went to the walkthrough, I realized that I kind of wanted to use a walkthrough for &lt;em&gt;every&lt;/em&gt; puzzle, and then... I just never got back to playing the game.&lt;/p&gt;
&lt;p&gt;I'm sure that if I'd kept at it, I would have reached a good ending. It was early Saturday evening (about halfway through the timeline); I'd finished several story threads and made good progress on all of them. I wasn't &lt;em&gt;stuck&lt;/em&gt;. I kept the game installed for a couple of weeks, saying "Surely I will get back to this and finish it." Eventually I realized I was lying.&lt;/p&gt;
&lt;p&gt;You know, this is exactly how everybody felt who bounced off &lt;em&gt;Blue Prince&lt;/em&gt;. "The game is fine, they just have to get rid of this one annoying mechanic that doesn't even have anything to do with the puzzles!" Yeah, and &lt;em&gt;Blue Prince&lt;/em&gt; without the RNG is a different game. &lt;em&gt;Blake Manor&lt;/em&gt; without the time limits is a different game. I am not bold enough to assert that it would be a better game.&lt;/p&gt;
&lt;p&gt;I enjoyed all the bits of &lt;em&gt;Blake Manor&lt;/em&gt; that I played. It's a good (if somewhat miscellaneous) collection of period-occultist mini-dramas. The characters are all colorful and entertaining. There's a library and a hedge maze and many secret doors.&lt;/p&gt;
&lt;p&gt;Footnote: One of my friends noted that the hotel staff includes women named "Caitlin" and "Saoirse", which is not really period. Working-class Irish women in 1897 would have been named "Mary" and "Mary".&lt;/p&gt;
&lt;h2 id="intelligence"&gt;Intelligence&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Zero Trick Pony games -- &lt;a href="https://intelligencegame.tech"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A short &lt;a href="https://intelligencegame.tech"&gt;web-based&lt;/a&gt; static deduction game... in &lt;em&gt;space&lt;/em&gt;! Which is to say, in a near-future Expanse-ish sci-fi setting. Spaceships -- corporate, commercial, and military -- zoom around the Solar System, but some of them have gone missing. Figure out how and where each one wound up. It's a pleasant combination of querying witnesses, digging through databases, and applying analysis tools.&lt;/p&gt;
&lt;p&gt;Also, a storyline with an exciting climactic scene. The game isn't "static" in the sense of no time passing; you are involved in events. They arrive at your pace, though. You're uncovering what happened, not deciding how the story will go. (Until... well, you'll see.)&lt;/p&gt;
&lt;p&gt;I like the general design sense of "you gain more options over time". More topics to ask about, more databases to query in, more analysis tools. I think this is what &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2022/01/2022-igf-nominees-miscellaneous#strange-horticulture"&gt;Strange Horticulture&lt;/a&gt;&lt;/em&gt; brought to the party that makes it a particular favorite of mine. It's well-used here.&lt;/p&gt;
&lt;p&gt;...Okay, I just love analysis tools. &lt;em&gt;&lt;a href="https://intelligencegame.tech"&gt;Intelligence&lt;/a&gt;&lt;/em&gt; doesn't get very complicated -- you always have a good sense of where or how to dig on a particular clue -- but being able to run some "electromagnetic data" through the &lt;em&gt;weapon signature analyzer&lt;/em&gt; vs the &lt;em&gt;engine signature analyzer&lt;/em&gt; is a tiny bit of adventure-game logic that makes the world come alive.&lt;/p&gt;
&lt;h2 id="the-artisan-of-glimmith"&gt;The Artisan of Glimmith&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Lunarch Studios -- &lt;a href="https://store.steampowered.com/app/4160210/The_Artisan_of_Glimmith/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="https://blog.zarfhome.com/2016/07/point-of-view-in-witness-design"&gt;Witness&lt;/a&gt;&lt;/em&gt;-like rule-based panel puzzles, only not first-person.&lt;/p&gt;
&lt;p&gt;There's a whole lot of these puzzles and they're consistently challenging, fair, and tight. You just know the designers built a whole testing framework to verify that every puzzle has a unique solution even though most players will &lt;em&gt;never notice that&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;But, as with &lt;a href="https://blog.zarfhome.com/2025/07/summer-puzzle-games#cipher-zero"&gt;most&lt;/a&gt; of these puzzle-puzzle-puzzle games, I eventually felt exhausted and put it away. It's too same-y to play in long sessions, and (as a Steam game) too heavy-weight for me to pick up for a quick snack.&lt;/p&gt;
&lt;p&gt;I really do want some sense of &lt;em&gt;exploring a world&lt;/em&gt; and finding something cool around the next corner. &lt;em&gt;Glimmith&lt;/em&gt; is laid out as a floating village in space, but you're not &lt;em&gt;in&lt;/em&gt; the village; it's a rigidly external viewpoint. Which, yes, they use to hide a few sneaky bonus puzzles -- but in a way that &lt;em&gt;rules out&lt;/em&gt; any sense of embodiment. If you were present in the world, you could turn your head!&lt;/p&gt;
&lt;p&gt;If they ever ship an iOS version, mind you, I'll jump right back in. That's the snack device for me. As it were.&lt;/p&gt;
&lt;h2 id="blippo"&gt;Blippo+&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Ekistics Entertainment  -- &lt;a href="https://blippo.plus/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Delightful snippets of alien cable TV. "It's not a game!" warns everybody, presumably to the sort of fragile flowers who get panic attacks if they go twenty minutes without seeing a health bar. You know what? &lt;em&gt;Blippo+&lt;/em&gt; &lt;em&gt;is&lt;/em&gt; a game. It updates as you play (slowly, in chunks) and you see events progressing. It's fundamentally the same genre as &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2022/10/immortality"&gt;Immortality&lt;/a&gt;&lt;/em&gt;, or &lt;em&gt;Portal&lt;/em&gt; if 1986-quality FMV had been available in 1986.&lt;/p&gt;
&lt;p&gt;Headcanon: Planet Blip is from the same universe as &lt;em&gt;&lt;a href="https://www.youtube.com/watch?v=MW29FeIcKVU"&gt;Rise and Fall of Sanctuary Moon&lt;/a&gt;&lt;/em&gt;. Look at the hair, tell me I'm wrong. Fhloston (as in Fhloston Paradise) is mentioned as well.&lt;/p&gt;
&lt;h2 id="kevins-playing-in-berlin"&gt;Kevin's Playing in Berlin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Kevin Du -- &lt;a href="https://store.steampowered.com/app/3982990/kevins_PLAYING_in_berlin/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Kevin Du writes a game. I buy the game. I install the game. I have no idea what I'm supposed to do with the game. I uninstall the game. Then I buy his next game because I want him to keep doing this.&lt;/p&gt;
&lt;p&gt;I guess my position is that these &lt;em&gt;are&lt;/em&gt; games but -- at least for &lt;em&gt;&lt;a href="https://kevindu.itch.io/ginger"&gt;Ginger&lt;/a&gt;&lt;/em&gt; and this one -- the set of people who are supposed to play them is empty. Russell would weep; Cantor would lie down with a damp cloth on his face.&lt;/p&gt;
&lt;p&gt;This time it's three mini-games and I have no idea what I'm supposed to do in any of them.&lt;/p&gt;
&lt;h2 id="planet-of-lana-2"&gt;Planet of Lana 2&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Wishfully Studios -- &lt;a href="https://www.planetoflana.com/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Another non-pixel-art side-scrolling puzzle platformer set on, well, the planet of &lt;a href="https://blog.zarfhome.com/2024/01/2024-igf-nominees-normal-stuff#planet-of-lana"&gt;Lana&lt;/a&gt;. (Lana is the protagonist, not the planet.)&lt;/p&gt;
&lt;p&gt;This makes a good solid attempt at bringing in new mechanics beyond pushing crates and dodging sentry robots. Mind you, you still do both of those things, but there's also drones and fish. And you can swim. There's the occasional chase sequence.&lt;/p&gt;
&lt;p&gt;I think the mechanics were good, but they went for complexity over difficulty. You have to do a lot of multi-step tasks that aren't tricky per se. And it throws you right into most of them. The "Use Mui's special ability to take over a drone and use its special ability" loop was particularly hard to grasp, for a core mechanic. Can we talk about a complexity ramp as distinct from a difficulty ramp? The puzzles themselves are light-weight, but I feel like the target audience will get lost trying to operate them.&lt;/p&gt;
&lt;p&gt;Worked fine for me, though. As far as I'm concerned, the &lt;em&gt;Lana&lt;/em&gt; games are mostly about the evocative hand-painted environments and the story (unsubtitled but enthusiastically animated). &lt;/p&gt;
&lt;p&gt;Here, I'll tell you my favorite bit. The game sticks very firmly to the 2D-platformer plane -- it has to, for the puzzles to make sense. All movement is left-right / up-down. &lt;em&gt;Except&lt;/em&gt; that in one cut scene, Lana turns 90 degrees and follows another character into the background. And it's ominous! "Noooo, don't step off the path! You're making a terrible mistake! &lt;em&gt;Never break the frame!&lt;/em&gt;" With ominous music, even. And yes, the story cashes that check. I laughed and laughed.&lt;/p&gt;
&lt;h2 id="legacy-of-kain-ascendance"&gt;Legacy of Kain: Ascendance&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Bit Bot Game Studios -- &lt;a href="https://www.crystaldynamics.com/projects/legacy-of-kain-ascendance/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A pixel-art side-scrolling beat-em-up platformer set in Nosgoth.&lt;/p&gt;
&lt;p&gt;This is both delightful and entirely laughable. I mean, the whole point of the &lt;em&gt;Kain&lt;/em&gt; series is overwrought vampire gothiness taken up to eleven and then doubled. (Camp-22?) It can't &lt;em&gt;not&lt;/em&gt; be laughable.&lt;/p&gt;
&lt;p&gt;But this is specifically the thing of inventing an Original Character -- Elaleth, birth-sister of Raziel -- and inserting her into every possible gap in the storyline. And doing it &lt;em&gt;really well&lt;/em&gt;, because the writers know the storyline like the backs of their demonically-clawed hands. It couldn't be more fanfic if her name were Elaleth Dark'ness Dementia.&lt;/p&gt;
&lt;p&gt;Please understand that I am not &lt;em&gt;complaining&lt;/em&gt;. I love involuted fanon. I am here for it. And it's not like trying to expand canon in new directions is &lt;em&gt;inherently&lt;/em&gt; a better idea; that's how we got the boring Hylden, who remain boring. I am just saying that filling in gaps is a self-limiting prospect.&lt;/p&gt;
&lt;p&gt;Ok look: I am playing this in alternating chapters with the remastered &lt;em&gt;LoK: Defiance&lt;/em&gt;, of which I once wrote: "The major story revelations are all either murky or implausible." The awful truth may be -- you can't make me admit this but I have to say the words -- that the Nosgoth setting never had that much potential to begin with.&lt;/p&gt;
&lt;p&gt;On the up side, they got back every veteran voice actor they could. Grace to the memories of Tony Jay and René Auberjonois.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Any&lt;/em&gt;-how. Side-scrolling platformer! It's mostly fighting mooks and jumping. If you play in story mode (like me, obviously) you have infinite hit points so it's just jumping. And enjoying the laughable dialogue. And reading the little lore journals, which &lt;em&gt;do&lt;/em&gt; expand the canon, full credit there honestly.&lt;/p&gt;
&lt;p&gt;Mind you, you have to be pretty good at jumping sequences. Those get tricky. Again, story mode lets you ignore the fireballs and flying green demonponies (seriously, what were those?) I recommend story mode.&lt;/p&gt;
&lt;p&gt;Anyhow, if you can name the Nine Pillars off the top of your head or you're ready to shout "omg it's Janos Audron's Retreat in pixel-art!", I've got your goods. &lt;em&gt;But:&lt;/em&gt; I have not yet finished playing. I leave this space open for the ending to wow me after all: &lt;code&gt;_____&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;EDIT-ADD: Yeah, that's about what I expected. Hit all the right marks; no surprises.&lt;/p&gt;
&lt;p&gt;Demonically clawed footnote: I see the story was adapted from a kickstarted &lt;a href="https://www.hiveinteractive.net/projects/legacy-of-kain-soul-reaver-prequel-graphic-novel-269"&gt;graphic novel&lt;/a&gt;. And I see that fans got cranky about getting an Original Character. Sigh. &lt;/p&gt;
&lt;p&gt;Look, there's nothing wrong with Elalath as a protagonist. I was happy to get a fresh voice. When I complain about "filling in the gaps", it's because a perfectly good character is used as scaffolding for Raziel's &lt;a href="https://eblong.com/zarf/nosgoth/timeline.html"&gt;thoroughly-mapped-out&lt;/a&gt; storyline. And the writer &lt;em&gt;knows&lt;/em&gt; this, because the game (and I assume the comic) ends with Elaleth walking offstage into her &lt;em&gt;own&lt;/em&gt; storyline!&lt;/p&gt;
&lt;p&gt;I don't know if the sequel hook will come to anything, but I'm on board for it. And yes, I will pick up &lt;em&gt;Dead Shall Rise&lt;/em&gt; in print. I'm just sorry it doesn't come with Simon Templeman and Michael Bell sneering and brooding over every line.&lt;/p&gt;</content><category term="reviews"/><category term="the seance of blake manor"/><category term="intelligence"/><category term="the artisan of glimmith"/><category term="blippo+"/><category term="kevin's playing in berlin"/><category term="planet of lana"/><category term="legacy of kain"/><category term="ascendance"/><category term="soul reaver"/></entry><entry><title>A Cornerstone interpreter and the mu machine</title><link href="https://blog.zarfhome.com/2026/04/cornerstone-and-the-mu-machine" rel="alternate"/><published>2026-04-05T16:25:17+00:00</published><updated>2026-04-05T16:25:17+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-04-05:/2026/04/cornerstone-and-the-mu-machine</id><summary type="html">I'm going to tell this one out of order, because it's not April Fool's Day any more. Tara McGrew, the author of the modern ZILF compiler, has released Linchpin, a brand-new implementation of Infocom's "mu machine". That's the virtual machine ...</summary><content type="html">&lt;p&gt;I'm going to tell this one out of order, because it's not April Fool's Day any more.&lt;/p&gt;
&lt;p&gt;Tara McGrew, the author of the modern &lt;a href="https://zilf.io"&gt;ZILF&lt;/a&gt; compiler, has released &lt;a href="https://github.com/taradinoc/linchpin"&gt;Linchpin&lt;/a&gt;, a brand-new implementation of Infocom's "mu machine". That's the virtual machine which powered Cornerstone.&lt;/p&gt;
&lt;div class="ImageWrap ImageBorder Center"&gt;
&lt;p&gt;&lt;img alt="A terminal-window screen displaying a database view. The upper lines are a menu with commands like UPDATE, SELECT, and VIEW. The header below these says &amp;quot;VIEW CUSTOMER / 15 Records / Not sorted&amp;quot;. Below that is a list of fictitious businesses like &amp;quot;Newton Auto Rentals&amp;quot; and &amp;quot;Watertown Car Center&amp;quot;." height="392" src="https://blog.zarfhome.com/pic/2026/04/corner-view-customer.png" width="580" /&gt;
Cornerstone 5.20, displaying its sample database, running in the Linchpin interpreter.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;...You all know about &lt;a href="https://www.ifwiki.org/Cornerstone"&gt;Cornerstone&lt;/a&gt;, right? Infocom's first and last business product? Ate up all their game profits at exactly the point when the company couldn't afford it? Go read the &lt;a href="https://www.filfre.net/2014/04/down-from-the-top/"&gt;Digital Antiquarian article&lt;/a&gt;; Jimmy tells it better than me.&lt;/p&gt;
&lt;p&gt;Anyhow. Since the 1990s, Infocom fans have put uncountable nerd-years into supporting the Z-machine. Almost nobody has looked at Cornerstone. It just wasn't a fun idea. John Elliott did some &lt;a href="https://www.seasip.info/DOS/Cornerstone/cornerstone.html"&gt;reverse-engineering work&lt;/a&gt; (see his comments in the DA post) but didn't get very far.&lt;/p&gt;
&lt;p&gt;As of last week, that has changed. It's a new age for aficionados of failed 1985 database products! &lt;a href="https://github.com/taradinoc/linchpin"&gt;Linchpin&lt;/a&gt; includes a working interpreter for Cornerstone's VM. It also includes an assembler, so you can create new programs for that VM.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;p&gt;As a final touch, Tara updated &lt;a href="https://zilf.io"&gt;ZILF&lt;/a&gt; with a new back-end. It can now compile ZIL code directly to the Cornerstone VM. I mentioned April Fool's Day? On April 1st, Tara &lt;a href="https://intfiction.org/t/cornerstones-vm-was-cornerstone-for-atari/79644"&gt;announced&lt;/a&gt; that she had found not only the unreleased Atari ST port of Cornerstone, but a version of Zork that runs on the mu machine.&lt;/p&gt;
&lt;p&gt;This was, to be clear, a joke. Atari Cornerstone remains a lost project, and Infocom never considered cross-compiling its games. However, the &lt;a href="https://hansprestige.com/cornerstone/zork.st"&gt;Zork disk&lt;/a&gt; and the &lt;a href="https://hansprestige.com/cornerstone/corner.st"&gt;Cornerstone disk&lt;/a&gt; &lt;em&gt;exist&lt;/em&gt;; Tara created them. You can get them running on an Atari emulator, or an actual Atari ST if you feel ambitious.&lt;/p&gt;
&lt;p&gt;(Note: &lt;a href="https://github.com/taradinoc/linchpin"&gt;Linchpin&lt;/a&gt; is available, but I don't see the updated version of &lt;a href="https://zilf.io"&gt;ZILF&lt;/a&gt; yet.)&lt;/p&gt;
&lt;p&gt;That's the news flash. Now I shall take questions.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Yes, you in the back. Yes? Well, if you bought Cornerstone...&lt;/p&gt;
&lt;p&gt;Oop, sorry -- let me repeat the question.&lt;/p&gt;
&lt;h3&gt;Why do I keep saying "mu machine"?&lt;/h3&gt;
&lt;p&gt;If you bought Cornerstone back in 1985, you could see that the DOS executable was called &lt;code&gt;MME.EXE&lt;/code&gt;, and one of its data files was &lt;code&gt;CORNER.MME&lt;/code&gt;. The &lt;code&gt;MME&lt;/code&gt; command is mentioned in the &lt;a href="https://archive.org/details/cornerstone-owners-handbook-ii/page/191/mode/2up"&gt;Cornerstone manual&lt;/a&gt; as well. So the name "MME" was clearly a &lt;em&gt;thing&lt;/em&gt;. But we didn't know what it meant.&lt;/p&gt;
&lt;p&gt;However, after Tara's post, I dug into my backlog of Infocom data to see if I could find anything about Cornerstone. I didn't find much; what's been preserved is from &lt;a href="https://archive.org/details/infocomcabinet"&gt;Infocom's game division&lt;/a&gt;, not the business division.&lt;/p&gt;
&lt;p&gt;However, I did find this quote, apparently intended for a &lt;em&gt;Status Line&lt;/em&gt; article that never came to be:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Currently, we have three types of interpreters: ZIP (for Zork Interpretive Program) which runs the games, MME (for Mu Machine Emulator) which runs Cornerstone, and DIP (for Display Interpretive Program) which runs &lt;em&gt;Fooblitzky.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Gotcha! I guess we can refer to μ-code now.&lt;/p&gt;
&lt;p&gt;(Modulo arguments about capitalization. We write "Z-code", so shouldn't we write "Μ-code" with a capital Mu? It's only a wee bit confusing...)&lt;/p&gt;
&lt;p&gt;(The name "DIP" turned up a few years ago when I was collecting &lt;a href="https://github.com/erkyrath/infocom-zcode-terps"&gt;Infocom's interpreter code&lt;/a&gt;. See &lt;a href="https://github.com/erkyrath/infocom-zcode-terps/tree/master/unix"&gt;here&lt;/a&gt; for their original DIP interpreter implementation. There are no modern open-source DIP interpreters, as far as I know. Maybe next April.)&lt;/p&gt;
&lt;h3&gt;What is the mu machine good for?&lt;/h3&gt;
&lt;p&gt;I don't know! I've barely looked at the interpreter code. Go read &lt;a href="https://www.seasip.info/DOS/Cornerstone/cornerstone.html"&gt;John Elliott's overview&lt;/a&gt; or this &lt;a href="https://github.com/taradinoc/linchpin/blob/master/data/instruction_grammar.json"&gt;partial instruction set description&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;At a glance, it's a subject-neutral low-level VM. Most of the opcodes manipulate bytes and memory arrays. A few are dedicated to string comparison. It supports reading and writing files. It prints text directly to the screen (presumed to be a terminal-style grid); there's some stuff about dividing the screen into panes which can be scrolled independently. (You can see this in how Cornerstone runs.)&lt;/p&gt;
&lt;p&gt;The VM was &lt;em&gt;not&lt;/em&gt; specifically built to be a database. If Cornerstone had been a landmark hit, Infocom would have been well-poised to build "Infocalc", "Infowrite", and the other business ideas they had tossed around.&lt;/p&gt;
&lt;p&gt;One important note: the keyboard-read opcode (&lt;code&gt;KBINPUT&lt;/code&gt; in John Elliott's list) is a poll rather than a blocking read. This means that the interpreter busy-spins as it waits for input. I guess that made sense in the DOS era, but it's poor sportsmanship these days. A modern implementation should probably have a 5ms delay or something to keep the heat down.&lt;/p&gt;
&lt;h3&gt;Where can you download Cornerstone itself?&lt;/h3&gt;
&lt;p&gt;Until last week, I'd never gone looking for Cornerstone. (See "not fun" above.) But now of course I had to.&lt;/p&gt;
&lt;p&gt;The Internet Archive has a disk image of Cornerstone 5.1 in &lt;a href="https://archive.org/download/20230305_20230305_2208/Floppy/"&gt;this collection&lt;/a&gt;. Actually it's &lt;em&gt;five&lt;/em&gt; disk images, tagged as "Program Disk", "Sample Database", "Client Tracking", "Beginner's Guide 1", and "Beginner's Guide 2".&lt;/p&gt;
&lt;p&gt;For added fun, the "Program Disk" is served in three formats I never heard of: &lt;code&gt;.86f&lt;/code&gt;, &lt;code&gt;.mfm&lt;/code&gt;, and &lt;code&gt;.tc&lt;/code&gt;. Sorry -- I'm sure they're old hat to you, but I'm new to the world of PC emulation. But I managed to get the files off. I've now posted these (as regular easy-to-use &lt;code&gt;.zip&lt;/code&gt; files) to my &lt;a href="https://eblong.com/infocom/#cornerstone"&gt;Infocom Collection&lt;/a&gt; page.&lt;/p&gt;
&lt;p&gt;Then I went hunting around the Internet, and hey look -- some abandonware site had a disk image for Cornerstone 5.20. So I added &lt;a href="https://eblong.com/infocom/#cornerstone"&gt;that one&lt;/a&gt; too. (Only four disks this time. It looks like the two "Beginner's Guides" have been combined, but I haven't tried them out.) &lt;/p&gt;
&lt;p&gt;Both versions can be fired up in &lt;a href="https://github.com/taradinoc/linchpin"&gt;Linchpin&lt;/a&gt;; see my &lt;a href="https://intfiction.org/t/cornerstones-vm-was-cornerstone-for-atari/79644/19"&gt;forum post&lt;/a&gt; for detailed instructions. Note that I ran into some bugs when trying to &lt;code&gt;ADD-RECORD&lt;/code&gt;. No doubt the interpreter will get some updates as people break it in.&lt;/p&gt;
&lt;p&gt;If you know of disk images of any other versions, by the way, drop me a line. I guess I'm collecting them now.&lt;/p&gt;</content><category term="infocom"/><category term="cornerstone"/><category term="mu-machine"/><category term="linchpin"/><category term="zilf"/></entry><entry><title>The Curse of the Forgotten Adverbs</title><link href="https://blog.zarfhome.com/2026/04/curse-of-the-forgotten-adverbs" rel="alternate"/><published>2026-04-03T01:53:30+00:00</published><updated>2026-04-03T17:12:16+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-04-03:/2026/04/curse-of-the-forgotten-adverbs</id><summary type="html">(My first title for this post was "The Mystery of the Missing Adverbs". That was just too trite. Instead I spun the ol' Stratemeyer Syndicate title wheel and picked different words. Now it's trite and clunky; sorry.) Adverbs are one of the great ...</summary><content type="html">&lt;p&gt;(My first title for this post was "The Mystery of the Missing Adverbs". That was just too trite. Instead I spun the ol' &lt;a href="https://en.wikipedia.org/wiki/List_of_Nancy_Drew_books"&gt;Stratemeyer Syndicate&lt;/a&gt; title wheel and picked different words. Now it's trite &lt;em&gt;and&lt;/em&gt; clunky; sorry.)&lt;/p&gt;
&lt;p&gt;Adverbs are one of the great Bad Ideas of interactive fiction. Imagine this sort of interaction:&lt;/p&gt;
&lt;div class="PreWrap"&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;gt; EXAMINE BRICK WALL
At a glance, it's just an ordinary brick wall.&lt;/p&gt;
&lt;p&gt;&amp;gt; CAREFULLY EXAMINE BRICK WALL
Upon closer inspection, you see some cracks outlining a secret door!&lt;/p&gt;
&lt;p&gt;&amp;gt; PUSH WALL
The wall creaks and quivers slightly at your touch.&lt;/p&gt;
&lt;p&gt;&amp;gt; PUSH WALL FIRMLY
The secret door scrapes open, spraying dust and the funk of ages.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;We can parse verbs, adjectives, and nouns, so why not adverbs? They provide an additional axis of choice for the player's command. They can be situationally appropriate. (Note how I'm cueing the player to consider alternatives: "At a glance", "at your touch".) Is this a good idea?&lt;/p&gt;
&lt;p&gt;Well, no. It's bad. The standard reply is that this is &lt;em&gt;too much&lt;/em&gt; choice. It can't be connected to meaningful game responses. That is: 98% of the time, &lt;code&gt;EXAMINE CAREFULLY&lt;/code&gt; is going to do exactly the same thing as &lt;code&gt;EXAMINE&lt;/code&gt;, so the player will rapidly learn to not bother.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;p&gt;Also, players are used to searching a two-axis space. "Try every verb on every noun" is boring; you don't &lt;em&gt;want&lt;/em&gt; the player to go there; but sometimes they get stuck and it happens. Trying every verb/noun/&lt;em&gt;adverb&lt;/em&gt; combination isn't practical at all.&lt;/p&gt;
&lt;p&gt;(I once tried to equate the two-axis noun-verb searchable space of text IF with the two-dimensional searchable screen space of &lt;em&gt;Myst&lt;/em&gt;. I was certainly overstating that connection -- this was before &lt;em&gt;RealMyst&lt;/em&gt; -- but it's fun to try.)&lt;/p&gt;
&lt;p&gt;This argument is not new in IF circles. In fact it's so well-known that I can't remember the last time someone seriously &lt;em&gt;proposed&lt;/em&gt; adding adverbs. They're only hauled out as an example of a Bad Idea!&lt;/p&gt;
&lt;p&gt;Except... occasionally, in one of those discussions, someone remembers that &lt;em&gt;Deadline&lt;/em&gt; &lt;em&gt;does&lt;/em&gt; use adverbs. And they kind of work, right? I mean, the game was playable. We used the right word at the right time and solved the mystery. And yet the idea was never followed up -- outside of Infocom's later mystery games.&lt;/p&gt;
&lt;p&gt;What's going on here?&lt;/p&gt;
&lt;p&gt;(SPOILER WARNING: Spoilers for the mysteries of &lt;em&gt;Deadline&lt;/em&gt;! Some of them, at least.)&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;First, we note that the manual doesn't clue you in about adverbs &lt;em&gt;at all&lt;/em&gt;. Neither the &lt;a href="https://archive.org/details/CasebookDeadlineInfocom/Casebook_Deadline_Infocom/"&gt;folio-edition instructions&lt;/a&gt; nor the &lt;a href="https://infodoc.plover.net/manuals/temp/deadline.pdf"&gt;grey-box manual&lt;/a&gt; (they're slightly different). The sample game in the grey-box manual doesn't use any adverbs either. That's not great! It seems like the game wants you to try a command that you have no way of knowing about.&lt;/p&gt;
&lt;p&gt;UPDATE (Apr 3): Aaron Reed points out in comments that the &lt;a href="https://archive.org/details/CasebookDeadlineInfocom/Casebook_Deadline_Infocom/"&gt;folio manual&lt;/a&gt; &lt;em&gt;does&lt;/em&gt; mention &lt;code&gt;CAREFULLY&lt;/code&gt;. It's buried in the "Time Element" section:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Some actions, such as examinations done &lt;code&gt;CAREFULLY&lt;/code&gt;, may take a bit longer [than one minute].&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Obviously easy to miss, because I missed it! (So did my PDF search function, because the word &lt;code&gt;CAREFULLY&lt;/code&gt; is hyphenated in that sentence, sigh.) And they dropped that line when they wrote the &lt;a href="https://infodoc.plover.net/manuals/temp/deadline.pdf"&gt;grey-box manual&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But that's just ("just") the manual. Let's look at the parser code that handles adverbs. Here's the entire bit:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; (&amp;lt;OR &amp;lt;EQUAL? .WORD ,W?CAREFULLY ,W?QUIETLY&amp;gt;
  &amp;lt;EQUAL? .WORD ,W?SLOWLY ,W?QUICKLY
            ,W?BRIEFLY&amp;gt;&amp;gt;
  &amp;lt;SETG P-ADVERB .WORD&amp;gt;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(Side note: Due to the way Infocom pasted parser code from one project to the next, these lines occur in almost every following game. However, they're usually commented out. Only &lt;em&gt;Deadline&lt;/em&gt;, &lt;em&gt;Witness&lt;/em&gt;, &lt;em&gt;Seastalker&lt;/em&gt;, and &lt;em&gt;Moonmist&lt;/em&gt; run this code. A few other games detect adverbs and say "Adverbs aren't needed in this game.")&lt;/p&gt;
&lt;p&gt;What does these lines do? They simply check for one of the five listed words (&lt;code&gt;CAREFULLY&lt;/code&gt;, &lt;code&gt;QUIETLY&lt;/code&gt;, &lt;code&gt;SLOWLY&lt;/code&gt;, &lt;code&gt;QUICKLY&lt;/code&gt;, &lt;code&gt;BRIEFLY&lt;/code&gt;), store it in the &lt;code&gt;P-ADVERB&lt;/code&gt; global variable, and move on with the parsing. Unlike the verb-noun structure, which is rigid, an adverb can occur anywhere in any command.&lt;/p&gt;
&lt;p&gt;However, very few commands &lt;em&gt;care&lt;/em&gt; about the &lt;code&gt;P-ADVERB&lt;/code&gt; variable. Like I said earlier: almost every action runs the same whether you do it &lt;code&gt;QUICKLY&lt;/code&gt; or &lt;code&gt;SLOWLY&lt;/code&gt;. Here is everything you can accomplish with an adverb in &lt;em&gt;Deadline&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you &lt;code&gt;CLIMB STAIRS QUIETLY&lt;/code&gt; or &lt;code&gt;SLOWLY&lt;/code&gt;, you learn that they creak no matter what.&lt;/li&gt;
&lt;li&gt;You can &lt;code&gt;EXAMINE/READ NEWSPAPER CAREFULLY/SLOWLY&lt;/code&gt; to find the business-section article about the Omnidyne merger.&lt;/li&gt;
&lt;li&gt;You can &lt;code&gt;EXAMINE/READ NOTEPAD CAREFULLY&lt;/code&gt; to discover the imprints left from the previous page.&lt;/li&gt;
&lt;li&gt;You can &lt;code&gt;EXAMINE/SEARCH BOOKSHELF CAREFULLY&lt;/code&gt; to notice the books that George moved when he... well, I won't spoil &lt;em&gt;that&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What, Master O'Lochlainn, do we observe here? First, it's a pretty haphazard list. (Why not accept &lt;code&gt;CLIMB STAIRS CAREFULLY&lt;/code&gt; too?)&lt;/p&gt;
&lt;p&gt;More important: all of these commands are &lt;em&gt;optional&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The game tells you that the stairs are creaky; so do the casefile interviews. Knowing that they're &lt;em&gt;inescapably&lt;/em&gt; creaky is just a confirmation.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;READ NEWSPAPER&lt;/code&gt; mentions that there are two sections and you've only glanced at one. You can then &lt;code&gt;READ SECOND SECTION&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The imprints on the notepad are a detective-story cliche; you might go straight for the pencil. &lt;code&gt;FEEL NOTEPAD&lt;/code&gt; gives you a blatant hint too.&lt;/li&gt;
&lt;li&gt;If you &lt;em&gt;saw&lt;/em&gt; George move the books, the adverb is not necessary. A regular &lt;code&gt;EXAMINE&lt;/code&gt; will direct your attention to the books you noticed earlier. &lt;code&gt;EXAMINE BOOKSHELF CAREFULLY&lt;/code&gt; is an alternate solution if you missed George sneaking around.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Is this on purpose? That is, did the designer deliberately avoid putting any adverbs on the critical path? I don't know for sure, but I suspect the answer is yes.&lt;/p&gt;
&lt;p&gt;One pointer is that there &lt;em&gt;is&lt;/em&gt; an unusual command form which is critical to finishing the game: &lt;code&gt;SEARCH NEAR/AROUND HOLES&lt;/code&gt;. And this one &lt;em&gt;is&lt;/em&gt; explicitly called out in the manual.&lt;/p&gt;
&lt;p&gt;(I feel like they should have accepted &lt;code&gt;SEARCH HOLES CAREFULLY&lt;/code&gt; as an alternate solution... but they don't. Oh well.)&lt;/p&gt;
&lt;p&gt;But there's one more game effect that I didn't mention, and I think it's the key:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Any &lt;code&gt;EXAMINE&lt;/code&gt; or &lt;code&gt;READ&lt;/code&gt; command takes 3-6 minutes longer if done &lt;code&gt;CAREFULLY&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This isn't just a matter of bumping the clock. All of &lt;em&gt;Deadline&lt;/em&gt;'s NPCs move around the house on a schedule, which means they can surprise you in the middle of an action:&lt;/p&gt;
&lt;div class="PreWrap"&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;gt; EXAMINE CHANDELIER CAREFULLY
You hear a phone ringing in a nearby room.
Do you want to continue what you were doing? (Y/N)
&amp;gt; Y
To the north Mrs. Robner enters the hallway from the west.
The phone rings again.
Do you want to continue what you were doing? (Y/N)
&amp;gt; N
You never got to finish looking over the crystal lamp.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;If you want to stop Mrs. Robner, or answer the phone yourself, you have to interrupt your &lt;code&gt;EXAMINE&lt;/code&gt;. It's a trade-off! And trade-offs are the root of all game agency.&lt;/p&gt;
&lt;p&gt;Even if no characters happen by, you're aware of the clock ticking. You're on a schedule too. (The first thing you learn in the game is that the will-reading is at noon.) (For that matter, the game's tagline is "Twelve hours to solve the murder.") Spending several minutes on each &lt;code&gt;EXAMINE&lt;/code&gt; is genuinely too much time to waste. You have to pick and choose.&lt;/p&gt;
&lt;p&gt;Yes, yes, the game allows arbitrary save and restore. You &lt;em&gt;could&lt;/em&gt; search-scum your way around the mansion. But, like the "try every verb on every noun" strategy, it's clearly a tedious last resort.&lt;/p&gt;
&lt;p&gt;By placing &lt;code&gt;EXAMINE CAREFULLY&lt;/code&gt; into an "economy" of game resources, &lt;em&gt;Deadline&lt;/em&gt; breaks the (not-yet-invented) Curse of the Adverb. &lt;code&gt;EXAMINE CAREFULLY&lt;/code&gt; is &lt;em&gt;never&lt;/em&gt; the same as &lt;code&gt;EXAMINE&lt;/code&gt;; it's always a little worse, and sometimes (rarely) a lot better.&lt;/p&gt;
&lt;p&gt;Other adverbs don't fit this pattern. But then, none of them do anything interesting, with the very minor exception of &lt;code&gt;CLIMB STAIRS QUIETLY&lt;/code&gt;. Anyhow, you're a detective. &lt;code&gt;EXAMINE&lt;/code&gt; and &lt;code&gt;SEARCH&lt;/code&gt; are really the core actions of the game. Giving them extra flexibility suits the genre.&lt;/p&gt;
&lt;p&gt;See also &lt;code&gt;EXAMINE ROOM&lt;/code&gt;, the &lt;em&gt;other&lt;/em&gt; command which takes several minutes. The game explicitly warns you that it "wouldn't reveal much" -- and indeed it never does. You're supposed to &lt;code&gt;EXAMINE&lt;/code&gt; specific objects! But you can see why the game &lt;em&gt;allows&lt;/em&gt; &lt;code&gt;EXAMINE ROOM&lt;/code&gt;; it's clearly part of both the mystery genre and the time-economy of &lt;em&gt;Deadline&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;So perhaps adverbs could be extended to other IF after all. It would require (1) a genre in which some actions require more variety than a raw verb; and (2) a meaningful resource cost for the player to balance. Want to give it a go?&lt;/p&gt;
&lt;p&gt;(It would make sense for &lt;code&gt;WALK NORTH SLOWLY/QUIETLY&lt;/code&gt; to take extra time as well. Or &lt;code&gt;FOLLOW GEORGE QUIETLY&lt;/code&gt;? But NPCs move at a steady one room per turn, for simplicity's sake. Slowing down the player would break the &lt;code&gt;FOLLOW&lt;/code&gt; entirely -- not what you want. Maybe some other trade-off...)&lt;/p&gt;</content><category term="if"/><category term="interactive fiction"/><category term="infocom"/><category term="zil"/><category term="deadline"/><category term="parser"/><category term="adverbs"/></entry><entry><title>Ludic Narrans</title><link href="https://blog.zarfhome.com/2026/03/ludic-narrans" rel="alternate"/><published>2026-03-28T23:23:08+00:00</published><updated>2026-03-28T23:23:08+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-03-28:/2026/03/ludic-narrans</id><summary type="html">Hey, remember I was in a game studies essay collection that just came out? I'm in a new game studies interview collection that just came out! This one isn't about game design, though. It's not lectures at all -- I promise you are in no danger ...</summary><content type="html">&lt;p&gt;Hey, remember I was in a &lt;a href="https://blog.zarfhome.com/2026/03/the-game-narrative-kaleidoscope"&gt;game studies essay collection&lt;/a&gt; that just came out? I'm in a new &lt;a href="https://playstorypress.org/ludic-narrans/"&gt;game studies interview collection&lt;/a&gt; that just came out!&lt;/p&gt;
&lt;div class="Center"&gt;
&lt;p&gt;&lt;a href="https://playstorypress.org/books/ludic-narrans-playing-it-straight/"&gt;&lt;img alt="Ludic Narrans (Playing it Straight) / Stories of/by/for the Fields of Play / Drew Davidson, Emily Matheny, et al." height="432" src="https://blog.zarfhome.com/pic/2026/03/cover-playing-it-straight.jpeg" width="300" /&gt;&lt;/a&gt;
&lt;a href="https://playstorypress.org/books/ludic-narrans-playing-around/"&gt;&lt;img alt="Ludic Narrans (Playing Around) / Stories of/by/for the Fields of Play / Drew Davidson, Emily Matheny, et al." height="432" src="https://blog.zarfhome.com/pic/2026/03/cover-playing-around.jpeg" width="300" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This one isn't about game design, though. It's not lectures at all -- I promise you are in no danger of learning to &lt;em&gt;do&lt;/em&gt; anything in particular. The book is about &lt;em&gt;play&lt;/em&gt; as a general concept. A bunch of people from different walks of life, talking about play. How we play; how we create play; where we play; how we learned to play; why we play. And on.&lt;/p&gt;
&lt;p&gt;The project sprouted from a series of interviews and questions organized by Drew Davidson. I agreed to talk to Drew, and so did a lot of other people, and this book is the result. "A playful thematic oral history of the stories shared," as the blurb page says.&lt;/p&gt;
&lt;p&gt;Like the &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2026/03/the-game-narrative-kaleidoscope"&gt;Kaleidoscope&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://playstorypress.org/ludic-narrans/"&gt;Ludic Narrans&lt;/a&gt;&lt;/em&gt; messes with the idea of linearity. Two editions are available: &lt;em&gt;&lt;a href="https://playstorypress.org/books/ludic-narrans-playing-it-straight/"&gt;Playing it Straight&lt;/a&gt;&lt;/em&gt; is organized by topic, whereas &lt;em&gt;&lt;a href="https://playstorypress.org/books/ludic-narrans-playing-around/"&gt;Playing Around&lt;/a&gt;&lt;/em&gt; interleaves topical sections in a playful fugue. Same content, variable structure.&lt;/p&gt;
&lt;p&gt;Names you might recognize: Jenova Chen, Naomi Clark, Mia Consalvo, James Ernest, Rami Ismail, Jim Munroe, and no doubt others. And me of course.&lt;/p&gt;
&lt;p&gt;Both editions are available as free PDFs. (See the "Download" links on the book pages.) The text is under a Creative Commons license (BY-NC-ND).&lt;/p&gt;
&lt;p&gt;Or you can pay for either print or ebook editions at Lulu. Note that each print edition is itself available in two forms. The only difference is the interior illustrations, printed in color or monochrome. (They're nice illustrations but I wouldn't call them central to the book's presentation.)&lt;/p&gt;
&lt;p&gt;Once again, I'll quote a single line from one of my bits:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;never been designed for. This is why tool programming starts out easy and then turns into a&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Grab the book to read the rest!&lt;/p&gt;</content><category term="zarf"/><category term="drew davidson"/><category term="books"/><category term="interviews"/><category term="play"/></entry><entry><title>GDC: gloom and haruspicy</title><link href="https://blog.zarfhome.com/2026/03/gdc-gloom" rel="alternate"/><published>2026-03-20T01:32:55+00:00</published><updated>2026-03-20T01:32:55+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-03-20:/2026/03/gdc-gloom</id><summary type="html">"Haruspicy" in the sense that I'm going to examine the entrails and try to predict the future of GDC. Disclaimer: I cannot predict the future. Also disclaimer: I don't have any inside info. I've chatted with a lot of people on various Slacks ...</summary><content type="html">&lt;p&gt;"Haruspicy" in the sense that I'm going to examine the entrails and try to predict the future of GDC. Disclaimer: I cannot predict the future.&lt;/p&gt;
&lt;p&gt;Also disclaimer: I don't have any inside info. I've chatted with a lot of people on various Slacks and Discords. And I was &lt;a href="https://blog.zarfhome.com/2026/03/twine-zork-gdc"&gt;there&lt;/a&gt;, in San Francisco, last week. But I only saw a small slice of What Went On. This is an exercise in putting together a coherent picture from a lot of scraps. Maybe the exercise is more interesting than the results! You decide.&lt;/p&gt;
&lt;p&gt;I'll admit up front that I'm on the pessimistic end of the spectrum. (That's the "gloom" part.) A lot of people are wondering if GDC is maybe in trouble. I think GDC is &lt;em&gt;definitely&lt;/em&gt; in trouble, and the only question is how catastrophic things are. But again, I don't have any inside info.&lt;/p&gt;
&lt;p&gt;Let's start with &lt;em&gt;last&lt;/em&gt; year's show.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;h2&gt;Last year&lt;/h2&gt;
&lt;p&gt;I attended GDC 2025. I wasn't an IGF juror last year (I did more than my stint), but I was able to scrounge a free pass, so that was no problem.&lt;/p&gt;
&lt;p&gt;It seemed like a pretty normal GDC for the post-lockdown era. 30k attendees -- very crowded. The show floor had mostly switched from blockchain hype to AI hype, but you know there's always a new hype cycle.&lt;/p&gt;
&lt;p&gt;(My first GDC was 2012 and I don't remember what the hype was. Must have been something. VR hype wasn't until &lt;a href="https://blog.zarfhome.com/2016/03/notes-from-gdc"&gt;2016&lt;/a&gt;.)&lt;/p&gt;
&lt;h2&gt;The change-up&lt;/h2&gt;
&lt;p&gt;So 2025 wraps up, 2026 comes into view, and GDC unveils this enormous &lt;a href="https://gdconf.com/article/time-to-change-the-game-registration-opens-for-the-2026-gdc-festival-of-gaming/"&gt;rebranding exercise&lt;/a&gt;. Now they're the "GDC Festival of Gaming". Simplified pass scheme, blah blah.&lt;/p&gt;
&lt;p&gt;Everybody's first reaction is "What the hell does 'Festival of Gaming' mean?" My &lt;em&gt;second&lt;/em&gt; reaction is "Wow, they must really be in trouble." You don't change your whole plan if the plan is &lt;em&gt;working&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;The scraps I hear from friends corroborate this view. Apparently the game-industry titans tightened their purses in 2025. (Endless layoffs, but they also cut conference spending.) That means smaller and fewer booths. I didn't notice this, because why would I look at the Google/Amazon/Epic/Unity booths? I only care about the &lt;a href="https://gdconf.com/igf/"&gt;IGF&lt;/a&gt; pavilion, &lt;a href="https://gdconf.com/alt-ctrl-gdc/"&gt;alt.ctrl.gdc&lt;/a&gt;, and other wacky stuff. &lt;/p&gt;
&lt;p&gt;Anyhow, smaller booths means less revenue. GDC (I mean Informa, the parent company) realizes that they're on a non-sustainable path. Something Must Change. Not for the sake of change, but because the plane is heading for a cornfield.&lt;/p&gt;
&lt;p&gt;What the rebrand &lt;em&gt;means&lt;/em&gt; isn't very obvious. They've got a lot of verbiage about "bringing the entire industry together". In practice this means everybody gets a full-week pass.&lt;/p&gt;
&lt;p&gt;(In the old days, indies and niche interests got a "Summit" (Mon-Tue) pass; industry mainstreamers got a Wed-Fri pass to see the show floor. Only journalists and hardcore nerds stayed the whole week.) (And me, because I had a comped All-Access pass, thank you IGF.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Sidebar:&lt;/em&gt; Personally, I think the intended message is "You like hanging out in Yerba Buena Park with your game dev homies? Now all of GDC is like that! All park all the time! Please buy a pass please buy a pass." Maybe that's just me.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Leading indicators&lt;/h2&gt;
&lt;p&gt;The other obvious change is that GDC brings in a bunch of non-profits and indie dev collectives to burnish up their appeal. That's where I come in, obviously -- comped passes for &lt;a href="https://iftechfoundation.org/"&gt;IFTF&lt;/a&gt;, so I can spend a week spreading the good word about &lt;a href="https://blog.zarfhome.com/2026/03/twine-zork-gdc"&gt;Twine and Zork&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;(Another admission: I &lt;em&gt;only&lt;/em&gt; went because I got a free pass. I enjoy GDC and I enjoy San Francisco. Just, um, not enough to pay for it. Travel costs are bad enough.)&lt;/p&gt;
&lt;p&gt;Then the show floor map comes out, and whoa, it's &lt;em&gt;half&lt;/em&gt; the size of 2025. Guess that's why they're willing to give free floor space to a bunch of interactive fiction nerds! Classic freebie areas like the IGF are much more spacious than they used to be. Even so, the entire show floor fits in Moscone South, instead of sprawling across both North and South as it used to.&lt;/p&gt;
&lt;p&gt;In the corporate area of the floor -- the part that funds GDC -- the only big booths are Facebook, MS/Xbox, and Tencent. Google is small. Other industry names like Sony and Epic are entirely missing.&lt;/p&gt;
&lt;p&gt;It becomes clear that some of those industry heavyweights are running GDC-&lt;em&gt;adjacent&lt;/em&gt; events. "No badge required!" Also no booth fees landing in GDC coffers.&lt;/p&gt;
&lt;p&gt;As we approach March, the smell of desperation grows. GDC starts pushing ticket raffles and "buy one, get one half-price" deals. They make student passes and indie passes super-easy to get. Hotel prices fall from their usual nosebleed conference heights; they're clearly underbooked.&lt;/p&gt;
&lt;p&gt;(Someone suggested that GDC released a bunch of reserved hotel blocks in January or February. That makes total sense to me. Hotels suddenly had lots of free space, started to undercut each other mercilessly, and prices dropped. Smart people cancelled and rebooked at the last minute and saved a bunch of money. I was not smart, but I've made a note for next year.)&lt;/p&gt;
&lt;h2&gt;At the show&lt;/h2&gt;
&lt;p&gt;March 9th: it begins.&lt;/p&gt;
&lt;p&gt;(Yeah, I actually arrived early on the 7th and spent two days tootling around museums. See &lt;a href="https://blog.zarfhome.com/2026/03/twine-zork-gdc"&gt;earlier post&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;Monday makes me think I was wrong all along. Talks and presentations are hoppin'. I went to a &lt;em&gt;narrative tool talk&lt;/em&gt; that was packed solid! Trust me, narrative tools are not usually that popular. (Except at &lt;a href="https://narrascope.org/"&gt;NarraScope&lt;/a&gt;, but that's a very different event.)&lt;/p&gt;
&lt;p&gt;It takes me a while to figure out what's going on. Remember how everybody gets a Mon-Fri pass this year? They're still only running the expo hall from Wed-Fri. The result is that a whole lot of attendees showed up Monday and realized that there was nothing to do but some boring old lectures! I literally saw one guy prowling around Moscone asking the guards where the booths were.&lt;/p&gt;
&lt;p&gt;On Wednesday the show floor opens, and the truth is dreadfully clear: the crowds are much thinner than last year. Everybody is calculating the same result from different angles. The lobbies of the usually-popular hotels are not mobbed like they usually are. The expo hall is mild at best. A security guard asks me, "Where is everybody?"&lt;/p&gt;
&lt;p&gt;There are still plenty of people. 20000 people is a lot! Just... less.&lt;/p&gt;
&lt;p&gt;You probably read some stuff about Yerba Buena Park being &lt;a href="https://aftermath.site/gdc-2026-yerba-buena-gardens-developers-mad/"&gt;fenced off&lt;/a&gt;. It was only partially fenced off, support for the new food tents. (Did we need new food tents? I dunno.) But it didn't matter anyhow -- I never saw enough people out there to &lt;em&gt;fill&lt;/em&gt; the park. Not like last year or the year before. There were enough people for crowds around the edges, and that's what we got.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Sidebar:&lt;/em&gt; So why did people stay away? Obvious reasons: devs are out of work and can't afford it; companies are skint and won't pay for travel; non-US people are reluctant to risk US travel; GDC is smaller so there's less reason to come.&lt;/p&gt;
&lt;p&gt;Which of these is the "real" reason? All of them; I don't know the relative weights; guessing would be worthless. My gut feeling is that most people are making a simple economic calculation of "What can GDC do for me?" and the margin is down. My gut is not statistically reliable.&lt;/p&gt;
&lt;p&gt;(Several of my non-US friends refused to travel here because of the current xenophobic regime. That doesn't tell me anything about the other &lt;em&gt;ten thousand&lt;/em&gt; missing faces.)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Reactions&lt;/h2&gt;
&lt;p&gt;Like I said, I had a &lt;a href="https://blog.zarfhome.com/2026/03/twine-zork-gdc"&gt;great time&lt;/a&gt;! I hung out with lots of people who I know from earlier GDCs and other game events. I hung out with lots of people who I never met before. Yeah, this was down to having a script to route around my social anxieties, rather than anything GDC did. But still.&lt;/p&gt;
&lt;p&gt;Overall, my impression is that people were... happier than last year? With GDC as an event, I mean.&lt;/p&gt;
&lt;p&gt;Some it was sheer defiance. Yes, the industry is screwed, let's just go make games. "Punk rock energy," as someone said. Let's go build new communities! &lt;em&gt;Three&lt;/em&gt; scheduled events about game preservation, that was great. (Plus a Friday happy hour at the &lt;a href="https://www.themade.org"&gt;MADE&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;Some of it was the enthusiasm of youth. Someone told me, I don't have a solid source but I believe it, that 40% of the attendees were first-time GDCers. Lots of students, like I said. GDC is a lot of fun to crash into! New blood always helps.&lt;/p&gt;
&lt;p&gt;The park was not crowded overall, but large groups formed. The thinky-games crowd was large and enthusiastic. I walked past a big group with a "student developers" sign. (See "new blood" above.) There was a roguelike meetup and a visual novel meetup that I couldn't make it to, but I'm sure they were successful.&lt;/p&gt;
&lt;p&gt;Apparently the super-select "&lt;a href="https://gdconf.com/luminaries-speaker-series/"&gt;Luminaries&lt;/a&gt;" events were so undersold that they wound up letting in regular schmoes. Wish I'd known that.&lt;/p&gt;
&lt;p&gt;I am told that publishers and developers were talking and making deals. The wheel has not stopped turning. Opinions are divided about whether things will actually get better next year, or whether we've just all accepted a defunct industry as normal. But I am very far removed from that wheel (I've never pitched a game or set up a publisher meeting at GDC) so I won't get into that.&lt;/p&gt;
&lt;p&gt;Yes, there was a crap-ton of AI at GDC. Every commercial booth was AI hype. Half the talks were AI hype. Some people found that oppressive and/or depressing. I just walked past that stuff and went to the good talks. I'm not bragging, here, I'm just saying that there was good conference showing through the cracks.&lt;/p&gt;
&lt;h2&gt;And next year?&lt;/h2&gt;
&lt;p&gt;Now we get into the entrails.&lt;/p&gt;
&lt;p&gt;The plain facts look bad. Booth spending was way down this year, and then &lt;a href="https://www.gamedeveloper.com/business/rebranded-gdc-festival-of-gaming-attracts-20-000-attendees"&gt;attendance declined&lt;/a&gt; by a full third! Are Facebook and Xbox and Tencent going to bother getting large booths in 2027? Why should they? If the crowds keep shrinking, the reasons to attend will shrink as well. This could be the leading edge of a death spiral.&lt;/p&gt;
&lt;p&gt;GDC's value proposition just doesn't look great any more. It used to be the One Place Everybody Got Together, but that's splintering. Unity and Unreal have their own developer events, where they &lt;em&gt;collect&lt;/em&gt; the booth fees rather than paying them. As do Microsoft and Amazon and Facebook and so on.&lt;/p&gt;
&lt;p&gt;It seems like, with the general economic contraction, everybody has run the numbers and decided that it's more cost-efficient to retreat within their own private event. Or, at best, rent an adjacent hotel and stay out of GDC's grasp.&lt;/p&gt;
&lt;p&gt;On the flip side: GDC is determined to keep itself going. The first room I walked into on Monday morning had a slide up saying "GDC will return in 2027!" On Saturday, when they dropped the news that attendance had crashed, they &lt;em&gt;also&lt;/em&gt; dropped the news that GDC 2027 was still on.&lt;/p&gt;
&lt;p&gt;What will it look like? Well, they might not bother renting out the ball park again. I think that was a flop. But overall, I figure they'll try to repeat 2026 and hope that the crowds grow back.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Sidebar:&lt;/em&gt; Does it make sense for GDC to shrink in a &lt;em&gt;sustainable&lt;/em&gt; way? I mean, if this were planned as a 15k-person conference, 20k people would be a huge success. I guess the question is: is there an island of stability, or is it death spiral all the way down? The GDC folks must have those spreadsheets cued up, but they're not letting on what they say.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sidebar:&lt;/em&gt; One rumor -- I have no intel on this, it's pure speculation -- that GDC is locked into a multi-year contract with Moscone. In which case they &lt;em&gt;have&lt;/em&gt; to keep running the event, full-scale, even if they're losing money every year. Scary! For them. No skin off my nose.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sadly, GDC 2027 is probably going to dig even deeper into AI than 2026 did. The "AI crash" is nowhere in sight. Six months ago I thought it might be close. The tools all sucked; the VCs knew it; they were maybe starting to get cold feet. Well, the current generation of AI tools suck less. I'm not telling you they're good; I haven't used them myself; I'm just saying that hope is back on the menu and VC feets are toasty warm. If there's a crash coming, it's over the horizon -- definitely not as soon as March 2027.&lt;/p&gt;
&lt;p&gt;(Unless the entire economy wipes out in whatever combination of oil shock, food crisis, pandemic part deux, or global trade lockup leaps out and bites us. That's way above my pay grade. At that point GDC will be the least of our worries, anyhow.)&lt;/p&gt;
&lt;p&gt;Anyhow, if there's a GDC and I'm not starving in a ditch next year, I hope they give me another free pass. I'd be happy to go back. Just, um, not enough to pay for it.&lt;/p&gt;
&lt;h2&gt;Further reading&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Aftermath.site: &lt;a href="https://aftermath.site/gdc-2026-xbox-helix-steam-nvidia-ice/"&gt;GDC Was Defined By Anxiety About The Future Of The Games Industry And America&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Justin Bortnick: &lt;a href="https://jabortnick.com/2026/03/19/gdc-2026-recap/"&gt;GDC 2026 Recap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(Justin is &lt;a href="https://iftechfoundation.org/"&gt;IFTF&lt;/a&gt;'s president and the guy who arranged our entire GDC presence. Including my free pass this year. Thanks Justin!)&lt;/p&gt;</content><category term="gdc"/><category term="conferences"/></entry><entry><title>Visible Zorker: March status report</title><link href="https://blog.zarfhome.com/2026/03/visible-zorker-march" rel="alternate"/><published>2026-03-18T02:02:48+00:00</published><updated>2026-03-18T02:02:48+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-03-18:/2026/03/visible-zorker-march</id><summary type="html">Here's where we are: Zork 3 is complete and available to Patreon supporters. It will go public on the Visible Zorker page on May 1st. Deadline is now in progress! Except it's barely started, because I'm still catching up from my GDC trip. I'll ...</summary><content type="html">&lt;p&gt;Here's where we are:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Zork 3&lt;/em&gt; is complete and available to Patreon supporters. It will go public on the &lt;a href="https://eblong.com/infocom/visi/"&gt;Visible Zorker&lt;/a&gt; page on &lt;em&gt;May 1st&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Deadline&lt;/em&gt; is now in progress! Except it's barely started, because I'm still catching up from my &lt;a href="https://blog.zarfhome.com/2026/03/twine-zork-gdc"&gt;GDC trip&lt;/a&gt;. I'll have the early-access build of &lt;em&gt;Deadline&lt;/em&gt; for Patreon supporters on &lt;em&gt;April 1st&lt;/em&gt;. (Super-early access starts today, except there's nothing to look at yet -- see below.) The world gets &lt;em&gt;Deadline&lt;/em&gt; for free on June 1st.&lt;/p&gt;
&lt;p&gt;If nothing catches fire, I'll be back in mid-April to talk about &lt;em&gt;Starcross&lt;/em&gt;.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;hr /&gt;
&lt;p&gt;Now, &lt;em&gt;Deadline&lt;/em&gt; is proving to be a bit of a trip.&lt;/p&gt;
&lt;p&gt;As usual, I've selected the release from the &lt;em&gt;Masterpieces of Infocom&lt;/em&gt; CD for my work -- that's release 27, serial 831005. But as soon as I grabbed &lt;code&gt;deadline-r27.zip&lt;/code&gt; off my &lt;a href="https://eblong.com/infocom/#deadline"&gt;Infocom page&lt;/a&gt;, I realized that it was incomplete! The &lt;code&gt;verbs.zil&lt;/code&gt; file is simply missing.&lt;/p&gt;
&lt;p&gt;If you look at the &lt;a href="https://github.com/historicalsource/deadline"&gt;historicalsource&lt;/a&gt; repo, you'll see &lt;code&gt;verbs.zil&lt;/code&gt; -- but that's from release 28. The r27 and r28 source directories are similar but not identical. Scroll back to the &lt;a href="https://github.com/historicalsource/deadline/commit/ad6dc28bb24968af58f4bd1c3236116c60aacc8e"&gt;r27 view&lt;/a&gt; and the file is gone.&lt;/p&gt;
&lt;p&gt;My only option is to paste in the r28 &lt;code&gt;verbs.zil&lt;/code&gt; and run with it.&lt;/p&gt;
&lt;p&gt;I can disassemble the r27 and r28 &lt;em&gt;game files&lt;/em&gt; (we have both) and compare the functions from that file. So I'll be able to see how much was changed. Hopefully not too much. I know no verbs were added or removed (the &lt;code&gt;syntax.zil&lt;/code&gt; file is identical between the releases) so it should be just bug fixes.&lt;/p&gt;
&lt;p&gt;Of course there's other hitches as well. I figure &lt;em&gt;every&lt;/em&gt; new Infocom game will throw me a new twist. In this case, it's this line:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;CONSTANT MG-LENGTH &amp;lt;* 3 2&amp;gt;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is a perfectly sensible line of ZIL -- it defines the constant &lt;code&gt;MG-LENGTH&lt;/code&gt; as 6. (Prefix operators, so &lt;code&gt;&amp;lt;* 3 2&amp;gt;&lt;/code&gt; is 6.) But my hacked-up ZIL parser doesn't support constant arithmetic. I didn't realize it was legal! I guess that's the first thing I add tomorrow night.&lt;/p&gt;
&lt;p&gt;(The Visible Zorker doesn't &lt;em&gt;execute&lt;/em&gt; ZIL statements. It &lt;em&gt;displays&lt;/em&gt; ZIL while executing the compiled Z-code. However, I need to evaluate certain ZIL forms that have meaning at compile time. For example, &lt;code&gt;%&amp;lt;COND&amp;gt;&lt;/code&gt; lets you discard certain lines at compile time, like &lt;code&gt;#ifdef&lt;/code&gt; in C. I need to evaluate that for correct syntax coloring. Constants are another example.)&lt;/p&gt;
&lt;p&gt;Anyhow, that's where we are. &lt;em&gt;Deadline&lt;/em&gt; isn't even slightly functional yet, but I should have the basics in place this weekend. Forward, Sergeant Duffy!&lt;/p&gt;</content><category term="if"/><category term="interactive fiction"/><category term="zork"/><category term="infocom"/><category term="zil"/><category term="zarf"/><category term="visible zorker"/><category term="patreon"/><category term="zork 3"/><category term="deadline"/></entry><entry><title>Twine and Zork at GDC</title><link href="https://blog.zarfhome.com/2026/03/twine-zork-gdc" rel="alternate"/><published>2026-03-17T00:44:52+00:00</published><updated>2026-03-17T00:44:52+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-03-17:/2026/03/twine-zork-gdc</id><summary type="html">I went to GDC with IFTF, and I had a great time! I'm not sure the conference had a great time. You may have seen that attendance was 30% lower than last year. However, I'll save the gloom-and-haruspicy for another post. All the people I talked ...</summary><content type="html">&lt;p&gt;I went to GDC with IFTF, and I had a great time!&lt;/p&gt;
&lt;p&gt;I'm not sure the &lt;em&gt;conference&lt;/em&gt; had a great time. You may have seen that attendance was &lt;a href="https://www.gamedeveloper.com/business/rebranded-gdc-festival-of-gaming-attracts-20-000-attendees"&gt;30% lower than last year&lt;/a&gt;. However, I'll save the gloom-and-haruspicy for another post. All the &lt;em&gt;people&lt;/em&gt; I talked to enjoyed themselves, and I talked to quite a few people.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/2026/02/gdc-2026-plans"&gt;As you know&lt;/a&gt;, IFTF had a table in the Commons area of the show floor. In fact we had &lt;em&gt;three&lt;/em&gt; tables. Plus one Monday night at the ballpark opening event.&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/03/two-twine-machines.jpeg"&gt;&lt;img alt="The expo hall at the Moscone Center. Large monitors are set up on low tables with benches. The nearest shows the opening screen of a Twine game. Farther away, someone is filling out a survey form; two other people look on." height="429" src="https://blog.zarfhome.com/pic/2026/03/two-twine-machines-s.jpeg" width="600" /&gt;&lt;/a&gt;
The near machine is for playing; the farther one is for editing. That's &lt;a href="https://www.choiceofgames.com/author/dfabulich/"&gt;Dan Fabulich&lt;/a&gt; explaining the setup. (The radioactive leaves are fake plants illuminated by blue floor lamps.)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Two machines were running a collaborative exquisite-corpse Twine project. Everybody who came by was invited to sit down and add a passage. This was a hit -- we wound up with about 120 contributed passages.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://iftechfoundation.org/games/gdc-twine-adventure-2026/"&gt;&lt;img alt="A web page with a red-and-white theme. It begins &amp;quot;Welcome to the interactive GDC Festival of Gaming Twine Adventure!&amp;quot;" height="447" src="https://blog.zarfhome.com/pic/2026/03/advstart-s.png" width="400" /&gt;&lt;/a&gt;
Opening screen of the &lt;a href="https://iftechfoundation.org/games/gdc-twine-adventure-2026/"&gt;GDC Twine Adventure&lt;/a&gt;. &lt;a href="https://iftechfoundation.org/games/gdc-twine-adventure-2026/"&gt;Playable now!&lt;/a&gt; Stylesheet by &lt;a href="https://www.gcbaccaris.com/"&gt;Grim Baccaris&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;On the flip side (literally), the &lt;a href="https://eblong.com/infocom/visi/"&gt;Visible Zorker&lt;/a&gt;!&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/03/zork-players.jpeg"&gt;&lt;img alt="Two people sitting in front of Visible Zork 1. They are facing away from us and peering attentively at the screen." height="349" src="https://blog.zarfhome.com/pic/2026/03/zork-players-s.jpeg" width="600" /&gt;&lt;/a&gt;
I did not get the players' names, but they were at it for a good half-hour.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Our setup had &lt;em&gt;&lt;a href="https://eblong.com/infocom/visi/zork1/"&gt;Zork 1&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://eblong.com/infocom/visi/zork2/"&gt;Zork 2&lt;/a&gt;&lt;/em&gt;, and (as a special preview for GDC attendees) &lt;em&gt;Zork 3&lt;/em&gt;. We mostly kept the screen on &lt;em&gt;Zork 1&lt;/em&gt; though.&lt;/p&gt;
&lt;p&gt;The table next door had a bunch of 1980s computer magazines. They were kind enough to loan us an issue of &lt;em&gt;Creative Computing&lt;/em&gt; (1982) with an Infocom ad.&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/03/zarf-magazine-gdc.jpg"&gt;&lt;img alt="Me holding a magazine ad for _Zork 1_ and _Zork 2_. The headline &amp;quot;Many are the doors that lead to the underground&amp;quot; stands above the familiar Zork opening-door logo. &amp;quot;Now available for Apple II, ATARI 400/800, IBM Personal Computer, NEC PC-8000, CP/M, and PDP-11.&amp;quot; In the background is a screen displaying Visible Zork 1." height="600" src="https://blog.zarfhome.com/pic/2026/03/zarf-magazine-gdc-s.jpg" width="450" /&gt;&lt;/a&gt;
Me and &lt;em&gt;Creative Computing&lt;/em&gt;. The $2 coupon has expired, sadly. Photo by Justin Bortnick.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Zork was less recognized than Twine. (Everybody's heard of Twine.) But the folks in the know got &lt;em&gt;very&lt;/em&gt; excited about the Visible Zorker project. A couple of educators visibly bounced when they realized that they could use this in the classroom.&lt;/p&gt;
&lt;p&gt;I shall hope this brings in more contributors to the &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Patreon&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;On the personal side, I got to demo the Zorker to &lt;a href="https://www.blueprincegame.com/"&gt;Tonda Ros&lt;/a&gt;. And to fanboy him a bit, which I'm sure he got plenty of that week, but I did my part. I also demoed to &lt;a href="https://thousandyearoldvampire.com/"&gt;Tim Hutchings&lt;/a&gt; -- I &lt;em&gt;really&lt;/em&gt; need to write up his "&lt;a href="https://thousandyearoldvampire.com/collections/all/products/tyoc"&gt;Old Morris Cave: A Continuous Use Campsite in Mammoth Cave National Park&lt;/a&gt;". (Spot the IF connection!)&lt;/p&gt;
&lt;p&gt;I'm told that Steve Meretzky was around GDC but I did not run into him. Ah well. I'm pretty sure he's aware of the Zorker, but it would have been nice to chat about it.&lt;/p&gt;
&lt;h2&gt;So what else did you do at GDC?&lt;/h2&gt;
&lt;p&gt;I engaged with people socially!&lt;/p&gt;
&lt;p&gt;Way more than I usually do. I'm chatty &lt;em&gt;here&lt;/em&gt;, parasocially on the blog, but in real life I'm a stone introvert. (No surprise, I know.) But it turns out that "Are you familiar with Twine?" is a terrific icebreaker. &lt;em&gt;Everybody's&lt;/em&gt; heard of Twine. Most people don't know that it's backed by an educational nonprofit association, though. We can talk about that! Yes, we would love donations, yes, it would be great if companies that rely on Twine helped support it. Yes, tell me about what you did with Twine, that sounds awesome.&lt;/p&gt;
&lt;p&gt;Same thing with Zork. "Are you familiar with Zork?" (Yes, says Tonda Ros, a half-second before I read his name badge and realize who I'm pitching to.) Then we're talking about game education, or historic preservation, or TinyMUD, or wacky things that IF could do if it were doing something else. Or anything. Knot theory. (It came up.)&lt;/p&gt;
&lt;p&gt;This wasn't just at the IFTF booth. I dropped by the Thinky Puzzle meetup in the park and had a long chat with several neat people. There were &lt;em&gt;three&lt;/em&gt; game-history events on the GDC schedule -- a roundtable, a social meetup, and the annual "What's New in Game Preservation" panel. I missed that third one (had to help set up the table for Monday night) but I ran into &lt;a href="https://ascii.textfiles.com/"&gt;Jason Scott&lt;/a&gt; in the hall and we caught up.&lt;/p&gt;
&lt;p&gt;My time was mostly spoken for, but I went to a few talks. There was an interesting one by &lt;a href="https://owlcat.games/"&gt;Owlcat Games&lt;/a&gt; about the narrative scripting tool they use for their "large, sprawling" RPGs. (I haven't played 'em but the design problems were familiar.) &lt;a href="https://daglowslaws.com/"&gt;Don Daglow&lt;/a&gt; gave a great talk about his 50-year career in game dev -- he has seen some stuff in his time, and his time isn't over. Julian Cordero talked about how he turned his Quito childhood into &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/12/adorable-little-games#despelote"&gt;Despelote&lt;/a&gt;&lt;/em&gt;. And there was a really neat presentation by the cultural research expert for &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/01/recent-timekillers#indiana-jones-and-the-great-circle"&gt;Indiana Jones and the Great Circle&lt;/a&gt;&lt;/em&gt;. Did you know they looked up all the minerals of the game's magic stones to make sure they were findable in -- or trade-routable to -- the appropriate locations? I love that.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://kotaku.com/igf-2026-winners-perfect-tides-titanium-court-indie-steam-2000678325"&gt;IGF awards&lt;/a&gt;! I wasn't at the ceremony but it's a good list. &lt;em&gt;&lt;a href="https://perfect-tides.com/"&gt;Perfect Tides: Station to Station&lt;/a&gt;&lt;/em&gt; is one that I definitely have to play. (NarraScope &lt;a href="https://2025.narrascope.org/showcase/"&gt;Showcase winner&lt;/a&gt;, btw.) &lt;em&gt;&lt;a href="https://blippo.plus/"&gt;Blippo+&lt;/a&gt;&lt;/em&gt; has been heavily recommended to me and I must catch up. As for &lt;em&gt;&lt;a href="https://store.steampowered.com/app/2364580/Titanium_Court/"&gt;Titanium Court&lt;/a&gt;&lt;/em&gt; -- I played the demo. Match-three really isn't my thing, but I loved all the narrative foofaraw surrounding the match-three gameplay -- built &lt;em&gt;on&lt;/em&gt; it -- so I may have to dig into the full game anyhow.&lt;/p&gt;
&lt;p&gt;I was able to pay my compliments to William Rous on the show floor. Yes, I was rooting for &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/02/type-help"&gt;Type Help&lt;/a&gt;&lt;/em&gt; to win Best Narrative. Ah well. Next year in &lt;em&gt;&lt;a href="https://store.steampowered.com/app/3641000/The_Incident_at_Galley_House/"&gt;Galley House&lt;/a&gt;&lt;/em&gt;, am I right?&lt;/p&gt;
&lt;h2&gt;And what else did you do in San Francisco?&lt;/h2&gt;
&lt;p&gt;I ate dinner(s) in Chinatown, of course.&lt;/p&gt;
&lt;p&gt;I was able to get away from Moscone long enough to visit the Asian Art Museum; they have a terrific exhibit of &lt;a href="https://exhibitions.asianart.org/exhibitions/new-japanese-clay/"&gt;modern Japanese ceramics&lt;/a&gt;. I truly love that stuff. If you do too, be sure to check out the permanent collection on the second floor.&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/03/pottery.jpeg"&gt;&lt;img alt="Four diverse clay vessels. The first is brick-red, bowl-shaped, rough in outline. The second is smaller, off-white, with an almost bread-like texture and a pool of glassy, cracked glaze inside. The third is a lidded urn with a dark and very metallic glaze. The fourth is tall and irregular with a pattern scorched in red and black into the surface." height="280" src="https://blog.zarfhome.com/pic/2026/03/pottery-s.jpeg" width="600" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I also poked my head into the &lt;a href="https://sfmcd.org"&gt;Museum of Craft and Design&lt;/a&gt;, and took a turn around the &lt;a href="https://gggp.org/japanese-tea-garden/"&gt;Japanese Tea Garden&lt;/a&gt; and &lt;a href="https://gggp.org/san-francisco-botanical-garden/"&gt;Botanical Gardens&lt;/a&gt;.&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/03/gardens-1.jpeg"&gt;&lt;img alt="Spotted calla lilies growing on a park hillside. They have very large white flowers with yellow spathe (peak) at the center." height="300" src="https://blog.zarfhome.com/pic/2026/03/gardens-1-s.jpeg" width="400" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/03/gardens-2.jpeg"&gt;&lt;img alt="A mossy pond beneath trees. Several varieties of water-plant are visible across the surface." height="300" src="https://blog.zarfhome.com/pic/2026/03/gardens-2-s.jpeg" width="400" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;But my big discovery was the &lt;a href="https://letterformarchive.org/"&gt;Letterform Archive&lt;/a&gt;. This is a tiny place up the street from Craft and Design. Just one gallery, really -- but a gallery drawn from an amazing collection of "lettering, typography, calligraphy, and graphic design".&lt;/p&gt;
&lt;p&gt;The current exhibit is &lt;a href="https://letterformarchive.org/news/piet-zwart-brand-architect-exhibition/"&gt;Piet Zwart&lt;/a&gt;, a Dutch designer ("typotekt", he described himself) who revolutionized typography starting in the 1920s.&lt;/p&gt;
&lt;div class="Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/03/zwart-1.jpeg"&gt;&lt;img alt="Two full-page advertisements with large black shapes contrasting with narrow lines of Dutch text running at all angles. The blurb above begins, &amp;quot;Zwart's collaboration with the Nederlandse Kabelfabriek Delft (NKF) from 1923 to 1928 transformed an ordinary industrial manufacturer into an icon of modern design.&amp;quot;" height="186" src="https://blog.zarfhome.com/pic/2026/03/zwart-1-s.jpeg" width="300" /&gt;&lt;/a&gt;
&lt;a href="https://blog.zarfhome.com/pic/2026/03/zwart-2.jpeg"&gt;&lt;img alt="Five half-page advertisements for N. K. F. Delft. Lines of Dutch text run in contrasting fonts and angles. The pages have no graphics except for a few arrowheads." height="186" src="https://blog.zarfhome.com/pic/2026/03/zwart-2-s.jpeg" width="300" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;He did telephone cable ads. That's what you're looking at. "N.K.F.": Nederlandse Kabelfabriek Delft.&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/03/zwart-3.jpeg"&gt;&lt;img alt="A wall display of pages from technical manuals. The bottom of each page is a technical blueprint, but the top is a startling assortment of Dutch words and letters laid out in varying fonts, angles, and colors." height="396" src="https://blog.zarfhome.com/pic/2026/03/zwart-3-s.jpeg" width="500" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Later he did other stuff. He wasn't interested in logos or brands. Consistency? Hah. All his layouts were different and they were all clearly his work.&lt;/p&gt;
&lt;p&gt;And that's just one exhibit! Look at the &lt;a href="https://exhibitions.letterformarchive.org/"&gt;previous exhibits page&lt;/a&gt;. Man, I would live in this place if I were a Left Coaster.&lt;/p&gt;
&lt;p&gt;Get this: when I walked into the gallery, I heard "tap tap tap" noises coming from the back room. What? A video exhibit? Nope -- when I peered around the corner, I saw a classroom full of people with stone tablets. They were making letters with hammers and chisels. A stone-carving lettering workshop. &lt;em&gt;Of course.&lt;/em&gt; How else will people learn why serifs exist?&lt;/p&gt;
&lt;p&gt;So yeah. I don't know what the future of GDC looks like, but I hope I keep getting this excuse to visit San Francisco. It's such a great town to wander around it. Also terrible, because of the abyss of deprivation and human misery which you cannot look away from, right in parallel with the wealth and the art and the joy. Doesn't mean I want to stay home.&lt;/p&gt;
&lt;p&gt;As I was getting off the BART, a Cute Young Thing turned and asked me, "Are you a guy who thinks about the Singularity?"&lt;/p&gt;
&lt;p&gt;"No," I said, "I'm not really a fan of the Singularity." And we went our separate ways through the exit gates. I still have no idea what that question meant. Only in San Francisco, I guess.&lt;/p&gt;</content><category term="zarf"/><category term="gdc"/><category term="iftf"/><category term="if"/><category term="interactive fiction"/><category term="conferences"/><category term="twine"/><category term="zork"/><category term="visible zorker"/><category term="patreon"/></entry><entry><title>The Game Narrative Kaleidoscope</title><link href="https://blog.zarfhome.com/2026/03/the-game-narrative-kaleidoscope" rel="alternate"/><published>2026-03-04T15:05:50+00:00</published><updated>2026-03-04T15:05:50+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-03-04:/2026/03/the-game-narrative-kaleidoscope</id><summary type="html">The Game Narrative Kaleidoscope is a collection of lightning articles (I just made that term up) about narrative design. It's out today! I'm in it! Along with approximately a zillion other authors and designers. You may recognize: Sharang ...</summary><content type="html">&lt;p&gt;&lt;em&gt;&lt;a href="https://www.inklestudios.com/kaleidoscope/"&gt;The Game Narrative Kaleidoscope&lt;/a&gt;&lt;/em&gt; is a collection of lightning articles (I just made that term up) about narrative design. It's out today! I'm in it! Along with approximately a zillion other authors and designers.&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/03/kaleidoscope.jpeg"&gt;&lt;img alt="The Game Narrative Kaleidoscope: 100+ Essays on the Craft of Game Writing / Collated by Jon Ingold" height="512" src="https://blog.zarfhome.com/pic/2026/03/kaleidoscope-s.jpeg" width="350" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;You may recognize:&lt;/em&gt; Sharang Biswas, Naomi Clark, Paris Buttfield-Addison, Bruno Dias, Jason Dyer, Gwen C. Katz, and you know what a list of names is silly. Also I don't know half of them as well they deserve, and less than half of them half as well as I should like.&lt;/p&gt;
&lt;p&gt;The book sprouted from a chat between &lt;a href="https://www.ghostweather.com/"&gt;Lynn Cherny&lt;/a&gt; (who I worked with briefly at SpiritAI) and Jon Ingold (of &lt;a href="https://www.inklestudios.com/"&gt;Inkle&lt;/a&gt;). A self-published anthology by writers about writing? Sounds easy! Just ask around! Jon did, and a few days later he had hundreds of people expressing interest.&lt;/p&gt;
&lt;p&gt;The essays are cheerfully disorganized. They're connected by "see this related topic" links, but by his own admission Jon added the links in a hurry. You can follow them on a networked walk through the book, or ignore them and read in order, or -- my recommendation -- open to a random page and say "'Ere, what's all this then?"&lt;/p&gt;
&lt;p&gt;As for my contribution, here's a sample line from my essay:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;often I learn a game’s chapter count from the achievements list on its Steam&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pick up your own copy to learn how that sentence begins and ends!&lt;/p&gt;
&lt;p&gt;You can &lt;a href="https://www.inklestudios.com/kaleidoscope/"&gt;buy &lt;em&gt;The Game Narrative Kaleidoscope&lt;/em&gt; from Lulu&lt;/a&gt; in paperback or hardback form. Probably other online book outlets too. I don't know how that works.&lt;/p&gt;
&lt;p&gt;Oh, and Jon's doing a podcast series with some of the authors. See link above. I'm not currently scheduled but who knows.&lt;/p&gt;
&lt;p&gt;Oh, if you're at &lt;a href="https://blog.zarfhome.com/2026/02/gdc-2026-plans"&gt;GDC&lt;/a&gt;, I'll have a copy at the IFTF table.&lt;/p&gt;
&lt;p&gt;(Note: I will receive a small share of the revenue from this book. If it makes enough to be worth distributing.)&lt;/p&gt;</content><category term="zarf"/><category term="jon ingold"/><category term="books"/><category term="narrative"/><category term="game design"/><category term="game narrative kaleidoscope"/></entry><entry><title>1989 in context</title><link href="https://blog.zarfhome.com/2026/02/1989-in-context" rel="alternate"/><published>2026-02-25T04:31:15+00:00</published><updated>2026-02-25T04:31:15+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-02-25:/2026/02/1989-in-context</id><summary type="html">One of my goals with this project is to put the Infocom games, and the code, into context. Context is the fun part. Some of my friends got into it about this quote: The other four tokens—ON-GROUND, IN-ROOM, HELD, and CARRIED—are incredibly ...</summary><content type="html">&lt;p&gt;One of my goals with this project is to put the Infocom games, and the code, into context. Context is the fun part.&lt;/p&gt;
&lt;p&gt;Some of my friends got into it about this quote:&lt;/p&gt;
&lt;div class="PreWrap"&gt;
&lt;blockquote&gt;
&lt;p&gt;The other four tokens—&lt;code&gt;ON-GROUND&lt;/code&gt;, &lt;code&gt;IN-ROOM&lt;/code&gt;, &lt;code&gt;HELD&lt;/code&gt;, and &lt;code&gt;CARRIED&lt;/code&gt;—are
incredibly confusing, and no one really understands them except Stu, so he
should probably write this bit.&lt;/p&gt;
&lt;p&gt;-- &lt;em&gt;&lt;a href="https://eblong.com/infocom/other/Learning_ZIL_Meretzky_1995.pdf"&gt;Learning ZIL&lt;/a&gt;&lt;/em&gt;, chapter 9.6&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;Or, from Appendix A:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;CONTFCN&lt;/code&gt;: I never use this, why should you?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Or Appendix B:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Frankly, I think the &lt;code&gt;SEARCHBIT&lt;/code&gt; is a stupid concept, and I automatically give the &lt;code&gt;SEARCHBIT&lt;/code&gt; to all containers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Several other sections say "Stu should write this" as well.&lt;/p&gt;
&lt;p&gt;Let's set aside what these ZIL terms mean. The question is, how is this flippin' useful? In a reference manual? Who writes documentation like this?&lt;/p&gt;
&lt;p&gt;The title page says "Comments to SEM" -- Steve (Eric) Meretzky. So that answers who. "Stu" is clearly Stu Galley, one of the original Implementors and the architect of the "new" (V6) parser.&lt;/p&gt;
&lt;p&gt;But that's the author, not the context. For the context, let's take a look at the &lt;em&gt;entire&lt;/em&gt; title page:&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;img alt="Learning ZIL - or - Everything You Always Wanted to Know About Writing Interactive Fiction But Couldn't Find Anyone Still Working Here to Ask / Copyright ©1989 Infocom, Inc. For internal use only. Comments to SEM / Conversion to Microsoft Word -- SEM -- 8/1/95" height="336" src="https://blog.zarfhome.com/pic/2026/02/titlepage.png" width="573" /&gt;
&lt;em&gt;&lt;a href="https://eblong.com/infocom/other/Learning_ZIL_Meretzky_1995.pdf"&gt;Learning ZIL&lt;/a&gt;&lt;/em&gt;, title page&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Suddenly we know a lot more! What happened in May of 1989? (Aside from me passing my first college programming course.) That's right -- the shuttering of Infocom as a Cambridge studio.&lt;/p&gt;
&lt;p&gt;Quoting from &lt;a href="https://www.filfre.net/2016/07/going-to-california/"&gt;Jimmy Maher's article&lt;/a&gt; on the fall of Infocom:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The axe fell over the course of that long afternoon and evening [May 4th]. Infocom would be “moving” to California, where it was to be reconstituted and re-imagined as a more closely coupled subsidiary of Mediagenic [aka Activision], under a “general manager” named Rob Sears. Just 11 of the 26 current employees were offered positions at this new version of Infocom. [...] Suffice to say that those Mediagenic decided were desirable to retain often weren’t the pivotal creative voices you might expect, and that only 5 of the 11 accepted the offer anyway. [...] For the other old-timers, it was all over. Another six weeks or so to finish a few final projects and tidy up the place, and that would be that.&lt;/p&gt;
&lt;p&gt;-- "&lt;a href="https://www.filfre.net/2016/07/going-to-california/"&gt;Moving to California&lt;/a&gt;", Digital Antiquarian, July 2016&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The five who stayed on definitely did not include Meretzky:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Steve Meretzky had been scheduled to attend the Computer Game Developers’ Conference that very weekend in Sunnyvale, California. He was still allowed to fly out on Infocom’s dime, but replaced the company’s name on his badge with “Make Me an Offer!” &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(That would have been the &lt;em&gt;third&lt;/em&gt; CGDC, which reached the stunning total of &lt;a href="https://www.retroreversing.com/gdc"&gt;300 people&lt;/a&gt; in 1989. The event I'm &lt;a href="https://blog.zarfhome.com/2026/02/gdc-2026-plans"&gt;attending next month&lt;/a&gt; will be probably 100 times that size... give or take...)&lt;/p&gt;
&lt;p&gt;So. We have a manual which was written either a couple of months before the axe fell, or a couple of weeks after. Nothing exactly says which, but my sense is "before". This is a document written for an incoming writer who wants to make a game. It's not a historical document written for posterity.&lt;/p&gt;
&lt;p&gt;However, there's clearly a sense of resignation hanging over the whole endeavour. The document's subtitle gives you that up front. Infocom was already down to a quarter the size of its 1985-ish heyday, with no recent hits and no real prospect of a new one.&lt;/p&gt;
&lt;div class="PreWrap"&gt;
&lt;blockquote&gt;
&lt;p&gt;EXERCISE THREE
Design and implement a full-size game. Submit it to testing, fix all the resulting bugs, help marketing design a package, ship the game, and sell at least 250,000 units.&lt;/p&gt;
&lt;p&gt;-- &lt;em&gt;&lt;a href="https://eblong.com/infocom/other/Learning_ZIL_Meretzky_1995.pdf"&gt;Learning ZIL&lt;/a&gt;&lt;/em&gt;, chapter 16&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;So.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Footnote 1:&lt;/em&gt; Is it possible that the document was written earlier, and was just updated through 1989?&lt;/p&gt;
&lt;p&gt;Some of it, possibly. But the "Stu?" sections give the sense that this was interrupted in mid-draft, not written as a complete document and then later updated.&lt;/p&gt;
&lt;p&gt;Also, it mentions YZIP (Z-machine version 6), albeit not in a great deal of detail. (One line just says "see YZIP Spec for more details".) The first YZIP game was &lt;em&gt;Zork Zero&lt;/em&gt; in October 1988; the &lt;a href="https://eblong.com/infocom/other/spec-yzip.txt"&gt;YZIP Spec&lt;/a&gt; document is dated "11/30/88". The design work would have started earlier, but this still puts a pretty sharp lower bound on the writing span for &lt;em&gt;Learning ZIL&lt;/em&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Footnote 2:&lt;/em&gt; The document is also tagged as "Conversion to Microsoft Word -- SEM -- 8/1/95". In 1995, Meretzky was off at &lt;a href="https://boffo.games"&gt;Boffo Games&lt;/a&gt;, his new studio. What prompted him to pull a six-year-old text file out of his (&lt;a href="https://archive.org/details/infocomcabinet"&gt;copious&lt;/a&gt;) archives and update it into a "modern" format?&lt;/p&gt;
&lt;p&gt;I have no idea, actually. Maybe the assembly of the &lt;a href="https://archive.org/details/InfocomClassicTextAdventureMasterpieces1996JewelCaseArt"&gt;Masterpieces of Infocom&lt;/a&gt; CD-ROM collection, which had a number of bonus items on it. (Including my first IFComp entry!) The &lt;em&gt;Learning ZIL&lt;/em&gt; document wasn't among them, but it might have been part of a round-up of resources.&lt;/p&gt;</content><category term="if"/><category term="interactive fiction"/><category term="infocom"/><category term="zil"/><category term="steve meretzky"/></entry><entry><title>Visible Zorker: status report</title><link href="https://blog.zarfhome.com/2026/02/visible-zorker-status" rel="alternate"/><published>2026-02-15T02:53:17+00:00</published><updated>2026-02-15T02:53:17+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-02-15:/2026/02/visible-zorker-status</id><summary type="html">Three weeks ago I announced the Visible Zorker Patreon. At that time I said: If we reach the $500/month goal by Feb 14th, I will start cranking on Zork 3. The aim will be to have a playable version ready for Patreon supporters on March 1st. ...</summary><content type="html">&lt;p&gt;Three weeks ago I &lt;a href="https://blog.zarfhome.com/2026/01/the-visible-zorker-patreon"&gt;announced&lt;/a&gt; the &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Visible Zorker Patreon&lt;/a&gt;. At that time I &lt;a href="https://blog.zarfhome.com/2026/01/the-visible-zorker-patreon"&gt;said&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If we reach the $500/month goal by Feb 14th, I will start cranking on &lt;em&gt;Zork 3&lt;/em&gt;. The aim will be to have a playable version ready for Patreon supporters on &lt;em&gt;March 1st&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As you can see, we have not reached $500/month. The Patreon saw an initial wave of interest, but it leveled off after a few days at about $200.&lt;/p&gt;
&lt;p&gt;But, you know what, I chose this project because it was fun! I want it to work. So we are officially in go-mode. &lt;em&gt;Zork 3 is now in progress.&lt;/em&gt; I have a working build right now. Bare-bones, minimal, but working.&lt;/p&gt;
&lt;p&gt;Contributor-level donors will get access to the &lt;em&gt;Zork 3&lt;/em&gt; page later tonight. Participant-level donors will get access on March 1st, by which time it will be feature-complete.&lt;/p&gt;
&lt;p&gt;(Well, probably mostly complete. The map always takes longest.)&lt;/p&gt;
&lt;p&gt;I'll be touting the project at &lt;a href="https://blog.zarfhome.com/2026/02/gdc-2026-plans"&gt;GDC&lt;/a&gt; in March. I imagine that will bring in some more supporters. How many? No clue.&lt;/p&gt;
&lt;p&gt;Regardless, I am now committing to finish &lt;em&gt;Zork 3&lt;/em&gt;, &lt;em&gt;Deadline&lt;/em&gt;, and &lt;em&gt;Starcross&lt;/em&gt; by the end of May. June is &lt;a href="https://narrascope.org/"&gt;NarraScope&lt;/a&gt; month, so I'll take a break to concentrate on the event. After that we'll take stock and see what the prospects are.&lt;/p&gt;
&lt;p&gt;Sound good? Great.&lt;/p&gt;
&lt;p&gt;See you around the Discord.&lt;/p&gt;</content><category term="if"/><category term="interactive fiction"/><category term="zork"/><category term="infocom"/><category term="zil"/><category term="zarf"/><category term="visible zorker"/><category term="patreon"/><category term="zork 3"/></entry><entry><title>GDC plans, 2026</title><link href="https://blog.zarfhome.com/2026/02/gdc-2026-plans" rel="alternate"/><published>2026-02-14T02:39:30+00:00</published><updated>2026-02-14T02:39:30+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-02-14:/2026/02/gdc-2026-plans</id><summary type="html">Once again I will show my face in San Francisco for GDC. (My masked face, if you see me inside the convention center. That's how I roll now.) I'll be wearing the Green Hyperspace Jacket as usual. I've attended GDC on and off since 2012. This ...</summary><content type="html">&lt;p&gt;Once again I will show my face in San Francisco for &lt;a href="https://gdconf.com"&gt;GDC&lt;/a&gt;. (My masked face, if you see me inside the convention center. That's how I roll now.) I'll be wearing the Green Hyperspace Jacket as usual.&lt;/p&gt;
&lt;p&gt;I've attended GDC on and off since 2012. This year is a first, though: I'll be helping represent &lt;a href="https://iftechfoundation.org/"&gt;IFTF&lt;/a&gt;! We'll have a table in the new "&lt;a href="https://expo.gdconf.com/2026/#gdc-commons"&gt;GDC Commons&lt;/a&gt;" space, promoting the tools and art of interactive fiction. Come visit us during show-floor hours: 10-6 Wednesday, 10-6 Thursday, 10-3 Friday.&lt;/p&gt;
&lt;p&gt;The Common will also host a bunch of other regional and interest-based game-dev nonprofits. Including the &lt;a href="http://globalgamejam.org/"&gt;Global Game Jam&lt;/a&gt;, &lt;a href="http://www.thebigfoundation.org/"&gt;Black in Gaming&lt;/a&gt;, &lt;a href="https://www.latinxingaming.com/"&gt;Latinx in Gaming&lt;/a&gt;, and groups from &lt;a href="https://sfgamedevelopment.com/"&gt;SF&lt;/a&gt;, &lt;a href="https://www.seattleindies.org/"&gt;Seattle&lt;/a&gt;, and my own homies from &lt;a href="https://bostongamedev.org/"&gt;Boston Game Dev&lt;/a&gt;. Who I would totally be helping out if I weren't booked with the &lt;a href="https://iftechfoundation.org/"&gt;IFTF&lt;/a&gt; crew. And others.&lt;/p&gt;
&lt;p&gt;I won't spoil our booth surprises... well, maybe a little. My &lt;a href="https://eblong.com/infocom/visi/zork1/"&gt;Visible Zorker&lt;/a&gt; project is a great example of an open-source resource for game history education, so it'll be up and running somewhere. Assuming we get all the laptops set up the way we want.&lt;/p&gt;
&lt;p&gt;No, I am not hijacking an IFTF event to promote my own &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Patreon&lt;/a&gt;. That would be tacky. But I should have Visible Zork 3 up and running as a special GDC sneak peek...&lt;/p&gt;
&lt;p&gt;I won't be in the IFTF space every minute, but I'm signed up for a bunch of table hours on Wed/Thu/Fri. The rest of the week -- you know, the usual GDC cycle. Go to a talk, decide that talks are silly, hang out in Yerba Buena Park with all the other game-dev nerds. (Spoiler: the park doesn't require a conference badge. Drop by whether you're registered or not! It's always a crowd, unless it's raining, and even then.)&lt;/p&gt;
&lt;p&gt;Oh, and I'll also be at the IFTF table at the &lt;a href="https://gdconf.com/gdc-nights/"&gt;Opening Night Event&lt;/a&gt; down at Oracle Park. Monday night, 6:30 until... actually I don't know how late it runs. We will find out!&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;hr /&gt;
&lt;p&gt;And now, let's take that headline from top. What are &lt;em&gt;GDC's&lt;/em&gt; plans for 2026? What's going on with this event? Why has it rebranded as the "Festival of Gaming"? What does that mean?&lt;/p&gt;
&lt;p&gt;Everyone knows GDC started in 1988 as the "Computer Game Developers Conference" -- a couple dozen people in Chris Crawford's living room. Apparently it was &lt;a href="https://www.retroreversing.com/gdc"&gt;300 people&lt;/a&gt; by 1989. By the time I visited, GDC was the 30000-person monstrosity we know and resent today.&lt;/p&gt;
&lt;p&gt;Then, splat. Pandemic, argh, skip a couple years, everybody comes back (not everybody)... just in time for three years of unprecedented industry consolidations, layoffs, and closures. Followed by the chilling of international tourism and business travel under, you know, the current way of things.&lt;/p&gt;
&lt;p&gt;Not great for your theoretically industry-leading and in practice incredibly-expensive event.&lt;/p&gt;
&lt;p&gt;As I understand it, the event's tentpole financial donors (Epic, Unity, Amazon, etc) have now drastically cut their support. Don't quote me on this, it's just what I hear on the street. But the giant reset of GDC's name, its &lt;a href="https://gdconf.com/article/time-to-change-the-game-registration-opens-for-the-2026-gdc-festival-of-gaming/"&gt;branding&lt;/a&gt;, and its &lt;a href="https://www.gamedeveloper.com/business/gdc-lowers-ticket-prices-streamlines-pass-types-in-festival-of-gaming-reimagination-"&gt;price matrix&lt;/a&gt; is a clear signal that The Old Plan Ain't Working.&lt;/p&gt;
&lt;p&gt;Will the new plan work? 2025 had plenty of butts on-site, despite the industry malaise. Perhaps &lt;em&gt;because&lt;/em&gt; of the industry malaise. But you can't run a show this size by shaking down the unemployed.&lt;/p&gt;
&lt;p&gt;The "&lt;a href="https://gdconf.com/article/time-to-change-the-game-registration-opens-for-the-2026-gdc-festival-of-gaming/"&gt;community and networking&lt;/a&gt;" theme seems to be aiming for a sort of social-time-with-your-30000-best-friends vibe. With an implicit promise that even though all of &lt;em&gt;your&lt;/em&gt; friends just got laid off, &lt;em&gt;their&lt;/em&gt; friends are all well-heeled publishers who can hook you right up. I mean, that &lt;em&gt;is&lt;/em&gt; GDC in a nutshell, and has been for the past two decades. It's just that the social circle, the thousand overlapping social circles, have been cultivated on the coat-tails of gigantic economic battleships that hung in the sky in exactly the way that bricks don't. Can they really turn that into a self-supporting can't-miss community event? Or does everybody fly centrifugally off to fan-run meetups that cost a twentieth as much?&lt;/p&gt;
&lt;p&gt;Don't look to me for predictions. I have an bug's-eye view of all this. Indeed, I'm one of the performing fleas they're bringing in to liven up the circus. IFTF gets free space on the show-floor! I'm happy to take my complimentary exhibitor pass and strut our stuff for a week.&lt;/p&gt;
&lt;p&gt;But the sense that I'm getting from everybody is... provisional. "We'll try this new GDC and see if it works." Attendees are saying it and, well, GDC must be saying it too. Renting out the ballpark, good grief. They're just throwing a whole bunch of stuff in the pot and waiting to see if it explodes. With popcorn! Literal ballpark popcorn!&lt;/p&gt;
&lt;p&gt;Somewhere behind the curtain is a spreadsheet, and a month from now, the cell in the bottom right will be red or black. I think that very shortly after that, we'll know whether 2026 turns out to be the &lt;em&gt;last&lt;/em&gt; GDC.&lt;/p&gt;
&lt;p&gt;If so, I am for sure not going to miss the party.&lt;/p&gt;</content><category term="zarf"/><category term="gdc"/><category term="iftf"/><category term="if"/><category term="interactive fiction"/><category term="conferences"/></entry><entry><title>When is a bug not a bug?</title><link href="https://blog.zarfhome.com/2026/02/when-is-a-bug" rel="alternate"/><published>2026-02-11T03:05:58+00:00</published><updated>2026-02-11T03:05:58+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-02-11:/2026/02/when-is-a-bug</id><summary type="html">In my last post, I asserted that it was not a bug that the cyclops did not fight. (Not according to the combat rules that govern the troll and the thief, anyway.) There was some Patreon and Discord discussion about that; I'm pulling it out into ...</summary><content type="html">&lt;p&gt;In my &lt;a href="https://blog.zarfhome.com/2026/02/to-fight-a-troll"&gt;last post&lt;/a&gt;, I asserted that it was not a bug that the cyclops did not fight. (Not according to the combat rules that govern the troll and the thief, anyway.) There was some Patreon and Discord discussion about that; I'm pulling it out into a new post.&lt;/p&gt;
&lt;p&gt;(Is my blog going to just be a stream of Infocom trivia for the next two years? Maybe! I'm winging it here.)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Why&lt;/em&gt; doesn't the cyclops fight? Well, it's &lt;a href="https://eblong.com/infocom/visi/zork1/#SRC:1ACTIONS-3279"&gt;these lines of code&lt;/a&gt;:&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;pre&gt;&lt;code&gt;  &amp;lt;SET CNT 0&amp;gt;
  &amp;lt;REPEAT ()
      &amp;lt;SET CNT &amp;lt;+ .CNT 1&amp;gt;&amp;gt;
      &amp;lt;COND (&amp;lt;EQUAL? .CNT .LEN&amp;gt;
         &amp;lt;SET RES T&amp;gt;
         &amp;lt;RETURN T&amp;gt;)&amp;gt;
      &amp;lt;SET OO &amp;lt;GET ,VILLAINS .CNT&amp;gt;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Translating to more familiar pseudocode:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  CNT = 0
  repeat {
    CNT++
    if (CNT == LEN) return
    OO = VILLAINS[CNT]
    // this monster attacks
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;a href="https://eblong.com/infocom/visi/zork1/#GLOB:VILLAINS"&gt;&lt;code&gt;VILLAINS&lt;/code&gt;&lt;/a&gt; table is an &lt;code&gt;LTABLE&lt;/code&gt;, meaning it starts with a length field (3). Then entry 1 is the troll, entry 2 is the thief, entry 3 is the cyclops. The loop exits as soon as &lt;code&gt;CNT&lt;/code&gt; is 3, so the cyclops never attacks. Simple.&lt;/p&gt;
&lt;p&gt;The interesting comparison is Mini-Zork. This was a cut-down Zork, meant either as a demo, a more approachable game, or a version that would run on a cassette-based C64 -- I'm not sure of the precise story.&lt;/p&gt;
&lt;p&gt;(Mini-Zork was the first ZIL code to circulate publicly, earlier than the big Infocom source release of 2019. So it got a lot of scrutiny.)&lt;/p&gt;
&lt;p&gt;The point is, Mini-Zork has essentially the &lt;a href="https://github.com/historicalsource/minizork-1982/blob/c369f869c71e0aac5cfa8147c211ac0e39a5f565/melee.zil#L108"&gt;same logic&lt;/a&gt;, except the cyclops has been removed from the &lt;code&gt;VILLAINS&lt;/code&gt; table. (His combat responses have been removed as well.) So the table &lt;code&gt;LEN&lt;/code&gt; is 2, and the &lt;em&gt;thief&lt;/em&gt; never attacks. &lt;em&gt;That&lt;/em&gt; is clearly a bug. And the buggy line is &lt;code&gt;&amp;lt;EQUAL? .CNT .LEN&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;(&lt;code&gt;&amp;lt;==? .CNT .LEN&amp;gt;&lt;/code&gt;, because this version of ZIL let you abbreviate the operator. Means the same thing though.)&lt;/p&gt;
&lt;p&gt;So am I really saying that the &lt;em&gt;same line of code&lt;/em&gt; is a bug in Mini-Zork but not a bug in Zork? Sure! A bug is &lt;em&gt;when the code doesn't do what you want.&lt;/em&gt; Infocom manifestly wanted the thief to fight but not the cyclops. &lt;/p&gt;
&lt;p&gt;What's happened here is that a developer (probably Lebling or Blank, but who knows) made what should have been a simple change: removing one entry from a table. The table length wasn't hard-wired; everything that relies on &lt;code&gt;VILLAINS&lt;/code&gt; checks its length. So the change should have been safe, but whoops, it wasn't. It resulted in a bug in Mini-Zork.&lt;/p&gt;
&lt;p&gt;That wasn't a bug in the original game. It's what we call "an accident waiting to happen", or a "booby-trap", or a rake or a footgun, or, you know, &lt;em&gt;bad code&lt;/em&gt;. Different situation entirely.&lt;/p&gt;
&lt;p&gt;(Not a criticism. All IF games are made of bad code. It's just the nature of the beast.)&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Let's compare a different bug (non-bug?) which also popped up in Discord discussion.&lt;/p&gt;
&lt;p&gt;The strange machine in the depths of the coal mine is defined this way:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;OBJECT MACHINE
  (IN MACHINE-ROOM)
  (SYNONYM MACHINE PDP10 DRYER LID)
  (DESC &amp;quot;machine&amp;quot;)
  (FLAGS CONTBIT NDESCBIT TRYTAKEBIT)
  (ACTION MACHINE-F)
  (CAPACITY 50)&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can refer to it as a &lt;code&gt;MACHINE&lt;/code&gt;, or a &lt;code&gt;DRYER&lt;/code&gt; (the description says it's "reminiscent of a clothes dryer"), or a &lt;code&gt;LID&lt;/code&gt; (so that &lt;code&gt;OPEN LID&lt;/code&gt; is a synonym for &lt;code&gt;OPEN MACHINE&lt;/code&gt;). Or you can call it a &lt;code&gt;PDP10&lt;/code&gt;. A &lt;a href="https://en.wikipedia.org/wiki/PDP-10"&gt;PDP-10&lt;/a&gt; doesn't look anything like a dryer (&lt;em&gt;fridge&lt;/em&gt;, sure) but any Zork insider would be familiar with the thing. Both MIT Zork and Infocom's version were developed on PDP-10 hardware.&lt;/p&gt;
&lt;p&gt;So, great in-joke. Except it doesn't work:&lt;/p&gt;
&lt;div class="PreWrap"&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;gt;&lt;strong&gt;examine dryer&lt;/strong&gt;
You can't see any dryer here!&lt;/p&gt;
&lt;p&gt;&amp;gt;&lt;strong&gt;examine pdp10&lt;/strong&gt;
I don't know the word "pdp10".&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;(Infocom's parser reports unknown words whether you've found the item in question or not. So you don't have to journey to the Machine Room to test this.)&lt;/p&gt;
&lt;p&gt;Here's a how-de-do! What happened?&lt;/p&gt;
&lt;p&gt;To answer this, we must dig into the ZIL dictionary format. These words (&lt;code&gt;MACHINE&lt;/code&gt;, &lt;code&gt;DRYER&lt;/code&gt;, etc) aren't stored in plain ASCII. They're compressed using the Z-machine's &lt;a href="https://www.inform-fiction.org/zmachine/standards/z1point1/sect03.html"&gt;text compression scheme&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In short: a Z-machine character is five bits. A dict entry is exactly four bytes -- two 16-bit words -- with three characters packed into each 16-bit word. So that's a maximum of six characters. The last word has a "stop bit" (the sixteenth bit) indicating that it's the end of the string.&lt;/p&gt;
&lt;p&gt;(Then there's three flag bytes at the end of the entry, but those aren't relevant here.)&lt;/p&gt;
&lt;p&gt;The six-character limit is well-known. You can type &lt;code&gt;EXAMIN LANTER&lt;/code&gt; and the game will accept it. What's not so obvious is that some symbols are more expensive. Five bits isn't enough to distinguish every typable character, after all. So digits and punctuation are actually &lt;em&gt;multi-character&lt;/em&gt; sequences: a "shift" code followed by a shifted value.&lt;/p&gt;
&lt;p&gt;So the word &lt;code&gt;PDP10&lt;/code&gt; gets encoded as the sequence &lt;code&gt;P&lt;/code&gt; &lt;code&gt;D&lt;/code&gt; &lt;code&gt;P&lt;/code&gt; &lt;code&gt;shift&lt;/code&gt; &lt;code&gt;1&lt;/code&gt; &lt;code&gt;shift&lt;/code&gt; &lt;code&gt;0&lt;/code&gt;, or:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;10101 01001 10101 00101 01001 00101
  P     D     P   shift   1   shift
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The final &lt;code&gt;0&lt;/code&gt; gets cut off, because it's the seventh Z-character.&lt;/p&gt;
&lt;p&gt;Like I said, lots of game words get truncated. What's different about this one? It's truncated &lt;em&gt;in the middle of a multi-character sequence&lt;/em&gt;. Apparently Infocom's ZIL compiler gets confused by this and omits the stop bit! (Remember the stop bit?) And &lt;em&gt;that&lt;/em&gt; confuses the parser, so the word can never be matched.&lt;/p&gt;
&lt;p&gt;I looked through the game dictionary and found another example of a missing stop bit. (I &lt;a href="https://intfiction.org/t/z-machine-standard-unclear-aspects-ambiguities/64128/4"&gt;wasn't the first to do this&lt;/a&gt;.)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;OBJECT DAM
  (IN DAM-ROOM)
  (SYNONYM DAM GATE GATES FCD\#3)
  (DESC &amp;quot;dam&amp;quot;)
  (FLAGS NDESCBIT TRYTAKEBIT)
  (ACTION DAM-FUNCTION)&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The backslash is just a source-code escape. This synonym word is supposed to be &lt;code&gt;FCD#3&lt;/code&gt; (Flood Control Dam #3), but again, the word is not recognized.&lt;/p&gt;
&lt;p&gt;So the inevitable question: is this a bug? If so, where?&lt;/p&gt;
&lt;p&gt;It could be an &lt;em&gt;interpreter&lt;/em&gt; bug. After all, the &lt;a href="https://www.inform-fiction.org/zmachine/standards/z1point1/sect03.html"&gt;text encoding spec&lt;/a&gt; I mentioned isn't an Infocom document. It came out of the IF community of the mid-90s, a time when we didn't &lt;em&gt;have&lt;/em&gt; any Infocom documentation. Maybe the game is correct and my interpreter is wrong!&lt;/p&gt;
&lt;p&gt;Well, we can check that. Fire up &lt;a href="https://archive.org/details/Zork_I_r88"&gt;Zork 1 on the Apple 2&lt;/a&gt;!&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://archive.org/details/Zork_I_r88"&gt;&lt;img alt="The opening of Zork 1, displayed on the characteristic Apple 40-by-24 display. All of the text is upper case. The errors &amp;quot;I don't know the word PDP10&amp;quot; and &amp;quot;I don't know the word FCD#3&amp;quot; are visible." height="412" src="https://blog.zarfhome.com/pic/2026/02/zork1-apple.png" width="598" /&gt;&lt;/a&gt;
Zork 1 running on an Apple //e emulator, courtesy of the Internet Archive.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Scratch that idea. My interpreter is behaving correctly, or "the same as Infocom's interpreter", anyhow.&lt;/p&gt;
&lt;p&gt;At this point, I'd be happy to call this a bug -- an inferred bug in Infocom's compiler! But in fact we can observe a bit more evidence. Take a look at this object definition:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;OBJECT TREE
  (IN LOCAL-GLOBALS)
  (SYNONYM TREE BRANCH)
  (ADJECTIVE LARGE STORM ;&amp;quot;-TOSSED&amp;quot;)
  (DESC &amp;quot;tree&amp;quot;)
  (FLAGS NDESCBIT CLIMBBIT)&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is a scenery object found all over the outdoors. A couple of locations say "Storm-tossed trees block your way", so they threw in &lt;code&gt;STORM&lt;/code&gt; as a synonym. But the &lt;code&gt;-TOSSED&lt;/code&gt; part is commented out.&lt;/p&gt;
&lt;p&gt;Why? We don't have source code from earlier Zork 1 releases. But we &lt;em&gt;do&lt;/em&gt; have compiled game files, and several of them have the word &lt;code&gt;STORM&lt;/code&gt; -- with a missing stop bit.&lt;/p&gt;
&lt;p&gt;Clearly, this was compiled from the word &lt;code&gt;STORM-TOSSED&lt;/code&gt;, and ran into the same compiler bug. But this time, the developers &lt;em&gt;noticed&lt;/em&gt;. They figured out what was wrong, and commented out part of the word to avoid the problem. But they missed the parallel situations of &lt;code&gt;PDP10&lt;/code&gt; and &lt;code&gt;FCD#3&lt;/code&gt;. &lt;/p&gt;
&lt;p&gt;We can also compare Zork 1 release 119, a late development version (never released). This has all the stop bits where they should be. All the funny words work. So by 1988, Infocom had fixed the compiler bug.&lt;/p&gt;
&lt;p&gt;Whew. I've either completely narcotized you or opened your eyes to the many dimensions of Infocom game file analysis. Tune in next time when I count every individual one of the 69105 leaves!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(This entry is cross-posted to the &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Patreon site&lt;/a&gt;.)&lt;/em&gt;&lt;/p&gt;</content><category term="if"/><category term="interactive fiction"/><category term="zork"/><category term="z-machine"/><category term="infocom"/><category term="zil"/><category term="zarf"/><category term="visible zorker"/><category term="patreon"/></entry><entry><title>To fight a troll</title><link href="https://blog.zarfhome.com/2026/02/to-fight-a-troll" rel="alternate"/><published>2026-02-08T17:56:49+00:00</published><updated>2026-02-08T17:56:49+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-02-08:/2026/02/to-fight-a-troll</id><summary type="html">Everybody knows that you KILL TROLL WITH SWORD until he vanishes in a greasy black fog. If he kills you first, big deal; RESTORE and try again. It's too random to be a real obstacle. But do you know the math behind the randomness? I didn't! ...</summary><content type="html">&lt;p&gt;Everybody knows that you &lt;code&gt;KILL TROLL WITH SWORD&lt;/code&gt; until he vanishes in a greasy black fog. If he kills you first, big deal; &lt;code&gt;RESTORE&lt;/code&gt; and try again. It's too random to be a real obstacle. But do you know the math behind the randomness?&lt;/p&gt;
&lt;p&gt;I didn't! But some folks got to talking about it on the Discord, and I realized there was room to add some visualization. So &lt;a href="https://eblong.com/infocom/visi/zork1/"&gt;Visible Zork 1&lt;/a&gt; now has a "Combat" tab. You can &lt;a href="https://eblong.com/infocom/visi/zork1/"&gt;try it now&lt;/a&gt;, or just read it right here.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;p&gt;(The Visible version is dynamic. It shows how enemy strength decreases as you fight them. Also exciting details like the "enemy wakes up" timer.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The &lt;a href="https://eblong.com/infocom/visi/zork1/#GLOB:VILLAINS"&gt;villain table&lt;/a&gt; describes the three enemies you can fight. (Although the cyclops does not follow regular combat rules, so his entries are never used.)&lt;/p&gt;
&lt;p&gt;The table shows what weapon the monster is weak again, the weakness penalty, the awakening probability (if it is unconscious), and the table of melee outcome messages. Also &lt;code&gt;STRENGTH&lt;/code&gt;, which is really a property rather than a table entry, but I’m including it here anyway.&lt;/p&gt;
&lt;p&gt;&lt;img alt="A table showing three columns: the troll (strength 2), the thief (strength 5), and the cyclops (strength 10000). The troll is weak against the sword (-1 penalty); the thief is weak against the knife. The cyclops has no weakness." height="156" src="https://blog.zarfhome.com/pic/2026/02/villain-table.png" width="295" /&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://eblong.com/infocom/visi/zork1/#GLOB:DEF1"&gt;combat table&lt;/a&gt; is used for all attacks, player and monster. Select a row based on the defender’s combat strength and the attacker’s advantage over the defender. That is, if the defender has strength 2 and the attacker has strength 3, use line “2/D+1”.&lt;/p&gt;
&lt;p&gt;(For the computation of combat strength, see &lt;a href="https://eblong.com/infocom/visi/zork1/#RTN:FIGHT-STRENGTH"&gt;&lt;code&gt;FIGHT-STRENGTH&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://eblong.com/infocom/visi/zork1/#RTN:VILLAIN-STRENGTH"&gt;&lt;code&gt;VILLAIN-STRENGTH&lt;/code&gt;&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;Then roll a nine-sided die. Outcomes (for the defender) are: miss, staggered, light wound, serious wound, unconscious, killed.&lt;/p&gt;
&lt;p&gt;&lt;img alt="A table showing various outcomes depending on the defender and attacker strength and a random number from 1 to 9." height="413" src="https://blog.zarfhome.com/pic/2026/02/combat-table.png" width="338" /&gt;&lt;/p&gt;
&lt;p&gt;If you are staggered, you have a 25% chance of being disarmed. If you are knocked out, your opponent gets 1-3 free shots at you, and most of the results are “killed”. (The dungeon is unkind to the unconscious.)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A few observations and questions:&lt;/p&gt;
&lt;p&gt;Why a nine-sided die? Who knows. Maybe they didn't trust the low bit of the primitive RNGs of the day. (Even the "modern" IF interpreters of the 1990s had that sort of problem.)&lt;/p&gt;
&lt;p&gt;The troll, who starts with strength 2, can be killed in one blow. The thief can't; you have to wear him down a bit.&lt;/p&gt;
&lt;p&gt;Note that the cyclops is fully set up for combat, even though you can't hurt him (strength 10000!) and he won't fight you. He can &lt;em&gt;kill&lt;/em&gt; you; if you annoy him, it starts a timer that ends with your ignominious death. But that's not handled through the combat system -- no die rolls.&lt;/p&gt;
&lt;p&gt;In early versions of MIT Zork, you &lt;em&gt;could&lt;/em&gt; fight the cyclops, but that was disabled in favor of sneaky solutions. The real question is, why did they leave the cyclops &lt;a href="https://eblong.com/infocom/visi/zork1/#GLOB:CYCLOPS-MELEE"&gt;combat responses&lt;/a&gt; in the game? That's about 500 bytes they could have saved. Usually Infocom treated every byte as precious -- particularly for these early titles which had to run on the Atari 400, etc.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Finally, a combat bug -- newly discovered on our Discord, as far as I know.&lt;/p&gt;
&lt;p&gt;Let me summarize the &lt;a href="https://eblong.com/infocom/visi/zork1/#RTN:HERO-BLOW"&gt;&lt;code&gt;HERO-BLOW&lt;/code&gt;&lt;/a&gt; routine, which handles your attacks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Set &lt;code&gt;ATT&lt;/code&gt; to &lt;code&gt;FIGHT-STRENGTH&lt;/code&gt; (your adjusted combat strength);&lt;/li&gt;
&lt;li&gt;Set &lt;code&gt;DEF&lt;/code&gt; to &lt;code&gt;VILLAIN-STRENGTH&lt;/code&gt; (the opponent's adjusted combat strength);&lt;/li&gt;
&lt;li&gt;If the opponent is disarmed or unconscious, you kill them automatically;&lt;/li&gt;
&lt;li&gt;Otherwise roll on the combat table;&lt;/li&gt;
&lt;li&gt;Decrease &lt;code&gt;DEF&lt;/code&gt; if you rolled a hit;&lt;/li&gt;
&lt;li&gt;Call &lt;code&gt;VILLAIN-RESULT&lt;/code&gt;, which stores &lt;code&gt;DEF&lt;/code&gt; as the opponent's &lt;code&gt;STRENGTH&lt;/code&gt; and kills them if that's zero.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What do we mean by "adjusted combat strength"? Well, the &lt;a href="https://eblong.com/infocom/visi/zork1/#RTN:VILLAIN-STRENGTH"&gt;&lt;code&gt;VILLAIN-STRENGTH&lt;/code&gt;&lt;/a&gt; routine checks whether &lt;code&gt;PRSI&lt;/code&gt; (the parsed indirect object) matches the villain's weakness. This is a crude way of checking whether you typed &lt;code&gt;KILL TROLL WITH SWORD&lt;/code&gt; or &lt;code&gt;KILL THIEF WITH KNIFE&lt;/code&gt;, as distinct from any other weapon. If the weapon matches, &lt;code&gt;VILLAIN-STRENGTH&lt;/code&gt; returns a value decreased by one (but not to zero).&lt;/p&gt;
&lt;p&gt;(I think this decrease would also happen if you typed &lt;code&gt;PUT LAMP IN SWORD&lt;/code&gt; on the same turn that the troll attacks &lt;em&gt;you&lt;/em&gt;. Possible additional bug! But not the one I'm talking about.)&lt;/p&gt;
&lt;p&gt;Notice that the weapon penalty makes its way from &lt;code&gt;VILLAIN-STRENGTH&lt;/code&gt; to the &lt;code&gt;DEF&lt;/code&gt; variable to the opponent's &lt;code&gt;STRENGTH&lt;/code&gt; -- regardless of your roll! So if you attack the troll with the sword &lt;em&gt;and miss&lt;/em&gt;, the troll's strength goes down by one &lt;em&gt;anyway&lt;/em&gt;. (Unless it's already at one.) A light wound does two damage, and a serious wound does three.&lt;/p&gt;
&lt;p&gt;The same goes for attacking the thief with the knife, of course. A miss will cause damage.&lt;/p&gt;
&lt;p&gt;(To be clear, this only happens when you attack. The converse &lt;a href="https://eblong.com/infocom/visi/zork1/#RTN:VILLAIN-BLOW"&gt;&lt;code&gt;VILLAIN-BLOW&lt;/code&gt;&lt;/a&gt; routine &lt;em&gt;does&lt;/em&gt; call &lt;code&gt;VILLAIN-STRENGTH&lt;/code&gt;, but it &lt;em&gt;doesn't&lt;/em&gt; call &lt;code&gt;VILLAIN-RESULT&lt;/code&gt;. The decreased enemy strength value is discarded and doesn't affect future turns.)&lt;/p&gt;
&lt;p&gt;Is this a bug? It sure doesn't look intentional. You wouldn't expect that a miss would cause damage. On the other hand, every commercial version of Zork behaved this way (as far as I know). If you "fixed the bug", combat would get &lt;em&gt;significantly&lt;/em&gt; harder -- particularly the thief fight, which necessarily goes several rounds. Would anybody want that?&lt;/p&gt;
&lt;p&gt;If the combat was playtested at all -- and Infocom was assiduous about user testing, both before and after release -- it was tested with these odds. The mechanics may be illogical, but we have to assume that the &lt;em&gt;outcome&lt;/em&gt; is what Infocom wanted. Or at least, they were satisfied with it.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(This entry is cross-posted to the &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Patreon site&lt;/a&gt;.)&lt;/em&gt;&lt;/p&gt;</content><category term="if"/><category term="interactive fiction"/><category term="zork"/><category term="combat"/><category term="infocom"/><category term="zil"/><category term="zarf"/><category term="visible zorker"/><category term="patreon"/></entry><entry><title>The Beacon is lit</title><link href="https://blog.zarfhome.com/2026/02/the-beacon" rel="alternate"/><published>2026-02-07T15:09:49+00:00</published><updated>2026-02-07T15:09:49+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-02-07:/2026/02/the-beacon</id><summary type="html">Here's the back wall of my home office -- a.k.a. my videochat background. It used to be boring. Now it's colorful! Pattern: slowflies. The lights are bright enough to saturate my phone camera; that's why the blue looks weirdly dark. That's ...</summary><content type="html">&lt;p&gt;Here's the back wall of my home office -- a.k.a. my videochat background. It used to be boring. Now it's colorful!&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/02/slowflies.jpeg"&gt;&lt;img alt="An LED strip runs along the top of a wall, above some wire-rack shelves of CD-ROMs and assorted junk. The strip glows in irregular segments of deep blue and bright cyan. The colors are bright enough to blow out the image somewhat; they shine up the wall and reflect off the ceiling." height="344" src="https://blog.zarfhome.com/pic/2026/02/slowflies-s.jpeg" width="600" /&gt;&lt;/a&gt;
Pattern: &lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/slowflies.pbb"&gt;&lt;code&gt;slowflies&lt;/code&gt;&lt;/a&gt;. The lights are bright enough to saturate my phone camera; that's why the blue looks weirdly dark.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;That's a programmable LED strip running a pattern that I designed. In a pattern language that I came up with. The source code for that pattern is here: &lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/slowflies.pbb"&gt;&lt;code&gt;slowflies.pbb&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As you can see, it's a declarative syntax which describes &lt;em&gt;waves&lt;/em&gt;. Roughly, this code says "Generate some sine-wave pulses that move slowly back and forth; add them; draw them in green (&lt;code&gt;$0F0&lt;/code&gt;) with a blue (&lt;code&gt;$02C&lt;/code&gt;) fade-down."&lt;/p&gt;
&lt;p&gt;Here's another one, in pinks and oranges:&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/02/fireblobs.jpeg"&gt;&lt;img alt="An LED strip runs along the top of a wall. The strip glows in irregular segments of yellow, orange, and magenta." height="280" src="https://blog.zarfhome.com/pic/2026/02/fireblobs-s.jpeg" width="600" /&gt;&lt;/a&gt;
Pattern: &lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/fireblobs.pbb"&gt;&lt;code&gt;fireblobs&lt;/code&gt;&lt;/a&gt;. I turned off the room lights to bring out the colors.&lt;/p&gt;
&lt;/div&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;p&gt;And some &lt;a href="https://blog.zarfhome.com/pic/2026/02/wanderedges.mp4"&gt;video&lt;/a&gt;:&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;video controls muted="true" width="600" height="337"&gt;
&lt;source src="/pic/2026/02/wanderedges.mp4" type="video/mp4" /&gt;
&lt;/video&gt;
&lt;p&gt;Pattern: &lt;code&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/wanderedges.pbb"&gt;wanderedges&lt;/a&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;It's nicely flexible. That green-fireflies video is a sum-of-waves like all the others, but with a gradient that only shows the &lt;em&gt;midpoint&lt;/em&gt; of the summed curves. This gives a sort of cheapass edge-detection over time, which is visually interesting.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This project has taken several detours. I originally wanted to run an LED strip around the bay window of my second-floor apartment. Thus the "Beacon" -- it would shine out over my neighborhood. Or at least amuse the neighbors.&lt;/p&gt;
&lt;p&gt;I may yet do that, but weather-proofing and outdoor wiring is a lot. I figured it would be easier to start with an indoor installation. The neighbors would miss out, but it would amuse my compatriots at morning stand-up.&lt;/p&gt;
&lt;p&gt;The pattern language is a syntax that I came up with a couple of years ago. My &lt;a href="https://github.com/erkyrath/beacon"&gt;first implementation&lt;/a&gt; was in Rust. (I wanted some Rust practice.) That was intended to run on a Raspberry Pi. And it did! I bought a Pi and an LED strip. I managed to get the software installed, and it ran great.&lt;/p&gt;
&lt;p&gt;However, connecting the Pi &lt;em&gt;to&lt;/em&gt; the LED strip was, well, a &lt;a href="https://learn.adafruit.com/adafruit-dotstar-leds/python-circuitpython"&gt;soldering project&lt;/a&gt;. I've soldered wires, but my skill level is "blob it on and hope it works" and I just didn't feel comfortable anywhere near circuitboard pins. So that got shelved for a while.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;But a few months ago, someone mentioned the word "&lt;a href="https://electromage.com/pixelblaze"&gt;Pixelblaze&lt;/a&gt;". The Pixelblaze is a user-friendly microcontroller for LED strips. It has a built-in web interface. You can get it with the connector already soldered on! Plug in, fire up a web page on your local network, select a pattern, and you're off. There's a pattern editor, too. Exactly what I wanted.&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/02/pixelblaze-conn.jpeg"&gt;&lt;img alt="A small black case with a four-wire connector plugged into it. The connector is plugged into a different connector at the other end. One wire has a tag with &amp;quot;+5V&amp;quot; scribbled on it." height="265" src="https://blog.zarfhome.com/pic/2026/02/pixelblaze-conn.jpeg" width="600" /&gt;&lt;/a&gt;
A Pixelblaze controller plugged into its connectors. It's illuminated in green because where do you think the light is coming from?&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Only one problem: it doesn't run &lt;em&gt;my&lt;/em&gt; pattern language. It uses a &lt;a href="https://electromage.com/docs/language-reference"&gt;Javascript-like language&lt;/a&gt;. Nothing wrong with that -- but I had this extremely cool (I thought) &lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/DOC.md"&gt;declarative syntax&lt;/a&gt; all worked out, and I wanted to use it.&lt;/p&gt;
&lt;p&gt;Sadly, while the Pixelblaze hardware (and its software) are intended for tinkerers, they are not open-source. So I couldn't just replace their language with mine.&lt;/p&gt;
&lt;p&gt;Instead, I had to write a translator tool. Behold: &lt;a href="https://github.com/erkyrath/pbbeacon"&gt;&lt;code&gt;pbbeacon&lt;/code&gt;&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;(Yes, the "Pixelblaze Beacon". I wasn't feeling groovy for names.)&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pbbeacon&lt;/code&gt; is a translator which reads one of my pattern files (a &lt;code&gt;.pbb&lt;/code&gt; file) and writes out a Pixelblaze language file. You can see examples of both in the &lt;a href="https://github.com/erkyrath/pbbeacon/tree/master/scripts"&gt;scripts&lt;/a&gt; directory. The &lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/slowflies.pbb"&gt;&lt;code&gt;slowflies.pbb&lt;/code&gt;&lt;/a&gt; script up top gets translated into &lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/slowflies.pat"&gt;&lt;code&gt;slowflies.pat&lt;/code&gt;&lt;/a&gt;. You shove that onto the Pixelblaze and it runs.&lt;/p&gt;
&lt;p&gt;(The top of the &lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/slowflies.pat"&gt;&lt;code&gt;.pat&lt;/code&gt;&lt;/a&gt; file is the original &lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/slowflies.pbb"&gt;&lt;code&gt;.pbb&lt;/code&gt;&lt;/a&gt; source, included as a comment. Provenance is all.)&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;More to be done&lt;/h2&gt;
&lt;p&gt;This project is, as they say, very much in progress.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/DOC.md"&gt;&lt;code&gt;pbbeacon&lt;/code&gt; language&lt;/a&gt; is missing a few features compared to the &lt;a href="https://github.com/erkyrath/beacon"&gt;Rust original&lt;/a&gt;. In particular, I need to implement the &lt;code&gt;noise&lt;/code&gt; operator. The PB language has a noise() function; I just need to get it hooked up right. [EDIT: Done as of Feb 13th.]&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;My system has a global clock. It needs to fire waves at known intervals, so time-tracking is critical. But the underlying Pixelblaze language uses fixed-point &lt;code&gt;16.16&lt;/code&gt; math for everything. (Really &lt;code&gt;15.16&lt;/code&gt;, because it's signed numbers.) That means that my clock will overflow after 32767 seconds -- nine hours. Probably the whole pattern will freeze up, or go blank, or something. So it's no good for all-day operation. I should write some code to time-shift down after eight hours.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You're supposed to be able to control the Pixelblaze by sending messages over a websocket connection. I have not yet gotten this to work. (I could have it flash red when someone messages me on Slack! Or when someone &lt;a href="https://web.archive.org/web/20081026124125/http://www.traipse.com/beacon/index.html"&gt;files a bug&lt;/a&gt; on one of my Github repos! Wait, no, that's a terrible idea.) [EDIT: Done as of Feb 13th.]&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I did a fair amount of code optimization, but my patterns are inherently slow. Adding up several sine waves is just a lot of math. The Pixelblaze chugs a bit under the load. Some of my patterns run at 30 fps, which is slower than I prefer. If I try to get any more complex, it would get unacceptably blinky. Or if I got a longer strip, or a denser one (more dots-per-inch).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pattern gallery&lt;/h2&gt;
&lt;p&gt;Here's all the patterns I've come up with so far. I'm sure I'll add some more as time goes on. Fiddling with pattern code is fun!&lt;/p&gt;
&lt;p&gt;(I've uploaded most of these to the &lt;a href="https://electromage.com/patterns"&gt;Pixelblaze pattern repository&lt;/a&gt; as well.)&lt;/p&gt;
&lt;div class="BlackPane"&gt;
  &lt;div id="p_amoeba" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/amoeba.pbb"&gt;amoeba&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_aurorashivers" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/aurorashivers.pbb"&gt;aurorashivers&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_bustle" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/bustle.pbb"&gt;bustle&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_coolaura" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/coolaura.pbb"&gt;coolaura&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_fireballs" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/fireballs.pbb"&gt;fireballs&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_fireblobs" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/fireblobs.pbb"&gt;fireblobs&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_heatshivers" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/heatshivers.pbb"&gt;heatshivers&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_neutronorbit" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/neutronorbit.pbb"&gt;neutronorbit&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_novas" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/novas.pbb"&gt;novas&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_portal" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/portal.pbb"&gt;portal&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_scrolls" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/scrolls.pbb"&gt;scrolls&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_slowflies" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/slowflies.pbb"&gt;slowflies&lt;/a&gt;&lt;/div&gt;
  &lt;div id="p_wanderedges" class="PatternPreview"&gt;&lt;/div&gt;
  &lt;div class="PatternLabel"&gt;&lt;a href="https://github.com/erkyrath/pbbeacon/blob/master/scripts/wanderedges.pbb"&gt;wanderedges&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;These are animations rendered by the Pixelblaze editor. (Or, really, &lt;a href="https://blog.zarfhome.com/pic/2026/02/previews/bustle.jpeg"&gt;2D images&lt;/a&gt; scrolling through a narrow rectangle. &lt;a href="https://neiloseman.com/slit-scan-and-the-legacy-of-douglas-trumbull/"&gt;Slit-scan trippiness&lt;/a&gt;!)&lt;/p&gt;
&lt;h2&gt;Techy details&lt;/h2&gt;
&lt;p&gt;I bought a &lt;a href="https://shop.electromage.com/products/pixelblaze-ready-to-run"&gt;Pixelblaze V3 Standard&lt;/a&gt;, the "pre-soldered" version, along with the slim case. Actually I bought two, one pre-soldered and one not.&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://blog.zarfhome.com/pic/2026/02/pixelblaze-case.jpeg"&gt;&lt;img alt="A small circuitboard in a plastic case." height="378" src="https://blog.zarfhome.com/pic/2026/02/pixelblaze-case.jpeg" width="400" /&gt;&lt;/a&gt;
What it looks like with the case open. This is the &lt;em&gt;non&lt;/em&gt;-pre-soldered Pixelblaze.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Then (or rather, two years earlier) I got an &lt;a href="https://www.adafruit.com/product/2240"&gt;Adafruit DotStar LED strip&lt;/a&gt;, 4 meters at 60 LEDs per meter. Also a chunky 5V power supply.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You can power the Pixelblaze through a USB-mini interface, but it can't draw much power that way. So there's a limit to how many LEDs you can run off USB. I followed the recommended setup, which is to power the LED strip directly from the power supply. Then the Pixelblaze doesn't need its own power connection; it just runs off the power coming from the LED strip. It's clever.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I ran into one hitch. If you look at the &lt;a href="https://shop.electromage.com/products/pixelblaze-ready-to-run"&gt;Pixelblaze store page&lt;/a&gt;, you'll see it comes with a tiny little ribbon cable that connects the controller to the LED strip. (Also visible in the green closeup above.) The DotStar strip I bought has a &lt;a href="https://www.adafruit.com/product/578"&gt;four-pin connector&lt;/a&gt; on each end (they can daisy-chain) so it all just worked.&lt;/p&gt;
&lt;p&gt;...eeexcept it didn't work. Upon careful inspection, the PB ribbon cable wanted to connect to the &lt;em&gt;wrong end&lt;/em&gt; of the DotStar strip. (They daisy-chain, but one end is "input" and the other is "output".)&lt;/p&gt;
&lt;p&gt;But I was smart this time. I asked my partner, who has been soldering LEDs for decades. She threw together a 4-pin gender-changer from parts lying around, and &lt;em&gt;then&lt;/em&gt; it all just worked.&lt;/p&gt;
&lt;p&gt;Yes, I will get her to deal with the Raspberry Pi as well. My original plan still awaits. The Pi will run &lt;em&gt;much&lt;/em&gt; faster -- which means fancier patterns on longer strips. The Beacon will rise! Forth EorlinGaAs!&lt;/p&gt;</content><category term="zarf"/><category term="art"/><category term="beacon"/><category term="leds"/><category term="pixelblaze"/></entry><entry><title>Chronological order</title><link href="https://blog.zarfhome.com/2026/01/chronological-order" rel="alternate"/><published>2026-01-28T01:19:18+00:00</published><updated>2026-01-28T01:19:18+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-01-28:/2026/01/chronological-order</id><summary type="html">Of course the first thing that happens is someone corrects my chronology. (Thanks dukdukgoos!) In my original post, I wrote "March: Zork 3; April: Starcross; May: Deadline." In fact Deadline was released before the other two. Back when I put ...</summary><content type="html">&lt;p&gt;Of course the first thing that happens is someone corrects my &lt;a href="https://blog.zarfhome.com/2026/01/the-visible-zorker-patreon"&gt;chronology&lt;/a&gt;. (Thanks &lt;code&gt;dukdukgoos&lt;/code&gt;!)&lt;/p&gt;
&lt;p&gt;In my original post, I wrote "March: &lt;em&gt;Zork 3&lt;/em&gt;; April: &lt;em&gt;Starcross&lt;/em&gt;; May: &lt;em&gt;Deadline&lt;/em&gt;." In fact &lt;em&gt;Deadline&lt;/em&gt; was released before the other two.&lt;/p&gt;
&lt;p&gt;Back when I put together my &lt;a href="https://eblong.com/infocom/"&gt;Infocom catalog&lt;/a&gt; index page, I copied off Paul David Doherty's venerable &lt;a href="http://pdd.if-legends.org/infocom/fact-sheet.txt"&gt;Infocom Fact Sheet&lt;/a&gt;. Except I think I copied the wrong section. Or something. Anyhow, I got them out of order -- and then failed to recheck my own list when I planned the Patreon.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;p&gt;To double-check, let's look at Margot Comstock Tommervik's review of &lt;em&gt;Starcross&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If it takes a minimum of two instances to form a proposition, then &lt;em&gt;Starcross&lt;/em&gt;, adventurous Infocom's first foray into science fiction and second departure from the dungeons of &lt;em&gt;Zork&lt;/em&gt;, enables the proposition that this young company is one of remarkable versatility [...]. &lt;em&gt;Deadline&lt;/em&gt;, the you-solve-it mystery, was, of course, instance one.&lt;/p&gt;
&lt;p&gt;-- from &lt;a href="https://invisiclues.org/library/softalk-starcross-review"&gt;Softalk Magazine, Nov 1982&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Zork 3&lt;/em&gt; was reviewed &lt;a href="https://invisiclues.org/library/softalk-zork-iii-review"&gt;a couple of months previously&lt;/a&gt;, if you want to check that. In fact the archives of &lt;em&gt;Softalk&lt;/em&gt; and &lt;em&gt;Softline&lt;/em&gt; are a great record of the first half of Infocom's career; they reviewed the games obsessively until both magazines shut down in mid-1984.&lt;/p&gt;
&lt;p&gt;(You can browse these Infocom articles and many more at the &lt;a href="https://invisiclues.org/library"&gt;Invisiclues&lt;/a&gt; fan site.)&lt;/p&gt;
&lt;p&gt;Those contemporary sources match the "Chronology" section of PDD's &lt;a href="http://pdd.if-legends.org/infocom/fact-sheet.txt"&gt;Fact Sheet&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Zork 1&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Zork 2&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Deadline&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Zork 3&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Starcross&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Suspended&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The Witness&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Planetfall&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Enchanter&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Infidel&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Sorcerer&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Seastalker&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;...and so on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(Those are the "Folio" game releases. After &lt;em&gt;Seastalker&lt;/em&gt;, Infocom adopted the now-more-famous "Grey Box" format.)&lt;/p&gt;
&lt;p&gt;Interestingly, if you look at the earliest preserved &lt;a href="https://eblong.com/infocom/"&gt;serial number&lt;/a&gt; of each game -- excluding files tagged "alpha" or "beta" -- you get the same order. This means we probably have the first-shipped version of every game. Nice to know! You can also see that development on each game was usually locked the month before the ship date. Not bad for a release process that involved stuffing physical disks into physical boxes.&lt;/p&gt;
&lt;p&gt;Anyhow, I'm keeping &lt;em&gt;Zork 3&lt;/em&gt; at the top of the Patreon schedule (March). I want to wrap up the trilogy right off the (Babe Flathead) bat. If everything moves forward as planned, I'll do &lt;em&gt;Deadline&lt;/em&gt; in April, &lt;em&gt;Starcross&lt;/em&gt; in May, and so on.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(This entry is cross-posted to the &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Patreon site&lt;/a&gt;.)&lt;/em&gt;&lt;/p&gt;</content><category term="if"/><category term="interactive fiction"/><category term="zork"/><category term="starcross"/><category term="deadline"/><category term="infocom"/><category term="zil"/><category term="zarf"/><category term="visible zorker"/><category term="patreon"/></entry><entry><title>The Visible Zorker Project (and Patreon)</title><link href="https://blog.zarfhome.com/2026/01/the-visible-zorker-patreon" rel="alternate"/><published>2026-01-26T23:00:55+00:00</published><updated>2026-01-26T23:00:55+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-01-26:/2026/01/the-visible-zorker-patreon</id><summary type="html">Announcing the Visible Zorker Project and Patreon. The plan: deconstruct every Infocom game, one per month, and make the source code explorable.</summary><content type="html">&lt;p&gt;I posted &lt;em&gt;&lt;a href="https://eblong.com/infocom/visi/zork2/"&gt;Visible Zork 2&lt;/a&gt;&lt;/em&gt; a few ago. What about &lt;em&gt;Zork 3&lt;/em&gt;, you might ask? My &lt;a href="https://blog.zarfhome.com/2026/01/the-visible-zorker-2"&gt;post&lt;/a&gt; ended with a cryptic note: "...Let's say the chances are high. But I'll save that announcement for a bit."&lt;/p&gt;
&lt;p&gt;(How do you keep a Wumpus in suspense?)&lt;/p&gt;
&lt;p&gt;Here we go. Announcing! And inviting you to support! &lt;/p&gt;
&lt;div class="ImageWrap FloatRight"&gt;
&lt;p&gt;&lt;a href="https://www.patreon.com/VisibleZorker"&gt;&lt;img alt="A stylized dungeon door, swinging open. Golden light shines from beyond." height="144" src="https://blog.zarfhome.com/pic/2026/01/visi-logo.png" width="144" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;The Visible Zorker Project (and &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Patreon&lt;/a&gt;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I intend to do &lt;em&gt;all 31&lt;/em&gt; of Infocom's text-mode adventures in &lt;a href="https://eblong.com/infocom/visi/zork1/"&gt;Visible style&lt;/a&gt;. I intend to do &lt;em&gt;one per month&lt;/em&gt; in &lt;a href="https://eblong.com/infocom/"&gt;chronological order&lt;/a&gt;. And I would like you to be part of this historic project. Yes -- &lt;em&gt;you,&lt;/em&gt; in back, with the &lt;a href="https://www.mocagh.org/infocom/zorkps-alt.jpg"&gt;skirt and funny helmet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And all the rest of you as well.&lt;/p&gt;
&lt;p&gt;Visit the &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Patreon page&lt;/a&gt; to sign on.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;p&gt;&lt;strong&gt;Wait, &lt;em&gt;all&lt;/em&gt; of the Infocom games?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;All the plain-text ones. My &lt;a href="https://github.com/visible-zorking/visiterp"&gt;"Visible" interpreter&lt;/a&gt; doesn't support Z-machine version 6, which means &lt;em&gt;Zork Zero&lt;/em&gt;, &lt;em&gt;Journey&lt;/em&gt;, &lt;em&gt;Arthur&lt;/em&gt;, and &lt;em&gt;Shogun&lt;/em&gt; are off the table. All the rest &lt;em&gt;should&lt;/em&gt; be doable.&lt;/p&gt;
&lt;p&gt;The "weird interface trick" games (&lt;em&gt;Border Zone&lt;/em&gt;, &lt;em&gt;Beyond Zork&lt;/em&gt;, &lt;em&gt;Bureaucracy&lt;/em&gt;) get an asterisk. I may not be able to support those perfectly. Or the work may take longer than usual. But, hey, chronological order -- I won't have to worry about them for a couple of years.&lt;/p&gt;
&lt;p&gt;(No, I'm not doing &lt;em&gt;Fooblitzky&lt;/em&gt;. Hush you.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can you really do one per month?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="https://eblong.com/infocom/visi/zork2/"&gt;Zork 2&lt;/a&gt;&lt;/em&gt; was a feasibility test. I started that work on the evening of December 23rd; I released it on January 5th. In fact it was fully playable on Jan 2nd; I just gave it a couple of days for beta testing. So that's a week and a half.&lt;/p&gt;
&lt;p&gt;(If you support this Patreon, you'll be in on the beta testing!)&lt;/p&gt;
&lt;p&gt;Of course that was a holiday week, so I had time off from the day job. But also it was a holiday week, so I had to bake cookies and do jigsaw puzzles with family and friends and welcome in the new year, such as it is. So my time was somewhat divided either way.&lt;/p&gt;
&lt;p&gt;If I can get a game up in ten days, I can commit to doing one per month without impacting my other time obligations. (The day job. Also baking cookies.)&lt;/p&gt;
&lt;p&gt;It is possible I'll have to take a month off now and then. For example, &lt;a href="https://narrascope.org/"&gt;NarraScope&lt;/a&gt; is in June (call for talks now open!) and that will eat some of my life. If I decide to skip a month, I'll pause the Patreon for that month.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I thought only the first three Zork games were open source.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That is true. But &lt;a href="https://blog.zarfhome.com/2025/01/the-visible-zorker"&gt;remember&lt;/a&gt; that I did the first Visible Zorker &lt;em&gt;before&lt;/em&gt; Microsoft released them as &lt;a href="https://opensource.microsoft.com/blog/2025/11/20/preserving-code-that-shaped-generations-zork-i-ii-and-iii-go-open-source"&gt;open source&lt;/a&gt;. (Yes, people at Microsoft were aware of it.) This is research work that I think should be undertaken regardless of the legal status of the subject.&lt;/p&gt;
&lt;p&gt;Anyhow, my understanding is that the Microsoft folks want to release all the Infocom games as open source. It's just a question of cranking it all through the lawyers. No idea how long that will take -- anywhere from a month to forever -- and I don't intend to wait on them. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What's the &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Patreon&lt;/a&gt; setup?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I'm keeping it simple.&lt;/p&gt;
&lt;div class="Tier"&gt;
&lt;p&gt;&lt;strong&gt;$1/month: Supporter&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You want to support the project, is all. Great! Any amount accepted.&lt;/p&gt;
&lt;p&gt;You can join the Discord -- yes, there's a &lt;a href="https://discord.gg/Nu5Axy5jXG"&gt;Discord&lt;/a&gt; -- for general social hangouts and IF discussion. Or not, if Discord isn't your thing.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="Tier"&gt;
&lt;p&gt;&lt;strong&gt;$4/month: Participant&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You get access to the Game of the Month section of the Discord. This is where we discuss the latest Visible Infocom game. (First up: &lt;em&gt;Zork 3&lt;/em&gt;.) We will:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Play the game itself -- you get early Patreon access to the game's Visible page.&lt;/li&gt;
&lt;li&gt;Discuss the game and its source code.&lt;/li&gt;
&lt;li&gt;Group let's-play session via the &lt;a href="https://blog.zarfhome.com/2025/07/discord-if-bot"&gt;Discord IF bot&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Look for bugs, secrets, and quirky game responses. (Bugs! We will find so many bugs.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(All discoveries will be credited to their contributor in the game's commentary track.)&lt;/p&gt;
&lt;p&gt;At the beginning of each month, you get access to a new Visible game. It won't be fully polished -- that's what the month of group Patreon access is for -- but it should be end-to-end playable.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="Tier"&gt;
&lt;p&gt;&lt;strong&gt;$12/month: Contributor&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You get access to the Game of the Month &lt;em&gt;and&lt;/em&gt; the Game of Next Month, as I start to put that together.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Access to the super-early dev channel on the Discord.&lt;/li&gt;
&lt;li&gt;Access to next month's repository from &lt;code&gt;git init&lt;/code&gt; on. Play it when it doesn't even work yet!&lt;/li&gt;
&lt;li&gt;Your name in lights. Well, everybody's name goes in the credits list, but Contributors are listed first.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="Tier"&gt;
&lt;p&gt;&lt;strong&gt;$48/month: Fancy Contributor&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is really the same as Contributor. I just added a tier for people who are extra-enthusastic. Heck, you could go to $96 if you wanted.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Why are you charging money for this? Why not do it for free?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I've done a lot of IF work for free. Interactive fiction is a community practice, not an industry. Yes, it overlaps with the commercial game industry at many points (fractally!) but the core of it is done for love.&lt;/p&gt;
&lt;p&gt;That said, this project is a substantial time investment. I said a year ago that I didn't plan to do any more "Visibles" after &lt;em&gt;Zork 1&lt;/em&gt;. But I want to do more! I want to do a bunch! So I've plotted out a way to make the time and effort balance.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;That&lt;/em&gt; said, &lt;em&gt;all the games that I do will become publicly available&lt;/em&gt; two months after the Patreon community gets them. Patreon support gets you early access, &lt;em&gt;not&lt;/em&gt; exclusive access.&lt;/p&gt;
&lt;p&gt;As with the first two games, all of my Visible Zorker work will be open source under the MIT license.&lt;/p&gt;
&lt;p&gt;(Just to avoid confusion: the Visible Zorker site and Patreon are my personal projects. They are not associated with the IF Archive or IFTF.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What about other improvements to the Visible Zorker framework?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I'm sure there will be new features now and then. For example, I just added a "Grammar" tab -- it displays the ZIL parse table for each game. That's live for both &lt;em&gt;&lt;a href="https://eblong.com/infocom/visi/zork1/"&gt;Zork 1&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href="https://eblong.com/infocom/visi/zork2/"&gt;Zork 2&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I'll keep all Visible games, public and in-progress, updated with the latest improvements.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When does all this start?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://www.patreon.com/VisibleZorker"&gt;Patreon&lt;/a&gt; is open now. The &lt;a href="https://discord.gg/Nu5Axy5jXG"&gt;Discord&lt;/a&gt; is open now.&lt;/p&gt;
&lt;p&gt;I'll wait until February 14th (three weeks) to see how many people sign on. (&lt;a href="https://www.patreon.com/VisibleZorker"&gt;That's your cue&lt;/a&gt;!) In the meantime, we can run Discord discussion and group plays of &lt;em&gt;&lt;a href="https://eblong.com/infocom/visi/zork1/"&gt;Zork 1&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href="https://eblong.com/infocom/visi/zork2/"&gt;Zork 2&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;If we reach the $500/month goal by Feb 14th, I will start cranking on &lt;em&gt;Zork 3&lt;/em&gt;. The aim will be to have a playable version ready for Patreon supporters on &lt;em&gt;March 1st&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;March will then be the month of &lt;em&gt;Zork 3&lt;/em&gt;. Discord discussion; group plays; adding to the commentary; polish and bug fixes. Call it two weeks of beta and two weeks of early-access.&lt;/p&gt;
&lt;p&gt;In April, we switch to &lt;s&gt;Starcross&lt;/s&gt; &lt;em&gt;Deadline&lt;/em&gt;. First-playable for Patreon Participants on April 1st; a month of discussion and group play. Thus we continue.&lt;/p&gt;
&lt;p&gt;(Of course, Contributor-level supporters will see the games &lt;em&gt;before&lt;/em&gt; the beginning of the month. That's the "even earlier access" tier.)&lt;/p&gt;
&lt;p&gt;Again, the public and open-source release of each game will happen two months after the Patreon reveal. So &lt;em&gt;Zork 3&lt;/em&gt; goes live on May 1st for the world to appreciate. Hopefully &lt;em&gt;Deadline&lt;/em&gt; goes public on June 1st, and so on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What if you don't reach $500?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I have no idea how much interest this will draw. $500 per month is a bit arbitrary. But if we don't hit that mark by Feb 14th, I'll reevaluate the project and the schedule. Maybe the project doesn't fly. Maybe it will become one game every two months. I'll make an announcement; you'll have the opportunity to adjust your pledge at that time.&lt;/p&gt;
&lt;p&gt;I'll do &lt;em&gt;Zork 3&lt;/em&gt; for March regardless, to ensure you get something for your first month's donation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How DO you keep a Wumpus in suspense?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Trick question. They have sucker feet so they suspend themselves.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This is going to be fun!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yeah, yeah it is.&lt;/p&gt;</content><category term="if"/><category term="interactive fiction"/><category term="zork"/><category term="infocom"/><category term="zil"/><category term="zarf"/><category term="visible zorker"/><category term="patreon"/></entry><entry><title>2026 IGF nominees</title><link href="https://blog.zarfhome.com/2026/01/2026-igf-nominees" rel="alternate"/><published>2026-01-10T01:21:09+00:00</published><updated>2026-01-10T01:21:09+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-01-10:/2026/01/2026-igf-nominees</id><summary type="html">Oh gosh! The IGF finalists are up. I played a bunch in the first judging round. Many of these are already in my review list, including The Drifter, Öoo, Strange Jigsaws, Type Help, The Roottrees Are Dead, and Mini Mini Golf Golf. I am amused ...</summary><content type="html">&lt;p&gt;Oh gosh! The &lt;a href="https://www.gamedeveloper.com/production/baby-steps-leads-28th-annual-igf-awards-nominations"&gt;IGF finalists&lt;/a&gt; are up.&lt;/p&gt;
&lt;p&gt;I played a bunch in the first judging round. Many of these are already in my review list, including &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/08/weird-little-games#the-drifter"&gt;The Drifter&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/08/weird-little-games#ooo"&gt;Öoo&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/08/weird-little-games#strange-jigsaws"&gt;Strange Jigsaws&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/02/type-help"&gt;Type Help&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/01/roottrees-redux"&gt;The Roottrees Are Dead&lt;/a&gt;&lt;/em&gt;, and &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/08/weird-little-games#mini-mini-golf-golf"&gt;Mini Mini Golf Golf&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I am amused that &lt;em&gt;four&lt;/em&gt; games in that IGF post wound up in my review post titled "Weird little games, summer edition". I didn't know they were IGF entries when I wrote that; I just knew they were little and weird. It's great to see the appreciation of weird little games is shared among the discerning game-playing community.&lt;/p&gt;
&lt;p&gt;Of course I am happy to see that &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/01/roottrees-redux"&gt;Roottrees&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2025/02/type-help"&gt;Type Help&lt;/a&gt;&lt;/em&gt; continue to get recognition. I can't wait for &lt;em&gt;&lt;a href="https://store.steampowered.com/app/3641000/The_Incident_at_Galley_House/"&gt;Incident at Galley House&lt;/a&gt;&lt;/em&gt;, the &lt;em&gt;Type Help&lt;/em&gt; remake.&lt;/p&gt;
&lt;p&gt;Games which I have not yet played but I clearly need to: &lt;em&gt;&lt;a href="https://store.steampowered.com/app/2088810/Perfect_Tides_Station_to_Station/"&gt;Perfect Tides: Station to Station&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://blippo.plus/"&gt;Blippo+&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://store.steampowered.com/app/2393920/Angeline_Era/"&gt;Angelina Era&lt;/a&gt;&lt;/em&gt;, and all the other titles that I haven't mentioned but in no way mean to slight.&lt;/p&gt;
&lt;p&gt;Extra shoutout to &lt;em&gt;&lt;a href="https://store.steampowered.com/app/2364580/Titanium_Court/"&gt;Titanium Court&lt;/a&gt;&lt;/em&gt;. I have not played this and I do not know a damn thing about it, but as soon as the IGF post dropped, my social circles were flooded by &lt;a href="https://bsky.app/profile/glassbottommeg.bsky.social/post/3mbz5cxm34k2v"&gt;awesome&lt;/a&gt; &lt;a href="https://bsky.app/profile/catacalypto.bsky.social/post/3mbz3bft55c2m"&gt;game-design&lt;/a&gt; &lt;a href="https://bsky.app/profile/austinwalker.bsky.social/post/3mbz3dj3bck26"&gt;folks&lt;/a&gt; saying "&lt;em&gt;Titanium Court!&lt;/em&gt; I can talk about it now! &lt;em&gt;Titanium Court!&lt;/em&gt; You gotta play it!" (As soon as it's out -- no release date yet.) So, I guess I gotta play it.&lt;/p&gt;
&lt;p&gt;Anyway, here's what you want: games that I have played but not yet discussed. This includes both IGF finalists and entries that didn't get an official mention but they're worth a word anyhow.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Arctic Awakening&lt;/li&gt;
&lt;li&gt;Promise Mascot Agency&lt;/li&gt;
&lt;li&gt;The Haunting of Joni Evers&lt;/li&gt;
&lt;li&gt;Carceri&lt;/li&gt;
&lt;li&gt;Prší&lt;/li&gt;
&lt;li&gt;Kid Cosmo&lt;/li&gt;
&lt;li&gt;and Roger&lt;/li&gt;
&lt;li&gt;Jane&lt;/li&gt;
&lt;/ul&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;hr /&gt;
&lt;h2 id="arctic-awakening"&gt;Arctic Awakening&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Goldfire Studios -- &lt;a href="https://arcticawakening.com/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A narrative exploration game in five episodes. You're stuck in Alaska with only the wreckage of your airplane and your court-assigned therapy bot for company. What's going on, and why do you keep discovering abandoned weird science labs?&lt;/p&gt;
&lt;p&gt;I am mixed on this one. The dialogue and the voice acting are great. Grumpy Guy and Perky Bot are a solid double act, and I enjoyed spending time with them. But, to be clear, you spend a &lt;em&gt;lot&lt;/em&gt; of time with them. Most of the game is walk-and-talking through the wilderness. To be fair, the wilderness has grandeur. Think &lt;em&gt;Firewatch&lt;/em&gt; with snow -- not hyper-realistic, but great mountain vistas and charismatic megastructures.&lt;/p&gt;
&lt;p&gt;There's light puzzling, mostly of the "find this object, it's around here somewhere" variety. This can get annoying if you happen to miss the object for a while. Just keep poking. Beyond that, the game tracks a lot of story state -- again, &lt;em&gt;Firewatch&lt;/em&gt;-style. Minor story state, though; it's not a seriously branching plot.&lt;/p&gt;
&lt;p&gt;I feel like the overall structure doesn't quite hang together. It's supposed to be a dual plot: discovering the secrets of the world, and working through your emotional issues. Thread #1 has a lot of meat on it, but doesn't exactly resolve; the last-act reveals are rushed, and manage to be both obvious &lt;em&gt;and&lt;/em&gt; incomplete. As for thread #2, it mostly consists of your annoying bot friend trying to get you to open up about your life, while you tell him (correctly) that this is less important than getting home. It just doesn't really fit the ending they want you to arrive at.&lt;/p&gt;
&lt;p&gt;I had a good time, but the game doesn't exceed the sum of its parts.&lt;/p&gt;
&lt;h2 id="promise-mascot-agency"&gt;Promise Mascot Agency&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Kaizen Game Works -- &lt;a href="https://kaizengameworks.com/portfolio-items/promise-mascot-agency/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Disgraced yakuza enforcer is sent to the town of out-of-work live mascots. Hijinks ensue.&lt;/p&gt;
&lt;p&gt;This is very pleasant. (Once I got past the initial money crunch, which is a bit scary even in easy mode.) It's GTA with all the hostile cops and high-pressure race scenes stripped out, which is honestly a brilliant idea and exactly what I need in my life right now.&lt;/p&gt;
&lt;p&gt;The setting is self-consciously ridiculous. Not as completely ridiculous as &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2021/01/four-or-five-recent-lovecraftians#paradise-killer"&gt;Paradise Killer&lt;/a&gt;&lt;/em&gt;, which was lofted entirely on its absurdist beach-town-of-Elder-God-Things vibe. But dead-serious yakuza mob war cheered on by a walking thumb and a block of sentient tofu are almost as good. All the characters are a joy to hang with, each in their own over-the-top way.&lt;/p&gt;
&lt;p&gt;PK's plot was almost entirely backstory. I can see the designers are pushing to have a more active story this time, but the pacing isn't great. If you are assiduous about side missions (and why would you play a package-hunting game without lawnmowering the side missions?), then the plot hangs and hangs and then slams down on you at the end. It's good stuff, but the last half of the last act turns into a sequence of cut scenes. Sigh.&lt;/p&gt;
&lt;p&gt;I guess my real complaint is that the setting is &lt;em&gt;amusing&lt;/em&gt;, in its over-the-top Japanese mob-and-mascot schtick. (The entire voice track is subtitled Japanese -- remember that the developers are British!) But I didn't spend the game repeatedly shouting "They did &lt;em&gt;what&lt;/em&gt;?!" Which was the &lt;em&gt;Paradise Killer&lt;/em&gt; vibe, and I miss it.&lt;/p&gt;
&lt;p&gt;Not enough weird cosmic horror in the mix, is what I'm saying. Not none! Karoushi kicks ass. Needs more though.&lt;/p&gt;
&lt;h2 id="the-haunting-of-joni-evers"&gt;The Haunting of Joni Evers&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Causeway Studios -- &lt;a href="https://store.steampowered.com/app/2828590/The_Haunting_of_Joni_Evers/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Walking sim about a woman's hangups about her family.&lt;/p&gt;
&lt;p&gt;This is well-presented, but it drags out a fairly simple idea rather too long. It's three hours of the narrator talking about her family memories. She does her damnedest but the characters never really came alive for me (pun half-intended) (they're ghosts or something, see). Without that, the whole thing felt stilted and overstuffed.&lt;/p&gt;
&lt;p&gt;(With an evil spirit for punctuation, but he never becomes more than a spooky cartoon. Weakest part of the game, really; they could have left him out.)&lt;/p&gt;
&lt;p&gt;This is notionally part of a horror anthology series, "Worlds Across the Causeway". I didn't get a sense of the larger world beyond the phrase, though. I'd play another one -- three hours isn't much time to invest! But I'm not yet convinced by the concept.&lt;/p&gt;
&lt;h2 id="carceri"&gt;Carceri&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by James Beech -- &lt;a href="https://neonserpent.itch.io/carceri"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A cheerful, talky platformer. You run around a candy-colored low-poly virtual world tagging little fox dudes. Sorry, I mean: infecting daemon processes with a sentient virus, which rewards you by levelling up your reality-warping powers. To wit: jump and then double-jump. (There's a third powerup but I won't spill the beans.)&lt;/p&gt;
&lt;p&gt;At the end, you can listen to an hour-long philosophy discussion between the author and himself. It's like &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2016/07/point-of-view-in-witness-design"&gt;The Witness&lt;/a&gt;&lt;/em&gt; without any of those tedious puzzles!&lt;/p&gt;
&lt;p&gt;...Okay, I'm being snarky. This is really very pleasant. The world is full of little corners to explore: libraries, art museums, a beach resort. Yes, a Piranesi-inspired prison labyrinth as well. All floating in a grand cyberspatial void. It reminded me of &lt;em&gt;&lt;a href="https://blog.zarfhome.com/2014/04/raetikon-fract"&gt;Fract: OSC&lt;/a&gt;&lt;/em&gt;, except that the only "puzzle" is not getting lost. The jumping isn't that hard either, and that's the whole game.&lt;/p&gt;
&lt;p&gt;A complete run-through took me two hours. (I ignored all the in-game photo stuff and just explored.) The author says "virtual vacation" and honestly I was happy to take it.&lt;/p&gt;
&lt;h2 id="prsi"&gt;Prší&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Herdek -- &lt;a href="https://herdek.itch.io/prsi"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One of the regulars in your favorite Czech dive bar has disappeared. What are you going to do about it? Play cards, ask questions, and drink a truly catastrophic volume of beer.&lt;/p&gt;
&lt;p&gt;This is delightful. The dialogue UI is built on playing cards -- and drinking beer -- in a way that I haven't seen before. The bar is built in a warped claymation style, which entirely suits both the story and the cultural setting. (Švankmajer fan game!) Really, everything about this is perfect.&lt;/p&gt;
&lt;p&gt;(Now I want someone to adapt Fritz Leiber's "Gonna Roll the Bones" in a similar way.)&lt;/p&gt;
&lt;h2 id="kid-cosmo"&gt;Kid Cosmo&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Netflix -- &lt;a href="https://apps.apple.com/us/app/the-electric-state-kid-cosmo/id6475495298"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A narrative puzzle game about playing narrative puzzle games with your annoying sister in the alt-1980s.&lt;/p&gt;
&lt;p&gt;This is well-built, but it felt a little unmotivated. There's some kind of alt-history leading to the Robot Uprising, which would be interesting if I knew anything about the tie-in movie or even the &lt;a href="https://www.simonandschuster.com/books/The-Electric-State/Simon-Stalenhag/9781501181412"&gt;Simon Stålenhag book&lt;/a&gt; it's based on. But I don't. So it's two kids playing a videogame, plus the world has janitor robots and gas-pumping robots. The kids are cute but I don't see the theme.&lt;/p&gt;
&lt;p&gt;I put this down after a few chapters. Maybe you'll be more into it.&lt;/p&gt;
&lt;p&gt;(Also: I love a lot of break-the-fourth-wall game elements, but for some reason "use the physical tilt sensor" annoys me. Going back to the original release of &lt;em&gt;The Room&lt;/em&gt;. I don't know why.)&lt;/p&gt;
&lt;p&gt;(Outside-the-car lightning reflecting off the console case was jazz though.)&lt;/p&gt;
&lt;h2 id="and-roger"&gt;and Roger&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by TearyHand Studio -- &lt;a href="https://store.steampowered.com/app/3308870/and_Roger/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have seen several games on this theme. (Not spoiling, as the reveal is part of the narrative.) This one works.&lt;/p&gt;
&lt;p&gt;The one-button control scheme is master-level. I can't imagine how hard it was to make it feel this easy and natural. And yet expressive, and a surprise each time. You could play the game in another language and get everything important from the button mechanics.&lt;/p&gt;
&lt;p&gt;Really, that's all I have to say about it. Top-notch.&lt;/p&gt;
&lt;h2 id="jane"&gt;Jane&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;by Zach Knoles -- &lt;a href="http://www.inlustria.games/"&gt;game site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A very short mood piece. You wake up in the middle of the night and wander around the house in your underwear. There's exactly one thing to do.&lt;/p&gt;
&lt;p&gt;This is nice! You can argue whether it's substantial enough to be an IGF entry, but IGF judging is done for the year so never mind that. One character, one moment, sweetly presented.&lt;/p&gt;</content><category term="igf"/><category term="reviews"/><category term="arctic awakening"/><category term="promise mascot agency"/><category term="the haunting of joni evers"/><category term="carceri"/><category term="prší"/><category term="kid cosmo"/><category term="and roger"/><category term="jane"/></entry><entry><title>The Visible Zorker 2</title><link href="https://blog.zarfhome.com/2026/01/the-visible-zorker-2" rel="alternate"/><published>2026-01-05T17:42:28+00:00</published><updated>2026-01-05T17:42:28+00:00</updated><author><name>Andrew Plotkin</name></author><id>tag:blog.zarfhome.com,2026-01-05:/2026/01/the-visible-zorker-2</id><summary type="html">Hey, remember the Visible Zorker last year? Meet the Visible Zorker 2: The Visible Wizard of Frobozz! It doesn't have a subtitle really. I just like saying "Visible Wizard of Frobozz". If you don't remember last year (Zog knows I have trouble ...</summary><content type="html">&lt;p&gt;Hey, remember the &lt;a href="https://eblong.com/infocom/visi/zork1/"&gt;Visible Zorker&lt;/a&gt; last year? Meet the &lt;a href="https://eblong.com/infocom/visi/zork2/"&gt;Visible Zorker 2: The Visible Wizard of Frobozz&lt;/a&gt;!&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;a href="https://eblong.com/infocom/visi/zork2/"&gt;&lt;img alt="A screenshot titled &amp;quot;The Visible Zorker 2&amp;quot;. The left side of the window shows the opening of Zork 2, up to the command TURN ON LAMP. The right side shows a list of ZIL function calls and the message &amp;quot;The lamp is now on.&amp;quot;" height="470" src="https://blog.zarfhome.com/pic/2026/01/visizork2-app.png" width="600" /&gt;&lt;/a&gt;
It doesn't have a subtitle really. I just like saying "Visible Wizard of Frobozz".&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;If you &lt;em&gt;don't&lt;/em&gt; remember last year (Zog knows I have trouble too), here's the idea: You play Zork 2 in the left pane. The right pane shows everything that happens under the hood as you play. The functions that were executed to carry out your command, the object tree, the variables, the timers... everything. Click on anything to highlight its source code.&lt;/p&gt;
&lt;!--more--&gt;
&lt;a name="more"&gt;&lt;/a&gt;
&lt;p&gt;See &lt;a href="https://blog.zarfhome.com/2025/01/the-visible-zorker"&gt;last year's post&lt;/a&gt; for the baroque details. Since then, I've added a few more views, including a map that displays your location live. (&lt;a href="https://eblong.com/infocom/visi/zork1/"&gt;Zork 1&lt;/a&gt; has been similarly updated.)&lt;/p&gt;
&lt;div class="ImageWrap Center"&gt;
&lt;p&gt;&lt;img alt="Part of the map of Zork 2, north of the Carousel Room." height="322" src="https://blog.zarfhome.com/pic/2026/01/visizork2-map.png" width="344" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Once again, I've written up commentary on bits of the source code that struck my interest. Click any green eyeball button to show its commentary note.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://github.com/visible-zorking/visi-zork2"&gt;VZ2 source code&lt;/a&gt; is available. Of course, there's a great deal of overlap with the &lt;a href="https://github.com/visible-zorking/visi-zork1"&gt;VZ1 source code&lt;/a&gt;. I've broken the common parts out into &lt;a href="https://github.com/visible-zorking/visiterp"&gt;their own repository&lt;/a&gt;, which is now a submodule of VZ1 and VZ2.&lt;/p&gt;
&lt;p&gt;Obviously -- I don't even know why I mention it -- this project is massive all-over &lt;em&gt;SPOILERS&lt;/em&gt; for Zork.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Why now?&lt;/h3&gt;
&lt;p&gt;A year ago, &lt;a href="https://blog.zarfhome.com/2025/01/the-visible-zorker"&gt;as you recall&lt;/a&gt;, I wasn't very excited about doing Zork 2. The first one was fun; it was a nice resume boost; I was happy to stop there. So what changed?&lt;/p&gt;
&lt;p&gt;Most obviously, Microsoft released all three original Zork games as &lt;a href="https://blog.zarfhome.com/2025/11/zork-is-open-source"&gt;open source&lt;/a&gt;. I figured I should respond to that. You gotta reward good behavior, right?&lt;/p&gt;
&lt;p&gt;Of course, I did the original Visible Zorker &lt;em&gt;before&lt;/em&gt; the games were open source. I scoff at copyright law! Well, no: I think copyright law is generally a good thing. But like I said in 2019, &lt;a href="https://blog.zarfhome.com/2019/04/all-of-infocoms-game-source-code"&gt;history matters&lt;/a&gt;. I did the work, in part, to demonstrate &lt;em&gt;why&lt;/em&gt; the Infocom legacy should be treated as a community resource. And now it is -- at least this part of it.&lt;/p&gt;
&lt;h3&gt;Any Easter eggs?&lt;/h3&gt;
&lt;p&gt;Hit the commentary button for the &lt;code&gt;I-WIZARD&lt;/code&gt; routine (see the "Timers" tab). You'll find an option to force the Wizard to cast any of his spells on you. This is handy for exploring rare special effects.&lt;/p&gt;
&lt;h3&gt;Anything cool turn up?&lt;/h3&gt;
&lt;p&gt;Oh, the usual wacky details. I was reminded that the Wizard's &lt;code&gt;FANTASIZE&lt;/code&gt; spell doesn't work at all in this version of Zork 2. (Release 48, the &lt;em&gt;Masterpieces&lt;/em&gt; CD version.) We've &lt;a href="https://github.com/the-infocom-files/zork2/issues/8"&gt;known that&lt;/a&gt; for a while though.&lt;/p&gt;
&lt;p&gt;If you get the wand and cast &lt;code&gt;FLUORESCE&lt;/code&gt; on an object, not only is the spell permanent (same as when the Wizard does it) but the fluorescing object magically gains a power switch!&lt;/p&gt;
&lt;div class="PreWrap"&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;gt;wave wand at rose
The wand grows warm, the perfect rose seems to glow dimly with magical essences, and you feel suffused with power.&lt;/p&gt;
&lt;p&gt;&amp;gt;say "fluoresce"
The wand glows very brightly for a moment.
The perfect rose begins to glow.&lt;/p&gt;
&lt;p&gt;&amp;gt;turn off rose
The perfect rose is now off.&lt;/p&gt;
&lt;p&gt;&amp;gt;turn on rose
The perfect rose is now on.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;There's a couple of places where the compiler skips over a &lt;code&gt;&amp;lt;TELL&amp;gt;&lt;/code&gt; line, omitting the string from the compiled game. This &lt;em&gt;seems&lt;/em&gt; to be a size optimization for routines that are never called. (See &lt;a href="https://github.com/visible-zorking/visi-zork2/blob/master/gamesrc/2actions.zil#L509"&gt;&lt;code&gt;&amp;lt;BLAST&amp;gt;&lt;/code&gt;&lt;/a&gt;.) But (a) why not skip the entire function and save even more space? And (b) in &lt;a href="https://github.com/visible-zorking/visi-zork2/blob/master/gamesrc/gverbs.zil#L912"&gt;&lt;code&gt;&amp;lt;V-ODYSSEUS&amp;gt;&lt;/code&gt;&lt;/a&gt; it skips some code that &lt;em&gt;is&lt;/em&gt; called, resulting in a bug: typing &lt;code&gt;ODYSSEUS&lt;/code&gt; just prints a blank line. This might be evidence of a ZIL compiler bug in the &lt;a href="https://github.com/visible-zorking/visi-zork2/blob/master/gamesrc/gverbs.zil#L897"&gt;&lt;code&gt;%&amp;lt;COND&amp;gt;&lt;/code&gt;&lt;/a&gt; compile-time directive.&lt;/p&gt;
&lt;h3&gt;So, on to Zork 3?&lt;/h3&gt;
&lt;p&gt;...Let's say the chances are high. But I'll save that announcement for a bit. Watch this space, honorable readers!&lt;/p&gt;</content><category term="if"/><category term="interactive fiction"/><category term="zork"/><category term="zork 2"/><category term="infocom"/><category term="zil"/><category term="visible zorker"/><category term="zarf"/></entry></feed>