Mark Bernstein on Hypertext Narrative

Literary hypertext has a long history that isn’t always well understood or well acknowledged by interactive fiction authors, even though with the growing popularity of Twine and other hypertext tools, the techniques are more than ever relevant to us.


Recently Eastgate released Storyspace 3, a new version of software used to produce many canonical works of literary hypertext; and, to accompany it, their chief scientist Mark Bernstein wrote a book, Getting Started with Hypertext Narrative, in which he discusses the challenges and the craft of writing in this form.

Whether or not you are interested in using Storyspace or writing literary hypertext, the book is worth reading, not least because it offers terminology and insights from a body of work IF authors seldom study.

In the exchange below, Mark and I discuss various sections of his book, together with other relevant tools in the space. We find some common structures and implementation strategies that cross over from one tradition to the other, and notice that Storyspace 3 might be a viable alternative to StoryNexus for people who want to experiment with quality-based narrative structures but don’t want StoryNexus’ art requirements or styling: what Mark describes as “sculptural hypertext” shares a lot in common with QBN.

All blockquotes are from the text of Getting Started with Hypertext Narrative: I sent these to Mark with my comments, and in some cases he had thoughts in response, so this is actually sort of a three-cornered conversation between the book, the author, and me. Thanks to Mark for supplying the text and taking the time to answer, and also for his patience with how long it took me to bring this together.

Emily: I like the distinction between calligraphic (sparsely linked) and sculptural hypertext (densely-linked, controlled by rules); though I think I tend to associate hypertext only with the former kind of work. When I hear “hypertext”, I assume something with minimal modeling behind the scenes.

Mark: This is an interesting – perhaps the interesting – distinction between the IF and hyperfiction traditions. IF is inclined to model story, while HT is inclined to model — or to believe itself to be modeling, plot. I don’t believe this has ever been stated clearly. Has it?

Emily: I don’t think it’s been stated in quite those terms. I think I broadly agree, with a few caveats:

First, how developed or abstracted a model are we talking about? Most of the time the plot modeling I see in HT works, or for that matter in standard CYOA projects, ChoiceScript games, etc., is not very abstracted. There are nodes or passages to move between on a case by case basis, but there is not an underlying procedural layer making decisions about what information should be revealed first; this has almost always been hand-authored.

StoryNexus gets quite a bit closer to at least allowing a developed model of plot, since the qualities that determine card exposure can reflect things like increasing drama, so that the author can specify ideas like “once the dramatic tension has risen a certain amount, unlock more drastic events”. Not coincidentally, of course, this is the tool that sounds most like your sculptural hypertext/deck descriptions.

Second: as with all generalizations, there are some cases at the borders.

In the IF world, Curveship, of course, doing some procedural work on how to narrate; I’m not sure that anyone but Nick Montfort has ever done that much with it, though. The text it produces is too obviously mechanical for most of the situations in which I might want to apply such a tool.

I also think some of these old distinctions are blurring these days, as we see more projects that cross over between different areas of experiment — partly because Twine has gained some traction with the IF community, and partly because people are more receptive than they used to be to parser/choice hybrids.

Or there’s Wunderverse, which as far as I can tell is in its initial stages and doesn’t have a lot of uptake yet, but combines narrative nodes with simulationist rooms, not really distinguishing between the two. I’m not sure whether this is an intentional design move or a failure to think through the difference between those use cases. (I find it slow enough to build new content in this system — all those drop-downs! typing on an iPad! — that I can’t say I’ve really thoroughly evaluated the potential of its model.)

Mark: The distinction is not always or necessarily clean. It’s possible to model finite state machines in the story with Storyspace guard fields

“Finding The Golden Key” —> unlock the chest
—> the chest is locked

but this has not been widely practiced. Conversely, so much emphasis is placed in IF tutorials on modeling elements (and characters) in the story world that it’s easy for a reader to miss that more conventional guard-field behavior is possible in TADS or Twine.

Emily: In TADS, maybe. In Twine, I don’t think so — Twine is a hypertext tool, and locked or hidden or real-time-delayed links are all common enough. It’s IF-style world modeling that becomes challenging to insert, though people have written methods for tracking player inventory and that sort of thing as an add-on.


In painting, it’s not always necessary to specify everything. Perhaps it’s not necessary in hypertext narrative, either. (30)

Emily: This idea appeals to me; a number of my own projects, especially the Versu projects, have left considerable room for variation in what the reader experiences. I think part of what I like about working procedurally on storytelling is that it allows me to focus more particularly on what I think is critical to the telling of the story: which scenes and character notes are essential for the reader to understand what I intend? What else is optional, or could happen in any of a number of ways? What is the range of possibilities, when I want to express a whole system of things?


Ruskin’s “rigidity” has been the source of much discussion, as Ruskin knew little and cared less about structural engineering. This rigidity arises, in his view, from the builder’s obstinacy, and might best be viewed in terms of “resistance” of the work, “the peculiar energy which gives tension to movement, and stiffness to resistance.” This resistance is a familiar experience of hypertext narrative; we often want to skip to the good parts – to get the MacGuffin, to undress the girl – but the hypertext has a will of its own. (47)

Emily: I’ve sometimes found it useful to think about this as a paired walking exercise, in which the story goes at the pace of its slowest participant. Sometimes the author needs to block the reader/player (as you suggest); sometimes the reader needs more time to explore the narrative before moving on.

Blood & Laurels offers quite a few scenes where it becomes possible to move to the next scene at a certain point, but the player might elect to extend the encounter, to debate more with the other characters or to try to find out additional optional information.


Whether we are reading about the man who wants to say that he may have seen his son die this morning, about the girl who is stitched together from many bodies (and who tends to fall apart), or one of the numerous car crashes that punctuate the landscape of hypertext narrative, the propensity of hypertext narrative for the grotesque is clear. (47)

Emily: That is borne out, certainly, in the Twine community as well: I think of a lot of Porpentine’s work, or to some extent furkle’s SPY INTRIGUE. Or Summit, by Phantom Williams, in which all people have a strange symbiotic relationship with fish, so much so that they cultivate the fish in a special organ called the fishstomach. Also Horse Master by Tom McHenry, or much of the body horror of Liz England — the list is really too long to complete here.


[Concerning the way that link markup plays against the way we actually want people to read hypertext:]

The underlying problem is more serious: typographically-distinguished text is usually emphatic. Titles, italics, bold fonts: all draw the eye. They literally underline a passage to demand attention. Emphasizing links is occasionally useful, but some links have no need for urgent, immediate attention: we want people to read and reflect, and only then to choose a link. (55)

Emily: That is definitely an issue. More than once I have found myself clicking on something even though I wasn’t finished reading the paragraph to which it belonged, and sometimes losing my place because of it.


In Storyspace 3, a note may have an expression called $Requirements that determines whether the note can be visited. If $Requirements is empty, or if it evaluates to true, the note can be visited. Otherwise, links to that note will not be followed, even if the link’s guard field is satisfied.

Note that a guard field applies to a specific link, while Requirements apply alike to all inbound links. (57)

Emily: Unquestionably useful. I think there’s also something to be said for an inversion of this technique: Blood & Laurels has a number of passages that introduce particular characters or bits of backstory, and they’re designed to fold into the narrative whenever and wherever the player happens to come across that topic for the first time. So, in that sense, it’s possible to have the text catch up with the reader, rather than vice versa.

Mark: This is a motivation for Shark links, which conditionally insert a writing space or episode.



[Concerning the challenge of granting meaningful agency at the beginning of a work:]

Here at the outset, the reader doesn’t know what sort of a story this is: the audience is on our side, they want to know what happens, they want to meet these people and they want things to work out for them. But unless they already know the story – unless we’re freeing yet another goddamn princess from yet another silly castle – how can they know which link they want? (66)

Emily: I take your point, but I think this is just a little unfair; one can frame a character who has some pressing immediate motive, and give the player some forward momentum even before the main gist of the piece has been revealed.


After following a link and arriving at a destination, readers often look for a theory that explains why the link they chose led where it did. Theory formation can be assisted by repeating the link at the opening of the destination, by acknowledging it or explaining it. The uncertainty caused by the transition may be minimized by minimizing the transition, connecting the destination to what has just been read. (67)

Emily: Le Reprobateur does a very interesting thing by having links based on images (so you click the picture to proceed). The images (often) echo one another in some respect of coloring or composition.


[Concerning branching structures, of which the book catalogs several:]

Though links may lean forward, the reader should not be corralled into a rigid sequence punctuated by occasional link excursions. If each excursion returns us to the same sequence, the reader will wonder whether the apparent choices that links have offered them are merely a sham, a pretext for eliciting their engagement. (77)

Emily: This piece strikes me as more prescriptive than much of the rest of the text. Yes, a piece with a gauntlet structure like this will likely reveal its linearity to the player fairly quickly — but perhaps that might be part of the point? I think of Michael Lutz’s My Father’s Long, Long Legs, for example.


[Still about structures within hypertexts, and the distinctions between several types of cycle structure:]

The cycle is the fundamental structure of calligraphic hypertext and the way readers perceive that the hypertext has structure. If a hypertext had no cycles, the reader would experience it as a sequence; the reader might not even know that it was a hypertext. Of particular interest are Joyce’s cycle, where we return to a previously visited note but then spin off in a new direction even if we do nothing new. Douglas’s cycle, in contrast, enters a tight loop that signals the exhaustion of the story or of the reader’s current strategy, insisting that the reader try something different or start over. (77/78)

Emily: Interesting.

I’d say there’s a third kind (but maybe you’d disagree with me that this is a third): what Failbetter would call a Carousel structure, or what is described as “Loop and Grow” in Sam Ashwell’s glossary (increasingly canonical within parts of the IF community).

In this form, certain beats recur in cycle, but the player may have new opportunities on the second or third path through the cycle.

Mark: Good point. I had not intended to taxonomise cycles, much less to suggest that these were all the cycles that exist, but that should be clearer.


[Concerning the idea of “guard fields”, features that prevent the player following certain links until others have been followed; Solarium is a good example of this kind of thing.]

Guard fields are invaluable for managing cycles and narrative energy in large and complex hypertexts; without guard fields of a similar dynamic link technique, large and densely-linked hypertexts tend to bog down as the reader wanders in place. (85)

Emily: This description very much seems to think of the lexemes as immutable and the passages between them as the only changeable aspect. It’s not until much later (“A Page That Changes Each Time It’s Read” — 154) that we get into the idea of passages embedded within other passages; and that is still treated as a rare special effect.

Does Storyspace have anything like Twine’s ability to morph in-line text on a mouseover or click? I’ve seen this done in Undum as well, in fact, in a lot of Bruno Dias’ work — Cape probably has examples within the first few interactions that exemplify it well. A looping inline morph (blue eyes -> brown eyes -> green eyes -> blue eyes…) has become a standard way to give players options, while a stopping morph (frustrated -> angry -> furious!) often indicates the narrator’s suppressed emotions or more honest thoughts.

Anhedonia (Maddox Pratt) does something quite raw with this, allowing the reader to click on certain depression symptoms and choose how much they want their character to admit to the therapist.

Mark: Traditionally, Storyspace does not. Of course, the effect can easily be simulated by creating a new note which differs only slightly from its predecessor, and some writers (especially Moulthrop, but sometimes Joyce) lean heavily on that. After some correspondence with Bruno Dias, I’m planning to beef up these facilities on Storyspace 3.


[In which Mark describes something that sounds quite similar to Quality-Based Narrative:]

A sculptural hypertext is like a shuffled deck of cards: any card might come next. We might add some narrative rules: some cards might be playable now, but others will only be playable later. Perhaps we can only play a red card now, or perhaps we must play a queen; we discard unplayable cards, or shuffle them back into the deck. (94)

Emily: I know you’re aware of Alexis Kennedy’s stuff since you mention it elsewhere, but the analogy is too striking not to comment on: the card deck seems quite similar to some of the ideas in StoryNexus and Varytale. Though there’s also the difference that in general in SN the player/reader has drawn several cards from the deck and is at liberty to choose among them.

Mark: In 2001, I tried and failed to shake up the ACM Hypertext community with a big paper about weird hypertext systems. Card Shark was one of them, and its formalism also gives the reader a deck and a hand of cards — only some of which may be playable at any given time — from which they choose a card to “play”. Card Shark also envisioned a second actor, the Opponent — probably to performed by the computer, with its own set of cards and its own play. I still think the could be interesting to do.

Emily: That does sound like fun!

It’s a very different model, obviously, but one of the things we did in some Versu experiments was to have an AI agent who functioned either as a drama manager or (in one case) as an antagonist of the player; in the ghost story, for instance, the ghost was a separate AI that moved around and could do things to mess with the players. (At one point we had thought about allowing a human player to play as the ghost, either as a multiplayer mode or as a way to enjoy the sandbox experience of messing with the NPCs.)

Mark: Narrativist tabletop games have done some extremely interesting work here. I’m thinking especially of Paul Czege’s My Life With Master and Jason Morningstar’s Fiasco and Grey Ranks. Each of these seems to be chiefly concerned with genre formula, but they’re really about the game-like tension between our desire for resolution and our desire for just a little bit more.


From time to time, we might tell the reader to swap the deck she’s reading (or that she’s exhausted) for a new deck. The young Aristotle exchanged the scroll he was reading for a new scroll. (95)

Emily: To extend the connection made just above: now I think of Chris Gardiner’s StoryNexus piece Below, which explicitly has Above and Below decks from which the player may draw. The Below deck pertains to events in the player’s present, exploring a dungeon; the Above deck pertains to events in the past, when the player was still aboveground. But the past events influence mood and resources, so the player frequently needs to draw on these in order to deal with what she encounters Below.

Certain actions allow the player to add new powerful help cards to their Above deck; certain failures add dangerous bad cards to the Below deck.

Yes, it’s ludic use of the idea, but I think relevant nonetheless. Managing what is in your deck — certain opportunities, certain resources — is also managing what might happen next in your character’s story, so it allows the player some intentional agency at the level of narrative as well as gameplay.

Mark: That’s brilliant. Changing decks may also, simply, be the way we move between episodes or acts, clearing the stage and setting a new scene.


Launching a Sequence… In contrast to the previous example, these notes should follow each other immediately: we don’t want to shout “thief!” and then sample the honey cakes, and only later chase the thief. (104/5)

Emily: This model is similar to the structure that I developed not for storytelling in general but for conversation modeling in Inform and later in Versu: topics that cluster related ideas together (similar to your Decks); quips (similar to your Notes) that represent individual dialogue segments; and the potential that quips must follow other quips either directly or indirectly to be valid.

Or, again, I notice that StoryNexus started out with ideas of free-floating events (their cards, equivalent to my quips and your notes), and some degree of ordering (qualities that determine when new cards become available); but that they subsequently found they needed a feature so that one quip could forcibly feed into another, rather than optionally.


“To avoid this, we might add a constraint to “Leaving The Flea Market”:
Name: “Leaving”

OnVisit: $Deck(/me)=””
DeckRequirements: $Visits(/me)>5″ (106)

…is similar to Versu’s ability to end a scene after a certain number of actions have elapsed, or StoryNexus scenarios that advance a counter to a certain level in order to unlock the next bit of story.

So in all these cases we have:

  • a general pool of elements that can belong to a particular scene/conversation topic
  • which have ordering principles
  • that control both immediate transitions (Y must come immediately after X) and longer-duration transitions (Y may come any time after X); while
  • scenes/conversations also have general rules about duration or other elements that must be discovered in order for that scene to be considered “over” so that the reader can move on.

I bring these similarities up because I think it’s encouraging that this pattern seems to have emerged more or less independently in several places in interactive literature. That suggests to me that there may be some intrinsic merit to the model.

Of course there are also implementation differences between these three cases, and those differences are still very important.


Whenever a reader arrives at a writing space, Storyspace checks to see whether that note has links with the link type “shark”. If there is more than one shark link with a satisfied guard field, Storyspace selects the highest-priority shark link, and the reader proceeds to that link’s destination. Shark links silently shunt readers to a new destination.

Emily: This also expresses an idea that is common in interactive fiction — the denial message.

Mark: Good point. Shark Links can also insert interstitial episodes that serve, for example, to establish facts that will be required in the scene.

Emily: Outside of parser IF we’re less consistent about how to present this. Versu simply doesn’t give the player conversation options unless they’re actually allowed to say those things, for instance; StoryNexus handles the problem through UI mechanics, by allowing the author to show the player which qualities must be satisfied before the player can select a particular card action.

It’s interesting to me that in Storyspace 3 you’ve handled this by blocking the destination rather than the action that leads to the destination.

There are merits to both, of course — to go to the most simplistic parser IF analogy, sometimes you want to model a locked door between two rooms, and sometimes you want to model an area that is dark and cannot be explored without a lantern, no matter how many open doorways lead to that space.

Mark: Guard fields block the action; $Requirements block the destination.

Emily: Quite possibly I’m imagining this wrong through not having played with Storyspace enough/recently. (I’ve never used the creator tool, largely for reasons of price tag; I’ve played some pieces, but it’s been a while since I last had a look.) But the distinction I was thinking of here was that, while a shark field/etc might tell you why you weren’t allowed to proceed, the guard field would simply lock off a link without explaining why that passage was not yet/no longer traversable.

The systems I know in the IF world vary a lot in how much information they give on a) which choices are traversable when and b) when they’re likely to become unlocked.

At one end of the spectrum, you have gamebooks based on paper gamebook design, which require the player to apply the rules himself, and consequently have total transparency about the model. (I’m thinking of the sorts of things entered for the Windhammer Prize.)

Then there’s StoryNexus, which can hide options for which the player is not yet ready, but can also show symbolically which requirements the player is still failing: an icon of carrots next to the currently-locked “Feed bunny” option, for instance.

ChoiceScript allows the author to hide options or show locked options greyed out, but it doesn’t offer any way to show why an option is currently unavailable. It also tends to lean towards very linear traversal — most ChoiceScript pieces avoid or make minimal use of loop mechanisms — which means that the player is less likely to be able to go away and acquire the stats required to unlock an option; so telling the player what is locked and why might be a lower priority.

Varytale allows the author to lock options and also attach additional text that shows to explain the lockout, something that I used from time to time in Bee.

In Twine, any behavior around this would have to be hand-rolled by the author.


Emily: I like the exercises you provide at the end: teaching people to be comfortable with interactive narrative structures is a) important and b) rarely done, as far as I can tell.


Edited to add: Pathfinders (suggested by Chris Klimas) provides a bit of documentary background on the early history of literary hypertext, showing traversals of several of the works as well as input from the creators and photos of how the works were originally presented; and this video shows Victory Garden being played.

5 thoughts on “Mark Bernstein on Hypertext Narrative

  1. So on the subject of text transformations inside nodes –

    I should point out that while theoretically you can emulate that functionality by using nodes with near-identical content, one feature of text transformations is that two or more transforming links can share a node and be interacted with independently in any order if at all. While theoretically you could write passages for each possible combination, this quickly turns into a combinatorial explosion. Some passages in Cape or Swan Hill have as many as five independent morphing links, some of which have multiple steps. A passage in Cape has two cycling links that add up to 55 possible combinations between them. So in practice, inline text transformation is a separate author affordance that allows different ways of writing that are distinct from node to node transitions. And, of course, in systems like Undum and Twine, node to node transitions are signaled differently from in-node transformations; Undum with its scrolling interface, etc. On the whole, I think this partially reflects a greater ability/willingness to use text as a graphical element or to make use of design elements in IF as opposed to literary hypertext.

  2. I’ve downloaded the demo (on El Capitan) and found it a bit crashy. I’m still figuring out the system, but I very much like the concept that the author can have stealth links that don’t scream “click me” and basic links that happen (potentially randomly or planned out with qualities). It seems to lend itself to “games” as well as a more subtle novel-type read that wriggles in your grasp and changes as you interact with it. I agree about “signposting” links and would love to write something where the reader could theoretically click on any unhighlighted word in the text and get a response. There is a Quest game called “Spondre” that approaches this.

    Unfortunately I’m not sure I’m up to pay $150 for a writing tool (although I’ve bought Final Draft on a discount for ~$100) which doesn’t seem to allow an export to a standalone file yet (you have to get the stories on CD??). I understand the developer deserves to make money, but I’d be more willing to shell out maybe $29-49.99 for a “hobbyist” version that locked distribution to the developer’s website for free or pay, and then could upgrade it for an additional $99 to a licensed pro version that would export an executable with it’s own player/interpreter or an html that I could distribute as an app on platforms however I wanted. Even better, let the software be free for non-commercial use and $150 for the version that is licensed to make apps without a “Created with Storyspace!” screen at the beginning. The demo says it only allows “a few” notes, which is a shame since I’m only going to attempt Cloak of Darkness and then stop. If I were given demo freedom to write an complete epic in a locked version I’d be *more* inclined to pay for it.

    I searched the website for some type of free example of what the software is capable of, but there doesn’t seem to be one, and there isn’t any kind of demo story (at least with the demo software). Everything looks to be priced at $25 on CD. Perhaps I need to wait a bit until the site is brought up to date. I don’t even know if my CD drive *works* on my computer anymore (does my computer even HAVE a CD-Rom drive??)

    Despite my grumblings, this system is very impressive and I hope the website can make the jump into present day along with the system and perhaps offer some of the local IF community (which seems quite apart from the “hypertext” community this was built for) a more serious framework that’s a good median between Twine and Storynexus.

  3. Pingback: Weekly Links #118 « No Time To Play

  4. Pingback: IF-Related Older GDC Vault Content | Emily Short's Interactive Storytelling

  5. Pingback: Hypertext narrative contrasted with interactive fiction | William Comfort Anderson

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s