Style | StandardCards

Planet Interactive Fiction

Friday, 20. February 2026

Interactive Fiction – The Digital Antiquarian

Gabriel Knight 3: Blood of the Sacred, Blood of the Damned

This article tells part of the story of Jane Jensen. I think I became convinced when I went to CES [in January of 1997] and I walked around the show looking at all these titles that were the big new things, and not one screen had full-motion video. I realized that if I wanted anyone […]


This article tells part of the story of Jane Jensen.

I think I became convinced when I went to CES [in January of 1997] and I walked around the show looking at all these titles that were the big new things, and not one screen had full-motion video. I realized that if I wanted anyone to look at the game, it had to be in 3D.

— Jane Jensen

Gabriel Knight 3: Blood of the Sacred, Blood of the Damned is proof that miracles do occur in gaming. It was remarkable enough that the game ever got made at all, in the face of gale-force headwinds blowing against the adventure genre. But the truly miraculous thing is that it turned out as well as it did. In my last article, I told you about Ultima IX, the sad-sack conclusion to another iconic series. The story of Gabriel Knight 3′s development is eerily similar in the broad strokes: the same real or perceived need to chase marketplace trends, the same unsupportive management, the same morale problems that resulted in an absurdly high turnover rate on the team. But Gabriel Knight 3 had one thing going for it that Ultima IX did not. Whereas Richard Garriott, the father of Ultima, always seemed to be somewhere else when someone might be on the verge of asking him to get his hands dirty, Jane Jensen was on the scene from first to last with her project. Just as much as the first two games, Gabriel Knight 3 managed at the last to reflect her unique vision more than some corporate committee’s view of what an adventure game should be in 1999. And that made all the difference.

In fact, I’m going to go out on a limb right here and now and deliver this article’s bombshell up-front: in defiance of the critical consensus, Gabriel Knight 3 is actually my favorite of the trilogy. As always, I don’t necessarily expect you to agree with me, but I will do my best to explain just what it is that delights, intrigues, and even moves me so much about this game.


Before we get to that, though, we need to turn the dial of our time machine back another few years from 1999, to late 1995, when Jane Jensen has just finished The Beast Within, her second Gabriel Knight game. That game was the product of a giddy but ultimately brief-lived era at Sierra On-Line, when the company’s founders Ken and Roberta Williams were convinced that the necessary future of mass-market gaming was a meeting of the minds of Silicon Valley and Hollywood: it would be a case of players making the decisions for real live actors they saw on the screen. Sierra was so committed to this future that it built its own professional-grade sound stage in its hometown of tiny Oakhurst, California. Gabriel Knight 2 was the second game to emerge from this facility, following Roberta Williams’s million-selling Phantasmagoria. But, although Gabriel Knight 2 acquitted itself vastly better as both a game and a work of fiction than that schlocky splatter-fest, it sold only a fraction as many copies. “I thought we’d done a hell of a job,” says Jensen. “I thought it would appeal to that mass market out there. I thought it would be top ten. And it was — for about a week. I watched the charts in the months after shipping and saw the games that outsold [it], and I thought, ‘Ya know, I’m in the wrong industry.'”

The underwhelming sales figures affected more than just the psyche of Jane Jensen. Combined with the similarly disappointing sales figures of other, similar games, they sent the Siliwood train careening off the rails when it had barely left the station. In the aftermath, everyone was left to ponder hard questions about the fate of the Gabriel Knight series, about the fate of Sierra, and about the fate of adventure games in general.

No offer to make a third Gabriel Knight game was immediately forthcoming. Jane Jensen took a year’s sabbatical from Sierra, busying herself with the writing of novelizations of the first two games for Roc Books. While she was away, the new, more action-focused genres of the first-person shooter and real-time strategy completed their conquest of the computer-gaming mainstream, and Sierra itself was taken over by an unlikely buyer of obscure provenance and intent known as CUC.

Thus she found that everything was different when she returned to Sierra, bubbling over with excitement about a new idea she had. During her break, she had read a purportedly non-fiction book called The Tomb of God, the latest in a long and tangled skein of literature surrounding the tiny French village of Rennes-le-Château. The stories had begun with a mysteriously wealthy nineteenth-century priest and rumors of some treasure he may have hidden in or around the village, then grown in the telling to incorporate the Holy Grail, Mary Magdalene, the Knights Templar, the Freemasons, the true bloodline of Jesus Christ, and the inevitable millennia-spanning conspiracy to control the world and hide The Truth. The bizarre cottage industry would reach its commercial zenith a few year into the 21st century, with Dan Brown’s novel The Da Vinci Code and the movie of same that followed. It’s unclear whether Jensen herself truly believed any of it, but she did see a way to add vampires to the equation — she had long intended the third Gabriel Knight game to deal with vampires — and turn it into an adventure game that blended history and horror in much the same audacious way as Gabriel Knight 2, which had dared to posit that “Mad King” Ludwig II of Bavaria had been a werewolf, then went on to make an uncannily believable case for that nutso proposition.

Sierra’s new management agreed to make the game, for reasons that aren’t crystal clear but can perhaps be inferred. It was the end of 1996, still early enough that a sufficiently determined industry observer could make the case that the failure of the adventure genre to produce any new million-selling hits of late might be more of a fluke than a long-term trend. Ken Williams was still on the scene at Sierra, albeit with greatly diminished influence in comparison to the years when he alone had called the shots. For better and sometimes for worse, he had always loved the idea of “controversial” games. The would-be Gabriel Knight 3 certainly seemed like it would fit that bill, what with being based around the heretical premise that Jesus Christ had not been celibate, had in fact married Mary Magdalene and conceived children with her in the biological, less-than-immaculate way. A few centuries earlier, saying that sort of thing would have gotten you drawn and quartered or burnt at the stake; now, it would just leave every priest, preacher, and congregation member in the country spluttering with rage. It was one way to get people talking about adventure games again.

Even so, it wasn’t as if everything could just be business as usual for the genre. The times were changing: digitized human actors were out, real-time 3D was in, and even an unfashionable straggler of a genre like this one would have to adapt. So, Gabriel Knight 3 would be done in immersive 3D, both for the flexibility it lent when contrasted with the still photographs and chunks of canned video around which Gabriel Knight 2 had been built and because it ought to be, theoretically at least, considerably cheaper than trying to film a whole cast of professional actors cavorting around a sound stage. The new game would be made from Sierra’s new offices in Bellevue, Washington, to which the company had been gradually shifting development for the past few years.

Jane Jensen officially returned to Sierra in December of 1996, to begin putting together a script and a design document while a team of engineers got started on the core technology. The planned ship date was Christmas of 1998. But right from the get-go, there were aspects of the project to cause one to question the feasibility of that timeline.

Sierra actually had three projects going at the same time which were all attempting to update the company’s older adventure series for this new age of real-time 3D. And yet there was no attempt made to develop a single shared engine to power them, despite the example of SCI, one of the key building blocks of Sierra’s earlier success, which had powered all of its 2D adventures from late 1988 on. Gabriel Knight 3 was the last of the three 3D projects to be initiated, coming well after King’s Quest: Mask of Eternity and Quest for Glory V. Its engine, dubbed the G-Engine for obvious reasons, was primarily the creation of a software engineer named Jim Napier, who set the basics of it in place during the first half of 1997. Unfortunately, Napier was transferred to work on SWAT 3 after that, leaving the technology stack in a less than ideal state.

Abrupt transfers like this one would prove a running theme. The people working on Gabriel Knight 3 were made to feel like the dregs of the employee rolls, condemned to toil away on Sierra’s least commercially promising game. Small wonder that poor morale and high turnover would be constant issues for the project. Almost 50 people would be assigned to Gabriel Knight 3 before all was said and done, but never more than twenty at a time. Among them would be two producers, three art directors, and three project leads. The constant chaos, combined with the determination to reinvent the 3D-adventure wheel every time it was taken for a spin, undermined any and all cost savings that might otherwise have flowed from the switch from digitized video to 3D graphics. Originally projected to cost around $1.5 million, Gabriel Knight 3 would wind up having cost no less than $4.2 million by the time it was finished. That it was never cancelled was more a result of inertia and an equally insane churn rate in Sierra’s executive suites than any real belief in the game’s potential.

For her part, Jane Jensen displayed amazing resilience and professionalism throughout. She had shot too high with Gabriel Knight 2, turning in a script that had to be cut down by 25 percent or more during development, leaving behind some ugly plot and gameplay holes to be imperfectly papered over. This time around, she kept in mind that game development, like politics, is the art of the possible. Despite all the problems, very little of her design would be cut this time.

The people around her were a mixture of new faces who were there because they had been ordered to be and a smattering of old-timers who shared her passion for this set of themes and characters. Among these latter was her husband Robert Holmes, who provided his third moody yet hummable soundtrack for the series, and Stu Rosen, who had directed the voice-acting cast in Gabriel Knight 1. Rosen convinced Tim Curry, who had voiced the title role in that game but sat out the live-action Gabriel Knight 2, to return for this one. His exaggerated New Orleans drawl is not to all tastes, but it did provide a welcome note of continuity through all of the technological changes the series had undergone. Recording sessions began already in November of 1997, just after Jane Jensen returned from her first in-person visit to Rennes-le-Château.

But as we saw with Ultima IX, such sessions are superficial signs of progress only, and as such are often the refuge of those in denial about more fundamental problems. When one Scott Bilas arrived in early 1998 to become Gabriel Knight 3′s latest Technical Lead, he concluded that “the engineering team must have been living in a magical dream world. I can’t find any other way to explain it. At that point, the game was a hacked-up version of a sample application that Jim Napier wrote some time earlier to demonstrate the G-Engine.” Bilas spent months reworking the G-Engine and adding an SCI-like scripting language called Sheep to separate the game design from low-level engine programming. His postmortem of the project, written for Game Developer magazine about six months after Gabriel Knight 3′s release, makes for brutal reading. For most of the people consigned to it, the project was more of a death march than a labor of love, being a veritable encyclopedia of project-management worst practices.

There was a serious lack of love and appreciation [from Sierra’s management] throughout the project. Recognition of work (other than relief upon its completion) was very rare, lacked sincerity, and was always too little, too late. Internally, a lot of the team believed that the game was of poor quality. And of course, the many websites and magazines that proclaimed “adventure games are dead” only made things worse. Tim Schafer’s Grim Fandango, although a fabulous game and critically acclaimed, was supposedly (we heard) performing poorly in the marketplace…

The low morale resulted in a lot of send-off lunches for developers seeking greener pastures. Gabriel Knight 3 had a ridiculous amount of turnover that never would have been necessary had these people been properly cast or well-treated…

After a certain amount of time on a project like this, morale can sink so low that the team develops an incredible amount of passive resistance to any kind of change. Developers can get so tired of the project and build up such hatred for it that they avoid doing anything that could possibly make it ship later. This was a terrible problem during the last half of the Gabriel Knight 3 development cycle…

Our engineers never had an accurate development schedule; the schedules we had were so obviously wrong that everybody on the team knew there was no way to meet them. Our leads often lied to management about progress, tasks, and estimates, and I believe this was because they were in over their heads and weren’t responding well to the stress. Consequently, upper management thought the project was going to be stable and ready to ship long before it actually was, and we faced prolonged crunch times to deliver promised functionality…

Most of the last year of the project we spent in [crunch] mode, which meant that even small breaks for vacations, attending conferences, and often even taking off nights and weekends were looked down upon. It was time that the team “could not afford to lose.” The irony is that this overtime didn’t help anyway; the project didn’t move any faster or go out any sooner. The lack of respect for our personal lives and attention to our well-being caused our morale to sink…

Gabriel Knight 3 became a black hole that sucked in many developers from other projects, often at the expense of those projects. Artists were shifted off the team to cut the burn rate, and then pulled back on later because there was so much work left to do…

Management, thinking that it would save time, often encouraged content developers to hack and work around problems rather than fix them properly…

All of this happened against a backdrop of thoroughgoing confusion and dysfunction at Sierra in general. A sidelined Ken Williams got fed up and left the company he had founded in August of 1997. At the end of that year, Sierra’s new parent CUC merged with another large conglomerate called HFS to create a new entity named Cendant. Just a few months later, CUC was revealed to have been a house of cards the whole time, the locus of one of the biggest accounting scandals in the history of American business. For a long stretch of the time that Gabriel Knight 3 was in the works, there was reason to wonder whether there would even still be a Sierra for the team to report to in a week or a month. Finally, in November of 1998, Sierra was bought again, this time by the French media mega-corp Vivendi, whose long-term plan was, it slowly became evident, to end all internal game development and leverage the label’s brand recognition by turning it into a publisher only. Needless to say, this did nothing for the morale of the people who were still making games there.

Sierra’s Oakhurst office was shut down in February of 1999. The first wave of layoffs swept through Bellevue the following summer, while the Gabriel Knight 3 team were striving desperately to get the game out in time for the Christmas of 1999 instead of 1998. In a stunning testimony to corporate cluelessness about the psychology of human beings, some of those working on Gabriel Knight 3 were told straight-up that they were to be fired, but not until they had given the last of their blood, sweat, and tears to finish the game. “Having a group of people who are (understandably) upset with your company for laying them off and actively looking for a job while still trying to contribute to a project is a touchy situation that should be avoided,” understates Scott Bilas. The words “no shit, Sherlock” would seem to apply here.

But the one person who comes in for sustained praise in Bilas’s postmortem is Jane Jensen, whose vision and commitment never wavered.

Gabriel Knight 3 would have simply fallen over and died had we had a less experienced designer than Jane Jensen. Throughout the entire development process, the one thing that we could count on was the game design. It was well thought-out and researched, and had an entertaining and engrossing story. Best of all, Jane got it right well in advance; aside from some of the puzzles, nothing really needed to be reworked during development. She delivered the design on time and maintained it meticulously as the project went on.

This was Gabriel Knight 3′s secret weapon, the thing that prevented it from becoming a disaster like Ultima IX. With Jane Jensen onboard, there was always someone to turn to who knew exactly what the game was meant to do and be. The vision thing matters.


When Gabriel Knight 3: Blood of the Sacred, Blood of the Damned shipped in November of 1999, it marked the definitive end of an era, being the last Sierra adventure game ever, the final destination of a cultural tradition that stretched all the way back to Mystery House almost twenty years before, to a time when the computer-game industry was more inchoate than concrete. During the graphic adventure’s commercial peak of the early 1990s, Sierra and LucasArts had been the yin and the yang of the field, the bones of endless partisan contentions among gamers. It’s therefore intriguing and perhaps instructive to compare the press reception of Gabriel Knight 3 with that of 1998’s Grim Fandango, the most recent high-profile adventure release from LucasArts.

Grim Fandango was taken up as a sort of cause célèbre by critics, who rightly praised its unusual setting, vividly drawn characters, and moving story, even as they devoted less attention to its clumsy interface and convoluted and illogical puzzle structure. Those who wrote about games tended to be a few years older on average than those who simply played them. Many of this generation of journalists had grown up with Maniac Mansion and/or The Secret of Monkey Island. They were bothered by the notion of a LucasArts that no longer made adventure games, and sought to make this one enough of a success to avoid that outcome. At times, their reviews took on almost a hectoring tone: you must buy this game, they lectured their readers. The pressure campaign failed to fully accomplish its goal; Grim Fandango wasn’t a complete flop, but it did no more than break even at best, providing LucasArts with no particularly compelling financial argument for making more games like it.

Alas, when it arrived a year later, Gabriel Knight 3 was not given the same benefit of the doubt as to its strengths and weaknesses. Some of the reviews were not just negative but savagely so, almost as if their writers were angry at the game for daring to exist at all in this day and age. GameSpot pronounced this third installment fit “only for the most die-hard fans of the series.” Even the generally sober-minded Computer Gaming World, the closest thing the industry had to a mature journal of record, came at this game with knives out. In a two-stars-out-of-five review, Tom Chick said that “you’ll spend a lot of time fumbling in limbo, wandering aimlessly, trying to trigger whatever unknowable act will end the time block.” Okay — but it’s very hard to reconcile this criticism with the same magazine’s four-and-a-half star, “Editor’s Choice”-winning review of Grim Fandango. In my experience at least, aimless wandering and unknowable acts are far more of a fact of life in that game than in Gabriel Knight 3, which does a far better job of telling you what your goals are from story beat to story beat.

What might be going on here? To begin with, we do have to factor in that LucasArts had historically enjoyed better reviews and the benefit of more doubts than Sierra, whose adventure games came more frequently but really did tend to be rougher around the edges in the aggregate. Yet I don’t think that explains the contrast in its entirety. The taste-makers of mainstream gaming were still in a bargaining phase when it came to adventure games in 1998, still trying to find a place for them amidst all the changes that had come down the pipe since id Software unleashed DOOM upon the world. That bargaining had been given up as a lost cause a year later. The adventure game, said the new conventional wisdom, was dead as a doorknob, and it wasn’t coming back. A pack mentality kicked in and everyone rushed to pile on. It’s a disconcerting, maybe even disturbing thing to witness, but such is this thing we call human nature sometimes. If the last few years of our more recent social history tell us anything, it is that cultural change can burst upon the scene with head-snapping speed and force to make yesterday’s conventional wisdom suddenly beyond the pale today.

Adventure games would soon disappear entirely from the catalogs of the major publishers and from the tables of contents of the magazines and websites that followed them. In a rare sympathetic take on the genre’s travails, the website Gamecenter wrote just after the release and less than awe-inspiring commercial performance of Gabriel Knight 3 that “now it seems people want more action than adventure. They would rather run around in short shorts raiding tombs than experience real stories.” This was the true nub of the issue, for all that the belittling tone was no more necessary here than when it was directed in the opposite direction. People just wanted different things; a player of Gabriel Knight 3 was not inherently more or less smart, wise, or culturally sophisticated than a player of Starcraft or Unreal Tournament.

So, then, at the risk of stating the obvious, the core problem for the adventure genre was a mismatch between the desires of the majority of gamers at the turn of the millennium and the things the adventure game could offer them. The ultimate solution was for the remaining adventure fans to get their own cottage industry to make for them the games that they enjoyed, plus their own media ecosystem to cover them, replete with sympathetic critics who wanted the same things from gaming that their readers did. That computer gaming as a whole could sustain being siloed off into parallel ecosystems was a testament to how much bigger the tent had gotten over the course of the 1990s. But as of 1999, the siloing hadn’t quite happened yet, leaving a game like Gabriel Knight 3 trapped on the stage of an unfriendly theater, staring down an audience who were no longer interested in the type of entertainment it was peddling. While the game was still in development, Jane Jensen had mused about the controversial elements that may have helped to get it funded: “I guess the worst case would be that no one would care, or even notice.”

The worst case came true. Gabriel Knight 3 became its woebegone genre’s sacrificial lamb, controversial only for daring to exist at all as an ambitious adventure game in 1999. It deserved better, for reasons which I shall now go into.


This final Sierra adventure game opens with something else that was not long for this world in 1999: a story setup that’s conveyed in the manual — or rather in an accompanying comic book — instead of in a cutscene. Four years on from their hunt for werewolves in Gabriel Knight 2, Gabriel and his assistant Grace Nakimura are asked to come to the Paris mansion of one Prince James, a scion of the Stuart line that once ruled Scotland and England. After they arrive, the good prince explains that he needs their help to protect his infant son from “Night Visitors” — i.e., vampires. Gabriel and Grace agree to take on the task, only to fail at it rather emphatically; the baby is kidnapped out from under their noses that very night. But Gabriel does manage to give chase, tracking the men or monsters who have absconded with the infant to the vicinity of Rennes-le-Château. Not sure how to proceed from here, he checks into a hotel in the village. The game proper begins the next morning.

At breakfast, he learns that a tour group of treasure hunters has also just arrived at the hotel, all of them dreaming of the riches that are purported to be hidden somewhere in or near the village. In addition to the fetching French tour guide Madeline (to whom Gabriel reacts in his standard lecherous fashion), there are Emilio, a stoic Middle Easterner; Lady Lily Howard and Estelle Stiles, a British blue-blood and her companion; John Wilkes, an arrogant, muscle-bound Aussie; and Vittorio Buccheilli, an irritable Italian scholar. To this cast of characters worthy of an Agatha Christie novel we must add Gabriel’s old New Orleans running buddy Detective Frank Mosely, who, in a coincidence that would cause Charles Dickens to roll over in his grave, just happens to have joined this very tour group to try his hand at treasure hunting. Each member of the group has his or her own theory about the real nature of the treasure and how to find it, leaving Gabriel to try to sort out which ones really are the hopeless amateurs they seem to be and which ones have relevant secrets to hide, possibly involving the kidnapping which brought him here.

Gabriel has an unexpected meeting with Mosely.

Anyone who has played the first two Gabriel Knight games will be familiar with this one’s broad approach to its story. It takes place over three days, each of which is divided up into a number of time blocks. Rather than running on clock time, the game runs on plot time: the clock advances only when you’ve fulfilled a set of requirements for ending a time block. Grace arrives at the hotel on the evening of the first day. Thereafter, you control her and Gabriel alternately, just as in Gabriel Knight 2, with Gabriel’s sections leaning harder on conversations and practical investigation, while Grace delves deep into the lore and conspiracy theories of Rennes-le-Château. Don’t let the fact that the whole game is compressed into just three days fool you: they’re three busy days (and nights), busier than any three days could reasonably be in real life.

In this article, I won’t say anything more about the mystery of Rennes-le-Château. For the time being, you’ll just have to trust me when I tell you that it’s an endlessly fascinating rabbit hole. In fact, it fascinates on two separate levels: that of the tinfoil-hat theories themselves, and the meta-level of how they came to find such purchase here in this real world of ours, which is — spoiler alert! — actually not controlled by secret cabals of Knights Templar and the like. I’ll be exploring these subjects in some articles that will follow this one. It’s a digression from my normal beat, but one that I just can’t resist; I hope you’ll wind up agreeing with me that it was well worth it.

Today, though, let me tell you about some of the other aspects of this game. One of Jane Jensen’s greatest talents as a writer is her skill at evoking a sense of place, whether her setting be Louisiana, Bavaria, or now southern France. If you ask me, this game is her magnum opus in this sense. The 3D graphics here are pretty crude — far from state of the art even by the standards of 1999, never mind today. Characters move more like zombies or robots than real people and look like collections of interchangeable parts crudely sewn together. Gabriel’s hair looks like an awkwardly shaped helmet that’s perpetually in danger of falling right off his head, while trees and plants are jagged-edged amalgamations of pixels that look like they could slice him right open if he bumped into them. And yet darned if playing this game doesn’t truly feel like exploring a sun-kissed village on the edge of the French Riviera. The screenshots may not come off very well in an article like this one, but there’s an Impressionistic quality (how French, right?) to the game’s aesthetics that may actually serve it better than more photo-realistic graphics would. When I think back on it now, I do so almost as I might a memorable vacation, the kind whose contours are blended and softened by the soothing hand of sentiment. If a good game is a space where you want to go just to hang out, then Gabriel Knight 3 is a very good game indeed.

The geography is fairly constrained, meaning you’ll be visiting the same places again and again as the plot unfolds. Far from a drawback, I found this too oddly soothing. I mentioned Agatha Christie earlier; let me double-down on that reference now, and say that the geography is tight enough to remind me of a locked-room cozy mystery. The fact that you’re staying in a hotel with a gaggle of tourists only enhances the feeling of being on a virtual holiday. Playing this game, you never sense the stress and conflict and exhaustion that were so frequently the lot of its developers. Call it one more way in which Gabriel Knight 3 is kind of miraculous; most games reflect the circumstances of their creation much more indelibly.

I suppose it could be considered a problem with Gabriel Knight 3 as a piece of fiction that the setting comes off so bucolic when the stakes are meant to be so high. But I don’t care. I like it here; I really like it.

Meet the story where it lives and let it unfold at its own pace, and you’ll be amply rewarded. Both the backstory of the historical conspiracy and the foreground plot with which it becomes intertwined, about finding the vampiric kidnappers, become riveting. I often play games on the television in the living room while my wife Dorte reads or crochets or does something else, popping up from time to time with a comment, usually one making fun of whatever nerdy thing I happen to be up to tonight. But Gabriel Knight 3 grabbed her too, something that doesn’t happen all that often. She had to go off to a week-long course just as I was getting close to the end. She informed me in no uncertain terms that I was not allowed to finish without her, because she wanted to see how it ended as well. Trust me when I tell you that that is really saying something.

The 3D engine that powers all of this is one of a goodly number of alternative approaches to the traditional point-and-click adventure that appeared as the genre was flailing against the dying of the mainstream light, aimed at helping it to feel more in tune with the times and, in some cases, making it a more friendly fit with alternative platforms like the Sony PlayStation. Few of these reinventions make much of a case for their own existence in my opinion, but the G-Engine is an exception. It’s a surprisingly effective piece of kit. Instead of relying on fixed camera angles, as Grim Fandango does in its 3D engine, Gabriel Knight 3 gives you a free-floating camera that you can move about at will. The environment fills the whole screen; there are no fixed interface elements. Clicking on a hot spot brings up a context-sensitive menu of interaction possibilities. And naturally, you can delve into an inventory screen to look at and combine the items you’re carrying, or to snatch them up for use out in the world. I really, really like the system, which genuinely does add something extra that you wouldn’t get from 2D pixel graphics. You can look up and down, left and right, under and on top of things. A room suddenly feels like a real space, full of nooks and crannies to be explored.

Admittedly, the setup is kind of weird on a conceptual level, in that you’re doing all of this exploration while Gabriel or Grace, whichever one you happen to be controlling, is standing stock still. This game, in other words, lends fresh credence to Scott Adams’s age-old conception of the player of an adventure game being in command of a “puppet” that does her bidding. Here you’re a disembodied spirit who does all the real work, pressing Gabriel or Grace into service only when you have need of hands, feet, or a mouth. You can even “inspect” an object in the room without their assistance — doing so shows it to you in close-up — although you do need them to help you “look,” which elicits a verbal description from your puppet. Gabriel Knight 3 doesn’t take place in a contiguous world; discrete “rooms” are loaded in when you direct your puppet to cross a boundary from one to another. Nevertheless, some of the rooms can be quite large. When you’re out and about on the streets of Rennes-le-Château, for example, the camera might be a block away from Gabriel or Grace, well out of his or her line of sight. It’s odd to think about, but it works a treat in practice.

One of the strangest things about the G-Engine is how the camera seems to have a corporeal form. You can get it hung up behind objects like this bench.

The G-Engine doesn’t add much in the way of emergent possibility. Reading between the lines of some of the reviews, one can’t help but sense that some critics thought the switch to 3D ought to make Gabriel Knight 3 play more like Tomb Raider — and who knows, perhaps this was even envisioned by the developers as well at one time. The game we have, however, is very much an adventure game of the old school, a collection of set-piece puzzles with set-piece solutions, with a set-piece plot that is predestined to play out in one and only one way. Some alternative solutions are provided, even some optional pathways and puzzles that you can engage with for extra points, but there’s no physics engine to speak of here, and definitely no possibility to do anything that Jane Jensen never anticipated for you to do.

That said, there are a few places where the game demands timing and reflexes, especially at the climax. These bits aren’t horrible, but they aren’t likely to leave you wishing there were more of them either. In the end, they too are set-piece exercises, more Dragon’s Lair than Tomb Raider.


Erik and Chet, the pair of teenage Quake fanatics who wrote Gabriel Knight 3 into gaming history for all the wrong reasons via their website Old Man Murray. Ah, well… they were no kinder to themselves than they were to this game. Erik described himself as a “fat, girl-looking boy”; Chet “likes Ministry and not much else.”

We can’t avoid it anymore, my friends. It’s impossible to discuss Gabriel Knight 3′s puzzles in any depth without addressing the elephant — or rather the cat-hair mustache — that’s been in the room with us this whole time. The uninitiated among you, assuming there are any, will require a bit of explanation.

During the burgeoning years of the World Wide Web, many gaming sites popped up to live on the hazy border between fanzines and professional media organs. One of these went for some reason by the name of Old Man Murray, a place for irreverent teenage takes on the games that Computer Gaming World was covering with more earnestness and less profanity. One of the proprietors, who went by the name of simply “Erik,” took exception to one particular puzzle that crops up fairly early on in Gabriel Knight 3. He vented his frustration in a… a column, I guess we can call it?…  published on September 11, 2000 — i.e., ten months after the game’s release, and well after its lackluster commercial fate had already been decided.

Gabriel needs to get his hands on some form of transportation in order to explore the countryside around Rennes-le-Château. Unfortunately, the motorbike rental lot right next door to the hotel mostly offers only sissy-looking mopeds of a sort that he wouldn’t be caught dead riding. The sole exception is a gleaming Harley-Davidson — but it has been reserved, by, of all people, his old buddy Mosely. Gabriel must engage in an extended round of subterfuge to pretend to be Mosely and secure the bike. This will turn out to involve, among other things, stealing the poor fellow’s passport and concocting a disguise for himself that involves masking tape, maple syrup, and a stray tuft of cat hair. I’ll let Erik tell you more about it. (The bold text below is present in the original.)

Dumb as your television enjoying ass probably is, you’re smarter than the genius adventure gamers who, in a truly inappropriate display of autism-level concentration, willingly played the birdbrained events. Permit me to summarize:

  • Gabriel Knight must disguise himself as a man called Mosley [sic] in order to fool a French moped rental clerk into renting him the shop’s only motorcycle.
  • In order to construct the costume, Gabriel Knight must manufacture a fake moustache. Utilizing the style of logic adventure game creators share with morons, Knight must do this even though Mosely does not have a moustache.
  • So in order to even begin formulating your strategy, you have to follow daredevil of logic Jane Jensen as she pilots Gabriel Knight 3 right over common sense, like Evel Knievel jumping Snake River Canyon. Maybe Jane Jensen was too busy reading difficult books by Pär Lagerkvist to catch what stupid Quake players learned from watching the A-Team: The first step in making a costume to fool people into thinking you’re a man without a moustache, is not to construct a fake moustache.
  • Still, you might think that you could yank some hair from one of the many places it grows out of your own body and attach it to your lip with the masking tape in your inventory. But obviously, Ms. Jensen felt that an insane puzzle deserved a genuinely deranged solution. In order to manufacture the moustache, you must attach the masking tape to a hole at the base of a toolshed then chase a cat through the hole. In the real world, such as the one that stupid people like me and Adrian Carmack use to store our televisions, this would result in a piece of masking tape with a few cat hairs stuck to it, or a cat running around with tape on its back. Apparently, in Jane Jensen’s exciting, imaginative world of books, masking tape is some kind of powerful neodymium supermagnet for cat hair.
  • Remember how shocked you were at the end of the Sixth Sense when it turned out Bruce Willis was a robot? Well, check this out: At the end of this puzzle, you have to affix the improbable cat hair moustache to your lip with maple syrup! Someone ought to give Jane Jensen a motion picture deal and also someone should CAT scan her brain.

A penetrating work of satire for the ages this column is not, but it nevertheless went viral, until it seemed to be absolutely everywhere on the Internet. In an ironic, backhanded way, Gabriel Knight 3′s cat-hair mustache puzzle became one of the most famous puzzles in all of adventure-gaming history, right up there with the Babel Fish in The Hitchhiker’s Guide to the Galaxy or Monkey Island’s Insult Sword-Fighting. It became so famous that it has its own Wikipedia page today. At the same time, it became Exhibit Number One in the burgeoning debate over Why Adventure Games Died. Right up to this day, whenever talk turns to the genre’s fall from grace at the end of the twentieth century, a reference to the cat-hair mustache cannot be long in coming. For a considerable number of people today, Gabriel Knight 3 is not a game about vampires or the source material of The Da Vinci Code before Dan Brown discovered it; it’s a game about a cat-hair mustache.

So, what is a Gabriel Knight 3 apologist like myself supposed to do with this? First, let me acknowledge that this is not a great puzzle in strictly mimetic terms, in that it’s impossible to take seriously as a part of the game’s fiction. Setting aside all of the other improbable steps Gabriel has to go through, he steals and defaces — more on the latter in a moment — his good friend’s passport in order to work the scam. All of this instead of just, you know, asking his buddy to help him out. (Mosely is gruff on the outside, but he’s a good egg underneath, as Gabriel knows better than anyone.) Or he could just suck it up and ride a moped for a few days, given that the fate of an innocent baby and who knows what else may depend on it.

Of course, Gabriel Knight 3 is hardly the only adventure game that makes sociopathic behavior a staple of its puzzle tree. This is the root of the genre’s centrifugal pull toward comedy, which almost invariably injects a patina of goofiness even into allegedly serious games like this one. Stuff like this is more naturally at home in a game like Monkey Island. But leave it entirely out of any sort of adventure, and you run the risk of having a game without enough gameplay. If we aren’t afraid of a little bit of whataboutism, we might defend the adventure game by noting here that it’s hardly the only genre whose gameplay is frequently at odds with its fiction: think of putting saving the world on hold in order to hunt down lost pets and carry out a hundred other piddling side-quests in a CRPG, or researching the same technologies over and over from scratch in an RTS campaign. I’ll leave you to decide for yourself how compelling such a defense is.

For what it’s worth, there are reports that this puzzle was not in Jane Jensen’s original design, that it was swapped in late in the day in place of another one that had proved impractical to implement. Rest assured that you won’t catch me calling it a great puzzle, either in the context of this game or of adventure history.

But here’s the thing: mimesis aside, it’s nowhere near as terrible a puzzle as the one that our friend Erik describes either. I played this game a few months ago for the first time, knowing vaguely that it included an infamous puzzle involving a cat-hair mustache — how could I not? — but knowing nothing of the specifics. I went in fully expecting the worst, keeping in mind the design issues I remembered from the first two Gabriel Knight games. I was therefore surprised by how smoothly — and, yes, even enjoyably — the whole puzzle played out for me. Perhaps I was helped by the knowledge I brought with me into the game, but I never had the feeling that I was relying on it, never felt that I couldn’t have progressed without it. There are two hugely important mitigating factors which Erik neglects to mention.

The first is that there actually is a logic to Gabriel making a mustache for himself to imitate the clean-shaven (more or less) Mosely. He thinks that the facial hair will disguise the very different facial bone structures of the two men. Therefore he draws a mustache onto Mosely’s passport photo with a marker — how would you like to have a friend like him? — to complete the deception.

Notice that Mosely does have a mustache in his passport photo now.

The second factor is more thoroughgoing: the player is guided through all of the steps quite explicitly by Gabriel himself. (Who’s the puppet now, right?) In addition to “Look” and “Inspect,” many hot spots pop up a handy light-bulb icon when you click them: “Think.” These provide vital guidance on, well, what your character is thinking — or rather what Jane Jensen is thinking, what avenues she expects you to explore to advance the story. It’s not a walkthrough — what fun would that be? — but it does give you the outlines of what you’re trying to accomplish. In this case, looking carefully at and “thinking” about all of the objects involved turn a puzzle that truly would be absurdly unfair without this extra information into one that’s silly on the face of it, yes, but pretty good fun all the same. I’ve ranted plenty over bad adventure-game puzzles in the past, the kind where you have no clue what the game wants you to do or how it wants you to do it. This is not one of those. This puzzle doesn’t deserve the eternal infamy in which Old Man Murray draped it.

In point of fact, Gabriel Knight 3 is a major leap forward over the first two games in terms of pure design. Although it’s not trivial to solve by any means, nor does it seem to hate its player in the way of so many older Sierra games. The “Think” verb is one example. And for another one: once you solve the cat-hair-mustache-puzzle, get on your ill-gotten Harley, and start visiting the places around Rennes-le-Château, you can start to ask the game to show you where you still need to accomplish things in your current time block; this alone does much to alleviate the sense of “fumbling around in limbo,” as Tom Chick described it in Computer Gaming World. I don’t know whether the more soluble design of this game is a result of Jane Jensen improving her craft, unsung heroes on the team she worked with, or possibly even directives that came down from the dreaded upper management. I just know that it’s really, really nice to see — nice to be surprised by a game that turns out to be better than its reputation.

Solving the Le Serpent Rouge puzzle. Jane Jensen cribbed all this business about “sacred geometries” from the book The Tomb of God, which in turn borrowed it from Renaissance and Early Modern hermetic philosophy. (Johannes Kepler was very big on this sort of thing when he wasn’t developing the first credible model of our heliocentric solar system.) It may be nonsense, but it’s wonderfully evocative nonsense when it’s embedded in a story like this one.

The other puzzles here are a commodious grab bag of types. A few of them are every bit as silly as the cat-hair mustache, but most of them more pertinent to the mysteries you’re actually trying to solve. The most elaborate of them all is a whole chain of puzzles that become Grace’s principal focus over the second and third days, and that are almost as well-remembered within hardcore adventure circles today as the cat-hair mustache is outside of them. The Le Serpent Rouge puzzle sequence takes its name from a 1967 poem by an anonymous author that has become an indelible part of the conspiracy lore surrounding Rennes-le-Château.  The reliably bookish Grace has to ferret out its coded meanings, verse by verse, using a variety of software tools on her laptop computer. Some reviewers have called it the best adventure-game puzzle of all time.

For my part, I can’t go quite that far. Like everything else in the G-Engine, the software Grace uses is more of a veneer over the set-piece design than a true simulation. At several stages, I more or less just clicked on things until the game told me I had it right. But if it has its limitations as a set of pure puzzles, Le Serpent Rouge succeeds brilliantly as interactive drama. You’re fully invested by the time it comes along, and the buzz you get as you close in on the heart of the mystery, step by step, is not to be dismissed lightly. In a more just world it would be these puzzles rather than the cat-hair-mustache one that would have taken a place in mainstream-gaming lore. For they show just how exciting and gripping smart, textured, context-appropriate adventure-game puzzles can be.

Much the same sentiment can be applied to Gabriel Knight 3 as a whole, a rare Sierra adventure game that I find to be underrated rather than overrated. I’ve not always been so kind toward Sierra’s games, as many of you know all too well. But almost twenty years on, just before they turned the lights out for good, they finally got everything right. This game is my favorite of the entire Sierra catalog. It’s the antithesis of Ultima IX, as high of a note to go out on as that game was a low one. Let’s hear it for lost causes and eleventh-hour miracles.


Girls can ride Harleys too, y’all.

I have to admit that my experience with Gabriel Knight 3 has to some extent caused me to reevaluate the whole series of which it is a part. Bloody-minded iconoclast that I am, I find that I have to rank the games in reverse chronological order, the opposite of the typical fan’s ordering. I still can’t get fully behind Gabriel Knight I, even when I try to separate the story and setting from my nightmares about searching for a two-pixel-wide snake scale in a Bayou swamp and tapping out nonsensical codes on a bongo drum. Gabriel Knight 2, though… that really is an edge case for me. I still have my share of quibbles with its design, but its flaws are certainly less egregious than those of its predecessor, even as it has stuck in my memory in a way that very few of the narrative-oriented games which I’ve played for these histories have been able to do. Both the second and the third games make me feel emotions that aren’t primary-colored, that are more textured and complex than love and hate, fight and flight. And that is nothing to be sneezed at in the videogame medium.

So, readers, I think I have to put both Gabriel Knight 2 and 3 into my personal Hall of Fame. It was a long time coming for the former, but I did come around to old Gabe and Gracie eventually. It’s only too bad that their story had to end here, just when it was starting to get juicy.

Oh là là!



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


Sources: The book Gabriel Knight 3: Prima’s Official Strategy Guide by Rick Barba and Jane Jensen: Gabriel Knight, Adventure Games, Hidden Objects by Anastasia Salter. Computer Gaming World of February 1999, June 1999, and April 2000; Game Developer of June 2000; PC Zone of July 1998; Sierra’s newsletter InterAction of Spring 1999.

Online sources include Adventure Gamer’s interview with Gabriel Knight 3 design assistant Adam D. Bormann, Women Gamers’s interview with Jane Jensen, the vintage GameSpot review of Gabriel Knight 3, the Old Man Murray column discussed in the article, and a designer diary that Jane Jensen wrote for GameSpot during the game’s development.

Where to Get It: Gabriel Knight 3: Blood of the Sacred, Blood of the Damned is available as a digital purchase at GOG.com.

Thursday, 19. February 2026

Choice of Games LLC

Heroes of Tomorrow: Hidden Potential—Battle supervillains at a superhero academy!

We’re proud to announce that Heroes of Tomorrow: Hidden Potential, the latest in our popular “Choice of Games” line of multiple-choice interactive-fiction games, is now available for Steam, Android, and on iOS in the “Choice of Games” app. It’s 40% off until February 26th! At our superhero academy, you’ll lead a team of teen heroes to battle supervillains! Will you ful

Heroes of Tomorrow: Hidden PotentialWe’re proud to announce that Heroes of Tomorrow: Hidden Potential, the latest in our popular “Choice of Games” line of multiple-choice interactive-fiction games, is now available for Steam, Android, and on iOS in the “Choice of Games” app.

It’s 40% off until February 26th!

At our superhero academy, you’ll lead a team of teen heroes to battle supervillains! Will you fulfill your heroic legacy or forge your own path?

Heroes of Tomorrow: Hidden Potential is an interactive superpower novel by Eloy Lasanta, where your choices control the story. It’s entirely text-based, 600,000 words and hundreds of choices, without graphics or sound effects, and fueled by the vast, unstoppable power of your imagination.

Welcome to Evos Academy! As a member of the next generation of superheroes in a world where comic books record the deeds of real-life heroes, you don’t pass your classes by writing the correct answers on a paper; you do it by defeating a swarm of super-science automatons in front of a stadium full of cheering fans.

Develop your powers, practice working as a team with your classmates, and develop your own distinctive style while you learn from the greatest heroes that Earth has ever seen: valiant Gladiator, super-gadgeteer Gearhead…

…and, oh yeah, your mom.

Hardly anyone knows that you grew up as the sidekick to your mother, the famed hero known as The Cloak, keeping your gritty metropolis safe from the world’s worst villains. Some of your classmates are grappling with a legacy of power, too: Paragon’s father is the mighty hero Brilliant, and Red Claw’s mother is the villain Destroya. Each of you must choose what kind of hero you want to be. Do you want to be like your heroic parents, or do you want to blaze your own trail?

The choices just keep getting harder when it becomes clear that there’s more than your average supervillainy going on. Who keeps breaking into Evos Academy’s supposedly ultra-secure campus, and why? Why are your powers acting so strangely? What is the voice that whispers to you in your dreams? Why are all the villains’ plots suddenly focused on you? And what will you do when you discover that some of your idols aren’t so heroic after all?

  • Play as male, female, nonbinary, or genderfluid; gay, straight, bi, or asexual.
  • Choose your superpowers—elemental control, energy manipulation, super-physique, beast powers, or telekinesis—and customize your super-suit!
  • Romance or befriend a demon seeking redemption, a clever thief with a mysterious client, a powerful mage-in-training, or an already-famous heroic icon.
  • Protect the city and become the people’s hero, or let the world burn!
  • Banter with your foes, build super-tech gadgets, or let your fists do the talking!
  • Fight alongside—or against—your classmates and mentors in brutally high-powered action battles!
  • Battle supervillains that teleport, shapeshift, summon lava from volcanos, and turn the world into a videogame!
  • Uncover the secrets that the heroes have been keeping from you about everything—even about yourself!

Can you defeat criminals, cultists, demons, and midterms?

We hope you enjoy playing Heroes of Tomorrow: Hidden Potential. We encourage you to tell your friends about it, and recommend the game on Facebook, Twitter, Tumblr, and other sites. Don’t forget: our initial download rate determines our ranking on the App Store. The more times you download in the first week, the better our games will rank.


vaporware: interactive fiction

It's been a while

or, In Which I Remember That I Had a BlogA lot has changed in the last six and a half years!ZILF finally had its 1.0 release. In fact, it's up to version 1.5 now, and it has a slick new website.Zork I through III are now open source, and ZILF got a mention in the announcement.I released another game, called Rascal.Surely there's more. I feel like there's at least one other thing I'm forgetting

or, In Which I Remember That I Had a Blog

A lot has changed in the last six and a half years!

  • ZILF finally had its 1.0 release. In fact, it's up to version 1.5 now, and it has a slick new website.
  • Zork I through III are now open source, and ZILF got a mention in the announcement.
  • I released another game, called Rascal.
  • Surely there's more. I feel like there's at least one other thing I'm forgetting. 🤔

These days, you're more likely to find me on intfiction.org, or the ZILF Discord server, or ifMUD, than here on Blogger.


ZILF 0.9 released

Version 0.9 of ZILF was released recently! Highlights include easier setup for non-Windows platforms, compatibility with the unearthed Infocom source, and lots of bug fixes. Get it at zilf.io.
Version 0.9 of ZILF was released recently! Highlights include easier setup for non-Windows platforms, compatibility with the unearthed Infocom source, and lots of bug fixes.

Get it at zilf.io.

Wednesday, 18. February 2026

My So Called Interactive Fiction Life

Port of Mainframe Zork Complete

This also recognizes the release beta of Sharpee. I still have to update npm, but Sharpee is capable of building stories, web clients, and Zifmia story files.The version you see above will flip to 0.9.91, but that's just housekeeping.The website is updated as well:
Port of Mainframe Zork Complete

This also recognizes the release beta of Sharpee. I still have to update npm, but Sharpee is capable of building stories, web clients, and Zifmia story files.

The version you see above will flip to 0.9.91, but that's just housekeeping.

The website is updated as well: https://sharpee.net/.

I am officially transitioning from platform developer to story author.

Tuesday, 17. February 2026

Renga in Blue

ZENO: Powerful and Potentially Dangerous Devices

(Continued from my previous post.) I’m still trying to get my bearings on how this works. Back when I wrote about my favorite games of Tlön — essentially, imagining games from an imaginary universe where the usual rules may or may not apply — one of the ideas I tried to play with was the […]

(Continued from my previous post.)

I’m still trying to get my bearings on how this works.

1970 picture of a System 370, via IBM.

Back when I wrote about my favorite games of Tlön — essentially, imagining games from an imaginary universe where the usual rules may or may not apply — one of the ideas I tried to play with was the usual definition of a game. (Fun exercise for game designers: take a set of definitions of a game, and make a counterexample-game for each one, as Wittgenstein cackles in the background.)

Such definitions try hard to exclude, say, spreadsheets. So how could a spreadsheet (not something made in one, but the actual application itself) be a game? Theoretically, by making the operation of the software itself a puzzle to figure out; have unconventional UI tricks, and maybe convey everything in an invented language, and to even do your quarterly report you’d need to “solve” how the program works. Perhaps it could be inspired with elements from bad UI competitions.

I preface with this because operating ZENO is a little like my theoretical spreadsheet; puzzling out the editor especially (as in a text editor, for changing source code) has required dealing with cryptic documentation, and some of the documentation is tore off and located in other places on our space station/base.

(Or maybe spaceship; I think we’re “static”, like in geostationary orbit, but there’s enough weirdness going on I might be wrong.)

Consider the lift. I knew there was a “lift” program that you could run on the computer (by just typing “lift”) but I knew it only went to one other floor and back. The instructions are suggestive that there’s more floors.

Screenshot from last time.

After a bit of back-and-forth I realized I could type “edit lift” at the prompt and see all the code.

Here’s the first part of instructions for the editor:

line commands:
nnA adds nn blank lines (default nn is 1)
nnD deletes nn lines (including this one – default nn is 1)
nn” copies this line nn times (default is 1)
/ makes this the current line

I have no idea how to enact any of these. I had to just ignore them and move on to a second page, which has more instructions with different ways of doing the same operations. For example, I can type :5 to jump to line 5, then type DEL to delete it. The important thing I had to pick up on is that pressing TAB switches between what part of the screen your cursor is on, so you can hop directly to particular lines and edit them (as opposed to retype something, using the command INPUT INSERT_TEXT_HERE). For example, I can hit TAB until reaching line 7, and right-arrow over a bit…

…and then change the 2 to a larger number. What this does is check the floor number, and if the lift is out of floors, it will jump to the part of the routine where it switches the floor back to 1. By making the number bigger, you can now have access to floors 3 and 4. (While you’re at it, you need to change the next line to LIFT_FLOOR = LIFT_FLOOR + 1 which will roll through the possibilities rather than just setting the floor outright to 2.)

Of course, realizing that you can do this in the first place is a puzzle, but the editor itself ended up being one too! While some of what it is doing resembles editors like EMACS, some aspects (like forcing the whole word INPUT before typing in text) are unique to the world of ZENO, so genuinely make a spreadsheet-game of sorts.

It doesn’t help that the game always seems on the verge of crashing. If you open up the help but go to a page that doesn’t exist, the game crashes and you need to restart; I don’t think this is an emulator bug.

With the lift fixed, I was free to explore what turned out to be four floors. (Trying to get to 5+ just has the door stay closed, and before anyone asks, the same thing happens if you try for a “floor 0”. Now that I think of it, I haven’t tried every floor, so it’s still possible there’s a secret floor 32 or some such. There’s also another potential trick later that I’ll explain with the LIFT_DOOR variable.)

My map, so far:

More sections are predicated on secret things I’m missing, or the ability to use the matter transporter, which I haven’t been able to use yet. But let’s tour the floors in order:

FLOOR 1: Where everything starts, and the location of the main computer. (First order of business: log on to the computer and type “air” to get the air pump working, otherwise you will suffocate and die.) The main “User Guide” is here and there are references to a “System Guide”, “Editor Guide”, “Programming Manual”, “Robot Programming Guide”, and “Matter Transmitter Operator’s Guide”. The Guide has some pages ripped out: 13, 15, 17, 18, and 19, and the last page warns that

A full list is included as an appendix in the COMPUZZ System Guide. Please read this carefully. Since COMPUZZ computers are typically used to control powerful and potentially dangerous devices such as lifts, burglar alarms, lasers etc, failure to observe the recommended procedures can be fatal.

FLOOR 2: Observatory, with a COMPUZZ ROBOT. The only robot I’ve found so far (parts of the text imply there are others). Trying to touch the robot gets you killed by a laser.

I was actually intending to look more closely at the robot; this is one of the problems with an object-only interface.

The book is the Programming Manual. While there’s an index that indicates a complete book…

…most of the pages are gone. The only ones present are 2, 8, and 20, although there’s a bit of a joke on 16 and 17

The next page is intentionally left blank. This page is blank apart from this message.

(I’m pretty sure this is a joke on IBM manuals, which I remember being infamous for lots of INTENTIONALLY LEFT BLANK pages.)

I still haven’t tried playing around with the robot yet, although there is a sample program in the computer with two command lines:

robot = go to the door
robot = come into room please

(I think I accidentally ran this while in the room, which is why the robot ran into the elevator; if I waited another turn it would come back.)

There’s also a terminal in the observatory, but trying to use it gets the response that the terminal is disabled. There’s a program to enable it, but it doesn’t seem to work; it asks if you want the terminal enabled or disabled, and you type “enabled”, and the game responds that the terminal is disabled. I assume there’s an intentional bug here (“puzzle”) and I haven’t dug further.

FLOOR 3: You leave out to a storeroom…

You are in the storeroom. There is a staircase spiraling down.
There is a bulky space suit here, just your size.
There is an open door in the wall, leading to a cramped lift.

…and picking up the space suit wears it automatically. Note that this uses up air and if you run out of air you die, so unlike the notebook typing SUIT again will drop the suit. (The simplification makes sense, but the inconsistency still makes me grumble.)

Going DOWN the staircase you find a metal bottle on the stairs (this will swap with whatever air is on the suit), and two torn papers. The two papers are from the robot programming guide, with some highlights being: a.) they all have good vision and position sensors b.) they do not follow anything like Asimov’s laws c.) using speech with a ROBOT_VOICE command takes 1 turn and d.) you can overlap multiple commands all at the same time but it can lead to unpredictable effects.

Every other page of the robot manual is missing.

Heading down the stairs further is a matter transmitter desk.

You are at the foot of the stairs, which lead up from here.
Partly hidden by a pillar there is a large desk. An illuminated sign over the desk says. “COMPUZZ MATTER TRANSMITTER: OFF”

The prompt looks like this:

Pressing “help” here opens a matter transmitter guide, which has a page of technobabble, two extra pages of details, and mostly missing pages in between. I’ll give every single page this time:

I have not got things working yet. Even testing a small thing can take a while because it generally has to be implemented in the form of a program.

FLOOR 4: This has a hatch with a warning not to go through without a spacesuit. The hatch leads to an airlock.

You are in the hangar – an enormous cavern of a room.
To your left is the hatch of the airlock.
At the far end, the remains of the vast hangar door hang open, probably blasted by a hadronic beam.
There is a shuttle, large enough for two, parked here.
A sign on the side reads “Cardboard Mockup – DO NOT TOUCH” .
A small leaflet is posted on the wall.
There is a terminal here
Through the door you can see a corner of the Mare Imbrium, at its edge, hanging 200 klicks away.
You are wearing the space suit

The leaflet explains that the space shuttle is a “coming soon” feature and the intent is for ZENO to eventually let you travel through space and land on the moon. (This never happens, although Mitchell revisits ZENO in a printed book form — more on that when I eventually wrap up on the mainframe version.) The leaflet also implies that this version of the game is “deterministic”, that is, this isn’t a strategy game; there are particular things that will consistently happen.

The leaflet also gives a list of objectives, which is good because I believe there is no set “ending”. I’m not putting myself on the hook for any objective in particular, other than fighting off aliens.

  • determine the coordinates of all the places the robot can get to
  • write a program to detect and recover from power surges automatically
  • write a program to restart programs that fail
  • allow editing at terminals
  • kill off all aliens as soon as they get aboard
  • fill up all the disks

If you’re tempted to mess with the shuttle (despite it being cardboard) it kills you.

Next time I’ll discuss the robot control, the alien invasion, and hopefully use the former to fight off the latter. This might be not too far from the end, or (due to the programming taking so long to wade through, and the potential vistas the matter transmitter might open up) I might still need another two weeks to chew through everything.


The People's Republic of Interactive Fiction

February 2026 Post Mortem

The People’s Republic of Interactive Fiction convened on Monday, February 16, 2026 over Google Meet. Kirill Azernyy,  JP Tuttle, Michael Stage, Zarf, Michael Hilborn,  Matt Griffin, Josh Grams, Doug Orleans,  Allyson, and anjchang attended. Warning: What follows is probably not proper English, but just a log of notes from the meeting to jog people’s memories. Opening:

The People’s Republic of Interactive Fiction convened on Monday, February 16, 2026 over Google Meet. Kirill Azernyy,  JP Tuttle, Michael Stage, Zarf, Michael Hilborn,  Matt Griffin, Josh GramsDoug Orleans,  Allyson, and anjchang attended. Warning: What follows is probably not proper English, but just a log of notes from the meeting to jog people’s memories.

 Monday, February 16,  2026 over Google Meet  Kirill Azernyy,  JP Tuttle, Michael Stage, Zarf, Michael Hilborn,  Matt Griffin, Josh Grams, Doug Orleans,  Allyson, and anjchang attended.

Opening: Retro-computing & Early IF Discoveries
Members kicked things off by sharing personal archives and early experiments with interactive fiction:

Kirill talked about hosting a panel of electronic literature and game‑studies scholars. He shared his digital literature site, https://illitera.com/, which features experimental writing, digital art, and critical theory. He presented ideas from his current research on digital interaction and the changing role of the reader in an AI‑mediated literary landscape. Key themes included:

  • the shift from authorship to readership/usership
  • how AI complicates authorship but heightens the importance of human interpretation
  • electronic literature as a form that demands active, embodied engagement
  • the tension between engagement and disengagement as part of digital reading
  • the need to understand how humans maintain meaningful reading practices as writing becomes increasingly machine‑generated

This sparked a rich discussion among attendees about failure states in IF, the cognitive interactivity of traditional literature, and how puzzle‑based IF evolved into broader interactive reading practices. We then moved on to recent discussion topics posted on the mailing list.

Other Topics Discussed
Iron Chif: A Game‑Show‑Style IF Challenge
The group revisited the Iron Chif (Iron IF) challenge — a playful, time‑boxed competition where two authors create games in a week based on a shared theme. Participants discussed the upcoming installment, daily progress posts, and the fun of watching authors work under constraints.

Videotome: Engine, Community & 2025 IFDB List
Josh and Matt introduced Videotome to those unfamiliar:

  • A family of engines for kinetic or lightly interactive visual‑novel‑style works.
  • Designed for plain‑text‑first creation.
  • Supported by a small but vibrant community, including the Domino Club.

The group discussed how Videotome works unexpectedly appeared in the 2025 IFDB awards after Freya encouraged nominations. The winning piece originated from a game jam using digitized museum laserdisc archives.

Referenced resources:

Game Poems Magazine
Josh highlighted the January release of Game Poems Magazine, Issue 1:

Members discussed the short, lyrical nature of the works and the need to clarify interactivity for new readers. Several attendees planned to explore more pieces.

Awards & Competitions Landscape
The group compared the major IF awards and competitions:

There was also discussion of the XYZZY Awards hiatus and how the IFDB Awards have partially filled that gap.

ShuffleComp 2025
The revived ShuffleComp wrapped up judging with 15 entries this year. Members expressed interest in playing through the submissions and seeing how authors interpreted their shuffled playlists.


My So Called Interactive Fiction Life

Orbiting the Planet Dungeon

Getting so close to completing Mainframe Zork and Version 1.0.0 of Sharpee.Here's a list of things I've accomplished in the last few days:Full walkthrough of everything except the end game with some minor bugs in the Royal Puzzle.New npm release 0.
Orbiting the Planet Dungeon

Getting so close to completing Mainframe Zork and Version 1.0.0 of Sharpee.

Here's a list of things I've accomplished in the last few days:

  • Full walkthrough of everything except the end game with some minor bugs in the Royal Puzzle.
  • New npm release 0.9.90.
  • New Windows, Linux (deb/AppImage) Zifmia installers while the MacOS installer languishes in Apple land's horrid dmg approval process.
  • New ADR-130 to offer npx sharpee build --installer option to allow authors to generate their own packaged Tauri executable and/or installer, including landing page image, icon, and embedded story assets.
  • Found and fixed a very nasty bug that only manifested because of the two hooks in the Dungeon Volcano.
  • Started working on Reflections, a story I hope to submit to the IFComp and a remake of Jack Toresal and The Secret Letter. Secret Letter will have the same setting and some of the same plot elements, but a new conversation system, new map, and an even bigger reveal than the original. Also a new ending. I talked to Mike Gentry and he's blessed my changes and the remake.
  • The story development process will involve using specification documents (markdown) to write and build the story in an iterative cycle. This is going to be a very interesting experiment.
  • I also made an executive decision for my port of Dungeon. I am leaving the gnomes out. Whoever added them was trolling players. The game is already complex enough you don't need to give players an option to put the game in an unwinnable state. I'm also adding my own puzzle. It's nearly an Easter egg and you won't find it unless you play the entire game.
  • I added a test bundle so you can run transcript and walkthrough tests in ~2s. this is extremely helpful for iterating on tests when the story hasn't changed.
  • I will note that the optimal OS to work with Sharpee is a newer Mac with the M4 or M5 chip. Holy Batman it's blazing fast.
  • Status updates for Sharpee and Dungeon are at my personal website: https://david.cornelson.net/.
  • IFWiki.org has also been updated with the latest Sharpee info.
Orbiting the Planet Dungeon
I like this Sharpee! You know, it's exciting!

Monday, 16. February 2026

Choice of Games LLC

Coming Thursday! “Heroes of Tomorrow: Hidden Potential”—Trailer and demo out now!

We’re excited to announce that Heroes of Tomorrow: Hidden Potential is releasing this Thursday, February 19th! You can play the first three chapters for free today, see the trailer on YouTube, and check out the author interview as well! And don’t forget to wishlist it on Steam! The more wishlists we get, the better the game will do on Steam on release day. At our superhero academy, you&

We’re excited to announce that Heroes of Tomorrow: Hidden Potential is releasing this Thursday, February 19th! You can play the first three chapters for free today, see the trailer on YouTube, and check out the author interview as well! And don’t forget to wishlist it on Steam! The more wishlists we get, the better the game will do on Steam on release day.

At our superhero academy, you’ll lead a team of teen heroes to battle supervillains! Will you fulfill your heroic legacy or forge your own path?

Heroes of Tomorrow: Hidden Potential is an interactive superpower novel by Eloy Lasanta, where your choices control the story. It’s entirely text-based, 600,000 words and hundreds of choices, without graphics or sound effects, and fueled by the vast, unstoppable power of your imagination.

Welcome to Evos Academy! As a member of the next generation of superheroes in a world where comic books record the deeds of real-life heroes, you don’t pass your classes by writing the correct answers on a paper; you do it by defeating a swarm of super-science automatons in front of a stadium full of cheering fans.

Develop your powers, practice working as a team with your classmates, and develop your own distinctive style while you learn from the greatest heroes that Earth has ever seen: valiant Gladiator, super-gadgeteer Gearhead…

…and, oh yeah, your mom.

Hardly anyone knows that you grew up as the sidekick to your mother, the famed hero known as The Cloak, keeping your gritty metropolis safe from the world’s worst villains. Some of your classmates are grappling with a legacy of power, too: Paragon’s father is the mighty hero Brilliant, and Red Claw’s mother is the villain Destroya. Each of you must choose what kind of hero you want to be. Do you want to be like your heroic parents, or do you want to blaze your own trail?

The choices just keep getting harder when it becomes clear that there’s more than your average supervillainy going on. Who keeps breaking into Evos Academy’s supposedly ultra-secure campus, and why? Why are your powers acting so strangely? What is the voice that whispers to you in your dreams? Why are all the villains’ plots suddenly focused on you? And what will you do when you discover that some of your idols aren’t so heroic after all?

• Play as male, female, nonbinary, or genderfluid; gay, straight, bi, or asexual.
• Choose your superpowers—elemental control, energy manipulation, super-physique, beast powers, or telekinesis—and customize your super-suit!
• Romance or befriend a demon seeking redemption, a clever thief with a mysterious client, a powerful mage-in-training, or an already-famous heroic icon.
• Protect the city and become the people’s hero, or let the world burn!
• Banter with your foes, build super-tech gadgets, or let your fists do the talking!
• Fight alongside—or against—your classmates and mentors in brutally high-powered action battles!
• Battle supervillains that teleport, shapeshift, summon lava from volcanos, and turn the world into a videogame!
• Uncover the secrets that the heroes have been keeping from you about everything—even about yourself!

Can you defeat criminals, cultists, demons, and midterms?


Renga in Blue

ZENO (1983)

Welcome to ZENO – a test of your initiative The objective is to survive as long as possible against an increasingly hostile environment IBM as a company has only come up here so far in passing, as a competitor to other companies like ICL or General Electric. Today’s game deals with IBM quite directly in […]

Welcome to ZENO – a test of your initiative

The objective is to survive as long as possible against an increasingly hostile environment

IBM as a company has only come up here so far in passing, as a competitor to other companies like ICL or General Electric. Today’s game deals with IBM quite directly in a way that requires going back in time–

1963 photo of an IBM 1401, from George Dunbar in Toronto with more pictures here.

1954, MIT: in a discussion about a future where more people could use computers (that were at the time room-sized and used for one thing at a time) the legends Grace Hopper and John Backus (later famous for COBOL and FORTRAN respectively, amongst other things) brought up two opposing views. Hopper endorsed the idea of computers in parallel, many small computers linked together, while Backus instead promoted the concept of “a big computer” used as “several smaller ones”. John McCarthy, one of the time-sharing pioneers, already was thinking of the idea in 1955 and he made his first proposal in 1957, eventually using the current hardware available at MIT to implement what he called a lesser version of the idea:

This demonstration was called time-stealing, and was regarded as a mere prelude to proper time-sharing. It involved a fixed program in the bottom of memory that collected characters from the Flexowriter in a buffer while an ordinary batch job was running. It was only after each job was run that a job that would deal with the characters typed in would be read in from the drum. This job would do what it could until more input was wanted and would then let the operating system go back to the batch stream. This worked for the demonstration, because at certain hours, the M.I.T. Computation Center operated at certain hours a batch stream with a time limit of one minute on any job.

This was in 1959; the same year, Christopher Strachey (who created one of the candidates for “world’s first videogame”, see picture above) published a patent for his own time-sharing concept.

When I wrote the paper in 1959 I, in common with everyone else, had no idea of the difficulties which would arise in writing the software to control either the time-sharing or multi-programming. If I had I should not have have been so enthusiastic about them.

Hence, the idea was in the air: the technology just needed to catch up. The first actual working system was started in 1961 (based on McCarthy’s work) using an IBM mainframe. So while Dartmouth (with GE) was at the vanguard of computer time-sharing (1964), it is hardly surprising that IBM reached commercial time-sharing at essentially the same time, with the IBM System/360.

University of California, 1966. Source.

The original System/360 had a “Virtual Machine Monitor”; this was the overarching master system that made contact with the “metal” of the mainframe. Within this was built a CMS (Conversational Monitor System) which essentially appeared to the user like a “personal computer”; this was a way to do timesharing in a way that was essentially seamless. The user could treat the device in front of them as their own.

A young Stuart Madnick started work on the CMS at the IBM Cambridge Scientific Center in June of 1966 while still a student at MIT. He started with developing the file system, basing it on MIT and Dartmouth’s time-sharing work, then (part-time during the school year) developed the EXEC system (originally called COMMAND). EXEC was a scripting system meant to manage computer commands in sequence; a program to run other programs.

You can create simple EXEC procedures that execute several frequently used commands~ or you can devise complex EXEC procedures that test several logical conditions before deciding whether or not to execute a command. The logical capabilities in the EXEC processor are controlled with statements similar to the IF/THEN, GOTO, DO, and LOOP statements familiar to high-level language users.

— From a 1975 EXEC user manual

For example, this sample from IBM compiles and runs COBOL code:

* RUNCOB2 EXEC *
&CONTROL OFF NOMSG
&IF &INDEX LT 1 &GOTO -ERR1
COBOL2 &1
&IF &RETCODE NE 0 &EXIT
GLOBAL TXTLIB VSC2LTXT CMSLIB
&IF &RETCODE NE 0 &EXIT
LOAD &1 (START
&IF &RETCODE NE 0 &EXIT
&TYPE RUNCOB2 EXEC FINISHED
&EXIT
-ERR1
&TYPE PROGRAM NAME NOT GIVEN
&EXIT

This was followed in the 70s by EXEC 2, which had more flexibility and user-defined functions; essentially, it took EXEC’s more practical approach and tried to make an all-purpose scripting language. However, it was still designed with the assumption that most lines were intended to run other programs (like COBOL compilers) and while it was possible to apply if-then logic and the like the notation in such cases was relatively cryptic.

Hence, another follow-up: the language Rex (later renamed Rexx), work started in 1979. To compare the change, here’s some EXEC 2 code…

COPYFILE &FNAME &FTYPE &FMODE = BACKUP =
&IF &RC GT 0 &TYPE Copy failed with return code &RC

…and here’s some Rexx code that’s equivalent.

‘COPYFILE’ fname ftype fmode ‘= BACKUP =’
if rc>0 then say ‘Copy failed with return code’ rc

The second “if” statement is more natural. Rex(x) prioritizes readability and is considered one of the predecessors to the ultra-popular Python language.

My first implementation of Rexx was made freely available over IBM’s world-wide internal network in late 1979 and rapidly became popular. The network made it easy for people to exchange ideas and make suggestions for improvements. Also, because the language was limited to one (large) organization, it was possible to make some rather large changes in response to these suggestions. For example, one change, in which the ARG instruction replaced an earlier ARGS instruction, required updating hundreds of thousands of Rexx programs.

As a result of this direct feedback, the language quickly evolved to meet the needs of its users through a number of releases over the next few years. By 1982 it had become essentially the language known in OS/2 2.1 today; its name gained an “X” to avoid any confusion with other products. Rexx was included in the third release of IBM’s VM/System Product, shipped in 1983.

— Mike Cowlishaw, original designer of REXX

Cover of a 1990 edition of the Rexx user guide written by Cowlishaw.

(The three languages — EXEC, EXEC 2, Rexx — are still maintained to work with modern IBM systems. Corporate mainframe code can have legacy code dating back to the 70s in active use; this is why COBOL programmers are still in demand.)

All this is relevant today because not only is today’s game ZENO written in Rexx (back when the language was still internal to IBM), ZENO is a “programming game”; you are at a central computer controlling robots with programming. Regarding programming games in general, I briefly touched upon the game OMEGA in my writeup of Pillage Village; I also recommend Data-Driven Gamer’s series on the classic (and extremely difficult) Robot Odyssey. We’ve never had any that are also adventure games. (There’s some linkage to Suspended, but ZENO ends up being very different.) I’ll give the details on how ZENO works in a moment, but let me jump back to the 60s again and follow our author, hopping geographically over the Atlantic.

Dave Mitchell first went academically down a very different path than he ended up in; he got a BA in Theoretical Physics at Oxford in 1963 before doing postgraduate work in Psychology. He joined IBM in 1968, only two years after EXEC started development, although his original work was in the language PL/I. (See my writeup on Ferret for more on the PL/I language.) He spent the 1970s mostly working on “programmer training”.

Like many mainframe programmers in the 1970s, he came across Zork, becoming very interested in how “tools” were used in the game; also note that original mainframe Zork includes a section where you give commands to a robot.

As a programming teacher, he decided to riff off Zork but use it to create a programming language for robots. You are in a central base and your job is to protect it; while you can’t leave the base, you can interact with the outside world with a variety of robots.

This game generally speaking hasn’t been available for ages; it was designed to work on an IBM mainframe which was only running a short time, and it only re-appeared on the internet 5 years ago when the author (Mitchell) got the game up and running with Hercules (an emulator for running old IBM virtual machines). The part of his website that held the download is now defunct but it was rescued by Robert Robichaud (Rob in our comments); getting it running was also a Herculean feat but Gunther Schmidl managed to create a package you can download here. (As a word of warning, your virus detector may not like the setup as it runs an open port; I had to turn it off to play the game.)

Before moving on, I should emphasize that ZENO and Suspended landed on roughly the same concept from roughly the same source. Infocom’s ideas around commendable NPCs first appeared in the Zork robot, and they advanced their system with Deadline that was then re-used for Suspended. Mitchell was working independently, landing on a more esoteric outcome in being a full programming game.

ZENO is an experimental REX exec (currently in version 1, the initial prototype). It was written (in the author’s own time) in 1983:

(i) to provide an interactive environment to stimulate the learning of problem-solving skills (debugging etc)
(ii) to demonstrate the expressive power of REX (though the prototype should NOT be taken as illustrating good programming style)
(iii) to show that an interpreted language CAN provide adequate performance, even for a large complex application
(iv) to prototype a number of “Personal Computer” characteristics (e.g. a VDU scroller, command language, full-screen editor etc)
(v) to experiment with the computer control of a variety of complex devices (lifts, robots etc)
(vi) for entertainment (outside business hours)

The language being used in the game is not a “real” language but one made for the game he calls SIMPL/E (as a parody of PL/I).

While the game technically accepts parser commands, it does so with a major simplification: it really cares about single objects, like a textual version of a point-and-click game. That is, while you can start the game with “go lift”, you really just need to type “lift” to enter it. (Or “computer” to use the computer, or “book” to use the book.)

The button in the lift is broken (pressing it causes nothing to happen). Typing “notebook” will automatically pick it up and use it (your avatar will subsequently keep it on hand for taking notes). Because of the parser simplification, typing “drop notebook” will just open it again; there’s no way to drop the notebook once you have it.

Early on messages start like “the air here is a bit stuffy”. Like Suspended (and Starcross) there are environmental problems going on, and the first thing to do is to start the air pump (this is mentioned explicitly in the directions).

My first time through I struggled for a while to figure out the air pump as the “book” that’s in-world is rather long and esoteric, but I’m pretty sure you’re intended to use the guide the game comes with for starter commands; it’s hard to figure out how to even get going with the robots otherwise. The relevant page from the book, for reference:

The lift needs to be turned on with the computer just like the air pump; once on, the button inside works to take you to an observatory.

If you try to go to the computer and type a command, you get pulled out as

You are distracted from the keyboard because:
The robot enters the lift

The book on this floor, ominously, has many pages ripped out, but keeps information on how to handle errors from source code:

This gets extremely complicated fast, so I’ll explain the various computer features and what can be done with robots next time. In the meantime, here’s the result of typing “window”:

After you touched the window it shattered, and you are sucked into the vacuum of empty space.

Sunday, 15. February 2026

My So Called Interactive Fiction Life

Walk Through Testing in Sharpee

I started porting Mainframe Zork to burn through the Sharpee platforms issues. This has been an excellent choice since Dungeon is a masterpiece of crazy puzzle illusions.In order to run testing, I implemented GDT (Game Debugging Tool) which was a part of the original Dungeon PDP-10/11 implementation. It
Walk Through Testing in Sharpee

I started porting Mainframe Zork to burn through the Sharpee platforms issues. This has been an excellent choice since Dungeon is a masterpiece of crazy puzzle illusions.

In order to run testing, I implemented GDT (Game Debugging Tool) which was a part of the original Dungeon PDP-10/11 implementation. It allows the Imps and other developers to debug issues with "god mode". This helped in some ways, but walkthroughs require logic because the game has random reactions to actions. In Dungeon, treasures may have been picked up by the Thief, the Round Room exits randomly until you solve the Tea Room puzzle, and combat uses a melee logic system with odds-based health and hit points.

So we invented a way to write walkthroughs with assertions and logic blocks. Here is the first section of testing in Dungeon (spoilers!):

title: Get Torch Early (Save Lantern Battery)
story: dungeo
description: Priority path - get the torch ASAP to minimize lantern usage. Torch is unlimited, lantern has 330 turns.
---

# ============================================================================
# GOAL: Get torch as quickly as possible
# Critical path: Attic (rope) -> Living Room (lantern, sword) -> Underground -> Dome Room -> Torch Room
# ============================================================================

[GOAL: Collect essential items from house]
[ENSURES: inventory contains "rope"]
[ENSURES: inventory contains "lantern"]
[ENSURES: inventory contains "sword"]

# Start at West of House
> look
[OK: contains "West of House"]

# Enter house via back window
> north
[OK: contains "North"]

> east
[OK: contains "Behind House"]

> open window
[OK: contains "open"]

> west
[OK: contains "Kitchen"]

> west
[OK: contains "Living Room"]

> take lantern
[OK: contains "Taken"]

> take sword
[OK: contains "Taken"]

> turn on lantern
[OK: contains "on"]

> east
[OK: contains "Kitchen"]

> up
[OK: contains "Attic"]

> take rope
[OK: contains "Taken"]

[END GOAL]

# ============================================================================
# GOAL: Enter underground and kill troll
# ============================================================================

[GOAL: Enter cellar and defeat troll]
[REQUIRES: inventory contains "lantern"]
[REQUIRES: inventory contains "sword"]

> down
[OK: contains "Kitchen"]

> west
[OK: contains "Living Room"]

> move rug
[OK: contains "trap door"]

> open trapdoor
[OK: contains "open"]

> down
[OK: contains "Cellar"]

> east
[OK: contains "Troll Room"]

# Kill troll - melee combat with DO/UNTIL loop
# Loops attack until troll dies or player dies (retry handles player death)
[RETRY: max=5]
[DO]
> attack troll with sword
[UNTIL "slumps to the floor dead" OR "removes his head" OR "He dies" OR "You are dead"]
[ENSURES: not entity "troll" alive]
[END RETRY]

[END GOAL]

# ============================================================================
# GOAL: Navigate to Dome Room and use rope puzzle
# ============================================================================

[GOAL: Get to Dome Room]

> north
[OK: contains "East-West Passage"]

> north
[OK: contains "Deep Ravine"]

> west
[OK: contains "Rocky Crawl"]

> east
[OK: contains "Dome Room"]

[END GOAL]

# ============================================================================
# GOAL: Tie rope and descend to Torch Room
# ============================================================================

[GOAL: Get the torch]
[REQUIRES: inventory contains "rope"]
[ENSURES: inventory contains "torch"]

> tie rope to railing
[OK: contains "rope"]

> down
[OK: contains "Torch Room"]

> take torch
[OK: contains "Taken"]

[END GOAL]

# ============================================================================
# GOAL: Switch to torch, save lantern battery
# ============================================================================

[GOAL: Switch light sources]

# Torch is always lit (perpetual flame) - no need to switch on
> turn on torch

> turn off lantern
[OK: contains "off"]

# Verify we still have light
> look
[OK: contains "Torch Room"]

# Down to underground
> down
[OK: contains "North/South Crawlway"]

# South and Northwest to Gallery
> south
[OK: contains "Studio"]

> northwest
[OK: contains "Gallery"]

# We'll get the painting on the way out of the bank

[END GOAL]

# Save checkpoint for next walkthrough
$save wt-01

And here is the second:

title: Bank of Zork Walkthrough
story: dungeo
description: Get portrait and zorkmid bills from Bank. Restores from wt-01 (starts at Gallery).
---

# Restore state from wt-01 (player at Gallery with torch, lantern, sword, rope)
$restore wt-01

# Start at Gallery (from torch transcript)
# Path to Bank: Gallery → W → Bank Entrance

# Navigate to Bank Entrance
> west
[OK: contains "Bank Entrance"]

# First get portrait from Chairman's Office
> northeast
[OK: contains "East Teller"]

> south
[OK: contains "Chairman"]

> take portrait
[OK: contains "Taken"]

# Now navigate to Safety Depository for the wall-walk puzzle
> north
[OK: contains "East Teller"]

> west
[OK: contains "West Teller"]

> west
[OK: contains "Safety Depository"]

# Wall-walk puzzle sequence:
# 1. Curtain → Small Room
# 2. South wall → Safety Depository (unlocks curtain to Viewing Room)
# 3. North wall → Vault (get zorkmid bills)
# 4. North wall → Safety Depository
# 5. Curtain → Viewing Room (escape)

> walk through curtain
[OK: contains "disoriented"]
[OK: contains "Small Room"]

> walk through south wall
[OK: contains "disoriented"]
[OK: contains "Safety Depository"]

> walk through north wall
[OK: contains "disoriented"]
[OK: contains "Vault"]

> take zorkmid bills
[OK: contains "Taken"]

> walk through north wall
[OK: contains "disoriented"]
[OK: contains "Safety Depository"]

# Curtain now leads to Viewing Room (set by south wall walk earlier)
> walk through curtain
[OK: contains "disoriented"]
[OK: contains "Viewing Room"]

# Exit via Bank Entrance
> south
[OK: contains "Bank Entrance"]

# Return to Gallery
> east
[OK: contains "Gallery"]

# Verify we have both treasures
> inventory
[OK: contains "portrait"]
[OK: contains "zorkmid"]
[OK: contains "torch"]

# Save checkpoint for next walkthrough
$save wt-02

I'm going to skip to the sixth test because it has round room complex logic gates:

title: Exorcism (Bell/Book/Candle Ritual)
story: dungeo
description: Perform exorcism ritual at Entry to Hades. Restores from wt-05.
---

# Restore state from wt-05 (player at Living Room with torch + lantern)
$restore wt-05

# ============================================================================
# GOAL: Verify starting state
# ============================================================================

[GOAL: Verify starting state]

> look
[OK: contains "Living Room"]

> inventory
[OK: contains "torch"]
[OK: contains "lantern"]

[END GOAL]

# ============================================================================
# GOAL: Navigate to Round Room
# Living Room -> Cellar -> Troll Room -> EW Passage -> Round Room
# ============================================================================

[GOAL: Navigate to Round Room]

> down
[OK: contains "Cellar"]

> east
[OK: contains "Troll Room"]

> north
[OK: contains "East-West Passage"]

> east
[OK: contains "Round Room"]

[END GOAL]

# ============================================================================
# GOAL: Traverse Round Room carousel to Grail Room
# Carousel is spinning (isFixed=false) - exits are randomized.
# Any direction you pick, you land at a random exit EXCEPT where you tried to go.
# Use DO-UNTIL: go south (not east, since east=Grail Room would be excluded),
# handle each possible landing, navigate back to Round Room, repeat.
# ============================================================================

[GOAL: Get to Grail Room via carousel]

[WHILE: not location = "Grail Room"]
  > south
  [IF: location = "East-West Passage"]
    > east
  [END IF]
  [IF: location = "Deep Canyon"]
    > southeast
  [END IF]
  [IF: location = "North/South Passage"]
    > southwest
  [END IF]
  [IF: location = "Winding Passage"]
    > northwest
  [END IF]
  [IF: location = "Engravings Cave"]
    > north
  [END IF]
  [IF: location = "Maze"]
    > northeast
  [END IF]
[END WHILE]

[END GOAL]

# ============================================================================
# GOAL: Navigate to Altar and collect exorcism items
# Grail Room -> UP -> Temple -> E -> Altar
# ============================================================================

[GOAL: Get exorcism items]
[ENSURES: inventory contains "bell"]
[ENSURES: inventory contains "book"]
[ENSURES: inventory contains "candles"]

> up
[OK: contains "Temple"]

> east
[OK: contains "Altar"]

> take bell
[OK: contains "Taken"]

> take book
[OK: contains "Taken"]

> take candles
[OK: contains "Taken"]

[END GOAL]

# ============================================================================
# GOAL: Navigate to Entrance to Hades
# Altar -> W -> Temple -> D -> Grail Room -> E -> Narrow Crawlway
# -> SW -> Mirror Room -> E -> Cave -> D -> Entrance to Hades
# ============================================================================

[GOAL: Get to Entrance to Hades]

> west
[OK: contains "Temple"]

> down
[OK: contains "Grail Room"]

> east
[OK: contains "Narrow Crawlway"]

> southwest
[OK: contains "Mirror Room"]

> east
[OK: contains "Cave"]

> down
[OK: contains "Entrance to Hades"]

[END GOAL]

# ============================================================================
# GOAL: Perform exorcism ritual
# Ring bell, read book, light candles (order doesn't matter)
# Daemon checks completion each turn - wait after all three steps
# ============================================================================

[GOAL: Perform exorcism]

# Step 1: Ring the bell
> ring bell
[OK: contains "resonant"]

# Step 2: Read the black book
> read book
[OK: contains "exorcism"]

# Step 3: Light the candles
> turn on candles
[OK: contains "on"]

# Wait a turn for the exorcism daemon to complete the ritual
> wait
[OK: contains "Time passes"]

[END GOAL]

# ============================================================================
# GOAL: Verify exorcism success - passage east should be open
# ============================================================================

[GOAL: Verify exorcism success]

> east
[OK: contains "Land of the Dead"]

[END GOAL]

# ============================================================================
# GOAL: Return to Living Room
# Land of Dead -> W -> Hades -> UP -> Cave -> W -> Mirror Room
# -> NE -> Narrow Crawlway -> W -> Grail Room -> W -> Round Room
# -> carousel WHILE -> Maze -> W -> Troll Room -> W -> Cellar
# -> UP -> Living Room
# ============================================================================

[GOAL: Return to Living Room]

# Back through Hades to Cave
> west
[OK: contains "Entrance to Hades"]

> up
[OK: contains "Cave"]

# Cave -> Mirror Room -> Narrow Crawlway -> Grail Room
> west
[OK: contains "Mirror Room"]

> northeast
[OK: contains "Narrow Crawlway"]

> west
[OK: contains "Grail Room"]

# Enter Round Room (carousel is still spinning)
> west
[OK: contains "Round Room"]

# Traverse carousel to reach Maze (Maze-01 has WEST -> Troll Room)
[WHILE: not location = "Maze"]
  > south
  [IF: location = "East-West Passage"]
    > east
  [END IF]
  [IF: location = "Deep Canyon"]
    > southeast
  [END IF]
  [IF: location = "North/South Passage"]
    > southwest
  [END IF]
  [IF: location = "Winding Passage"]
    > northwest
  [END IF]
  [IF: location = "Engravings Cave"]
    > north
  [END IF]
  [IF: location = "Grail Room"]
    > west
  [END IF]
[END WHILE]

# Maze-01 -> Troll Room -> Cellar -> Living Room
> west
[OK: contains "Troll Room"]

> west
[OK: contains "Cellar"]

> up
[OK: contains "Living Room"]

[END GOAL]

# ============================================================================
# GOAL: Verify final state for next segment
# ============================================================================

[GOAL: Verify inventory for next segment]

> inventory
[OK: contains "torch"]
[OK: contains "lantern"]

> look
[OK: contains "Living Room"]

[END GOAL]

# Save checkpoint for next walkthrough
$save wt-06

# SUCCESS! Exorcism complete
# Spirits banished, passage to Land of Dead now open
# Player in Living Room with torch + lantern + bell + book + candles
# Ready for next segment

We now have 13 working walkthroughs and over 500 points with only a few more puzzles to solve, then the end game. I wildly underestimated the complexity of Dungeon when I started this port and was wildly over-confident in the level of completion Sharpee had reached. I'd still say the foundation of Sharpee has held up. Fewer and fewer platform changes occur as the port of Dungeon nears completion and most of those are very small bugs, not systemic issues.


Zarf Updates

Visible Zorker: status report

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. ...

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.

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.

But, you know what, I chose this project because it was fun! I want it to work. So we are officially in go-mode. Zork 3 is now in progress. I have a working build right now. Bare-bones, minimal, but working.

Contributor-level donors will get access to the Zork 3 page later tonight. Participant-level donors will get access on March 1st, by which time it will be feature-complete.

(Well, probably mostly complete. The map always takes longest.)

I'll be touting the project at GDC in March. I imagine that will bring in some more supporters. How many? No clue.

Regardless, I am now committing to finish Zork 3, Deadline, and Starcross by the end of May. June is NarraScope month, so I'll take a break to concentrate on the event. After that we'll take stock and see what the prospects are.

Sound good? Great.

See you around the Discord.

Saturday, 14. February 2026

Renga in Blue

The Picture You Probably Saw of the “First Videogame” Is Wrong

This is about as niche as a post of mine can get. What happened is I’ve been deep at work on my next game, which requires some history going back to the 1950s, and more specifically, Christopher Strachey makes a cameo appearance. For gaming history he is particularly known for a draughts (checkers) program that […]

This is about as niche as a post of mine can get. What happened is I’ve been deep at work on my next game, which requires some history going back to the 1950s, and more specifically, Christopher Strachey makes a cameo appearance.

Strachey at the piano, date unknown. From Christopher Strachey, 1916-1975: A Biographical Note. Annals of the History of Computing, Volume 7, Number 1, January 1985.

For gaming history he is particularly known for a draughts (checkers) program that sometimes gets designated as the “first videogame”. There’s a lot of conditionals to that, including if a program called Bouncing Ball counts once a hole is added (and when that happened), but I’ll defer to the discussion here for details. I instead want to discuss what the game looks like. This it the picture most commonly seen (including on Wikipedia):

I wanted to mention Strachey’s videogame-pioneer status as aside before I went into his totally different part to play in my upcoming story, and as my way of compressing this information, I wanted to drop the image above with a descriptive caption and be done with it. However, I had the nagging feeling something was wrong.

After some expert consultation (specifically with Quarter Past and Ethan Johnson) I realized what the problem was. Quarter Past pointed to A Biography of the Pixel by Alvy Ray Smith as having good coverage.

Strachey was working on the Pilot Ace at Teddington, one of the first computers built in the UK (based on a more complex design of Turing’s). He wrote a letter to Turing about how he got a draughts (checkers) program to work, then found out that the Ferranti Mark I computer at Manchester had not only more memory but visible memory. He managed to re-do his program for the system, and used Turing’s “incomprehensible” manual to get it working. This led to an actual checkboard display on an arbitrary video system (hence “video”game). A figure from Smith’s book gives pictures:

These photos were found in Oxford’s archive of Strachey’s work, and Smith specifically mentions a folder number, C30, as containing photographs from Strachey. He gave a presentation with lantern slides of an actual game being played by the computer (at a conference in Toronto, where a new Mark I had just been installed) and these seem to have been part of that.

So, what’s wrong? If you don’t see it yet, let me zoom into one of the photos, and then give the one from Wikipedia (and elsewhere, including Ahoy’s video with 2.5 million+ views).

The Wikipedia board is left-right flipped! There should be a checker in the lower left corner. Wikipedia has a second error because it states it is a “A modern reproduction of Checkers, as it would have appeared on a Ferranti Mark 1” which isn’t true at all; it’s more like a scrubbed version of the photo from the real Mark I, reversed the wrong way. (ADD: I’m buying Aula’s argument in the comments there had to be cutting-pasting involved, so “modern reproduction” still works.) We’re not just talking Wikipedia; an academic paper here from 2012 also has the wrong view.

The figure’s in Strachey’s own paper (“Logical or non-mathematical programmes” from 1952) confirms he intended for checkers to be in the lower left corner.

However, I’m not quite done yet, as there’s still the question: is the picture rotated upside down?

This is from the biography article I mentioned at the top (with the picture of Strachey playing the piano). You’ll notice this time O is on bottom and X is on top. The book on pixels has this flipped over. Which one is right?

Strachey puts White at the bottom, and generally speaking Black is X and White is O. So it looks like all the book photos might need a 180 degree flip:

I haven’t been able to confirm this, but I figured I needed to share all this with you. (Also, the next post is going to be complicated, so likely it won’t be up until at least Monday.)


Zarf Updates

GDC plans, 2026

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 ...

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 year is a first, though: I'll be helping represent IFTF! We'll have a table in the new "GDC Commons" 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.

The Common will also host a bunch of other regional and interest-based game-dev nonprofits. Including the Global Game Jam, Black in Gaming, Latinx in Gaming, and groups from SF, Seattle, and my own homies from Boston Game Dev. Who I would totally be helping out if I weren't booked with the IFTF crew. And others.

I won't spoil our booth surprises... well, maybe a little. My Visible Zorker 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.

No, I am not hijacking an IFTF event to promote my own Patreon. That would be tacky. But I should have Visible Zork 3 up and running as a special GDC sneak peek...

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.)

Oh, and I'll also be at the IFTF table at the Opening Night Event down at Oracle Park. Monday night, 6:30 until... actually I don't know how late it runs. We will find out!


And now, let's take that headline from top. What are GDC's plans for 2026? What's going on with this event? Why has it rebranded as the "Festival of Gaming"? What does that mean?

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 300 people by 1989. By the time I visited, GDC was the 30000-person monstrosity we know and resent today.

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.

Not great for your theoretically industry-leading and in practice incredibly-expensive event.

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 branding, and its price matrix is a clear signal that The Old Plan Ain't Working.

Will the new plan work? 2025 had plenty of butts on-site, despite the industry malaise. Perhaps because of the industry malaise. But you can't run a show this size by shaking down the unemployed.

The "community and networking" 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 your friends just got laid off, their friends are all well-heeled publishers who can hook you right up. I mean, that is 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?

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.

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!

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 last GDC.

If so, I am for sure not going to miss the party.

Friday, 13. February 2026

Not Dead Hugo

Less-cited Hugo File Limits

 When it comes to limits in Hugo, authors are most familiar with the static limits that can be viewed or modifiable ones that can be set at compilation time.  If a game needs more arrays or routines than the system default, great, we change a value and we're good to go.There are other limits in Hugo to be aware of, though, as discovered by Robb Sherwin.  More than a year ago, he noti

 When it comes to limits in Hugo, authors are most familiar with the static limits that can be viewed or modifiable ones that can be set at compilation time.  If a game needs more arrays or routines than the system default, great, we change a value and we're good to go.

There are other limits in Hugo to be aware of, though, as discovered by Robb Sherwin.  More than a year ago, he noticed that some rooms defined late in the code in his WIP were not accessible.  I had a chance to use the Hugo Debugger on it and could see how, for no discernible reason, the code execution would just go off the rails once it reached the applicable object.  Changing the order of file inclusion made this object accessible while presumably breaking something else.

We figured at the time that some limit (besides the ones already mentioned) was being overwritten, resulting in a pocket of a corrupted code.  We couldn't deduce which limit we were running into, though.   It was time to consult either Kent Tessman himself or someone else well-versed with the Hugo file format.   We try to not bother Kent too much, though, as creating Hugo shouldn't be a CURSE OF ENDLESS QUESTIONS.  He has more important, family-providing things to attend to (buy Fade In Professional Screenwriting Software today!).   Similarly, we didn't want to bother others who have already done so much for Hugo, so the issue just kind of sat for a while.

Recently, it came up again and we tried to look at the problem with fresh eyes.  I pointed Robb to  Juhana Leinonen's Hugo .hex file inspector page, which verified that objects were redirecting to other things.

He also brought the issue up to Kent around this time, and Kent suggested that either the dictionary or properties table was the culprit.  Robb took out some words and things, and voila, everything works now.

So, the problem was solved, but I still wanted to find out what tools Hugo authors have to check for this.    The issues comes down to the design of the Hugo .hex file, which allocates 64K to the dictionary, special words, array space, events, properties, and objects each.  Hugo was designed to make games playable on 16-bit devices and these limits reflect that.  In Robb's case, he was surpassing that 64K dictionary limit.

One of the quirky things about Hugo is that it has a lot of great features that the documentation doesn't fully explain- either their usage or the situations in which something is especially useful.  Despite the fact that the compiler didn't complain about a too-big dictionary table, I figured that there must be something in there since, in my opinion, Kent really did a great job in planning for a lot of scenarios.

So before I wrote this post, I thought I'd look over the compiler switch options again (since there are several that most Hugo authors rarely use), and indeed, there is a -u switch that shows the memory usage of a compiled game.

Here is an example of a memory usage readout:

          (Top:  $013F44)

+-----------------+---------------+

| Text bank       | $001054 bytes |

+-----------------+---------------+

| Dictionary      |   $0B60 bytes |

+-----------------+---------------+

| Special words   |   $0080 bytes |

+-----------------+---------------+

| Array space     |   $0CE0 bytes |

+-----------------+---------------+

| Event table     |   $0010 bytes |

+-----------------+---------------+

| Property table  |   $0680 bytes |

+-----------------+---------------+

| Object table    |   $0700 bytes |

+-----------------+---------------+

| Executable code | $00FB60 bytes |

+-----------------+---------------+

| Grammar table   |   $0D00 bytes |

+-----------------+---------------+

| Header          |   $0040 bytes |

+-----------------+---------------+

        (Bottom:  $000000)  

So, the values are in hex so authors have the extra step of converting them to decimal, but hey, it can give us a general idea if we're approaching any of those table size limits.

At some point, I will probably take a look at the compiler source and see if it's within my simple capabilities to check for these limits.   In the meantime, I'll probably add a page to Hugo By Example drawing attention to this.   Of course, this whole issue only happens in a game with a lot of stuff so it's possible that Robb will be the only one to ever run into it!


Renga in Blue

Epic Hero #1, Ocean Hunt: Welcome to Winsville

(Continued from my previous posts.) I’ve finished the game, and as predicted, there was not much left to go. I was left before with a crystal rod and a related curious hint. I have no idea what this hint means. What I instead was eyeballing was the “hole in wall” in the description. I was […]

(Continued from my previous posts.)

I’ve finished the game, and as predicted, there was not much left to go.

I was left before with a crystal rod and a related curious hint.

I have no idea what this hint means. What I instead was eyeballing was the “hole in wall” in the description. I was mentally equating that with the DOWN exit; there have been many games where a listed “background item” simply corresponds to a direction, but given I was horribly stuck, it was worth checking if that was really the case.

Anyone with an idea what the deal with the message was? I also was thinking in a structural-solving sense, insofar as the harpoon and rope make for one of the more elaborate puzzles in the game, yet the end result seemed to just be a relatively weak hint (like how the bottle from the ocean also just had a hint, one I didn’t even need because I had already solved the relevant puzzle!

Going inside the new passage, there is a vault, and now is when that number on the island gets applied:

(Of course, there is absolutely no reason whatsoever a sunken ship would have its combination clued by numbers written on a nearby island.. This is one of those adventure-things that gets handwaved off generally, but it really is so much more absurd than “the color on the windowsill matches the combination five rooms away” here; the game is clearly detached from reality in a “gonzo” sense where anything can happen.)

Sorry, not much update even with the analysis there! That’s the risk with adventure game blogging; you sometimes end up stopping right at the end. I do have one historical update, though:

From a Molimerx ad for the Epic Hero series, Computing Today January 1983.

I found the ad above in a January 1983 magazine (which was on newsstands, so it really was up in December ’82); that means I can drop the 1982/1983 business and stick this and the other two Epic Hero games in the Year 1982.

This game did not seem much like we were being heroic or epic, though? I could see calling a series that and diverging later into less epic material, but with this as the first in the series, it’s a curious naming convention. Perhaps Epic Hero games 2 and 3 will live up to the picture.

But for now, coming up: a wildly unusual mainframe game recently rescued and unlike anything featured on this blog before.

Thursday, 12. February 2026

Choice of Games LLC

Out now! “Hearts in Hades: Divine Passion”—Choose romance as the goddess of nightmares!

We’re proud to announce that Hearts in Hades: Divine Passion, the latest in our “Heart’s Choice” line of multiple-choice interactive romance novels, is now available for iOS and Android in the “Heart’s Choice” app. You can also download it on Steam, or enjoy it on our website. It’s 40% off until February 19th! Seduce the man of your dreams as the godd

Hearts in Hades: Divine PassionWe’re proud to announce that Hearts in Hades: Divine Passion, the latest in our “Heart’s Choice” line of multiple-choice interactive romance novels, is now available for iOS and Android in the “Heart’s Choice” app. You can also download it on Steam, or enjoy it on our website.

It’s 40% off until February 19th!

Seduce the man of your dreams as the goddess of nightmares! Will you honor the gods of Olympus or consolidate power and rule the Underworld?

Hearts in Hades: Divine Passion is an interactive fantasy romance novel by Lidia Molina Whyte. It’s entirely text-based, 160,000 words, without graphics or sound effects, and fueled by the vast, unstoppable power of your imagination.

As the daughter of Hades and Persephone, you dwell in the Underworld as the goddess of nightmares, haunting mortals’ sleep and maintaining the tenuous alliance between your realm and Olympus. The Fates have woven you a path to the Messengers’ Council, where you work with Morpheus, god of dreams, and Hermes, leader of the Council.

Now, as rumors of an uprising by Giants begin to stir, and these ancient enemies attack, both Olympus and the Underworld will descend into brutal warfare.

Your parents are keen to strengthen the alliance between the realms by marrying you to Ares, Olympian god of war. Such a unified show of power might stop the slaughter before it starts. But is that what you want? And is that truly what is best for the gods?

Then again, perhaps this political match might be a love match after all. You and Ares were friends as children, and now he is a bronze-haired broad-shouldered vision of strength, rippling with muscles and encased in armor. Yet his warm hazel eyes and adorable dimples are the same, betraying his inner sweetness. How can the god of war give such tender kisses?

Or perhaps you wish to defy your parents’ will? What about your counterpart Morpheus, god of dreams? Smug, silver-haired, infuriatingly handsome, he flits in and out of your life on iridescent wings, leaving honey-scented poppies and satisfied lovers quivering in his wake. He’d be delighted to dominate you in bed, but perhaps you’d prefer to take charge, deciding exactly when, how, and where he’s allowed to come.

Or you could leave the gods and their games behind. There is one mortal who does not fear you, despite the nightmares that you have sent him: Theron, lord of Leukas. He has dark curls, sad eyes, a bittersweet smile; the clever rugged hands of an artisan and the easy power of a true ruler. Can you find true love under the mortal sun?

  • Play as a goddess romancing male gods and mortal men.
  • Romance the surprisingly sweet god of war, the smugly seductive god of dreams, or the charming mortal lord who doesn’t fear you.
  • Control a horde of shadow daemons, and choose their animal form.
  • Match wits with Hermes, supporting him as leader of the Messengers’ Council, or overthrowing him.
  • Beat Medea at an Ancient Greek game of strategy.
  • Pet Cerberus, the bone-chilling three-headed hound guarding the merciless gates to the Underworld.
  • Inspire a clutch of dragon eggs to hatch, and then pet those baby dragons.

We hope you enjoy playing Hearts in Hades: Divine Passion. We encourage you to tell your friends about it, and recommend the game on Facebook, Twitter, Tumblr, and other sites. Don’t forget: our initial download rate determines our ranking on the App Store. The more times you download in the first week, the better our games will rank.


Renga in Blue

Epic Hero #1, Ocean Hunt: Welcome to Killedsville

(Continued from my previous post.) First off, some corrections to statements in my last post: two of the Colour Genie games (from the “Colour Quest” series published by Gumboot) are by Dave Doohan, not Leduc. Leduc is listed on game 4 (Camelot) as a co-author (I’m guessing as authoring the “engine”), and while I don’t […]

(Continued from my previous post.)

First off, some corrections to statements in my last post: two of the Colour Genie games (from the “Colour Quest” series published by Gumboot) are by Dave Doohan, not Leduc. Leduc is listed on game 4 (Camelot) as a co-author (I’m guessing as authoring the “engine”), and while I don’t have a copy of game 5 (Shipwreck) to test and check credits, I now know what the box art of a republished version looks like, and I’m using the word “republished” very loosely.

From the Museum of Computer Adventure Game History. I know this is also Colour Quest 5 from the August 1984 issue of the Colour Genie Auckland District User Groups newsletter.

Game 6 (Fishing Quest) goes back to Leduc but seems to be a remake of Ocean Hunt. So in total he has 6 games, not counting one remake and at least one (probably two) co-authorship credits.

West goes to the garden and north goes to the shop.

I otherwise haven’t seen any differences up to the point where the boat ends up in the ocean.

As promised last time, I whipped out the verb list and tested everything out. Fortunately, the game was pretty good about giving feedback if a word is not in its vocabulary (it explicitly says ‘”WORD” is not in my vocabulary’).

It’s a four letter parser, so the difference between SCREW and SCREAM was unclear, but otherwise the list was unambiguous. I found with TALK on the merchant that he says to drop all treasures at the shop (there’s only two we’re looking for, remember). While noodling around with START I realized it worked on the boat while holding the keys (even if you’re not standing on the boat! I guess there’s a remote keyfob, from, er, 1982).

It turns out you don’t have to worry about the boat floating away, you just need to specify you want to move it somewhere. Unfortunately, that always seems to be hell in adventure games, and here is no different. I finally checked the walkthrough to realize that HEAD DIRECTION works, and later got (what I think is a more reasonable) STEER DIRECTION. The thing that makes this even more bizarre is that it does NOT work in the directions north or south.

“I am not quite sure what you mean” is the same message it gives for a complete whiff of a command that is not understood, but all that’s really going on is you can’t steer north or south! The general layout is:

island – ocean – wharf

So if you want to buy the reel after the boat floats away (since getting the money causes the event to happen), just start the boat and steer east. You can then BUY REEL without getting killed by the shopkeeper, and take it back out to the ocean to THROW REEL.

The MESSAGE has “a drawing of a man entering blue flames”, and I only found it after I got through the relevant section of the game, so buying the reel is technically optional! (I think. I’m not quite done yet with the game.)

Regarding jumping in the ocean with the sharks, and drowning if I tried to SWIM DOWN: I had missed an item on the boat. Back inside where there’s a bed, I had found I could GO BED and find items on shelves, but confusingly, you can LOOK BED twice to find two more items (that you don’t see actually going on the bed, because early 80s adventure logic).

The purple pill makes you feel GASSY and allows you to swim underwater (the pill does eventually run out, but it takes a while). The flashlight is the standard LIGHT/UNLIGHT kind and I’m guessing it also eventually runs out (but again, pretty generous on the timing).

from here you can swim along some “ocean floor” rooms and it took me a while to understand I was in a maze; I’m used to underwater ocean rooms being more of a grid like The Palms, although to be fair that game had some confusing exits as well). You can map it with the standard “drop items” technique that dates all the way back to Crowther Adventure.

Just like The Palms, there’s a crashed boat, but in this case something about it doesn’t make sense (and I had to use the walkthrough again).

The inside has a harpoon gun and a telescope. LOOK TELESCOPE just says you see your eye; I tried taking the gun over to the sharks and shooting them but the game didn’t understand what I wanted.

Trying to GO STAIRS kills you in a hilarious and confusing way.

What I was not understanding is that the inside of the liner is not underwater. You can’t swim to the hole, you have to actually tie the rope to the harpoon, and then fire it in the hole and climb the rope. I simply followed the walkthrough steps in bafflement, and then had to stare at what happened for a while before I realized what the game was meaning. (I haven’t needed the walkthrough on anything else, but I also haven’t finished the game yet.) I suppose the weird stairs message might have been a clue but generally this game is styled around a tenuous grasp of reality anyway (which is fine story-genre-wise, but it makes puzzles harder to solve!)

We will get back to “crystal does’nt cause explosions” later.

The fact there is only a message suggests the harpoon thing might have been optional anyway; I don’t know. But let’s move on to the island! STEER WEST while out in the ocean:

Note the 4737 you can see with the telescope. I think this use was being hinted at by the note at the shopkeeper, when it referred to looking at an island closely. I have not applied the 4737 clue yet.

Everyone loves the self-insert. If you LOOK LEDUC:

He’s writing the next Epic just for you!

The woman is a little more trouble. She blocks the way in the cave, and “looks hungry”.

There are two food options. One — the more obvious one — I’m fairly sure is wrong. You can GIVE SALT and she’ll say “Fish and Chips!” and disappear.

Alternatively, you can give the candy bar. She “turns green and dies in agony.”

Considering you could eat the same bar and it was delicious, I assume she’s meant to be some sort of demon. Except maybe a British demon because of the Fish and Chips reference? This feels like some sort of inside-Nottingham joke I’m missing (remember all three Epic games were made in 1982 before being published in 1983, so likely were treated more like a “private” games by the author, just like with Campbell’s Fairytale).

I think the candy bar is right because you need the salt shaker later.

Going inside the cave, there is a “mouth”, which looks like it ought to be just a geographic feature…

…but is just an actual mouth. I don’t know if this is simply a gag like the quid/squid or something that gets used later.

Going north instead, there’s a room with a green, red, and blue stone; the stones can’t be taken. There’s an arch, and if you go in the arch, the room “feels wrong” although you can take the metal rod there seemingly without hurting anything.

TOUCHing the stones is the answer (thank you verb list!) as they’ll glow either green or red as you touch them, suggesting a combination lock. I eventually got into a “sacrifice and altar room”.

The next bit is hard to find, but the two solutions with the woman suggested (in a structural-solving sense) either the chocolate bar or the salt were still important. The salt turns out to be needed:

You can then GO FLAME; hinted at by the bottle in the ocean, although I want to re-emphasize I did this prior to getting the hint. The “sacrifice” thing seemed suggestive to me!

The diamonds are a regular treasure that you can deposit at the store right away; the crystal rod is not. I have no idea what to do with it. The message underground said something about it not being explosive but I haven’t been able to translate that into action.

Just to recap my items: fishing reel, shark repellent, crystal rod, telescope, metal rod (from the “bad” arch exit), keys, flowers, blanket, harpoon gun, squid, and some various messages. I suspect I just need to do the right thing with the crystal rod but I haven’t chanced upon it yet. We may get a win in a single puzzle, or it might still be a couple. Either way, I don’t think there’s too much farther to go.

One of the more amusing tape covers from Gumboot. That’s “Jet Set Billy”, not “Jet Set Willy”. Legally distinct! From the Centre for Computing History.

Wednesday, 11. February 2026

Zarf Updates

When is a bug not a bug?

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 ...

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 a new post.

(Is my blog going to just be a stream of Infocom trivia for the next two years? Maybe! I'm winging it here.)

Why doesn't the cyclops fight? Well, it's these lines of code:

  <SET CNT 0>
  <REPEAT ()
      <SET CNT <+ .CNT 1>>
      <COND (<EQUAL? .CNT .LEN>
         <SET RES T>
         <RETURN T>)>
      <SET OO <GET ,VILLAINS .CNT>>

Translating to more familiar pseudocode:

  CNT = 0
  repeat {
    CNT++
    if (CNT == LEN) return
    OO = VILLAINS[CNT]
    // this monster attacks
  }

The VILLAINS table is an LTABLE, 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 CNT is 3, so the cyclops never attacks. Simple.

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.

(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.)

The point is, Mini-Zork has essentially the same logic, except the cyclops has been removed from the VILLAINS table. (His combat responses have been removed as well.) So the table LEN is 2, and the thief never attacks. That is clearly a bug. And the buggy line is <EQUAL? .CNT .LEN>.

(<==? .CNT .LEN>, because this version of ZIL let you abbreviate the operator. Means the same thing though.)

So am I really saying that the same line of code is a bug in Mini-Zork but not a bug in Zork? Sure! A bug is when the code doesn't do what you want. Infocom manifestly wanted the thief to fight but not the cyclops.

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 VILLAINS checks its length. So the change should have been safe, but whoops, it wasn't. It resulted in a bug in Mini-Zork.

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, bad code. Different situation entirely.

(Not a criticism. All IF games are made of bad code. It's just the nature of the beast.)


Let's compare a different bug (non-bug?) which also popped up in Discord discussion.

The strange machine in the depths of the coal mine is defined this way:

<OBJECT MACHINE
  (IN MACHINE-ROOM)
  (SYNONYM MACHINE PDP10 DRYER LID)
  (DESC "machine")
  (FLAGS CONTBIT NDESCBIT TRYTAKEBIT)
  (ACTION MACHINE-F)
  (CAPACITY 50)>

You can refer to it as a MACHINE, or a DRYER (the description says it's "reminiscent of a clothes dryer"), or a LID (so that OPEN LID is a synonym for OPEN MACHINE). Or you can call it a PDP10. A PDP-10 doesn't look anything like a dryer (fridge, sure) but any Zork insider would be familiar with the thing. Both MIT Zork and Infocom's version were developed on PDP-10 hardware.

So, great in-joke. Except it doesn't work:

>examine dryer You can't see any dryer here!

>examine pdp10 I don't know the word "pdp10".

(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.)

Here's a how-de-do! What happened?

To answer this, we must dig into the ZIL dictionary format. These words (MACHINE, DRYER, etc) aren't stored in plain ASCII. They're compressed using the Z-machine's text compression scheme.

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.

(Then there's three flag bytes at the end of the entry, but those aren't relevant here.)

The six-character limit is well-known. You can type EXAMIN LANTER 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 multi-character sequences: a "shift" code followed by a shifted value.

So the word PDP10 gets encoded as the sequence P D P shift 1 shift 0, or:

10101 01001 10101 00101 01001 00101
  P     D     P   shift   1   shift

The final 0 gets cut off, because it's the seventh Z-character.

Like I said, lots of game words get truncated. What's different about this one? It's truncated in the middle of a multi-character sequence. Apparently Infocom's ZIL compiler gets confused by this and omits the stop bit! (Remember the stop bit?) And that confuses the parser, so the word can never be matched.

I looked through the game dictionary and found another example of a missing stop bit. (I wasn't the first to do this.)

<OBJECT DAM
  (IN DAM-ROOM)
  (SYNONYM DAM GATE GATES FCD\#3)
  (DESC "dam")
  (FLAGS NDESCBIT TRYTAKEBIT)
  (ACTION DAM-FUNCTION)>

The backslash is just a source-code escape. This synonym word is supposed to be FCD#3 (Flood Control Dam #3), but again, the word is not recognized.

So the inevitable question: is this a bug? If so, where?

It could be an interpreter bug. After all, the text encoding spec I mentioned isn't an Infocom document. It came out of the IF community of the mid-90s, a time when we didn't have any Infocom documentation. Maybe the game is correct and my interpreter is wrong!

Well, we can check that. Fire up Zork 1 on the Apple 2!

The opening of Zork 1, displayed on the characteristic Apple 40-by-24 display. All of the text is upper case. The errors "I don't know the word PDP10" and "I don't know the word FCD#3" are visible. Zork 1 running on an Apple //e emulator, courtesy of the Internet Archive.

Scratch that idea. My interpreter is behaving correctly, or "the same as Infocom's interpreter", anyhow.

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:

<OBJECT TREE
  (IN LOCAL-GLOBALS)
  (SYNONYM TREE BRANCH)
  (ADJECTIVE LARGE STORM ;"-TOSSED")
  (DESC "tree")
  (FLAGS NDESCBIT CLIMBBIT)>

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 STORM as a synonym. But the -TOSSED part is commented out.

Why? We don't have source code from earlier Zork 1 releases. But we do have compiled game files, and several of them have the word STORM -- with a missing stop bit.

Clearly, this was compiled from the word STORM-TOSSED, and ran into the same compiler bug. But this time, the developers noticed. They figured out what was wrong, and commented out part of the word to avoid the problem. But they missed the parallel situations of PDP10 and FCD#3.

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.

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!

(This entry is cross-posted to the Patreon site.)

Tuesday, 10. February 2026

The People's Republic of Interactive Fiction

February meeting (online)

The Boston IF meetup for February will be Monday, February 16, 6:30 pm Eastern time. We will post the Google Meet link to the mailing list on the day of the meeting. 

The Boston IF meetup for February will be Monday, February 16, 6:30 pm Eastern time. We will post the Google Meet link to the mailing list on the day of the meeting. 


Renga in Blue

Epic Hero #1, Ocean Hunt (1982)

In the April 1984 edition of Imagine magazine, intended mostly for tabletop gaming, Mike Costello (editor of Wargame News and Warmachine) started a column devoted to home computer gaming. Many readers will already be familiar with the Adventure games that have been available on nearly all micros from the dawn of microcomputer history (about 1976). […]

In the April 1984 edition of Imagine magazine, intended mostly for tabletop gaming, Mike Costello (editor of Wargame News and Warmachine) started a column devoted to home computer gaming.

Many readers will already be familiar with the Adventure games that have been available on nearly all micros from the dawn of microcomputer history (about 1976). These sub-divide into a number of different types. The text-only Adventure is the most widespread, not because it is simpler than the others but because it is easier to rewrite a program of this kind for a variety of machines. The Scott Adams Adventures are the best known, but a number of authors have tried their hand at this type of game. In the UK, the machine-code Adventures by Marc Leduc and Brian Howarth have become well known to TRS-80 users, and the Brian Howarth Adventures are now being rewritten for a number of other machines.

Brian Howarth we’ve now seen quite a few times now (with games like The Arrow of Death and Circus); he’s given enough direct interviews that his history is mostly well-understood. (The exact story behind him switching to using the Scott Adams database format for his games is still messy, but at least we know enough about him for there to be a historical riddle in the first place.) Marc Leduc, mentioned in the same sentence, has not yet had any coverage here at all, and he’s had very little attention from modern writers.

The TRS-80/Genie Users Group of Nottingham was founded in 1980, meetings twice a month at the Wilford Moderns Rugby Club House. They had a club magazine, LPRINT, edited by Geoffrey Hillier.

2015 photo of the location. Source.

Marc Leduc was the chairman; what is unusual is he was also the chair of a second group, the National Colour Genie User’s Group. They had their own distinct magazine, Chewing Gum.

THROUGHOUT THIS MONTH’S MAGAZINE, YOU WILL FIND LOTS OF PROGRAMS TO TYPE IN. WE HOPE YOU ENJOY THEM ALL, AND WOULD LIKE TO TAKE THIS OPPORTUNITY TO THANK ALL THE AUTHORS FOR THEIR TIME AND EFFORT.

I’ve gone through before how the Video Genie was a clone from EACA of the TRS-80; in Germany, the Video Genie name established itself well enough that EACA produced a color version. This was made without reference to the Tandy Color Computer. That is, even though the company started with a clone, they used that as a basis to make their own machine. Tandy’s CoCo is a hardware reset of sorts; the Colour Genie is instead more along the lines of “let’s just take a TRS-80 and add color to it”.

It is ultra-rare and mostly only known in Germany (where the Genie name held more stock than Tandy’s for historical reasons I’ve gone into detail about before). However, it did make it over to the UK, where it flopped in sales. Notice how Leduc is chair of a local TRS-80 group but a national Colour Genie group. The Colour Genie group even ended up making their own publishing label, Gumboot.

Leduc’s first Color Genie Game, via the Centre for Computing History. We’ll get back to this game in the future.

There’s a recollection from 2021 of the user group via Bernard Telemoid, who might have been the artist? Except there was a second cover from Gumboot used on their games generally, so I’m not sure which is his. Note Telemoid is not positive about Leduc’s games but I’m going to decide about that on my own (…weird to call adventure games in general “Scott Adams rip offs”…).

i used to go to the TRS-80 users group (later became the TRS-80/Video Genie user group, mainly cos my dad had started selling VG’s and he lobbied for the change) with my dad in the early/mid 80’s, held in a rugby club in wilford weekly, loads of great characters and discussions about EEPROM writing, machine language, programming the Z80 and the sublime beauty of the RS-232 interface (still a standard in many high level computing connections) of course i went for the crisps and fizzy drinks and of course the other children of electronics engineers, medical physicists and mathematicians.

It was through this i got my first paid work in the arts, designing awful cassette covers for Marc Leduc’s awful Scott Adams Adventure rip offs like ‘Find The Diamond Of Balmorlan’, i think it was he who showed me that if you press ‘break’ you could view the guts of the program and edit your own narritive into it, so i remixed a shit maze chase game into ‘Death Droid’ and gave it to people at school.

The Nottingham group was so prominent in the English-language Colour Genie space (essentially victory by default) that when EACA wrote a BASIC manual for the Colour Genie, it came with a free tape containing programs from the group.

Leduc wrote three games for TRS-80/Genie and then six for Colour Genie. The three for TRS-80 eventually ended up published by Molimerx (prior background here), and Harding’s spiel about the game is in his usual style of “honesty with no attempt at marketing spin whatsoever”.

“Although Brian Howarth’s series, Mysterious Adventures, essentially monopolizes the TRS-80/Genie (and now many other machines) adventure market, other English authors are still writing adventures from their own particular discrete viewpoint.” In other words: I know who my best-selling author is, but have you considered buying an adventure game from a different author?

A December 1982 catalog does not contain the game so it appears to not have been officially published until sometime in 1983, but awkwardly, not only did Leduc finish all three Epic Hero games with a copyright of 1982, he started his new Colour Genie series in 1982 as well. Especially given the role clubs played during this era in distribution (with “libraries” of games for sharing), I think it likely Epic Hero made it out at least to the local Nottingham area before being published; adding on the fact the Colour Genie games ended up more-or-less self-published, is a date of 1982 or 1983 more appropriate? (CASA uses 1983.) I’m listing both in the title but sorting in 1983 for now, but it’s possible some issue of LPRINT will emerge that throws this for a loop (I haven’t been able to find any copies). ADD: This lands in 1982; see the last post in this series.

I don’t have anything detailed yet about Leduc himself, other than based on his dedications to his wife and kids in various games I think it is safe to say he was not one of our 15-year-old prodigies.

Our goal is to go to the ocean, retrieve two treasures, and come back.

The Charlau I was puzzling over for a while as it is just described as a “beaut” but it is actually the name of a houseboat. Let’s stick with land first, by going east:

There are flowers hiding keys (your keys, I presume, since they go to the boat you end up heading to the ocean on). You can also climb the tree to find a rotten hole with a salt shaker.

From the wharf, picking up the quid and instead going south:

That’s not a quid, that’s a squid. Hilarious. (It likely borrowed this moment from Mystery Fun House with the “five dollar bill” but without the existential confusion of now carrying what I assume is a large squid.)

The leaflet just hints “Look closely at Kikimawa Island” which I haven’t gotten to yet; you can try to just take the reel but the merchant just shoots you. (Similar to The Golden Voyage, if we’re staying with the Scott Adams references.)

Hopping onto the boat, there’s a rope and a bar of chocolate (you can eat the chocolate, and the game says it is delicious, but with no further effect; I don’t know if this is a red herring style game yet or if everything is important). The door unlocks with the keys from the flowers.

Inside you can climb up to a bed and find shelves with some shark repellent and some money (as long as you LOOK SHELVES more than once, but that’s pretty standard for this era).

After going inside (and only after going inside, this is essentially an event-based trigger rather than a time-based one) you find that the boat has now moved and you’re in the open ocean.

I would assume the rope could be used to tie the boat to the wharf, but I’ve tried TIE ROPE / WITH NOUN on every feasible noun both on the boat and on the wharf. I’m not sure what’s going on. The money presumably should be used to buy the reel before we take off for the ocean.

Even with the path being “wrong” we can still do a little preview of what it is like jumping into the ocean. It’s fine as long as you are holding the “shark repellent”, and I’m not sure what to visualize that as.

The only way (seemingly) to go is down, or more specifically SWIM DOWN, but that just causes drowning.

I think I need pull out the bigger guns on this parser to make any progress. If all else fails, there is a walkthrough, but this is the only Leduc game out of his nine that has one, so it’s better for me to try to figure out his mindset as much as possible now while I still have a fallback. Everything is in machine code so I can’t just expect to prod at BASIC source code on his later games.

Monday, 09. February 2026

Choice of Games LLC

Coming Thursday! New Heart’s Choice Game “Hearts in Hades: Divine Passion”—Demo and Author Interview Out Now

Seduce the man of your dreams as the goddess of nightmares! Will you honor the gods of Olympus or consolidate power and rule the Underworld? Hearts in Hades: Divine Passion is an interactive fantasy romance novel by Lidia Molina Whyte. It’s entirely text-based, 160,000 words, and a 4/5 peppers on the Heart’s Choice spice level rating! I sat down with Lidia to talk about her upcoming gam

Hearts in Hades: Divine Passion
Seduce the man of your dreams as the goddess of nightmares! Will you honor the gods of Olympus or consolidate power and rule the Underworld?

Hearts in Hades: Divine Passion is an interactive fantasy romance novel by Lidia Molina Whyte. It’s entirely text-based, 160,000 words, and a 4/5 peppers on the Heart’s Choice spice level rating! I sat down with Lidia to talk about her upcoming game and how a journalist and fiction writer moves to interactive romance.

Hearts in Hades: Divine Passion releases this Thursday, February 12th. You can play the demo today and wishlist it on Steam—even if you intend to buy on a different platform, it really helps.

This is your first time writing interactive fiction but you have a broad background as a writer in general. Tell our readers about yourself!

I have been writing professionally for about 12 years. I started out as an editorial assistant for a local food and culture magazine while I was still at university. I went on to complete a master’s degree in creative writing (though I firmly believe formal education isn’t necessary to be a writer) and have since worked across a variety of mediums including comics, short stories, film, and even an interactive walking adventure. Hearts in Hades is the longest project I’ve finished to date, but I’m currently working on my second long-form project, a fantasy novel inspired by Die Hard. I’m also an editor and regularly help writers get their manuscripts in good shape before they go on sub or are published. I’m not at the stage where I can survive off my creative writing and editing income alone just yet, so I also work as a copywriter and a media, film and TV journalist. There’s a lot going on, but it keeps things interesting!

This game started out with very little spicy content, but as you found your feet, it felt like a natural fit for the story being told. What drew you to the Greek gods for this setting and that kind of content?

I have always been a huge Greco-Roman mythology nerd. Before I pitched to Heart’s Choice, I had been toying with the idea of writing something inspired by the Orphic Hymn to Melinoe, but I wasn’t sure what shape it might take yet. At the time, I was going through a Hesiod phase, had just finished Madeline Miller’s Circe, and was enjoying Emily Wilson’s translation of The Odyssey, so I was very much in the mood for a setting involving gods, mortals and fate. I’m also a big fan of fantasy with strong and complex romance subplots, so it felt like a natural fit; Greek mythology is full of epic love stories (although most of them are extremely dysfunctional by modern standards).

Still, after the pitch was accepted, I was a little hesitant to go all out on the spicy content, even though the source material I was drawing from had no shortage of references to it. I was already stepping out of my comfort zone by tackling interactive fiction. The prospect of learning to code and getting comfortable with a whole new approach to characterisation was daunting enough. Did I also want to add writing fully explicit scenes for the first time to the mix? Once I got to writing, though, I realized I didn’t want to hold myself back like that. I’m so glad I did, because even though they were super challenging to get right, those scenes ended up being some of the most interesting to write. And fun, too!

The romances in this game are intense. If you had to choose, do you know which romance option you’d prefer?

That’s a tough question! I challenged myself to write each romantic option as compellingly as possible. Basically, I wanted to make it really hard for players to choose. I think I might’ve succeeded because I’m struggling to pick myself. I’m a huge enemies-to-lovers fan so I would probably be drawn to Morpheus in a first playthrough. There’s something irresistible about two characters being their worst, pettiest selves with one another and working backwards from there into falling in love. Though I would find it difficult not to romance Ares as soon as he gave me cake, or Theron following that first encounter on his balcony. So it truly would be anyone’s game, I think.

What did you find most surprising about the writing process or the stories you ended up telling in Hearts in Hades?

So many things on both fronts! The most challenging part for me was learning the code. I’m not a very technically-minded person, and I’m atrocious at maths. But once I got to grips with it, I was very surprised at how this style of writing shifted my perspective on storytelling as a whole. I had to do a lot of internal rewiring, but it’s been so worth it. I ended up finding a lot of satisfaction in attacking the same problem in a variety of different ways, and loved not being confined to a single narrative. A specific element I didn’t anticipate would be so rewarding was writing failure scenes. I often found myself trying to make them as narratively enticing as the successes, despite potentially leading to negative consequences or outcomes.

What games do you enjoy playing yourself?

Perhaps unsurprisingly, I’m a big Hades and Hades II fan, and though I beat both games a while ago, I keep going back time and time again. Still also playing Baldur’s Gate 3 regularly (I don’t think I’ll be able to stop until I’ve romanced all the characters). One of my all-time favourite games and the one that inspired me to try out interactive fiction is 80 Days, which I usually replay once a year. On the tabletop side of things, I love playing D&D and very occasionally dabble in DM-ing. My husband and I also enjoy starting weekend days with a board game over breakfast. Our current favourite is, perhaps also unsurprisingly, Iliad, but Wyrmspan and Small World are close seconds.


Renga in Blue

Cosmo Cross: The Thing’s Hollow—It Goes on Forever—

(Continued from my previous posts.) I was missing one reasonably simple (but still hard to find) action in order to escape with the Bluestone; I did try the next part of the game but it didn’t go well. Just as a reminder, I had found a key, the bluestone, a gun, and a memo, and […]

(Continued from my previous posts.)

I was missing one reasonably simple (but still hard to find) action in order to escape with the Bluestone; I did try the next part of the game but it didn’t go well.

Just as a reminder, I had found a key, the bluestone, a gun, and a memo, and I was now looking for a way out of the base on the planet of Ariosferia. I received the verbs USE, TAKE, SHOOT, and PUSH from pressing the HELP key.

Kazuma Satou informed me in the comments that I had missed a feature; if you are being prompted for a noun, you can hit HELP in order to get them listed by the game. Hence you don’t have the guess that the GUN is a GUN (assuming you’ve understood this aspect from the instructions).

I went around every surface of the game trying to apply USE, SHOOT, and PUSH in order to see if I could get some kind of reaction. It turns out the end-hallway figures are very different.

This is the end of the hallway on the left.

This is the similar-looking end of the hallway to the right.

If I tried USE on the right side (and only the right side) the game was asking me for a noun. I went through my held items and found that using the KEY then went back to asking me for a verb again, and I was very confused since it didn’t seem like anything happened, and in fact the game is prompting you for your next turn a specific action, and if you don’t that it resets the variable (that is, you go back to needing to USE KEY again). If you type OPEN right after using the key you reveal hidden switches.

This is an entirely random choice, and there’s no save feature to the game, so after struggling through the combat and going through the sluggish adventure session you now have a one-third chance of just dying. Good luck!

(For me the correct switch was SWITCHA.)

(Immediately after this scene, the game does a LOAD”CAS:” to open the next part of the game. You can theoretically LOAD”CAS:” twice from the start to jump to part 2; only not knowing the password is stopping you.)

We’ve been teleported back to the ship and are ready to go onto the next phase. Unfortunately, the ships are just as irritating and deadly as before. (At least not invisible; the comment in the Oh! MZ guide said something about this but it meant that their movement is invisible; that is, you don’t see sprites smoothly changing places but rather “jumping” between points like an old LCD handheld game.)

Reader, I tried. I tried for far longer than I really ought to have. I tried using Antimicro to map my gamepad to the right keys; while this made playing a little more comfortable, but it didn’t change the fact that the laser movement is outrageously slow compared to how quickly you get destroyed, and this level has the downside of it not being as obvious which planet you’re aiming at (you’re going for something red … I think).

Mid-warp.

Attacked. This enemy is in a good spot, but that’s no guarantee for the next five enemies.

It was time to resort again to hacking.

This is me typing in a replacement line. Compare it with the original two lines up.

After the game had a moment of confusion it brought me INTO ORBIT, closed the spaceship window, and opened it again on a red environment with a dot in the background. I could use warp to get closer and aim but without any enemies around.

The dot was constantly moving to the right so I kept having to adjust my center aiming every few steps of warp.

The controller for the planet launcher is supposed to be a black rectangle.

Once I reached the screen above (and pressed F5, although I am unclear if I needed to do that), a very very long cutscene started. It is long in that it is being drawn on a PC-88 and I found in the end weirdly magnificent and impressive. I would probably not find it so impressive if I died in the scene after and had to redo the entire thing.

I’m showing far more screenshots than usual. Keep in mind each frame lasts about two seconds, and I’ve still cut many of the in-between frames.

And then…

…a sea of monoliths. You now can control movement, using up/down/left/right, with it being agonizingly slow as a bar fills at each step.

Midway filling a “charge” that will turn us a step to the left.

Pressing F1 will show either an arrow left, arrow right, or double-arrow (which I think indicates “you’re pointed the right way”). The problem is you need to navigate the monoliths without hitting things.

My spaceship being destroyed because it collided with one of the monoliths.

I found this section terribly confusing as it doesn’t appear like the things you hit are the monoliths? Or at least you can sometimes steer towards what appears to be an empty path, move forward, and crash.

Moving forward here crashes into apparently nothing.

The goal, according to the manual, is to find a series of six rectangles that you shoot with the Revival Ray (powered by the Bluestone) and you’ll be able to escape. Oddly enough, it appears to be impossible to crash moving backwards, so the way to position yourself is to slide far to the right (past whatever hitboxes the game thinks are there, visible and invisible) and slide forward the right amount, then slide back into place. At least I think this is the strategy, as I haven’t found a single one of the rectangles, and this is with occasionally hitting the “speedup” key to keep the sluggish movement from being so sluggish.

I’m far past adventure territory so I can consider this one done. The cinematic ambition is impressive and I found the imagination of both “act 2” sections I experienced to be exciting, just janky and undercooked for BASIC source code on an ancient system. The “ship docking” section with giant monoliths made me think the author was trying to make cinema more than a game. Not only thinking of 2001 here, but the long special effect sections of Star Trek: The Motion Picture.

On my timeline of early Japanese adventure games, this technically lands somewhere in November of 1982, as the earliest ad that Rob found was in December of 1982.

Given the by-hand local distribution early in Osaka, I’m inclined to think that month might bump back a little, after Mystery House II but before Diamond Adventure. However, other games (like Diamond Adventure) may have ended up in displays in local computer stores early as well, so for consistency I’ll place in November against the ones we’ve played:

Xtal will return with more adventures, so if nothing else, this gives a preview of what their kind of thinking might lead to. There’s even a sequel to Cosmo Cross by the name of Grand Cross, sorted as “ADV/RPG” although I’ll worry about what sort of genre it really falls into once I get past 1983.

Sunday, 08. February 2026

Zarf Updates

To fight a troll

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! ...

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! But some folks got to talking about it on the Discord, and I realized there was room to add some visualization. So Visible Zork 1 now has a "Combat" tab. You can try it now, or just read it right here.

(The Visible version is dynamic. It shows how enemy strength decreases as you fight them. Also exciting details like the "enemy wakes up" timer.)

The villain table describes the three enemies you can fight. (Although the cyclops does not follow regular combat rules, so his entries are never used.)

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 STRENGTH, which is really a property rather than a table entry, but I’m including it here anyway.

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.

The combat table 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”.

(For the computation of combat strength, see FIGHT-STRENGTH and VILLAIN-STRENGTH.)

Then roll a nine-sided die. Outcomes (for the defender) are: miss, staggered, light wound, serious wound, unconscious, killed.

A table showing various outcomes depending on the defender and attacker strength and a random number from 1 to 9.

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.)

A few observations and questions:

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.)

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.

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 kill 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.

In early versions of MIT Zork, you could fight the cyclops, but that was disabled in favor of sneaky solutions. The real question is, why did they leave the cyclops combat responses 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.


Finally, a combat bug -- newly discovered on our Discord, as far as I know.

Let me summarize the HERO-BLOW routine, which handles your attacks:

  • Set ATT to FIGHT-STRENGTH (your adjusted combat strength);
  • Set DEF to VILLAIN-STRENGTH (the opponent's adjusted combat strength);
  • If the opponent is disarmed or unconscious, you kill them automatically;
  • Otherwise roll on the combat table;
  • Decrease DEF if you rolled a hit;
  • Call VILLAIN-RESULT, which stores DEF as the opponent's STRENGTH and kills them if that's zero.

What do we mean by "adjusted combat strength"? Well, the VILLAIN-STRENGTH routine checks whether PRSI (the parsed indirect object) matches the villain's weakness. This is a crude way of checking whether you typed KILL TROLL WITH SWORD or KILL THIEF WITH KNIFE, as distinct from any other weapon. If the weapon matches, VILLAIN-STRENGTH returns a value decreased by one (but not to zero).

(I think this decrease would also happen if you typed PUT LAMP IN SWORD on the same turn that the troll attacks you. Possible additional bug! But not the one I'm talking about.)

Notice that the weapon penalty makes its way from VILLAIN-STRENGTH to the DEF variable to the opponent's STRENGTH -- regardless of your roll! So if you attack the troll with the sword and miss, the troll's strength goes down by one anyway. (Unless it's already at one.) A light wound does two damage, and a serious wound does three.

The same goes for attacking the thief with the knife, of course. A miss will cause damage.

(To be clear, this only happens when you attack. The converse VILLAIN-BLOW routine does call VILLAIN-STRENGTH, but it doesn't call VILLAIN-RESULT. The decreased enemy strength value is discarded and doesn't affect future turns.)

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 significantly harder -- particularly the thief fight, which necessarily goes several rounds. Would anybody want that?

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 outcome is what Infocom wanted. Or at least, they were satisfied with it.

(This entry is cross-posted to the Patreon site.)