Update: Find out more about the 50 Years of Text Games book and the revised final version of this article!
Curses
by Graham Nelson
Released: May 9, 1993 (IF Archive)
Language: Inform
Platform: Z-machineOpening Text:
It's become a matter of pride now not to give up. That tourist map of Paris must be up here somewhere in all this clutter, even if it has been five years since your last trip. And it's your own fault. It looks as if your great-grandfather was the last person to tidy up these lofts...
Note: contains brief mention of spoilers for several puzzles, but none you’re likely to remember by the time you reach them in play.
It would have been a safe bet in 1993 to say the text adventure was dead. That year saw the last release of a traditional parser game by a mainstream publisher: Legend Entertainment’s Gateway II: Homeworld, a sequel only greenlit because the original had sold unexpectedly well. But the unlikely success was not repeated. The bestselling games of the year would be CD-ROM extravaganzas like Myst and The Seventh Guest loaded with animations, music, voice acting, and video. Infocom—once the king of interactive story—was out of business, its lauded text games now in the remainder bin if they could still be found at all. It did not seem likely the genre they helped popularize would ever come back.
Some fans had tried to take up the mantle themselves. But gamemaking tools, even for text games, were still often awkward to use, lacking in power, or expensive. Programs like AGT (Adventure Game Toolkit), PAW (Professional Adventure Writer), or TADS (Text Adventure Development System) were commercial products or shareware, requiring paid registrations to unlock their advanced features; and even the full versions had trouble matching the capabilities of the best ’80s IF, developed with proprietary engines considered trade secrets. Finding and sharing amateur games was also difficult before the web, with communities split between local bulletin boards and standalone services like CompuServe, GEnie, or Prodigy. Some amateurs struggled through these hoops for the joy of making and sharing new games, but most interactive fiction fans in the early 1990s were going through a period of mourning.
Usenet newsgroups were becoming popular service-agnostic hubs for discussion, and by 1993 IF refugees had taken over a pair of them: rec.arts.int-fiction and rec.games.int-fiction. Like many text game communities of the time, they were mostly looking backwards. The first week of May that year saw posts in the IF newsgroups on the best and worst Infocom endings, hint requests for Zork and Planetfall, a thread about the Infocom spin-off novels, a comparison of Sierra’s graphical games to Infocom’s text ones, and discussion of a bug in one of the company’s last titles, Sherlock. But on May 9th, someone named Graham Nelson interrupted the nostalgia to post something rather extraordinary:
Infocom game story files are as near to a universal format as we have for interactive fiction games, but until now it has been very difficult to construct them, and I am not aware that anyone has previously created them outside of Infocom itself.
I have written such a compiler, called “Inform”, the ANSI C source of which is public domain. It is not a marvellously well-written program, but it does work, and it is documented. ...I have no objection to anyone using its output for anything they wish.
The modest announcement was a Promethean moment for the cold and huddling text game masses: a chance for anyone with some coding skills to create their own new games in a beloved studio’s engine. Along with his compiler, Nelson also announced—by the way—a new full-length game in the style of Infocom that he’d written to test it. The twin releases of tool and game would lead to an extraordinary resurrection: an interactive fiction renaissance that sparked an explosion of new games and decades of experimentation, some of which would become influential on the mainstream game industry and scholarly understanding of the possibilities of interactive narrative alike.
All of it almost didn’t happen. Nelson had first made his announcement at the end of April, and became depressed when nobody seemed to care: he received not a single response. It was only a week later that he realized his newsreader was glitching and his message had never been sent. Had he given up before noticing the problem, the history of interactive storytelling might have been rather different.
Nelson, a first-generation college student from a middle-class family, was then working on his mathematics PhD at Oxford. Half a year before his newsgroup announcement, he’d tracked down a hefty box of software called The Lost Treasures of Infocom. Activision, years after purchasing the beleaguered interactive fiction studio and later shutting it down, had decided to raise some money by reissuing Infocom’s back catalogue in an omnibus collection. For fans of a company that had spent nearly a decade creating titles praised for their craft and quality, this was a veritable treasure trove, an entire body of acclaimed work now affordable and at gamers’ fingertips: games like Suspended, Trinity, A Mind Forever Voyaging, Enchanter, Deadline, Hitchhiker’s Guide, and many other influential titles besides. “If Infocom is to be compared with Shakespeare,” Nelson later wrote, “then this was the First Folio.” Nelson had played a few of the Infocom games as an undergraduate, but now—not a fan of the turn toward first-person shooters and military themes that mainstream games were taking—he intended to devour the rest.
But first he faced a more immediate challenge: how to play the Lost Treasures games on his incompatible Acorn Archimedes computer. Due to the fragmented nature of the early home computer market, Infocom had built a system-agnostic virtual machine to run their games, the Z-machine; Z for Zork. Once this existed, they could simply write an interpreter program for that machine that ran on each platform they wished to support, making all current and future titles at once playable on each new architecture. But Nelson’s Archimedes had only been sold in the UK, and US-based Infocom had never built an interpreter for it. Poking around on Usenet, Nelson learned that a group of Australian college students calling themselves the InfoTaskForce had reverse-engineered Infocom’s story format to write their own interpreter in C, easy enough to compile on most any modern machine. Without much trouble, Nelson built the InfoTaskForce interpreter on his Archimedes and could easily play all the story files from the Lost Treasures disks: the beauty of the virtual machine design meant the games ran just fine on a platform they’d never been tested on or previously compiled for.
But the new interpreter implied an intriguing corollary. If you understood the Z-machine well enough to emulate it, you should also understand it enough to write new programs to run on it. All you’d need would be a human-readable way to specify those programs—a programming language—and a compiler that could turn its programs into Z-code. While it was known that Infocom had used an in-house language called ZIL (the Zork Implementation Language) to create their games, its specifics had never been made public. Nelson, intrigued by the idea of writing new games in Infocom’s engine, began to hack together his own solution. Having once written a compiler called “teraform,” he decided to christen his new one “Inform,” later retronymically styling it as an “Infocom-format compiler.” While the language and compiler were relatively straightforward (at least at first) Nelson spent most of his time on an ambitious game to thoroughly exercise them, demonstrating that Inform was capable of producing something equal to the complexity of any Infocom jam. His game was called Curses, and it was the first released program written in Inform. The decades to come would see thousands more.
When Inform and Curses debuted on the newsgroups, the reaction at first was muted (even after Nelson fixed his newsreader). It might have all felt, perhaps, too good to be true: the year had seemed destined for disappointments, not miracles. Yet responses slowly began to accrue. “Is anyone else playing curses,” someone posted a week after Nelson’s announcement. “I’m doing fairly well... but I could use some hints.” As players got deeper into a game whose first impression was rather pedestrian—a hunt for a missing map in an overstuffed attic—the hint requests grew more involved. It it seemed scarcely possible, to those not yet playing, that these people were asking about the same game with the mildly eccentric British relations and all the tea chests. “I’ve killed the kraken with the flash from the Pharos,” one hint petitioner began:
but am killed and resurrected, myself, only to find Andromeda still chained. Nor am I able to cross the sacred ground to reach the Temple of Zeus, or attain the ekmek in the taverna. My guess is that these three are related somehow, but how? Is there some alternative way to save Andromeda?? Should I save her at all??? Do I need more than just the flash to do the job????
“You have to get a coin from the temple of zeus to buy the ekmek,” explained one responder. “To do that you need to use the rod of luck. To use the rod of luck you have to change the nature of the universe.” Gradually more and more people decided to give this new game a shot, downloading it via FTP and running it on their InfoTaskForce interpreters just to see what all the fuss was about. It would soon become all anyone on the newsgroups was talking about, and remain that way for most of the next two years.
Curses begins, as mentioned, in the present-day attic of an old British estate called Meldrew House. As the latest Meldrew, you’ve climbed the stairs in part to search for an old tourist map of Paris, but also to escape from the bustle of your family preparing for a trip to the continent.
>south Old Furniture Scruffy old furniture is piled up here: armchairs with springs coming out, umbrella stands, a badly scratched cupboard, a table with one leg missing... You try to remember why you keep all this rubbish, and fail. Anyway the attic continues to the southeast. >search cupboard In the scratched cupboard are a bird whistle, a gift-wrapped parcel and a guaranteed-unbreakable medicine bottle with a child-proof lock. >southeast Over the East Wing The air is dusty and warm, almost making you choke in this rather empty area. The attic turns from northwest to east, and there is also a tight doorway leading west. A short flight of wooden steps leads down and to the south. >south Disused Observatory Once upon a time, this small circular room had a dome and a telescope, but it leaked dreadfully and so now there's a proper roof. A circular mural painted with the signs of the zodiac is interrupted by a short flight of stairs leading up to the north, a smoke detector, a west doorway to a shadowy alcove and the continuation of the stairs down and to the south. Mounted on the old telescope stand is what looks like a solid glass ball.
As you search the expansive nooks and crannies of the attic, its dimensions and the scope of your task begin to expand. Secret doors and dumbwaiters provide access to hidden cellars, precarious rooftops, and long-sealed rooms. Ghosts are met and strange dreams visited, some projecting you to unexpected places:
Cups and Glasses This basement room is filled with crate after crate of glasses and cups, enough for an entire hotel, or restaurant perhaps. Almost anything might be hidden among them. [...] You can see a ship in a bottle here. >examine ship You look very closely at the fine detail on the model sailing ship. Perhaps it's the distorting glass of the bottle, perhaps your romantic imagination, but the deck seems more detailed, the rigging might almost be swaying, the little figure by one mast might almost be alive... In fact, the closer you look the more sea-sick you feel. Thank heavens for the deck rail, something to hang on to while this moment of queasiness passes. >look Aboard Ship There is a storm tossing the deck, one which drives no rain: you reel from one side to the other, hanging onto the rail, grabbing at the mast or the rigging. Nobody else seems to be aboard. The boat makes no headway in a strange, glassy mist.
Soon you find yourself traveling through time and visiting other eras of the manor and its grounds, the demesnes of previous Meldrews. Each ancestor, you come to learn, had their own quixotic quest they could never quite complete, a familial curse stretching back many centuries. Your own hunt for the map (and perhaps an end to the curse) eventually comes to involve deciphering hieroglyphics, replicating druidic rituals, shouting orders at a robot through a hole in the wall, altering history with a bottle of weed-killer, and rolling a ride-on lawnmower through a hedge maze. Before completing the game you’ll visit Ancient Greece and meet Homer, take a boat ride with a rather literal Hollow Man à la T.S. Eliot, and even get hints from a demon:
Hellish Place Hell, you always imagined, would contain fiery, sulphurous pits and a great many gentlemen with forked tails. You were right about the last part. A demon is sitting behind a flame-proofed desk at the bottom of the stairs. There are some disconcerting screams from further away, but nothing to worry about. Not in this life, anyway. "Good afternoon," says the demon with a memorable smile. "As a reward for your naked greed, may I welcome you to our little information service. We try to be as helpful as possible to explorers who are lost, or can't think how to solve their problems, you know the kind of thing. So just tell me what you want to know, or show me something to look at. You get the usual three hints." >show tarot card to demon "Clairvoyantes are expert at detecting stacked decks, so it's no good cheating." >show Rod of Fire to demon "Under Regulation 3, paragraph 15 (i) clause (f), only one hint per visit to the infernal domain. You'll have to go away again and come back if you want another. So sorry."
Curses is scavenger hunt meets Dante’s Inferno, “an allegorical rite of passage,” adventure game by way of historical footnote. It certainly owes a great debt to Infocom, recreating the company’s signature style even while literally resurrecting its technical bones. It’s filled up with puzzles, magic words, clever mazes, an enormous map, and interesting objects:
>inventory You are carrying: a shepherd's crook a bean pole a daisy chain (which rustles as if with a magical wind) an electric torch (providing light and closed) a canvas rucksack (which is open) a marble rose a papyrus fragment a smooth round stone a model golden sceptre a gas mask a charcoal sketch an antique jewellery box (which is closed) a green branch a bladed agricultural implement a silk handkerchief a steel wrench an ancient prayer book a ragged scroll a photographer's flash (which is closed) a bird whistle an old striped scarf a chocolate biscuit a delicate gold key a gothic-looking iron key a small brass key eight Tarot cards...
But Nelson also took much inspiration from history and classics. When asked once about his favorite games and authors, he gave much more space to the latter, listing “Auden, Eliot, Donne, Browning, Elizabeth Bishop... For plays, Tom Stoppard, Christopher Hampton, David Hare.” Curses is steeped in antiquities, from the abandoned odds and ends squirreled away in the Meldrew attics—an old wireless radio, for instance, which seems to do nothing when turned on until you realize it just takes a few turns to warm up—to its detailed time travel excursions to lovingly researched long-ago eras. It’s a game very much about odd corners and margins: interstitial places. As huge as the game is, it never takes its players into the main parts of Meldrew House proper, always scuttling instead through attics, basements, and secret crawlspaces. If you try to step into the main rooms of the house, or even somewhere you might be spotted from a window or doorway, the game promptly ends with you swept up into your family’s quotidian concerns: “You have missed the point entirely,” it admonishes. Nelson, in the midst of his PhD, had found himself too embarked on a quixotic quest that bore little relation to his supposedly more pressing duties. The attics and basements of the Z-machine’s virtual architecture, and the ever-expanding house he was building within it, might have seemed a pleasant place to take refuge.
Nelson’s game would take over the IF newsgroups as players who thought they’d seen the last of the great text adventures discovered a worthy modern successor. “Congratulations,” wrote one poster: “Its almost like having Infocom back.” It helped that the game had so many nooks and crannies and puzzles, endless puzzles, that at least some of them were bound to be stumpers for any given player. Hint requests and discussion of the game proliferated, and dominated the newsgroups through the rest of 1993 and 1994: so much so there was a half-hearted proposal to split it all off into a dedicated new group, rec.games.curses, just so there’d be enough oxygen to talk about anything else.
As popular as Curses was, the Inform language would come to have an even larger impact on interactive fiction history. It had at first been more of “an assembler with delusions of grandeur,” with code written close to the virtual metal of the Z-machine. That machine, of course, had been designed to run text adventures, so even a Z-code assembler was far more efficient for the purpose than higher-level but more general languages. But as Nelson kept improving Inform, it began to evolve more elegant features for efficiently crafting simulated worlds. By the release of version 5 in summer 1994 (just as its author was at last defending his PhD), Inform had become powerful and stable enough for others to start building ambitious projects of their own; Inform 6, appearing two years later along with a readable and elegant manual, would become the definitive version. A snippet from Toyshop, an example game, demonstrates the ease with which an Inform 6 author can create an interesting object—a nasty bag that nothing can be removed from, and a way to defeat it by feeding it a cone of sticky marzipan:
Object -> "toothed bag"
with name "toothed" "bag",
initial "In one corner is a curious, toothed bag.",
description "A capacious bag with a toothed mouth.",
before
[; LetGo: "The bag defiantly bites itself
shut on your hand until you desist.";
],
after
[; Receive:
if (noun==cone)
{ self.before=0; self.after=0;
"The bag wriggles interminably as it tries
to eat the enormous mass of marzipan. That'll
teach it.";
}
"The bag wriggles hideously as it swallows ",
(the) noun, ".";
],
has container open;
Among other elegant notions—such as a bare string printing a message and returning from a code block—the “before” and “after” segments shown above let authors easily intervene in the behavior of actions, whether directly triggered by the player or implied. When the player tries to remove something from the bag, for instance, its code can interfere by intercepting the action from the bag’s point of view: LetGo.
The set of actions was also a useful contribution from Nelson: he created a standard library of verbs, rules, and concepts that crystallized behaviors common to many Infocom games but never consistently standardized, working them all into a reusable module which an author could simply include in any new project. Nelson’s Standard Library was quite sophisticated, including a mature parser and a uniform framework for simulating locations, containers, doors, locks, light, directions, and many other atomic units of adventure games. For a generation of interactive fiction writers, Inform would establish a standard based on the simulationist model which the ’80s games had popularized and the ’90s MUDs and MOOs had adapted, enshrining the notion that an interactive story should be built on a simulated virtual world which a player can move through and interact with. That paradigm would not be seriously challenged for many text game writers until the rise of Twine in the 2010s.
In the years after Inform’s release, the community forged in the nostalgia-heavy IF newsgroups would expand and rebrand itself as a place for makers, not just remembrances. The release of Inform and Curses kindled a resurgence of interest in text games and their creation, which community institutions soon sprung up to support. In 1995, the first annual Interactive Fiction Competition was held, designed to give the increasing number of new authors a place to showcase their games: the competition is still going strong twenty-five years later, attracting over a hundred entries in the 2020 season. 1994 saw the launch of a long-running newsletter called SPAG (The Society for the Promotion of Adventure Games) to collect long-form reviews, analyses, and interviews; in 1995 another publication, XYZZYnews (named after a magic word in Adventure), launched with a Graham Nelson interview in its first issue. It would later spin off the XYZZY Awards, an annual ceremony honoring the best games from each year: a text games Oscars. And the quality and success of Inform caused other makers of text game tools to rethink their approaches: some dropped their commercial pricing models and added improved features to keep pace with the new favorite.
Curses is less remembered today than the Inform games written in the years and decades that followed it. In demonstrating so thoroughly the possibility of making a game as good as anything from Infocom, it naturally inspired the next generation of makers to aim even higher. But to do so, it had by necessity planted its flag squarely in the past. “Curses is not experimental,” one reviewer wrote in 2000: “Curses is conclusional. It does not try to explore the vague borders of the medium; it stays well behind the trenches, ploughs the rich soil and collects the harvest that feeds the experimentalists’ armies.” In the years after its release, those “experimentalists” would carry forward a conversation about interactive stories that had begun in the 1970s and continues to this day: a conversation in prototypes and playable theories about what games made from words can be, mean, and do. Freed at last from technical constraints, compatibility problems, commercial concerns, and pre-web isolation, text games and their authors thrived like never before.
Those who do remember Graham Nelson’s game do so fondly, despite the challenge of mastering it. “For starters, it’s really really hard,” wrote one reviewer. “Funny! And extremely erudite. But hard.” It “may be one of the best text adventures ever written,” said another reviewer, but “deserves the effort which is required to solve it.” It “is not a game to be solved in a couple of hours,” yet another agreed: “It is a game to be enjoyed for weeks. It is a game to create obsessions.” For some fans, it’s “the best Infocom game that Infocom never made”—and it’s hard to imagine a more satisfying compliment for the author who prised open the back door of the legendary game studio’s abandoned, glorious estate.
Next week: Far from Oxford, at a university across the Atlantic, a handful of researchers saw text games as a path to a future over the rainbow.
You can sample Curses online, but to seriously tackle it you should download the story file and a modern Z-code interpreter like Lectrote. The source code, sadly, is believed lost [Update: although Allen Garvin is working on a decompiled Inform 6 version!]. Inform 6 is still usable and being maintained, though it was overtaken in popularity in the late 2000s by Inform 7, an entirely different paradigm for text game authoring based on natural language. The community descended from the newsgroups can now be found on IntFiction. A poster print of the Curses map is available. Thanks to Graham Nelson for taking pains to record the history of his creations, especially in the Inform Designer’s Manual and in a post on The Digital Antiquarian; other sources for this piece are linked inline, but special thanks to the IF Archive for preserving historical versions of Inform, archives of newsgroups posts, and other invaluable material. The Interactive Fiction Database maintains an index of games written by Graham Nelson and a partial listing of games written with Inform: some 2,353 of the latter, as of this writing.
Stumbled across your newsletter this week and immediately thought "I wonder if it covers that Curses thing I played when I was 12". Serious nostalgia trip - I never got very far in the game, but it kindled an immediate interest in IF that has never gone away. Thanks for writing this!
"The source code, sadly, is believed lost."
I only learned this recently! And I've spend the last month or so recreating both the first release (#7) and the final release (#16) from decompilation of the gamefiles: https://github.com/allengarvin/curses
It was enormous fun revisiting these, and getting to know them far better than I did when they came out. The final release is enormous in conception, but you can tell there were plans to expand it further that never came to light, the whole thing about the 3 different high rods having 3 separate paths to complete the game, but as it is, they're just something tacked on with explanation. The final end game, the "Master Game", is the only section of the whole thing that changes almost none-at-all from the earliest and the last release.
I'm still tidying up both, but they're both playable and winnable. I've used a more modern Inform 6 library but kept all the gameplay bugs, in order to be as faithful as possible.