The Riven Graph, 2: What a Card Can Hide

Orphaned routes, hidden state, and the pictures behind the graph

Part 2 of 2 in The Riven Graph

Introduction

Previous work on Riven’s files has shown that some of its content is not seen in the game. [Version of the game: Riven 1.0, the original English five-CD release, September 1997. The card numbers are those of this release.] MYST & RIVEN Illustrated documents an underground corridor on Temple Island, lagoon views on Jungle Island and a drawer of butterflies in Gehn’s laboratory, found by altering saved games and browsing the picture files. The Riven Diffs, written with Twitch, compares the renders of a card with one another and finds anomalies between them.

These findings look at cards and pictures one at a time. With the Riven Graph (introduced in the previous article), I look at the relationships between them. Any card named below can be found in the explorable graph, where each link of this article opens the card it names.

Visual Indicators

I keep the two indicators of the Myst findings. A crossed-out eye on a view means that the game never displays it: the card that holds it cannot be reached, or the picture is one that no script selects. An open eye means that the view is displayed in the game. Without an indicator, the view is displayed in the game. [On the web, card labels such as Temple:155 have a thick underline, in the color of their stack, and open that card in the graph browser.]

Riven needs one precision that Myst did not. A card and its picture are different things: contrary to Myst, a card can hold several pictures, and the same picture can be held by several cards. A crossed-out eye therefore applies to the view where it is drawn, in the card named under it. The caption says which of the two cases applies.

Edges under discussion are drawn in red, as in the Myst figures.

Disclaimer

The disclaimer of the first article applies. This article contains spoilers for the game, including its endings and its easter eggs.

General

Shortest Theoretical Path

The shortest mathematical path is obvious to anyone who has played the game to completion. From the first view of the game (Temple:155) to the telescope whose descent ends it (Temple:137), the theoretical minimum distance is 3 edges:

Temple:155 → Temple:130 → Temple:135 → Temple:137.

The full Riven graph with the three-edge path near the Temple cluster in red, enlarged in an inset. Its two ends: the first view of the game, from inside the cage, and the telescope over its hatch.The full Riven graph with the three-edge path near the Temple cluster in red, enlarged in an inset. Its two ends: the first view of the game, from inside the cage, and the telescope over its hatch.

In Myst, the distance from the start to the end of the game was 24 edges. The difference says something about both games. Myst ends at the far end of its world, while Riven ends a few steps from where it begins, at a telescope that the player walks past in the first minute. What separates the two cards is everything that the graph leaves out: the code of the hatch, the power of the telescope, and the reasons to use them. As explained in the first article, a path in the graph is a distance between views, never a way to finish the game.

One Action, Four Endings

Temple:137 is also a good example of what a single node can hold. Its movie list has eleven entries, and the last four are endings. Lowering the telescope to the bottom runs a routine of the game’s engine that picks one of them: the ending with Catherine if she has been freed, otherwise the one with Atrus alone if Gehn has been trapped, otherwise the one with Gehn if the player still carries the trap book, otherwise a fall into the stars with nobody to meet. The last one exists for players who open the hatch without having learned its code in the game.

Four frames of the ending movies of Temple:137: Atrus with Catherine, Atrus alone, Gehn, and the starry fissure. Above them, Temple:137 points to the movie entries 8 to 11, each under the condition that selects it.Four frames of the ending movies of Temple:137: Atrus with Catherine, Atrus alone, Gehn, and the starry fissure. Above them, Temple:137 points to the movie entries 8 to 11, each under the condition that selects it.

(The red arrows show the choice made by the engine, not four edges of the graph.)

Longest Shortest Theoretical Path

The most distant nodes are separated by 125 edges (130 in Myst). Eighteen pairs are that far apart: they go from six cards inside the golden dome of Temple Island (Temple:458, 467, 469, 473, 544 and 545) to three cards in Tay, the Age of the rebels (Rebel:20, 21 and 23).

The full Riven graph with one of the longest shortest paths in red, 125 edges long, from the Temple cluster to the Rebel cluster. Its two ends: a walkway inside the golden dome and a view in Tay.The full Riven graph with one of the longest shortest paths in red, 125 edges long, from the Temple cluster to the Rebel cluster. Its two ends: a walkway inside the golden dome and a view in Tay.

Starting from the first view of the game rather than from the dome, the farthest cards are the same three, 116 edges away.

One of the paths of 125 edges

Temple:458 → Temple:460 → Temple:463 → Temple:466 → Temple:451 → Temple:448 → Temple:455 → Boiler:112 → Boiler:113 → Boiler:115 → Boiler:116 → Boiler:117 → Boiler:118 → Boiler:119 → Boiler:120 → Boiler:121 → Boiler:84 → Boiler:82 → Boiler:80 → Boiler:79 → Boiler:71 → Boiler:73 → Boiler:123 → Boiler:126 → Boiler:129 → Boiler:132 → Boiler:135 → Boiler:138 → Boiler:141 → Boiler:144 → Boiler:148 → Boiler:150 → Boiler:152 → Boiler:361 → Boiler:319 → Boiler:321 → Boiler:324 → Boiler:357 → Boiler:317 → Boiler:316 → Boiler:312 → Boiler:311 → Boiler:306 → Boiler:307 → Boiler:308 → Boiler:360 → Boiler:393 → Boiler:394 → Boiler:32 → Boiler:33 → Boiler:34 → Boiler:14 → Boiler:19 → Boiler:481 → Boiler:483 → Boiler:484 → Boiler:485 → Boiler:487 → Boiler:491 → Boiler:494 → Jungle:611 → Jungle:606 → Jungle:609 → Jungle:601 → Jungle:48 → Jungle:28 → Jungle:32 → Jungle:35 → Jungle:410 → Jungle:412 → Jungle:414 → Jungle:417 → Jungle:420 → Jungle:426 → Jungle:429 → Jungle:432 → Jungle:434 → Jungle:436 → Jungle:438 → Jungle:441 → Jungle:444 → Jungle:446 → Jungle:448 → Jungle:450 → Jungle:452 → Jungle:457 → Jungle:335 → Jungle:156 → Jungle:158 → Jungle:161 → Jungle:164 → Jungle:167 → Jungle:170 → Jungle:173 → Jungle:176 → Jungle:178 → Jungle:186 → Jungle:189 → Jungle:190 → Jungle:192 → Jungle:194 → Jungle:196 → Jungle:198 → Jungle:201 → Jungle:203 → Jungle:205 → Jungle:207 → Jungle:209 → Jungle:211 → Jungle:213 → Jungle:215 → Jungle:218 → Jungle:226 → Jungle:227 → Rebel:3 → Rebel:4 → Rebel:25 → Rebel:26 → Rebel:28 → Rebel:29 → Rebel:10 → Rebel:6 → Rebel:8 → Rebel:15 → Rebel:18 → Rebel:20.

No Self-References

Nine nodes of the Myst Graph refer to themselves, to redraw a card after an action. The Riven Graph has none.

Indeed: Riven does not need self-reference nodes. A script changes a variable and asks the engine to draw the same card again, and the card’s own script then picks the picture that fits the new value. The scripts contain 283 of these redraw instructions: they are Riven’s self-loops, and they leave no trace in a graph whose nodes are cards. Most of this article’s second half is about what they hide.

The Cards That No Route Avoids

A graph can also say which cards are unavoidable. A card dominates another when every route from the start to the second passes through the first.

Of the 2,261 other nodes that can be reached from the first view, 2,218 are dominated by a chain of six cards: Temple:133, 123, 125, 119, 116 and 113. They are the path that leaves the telescope and the stone stairway that follows it. Before them lie 26 cards. Beyond them lies the rest of Riven.

The chain Temple:155, 133, 123, 125, 119, 116, 113 leads to a box of 2,218 other nodes. Two cards hang from that box: Gehn:1, with 125 cards behind it, and Jungle:178, with 104. Below, their views: a landing at the end of a stairway, the bars of a cage in Gehn’s office, and a round wooden door.The chain Temple:155, 133, 123, 125, 119, 116, 113 leads to a box of 2,218 other nodes. Two cards hang from that box: Gehn:1, with 125 cards behind it, and Jungle:178, with 104. Below, their views: a landing at the end of a stairway, the bars of a cage in Gehn’s office, and a round wooden door.

Beyond the stairway, the graph opens up: the islands are joined in a ring (see below), so most places can be reached in two ways. Two branches of more than a hundred cards still hang from a single card each. Gehn:1, the cage in which every visit to Gehn’s Age begins, stands before the 80 other cards of that Age and the 45 cards of Prison Island. Jungle:178, the door of the cell in the gallows, stands before the 104 cards of the rebels’ tunnel and of Tay.

The route to the farthest card of the game, Rebel:20, is 116 edges long, and 36 of its cards are unavoidable.

What Zip Mode Buys

Riven has an option that Myst also had, Zip mode: once a place has been visited, a click on it in the distance goes there at once. The graph draws these shortcuts in a separate layer, since they exist only for places already seen. There are 606 of them, from 562 cards to 189 places.

Without ZipWith every shortcut
Longest shortest path12574
Average distance between two cards51.530.9
Farthest card from the start11659

A shortcut replaces 3.9 steps on average and 12 at most (from Boiler:340 to Boiler:58). Taken together, they shorten Riven by about 40%. Five cards register as a Zip place that no shortcut names: Garden:12, Garden:13, Garden:248, Jungle:577 and Temple:339.

Between the Islands

A Ring of Islands and a Hub of Books

Twenty-seven edges join two different stacks. Ten of them are the five ways of travelling between the four large islands, each in both directions: the maglevs between Temple and Jungle, Jungle and Survey, Survey and Book Assembly, the log car between Jungle and Book Assembly, and the great bridge between Book Assembly and Temple. Together, they close a ring. No single card separates one of these islands from the others.

Prison Island is not on the ring. Its only way in is Gehn:55 → Prison:43, a linking book in Gehn’s office. Its only way out is Prison:45 → Gehn:1.

On the left, Temple, Jungle, Boiler and Garden joined in a ring by black arrows. On the right, red arrows marked books join the ring to Gehn, and Gehn to Prison. Below, the linking panel of Gehn:55 and the view of Prison:43 where it leads.On the left, Temple, Jungle, Boiler and Garden joined in a ring by black arrows. On the right, red arrows marked books join the ring to Gehn, and Gehn to Prison. Below, the linking panel of Gehn:55 and the view of Prison:43 where it leads.

The physical ring in black, the linking books in red. Prison Island hangs from Gehn’s Age.

The scripts make the same distinction. A vehicle changes stack with an instruction of the script that drives it: there are twelve such instructions in the game, ten for the vehicles, one for starting a new game, and one that I come back to below. A linking book does not.

Thirteen Black Cards

A book links by asking for a card that is never shown. Temple:391, the page of the linking book in the dome of Temple Island, asks for Temple:392, whose only picture is black. The engine keeps a table of thirteen such cards: when a script asks for one of them, it changes stack and enters another card instead, here Gehn:1.

A black view labeled Temple:392, marked as never displayed, with an arrow labeled native redirect to the view of Gehn:1, the cage in Gehn’s office.A black view labeled Temple:392, marked as never displayed, with an arrow labeled native redirect to the view of Gehn:1, the cage in Gehn’s office.

Temple:392 is asked for and never entered.

The thirteen cards are Menu:8 (the trap book), Boiler:447, Garden:178, Jungle:344, Prison:46 and Temple:392 (the five domes), Jungle:228 (the book to Tay), Rebel:13 (the way back), and Gehn:58, 62, 67, 72 and 76 (the five books of Gehn’s office). The graph draws each link straight to the card that is entered, and keeps the black card as a node that nothing enters.

One card shows that linking was not always done this way.

Temple:389 holds the same picture as Temple:391, pixel for pixel: the page of the dome’s linking book. Nothing leads to it. Its script links differently: it asks for Temple:390, another black card, and then changes stack by itself, as a vehicle would.

Two rows. In the game: Temple:391 requests the black card Temple:392, which is never entered, and an engine redirect leads to Gehn:1. Unreachable: Temple:389 requests the black card Temple:390, which is entered and then left by the same script, which changes stack to Gehn:1. Below, the two cards show the same page of a linking book.Two rows. In the game: Temple:391 requests the black card Temple:392, which is never entered, and an engine redirect leads to Gehn:1. Unreachable: Temple:389 requests the black card Temple:390, which is entered and then left by the same script, which changes stack to Gehn:1. Below, the two cards show the same page of a linking book.

Two cards for one page. Temple:391 relies on the engine. Temple:389 links by its own script, through a black card that is really displayed.

Temple:389 also lacks the two movies of Temple:391, which animate the panel of the page. It looks like a first version of the card, kept in the files after the second one took its place, as Stoneship Age:53791 was in Myst. I cannot tell from the files why the link was moved into the engine.

Black cards of this kind remain in other stacks, without anything left to use them: Garden:267, Prison:47 and Gehn:89 are all named “black”, like Temple:390.

Journals Outside the Graph

Menu:5 and Menu:6, the journals of Atrus and Catherine, are isolated nodes too, and the player reads them throughout the game.

The closed journals of Atrus and Catherine, each marked as displayed in the game, below their isolated nodes Menu:5 and Menu:6. An inventory box points to both with dashed arrows.The closed journals of Atrus and Catherine, each marked as displayed in the game, below their isolated nodes Menu:5 and Menu:6. An inventory box points to both with dashed arrows.

The journals are opened from the inventory and closed towards the card that the player came from.

They are opened from the inventory, at the bottom of the screen, by the engine. Closing a journal goes back to the card where it was opened, whichever it was. Drawing these returns as edges would join every card of the game to every other through a book, so the graph leaves them out and notes them beside the node. An isolated node is not necessarily an unreachable one.

Temple Island

The Corridor Under the Dome

MYST & RIVEN Illustrated describes what once stood in place of the elevator of the golden dome: a ladder, a door and an underground corridor, in which one can “walk the corridor, open and shut the shaft door, even enter the shaft, but then the game hangs”.

The graph shows these cards as they are in the files. Temple:362, 363, 364 and 365 lead to one another and nothing leads to them. The door of Temple:363 still works: two hotspots, opendoor and closedoor, set the variable ttunneldoor, which only this corridor uses.

Eight never-displayed views from the six unreachable cards Temple:360, 362, 363, 364, 365 and 404, including both open and closed door states of 363 and 365. Above them, a schematic shows scripted turns, forward steps, exits to the main network and references to the absent Temple:361.Eight never-displayed views from the six unreachable cards Temple:360, 362, 363, 364, 365 and 404, including both open and closed door states of 363 and 365. Above them, a schematic shows scripted turns, forward steps, exits to the main network and references to the absent Temple:361.

A branch with two ways out and no way in. The door of Temple:363 opens and closes for nobody.

The graph also shows why the game hangs. From the corridor, Temple:360 leads to Temple:361 by turning left or right. Temple:404, a view down the shaft that nothing leads to either, leads there by moving forward. And Temple:361 does not exist: it is one of the five targets without a card. The corridor was cut off at both ends, and the card in its middle was removed.

A Bridge View Replaced by Its Twin

Temple:236 is an ordinary card, on the bridge that leads to the gate of the rotating room. It holds six pictures, and its script selects five of them, according to the position of the room and the state of its door. The sixth is never selected.

Two pictures of Temple:236. Entry 2, marked as never displayed, shows the gate at the end of the wooden bridge from farther away. Entry 6, marked as displayed, shows the same gate from closer.Two pictures of Temple:236. Entry 2, marked as never displayed, shows the gate at the end of the wooden bridge from farther away. Entry 6, marked as displayed, shows the same gate from closer.

The picture that Temple:236 never shows, and one of the five that it does.

The names of the files tell the story. The unselected picture is called 236_tislandexterior.2200, like the plain exterior views of the island. The five others are called 236_tisext.7050, followed by the state of the room. And these five are, pixel for pixel, the five pictures of another card, Temple:211.

Temple:236 therefore shows the views of Temple:211, framed closer to the gate, and never its own. Its original picture stayed in the files.

Jungle Island

The Stone Circle, a Hub

In Myst, the most connected node was the bookshelf of the library. In Riven, it is the stone circle of the rebels’ tunnel, where five of twenty-five stones must be pressed in the right order to reveal the book to Tay.

The four views from its center are among the most connected cards of the game. Jungle:215 has 13 incoming and 10 outgoing edges, Jungle:229 has 11 and 11, Jungle:216 and Jungle:219 have 9 and 9. Each close-up of a stone is a card that goes back to the center, and the two ways back from Tay arrive at Jungle:215. The books are, once again, where the edges meet.

Lagoon Views with Exits and No Entrance

Jungle:650, 651 and 652 are three views of the lagoon, joined by turns. They lead to Jungle:649 and Jungle:646, and nothing leads to them. Next to them, Jungle:648 leads to Jungle:644 and Jungle:646, and nothing leads to it either. These are the lagoon views that MYST & RIVEN Illustrated shows, noting that their absence “may have been a mistake”.

Four never-displayed lagoon views, with Jungle:650, 651 and 652 arranged in scripted turning order and Jungle:648 shown separately. The upper schematic labels their turns and exits to reachable cards, and arrows beside the picture of 648 show its left turn to Jungle:646 and right turn to Jungle:644.Four never-displayed lagoon views, with Jungle:650, 651 and 652 arranged in scripted turning order and Jungle:648 shown separately. The upper schematic labels their turns and exits to reachable cards, and arrows beside the picture of 648 show its left turn to Jungle:646 and right turn to Jungle:644.

Four views that lead to the game and that the game does not lead to.

The graph adds a detail. Jungle:648 still holds two hotspots named forward and forwardright, and their scripts are empty: whatever these two zones led to was removed, and the zones were left in place.

Source Nodes Whose Pictures Are Seen

Two source nodes of Jungle Island show that an unreachable card does not make an unseen picture.

Jungle:781 is a close view of a slate in the schoolroom. Nothing leads to it. Its picture is, pixel for pixel, the picture of Jungle:752, which the game displays, and both cards turn left to Jungle:755 and right to Jungle:753.

Two identical views of a slate in the schoolroom. Jungle:781, marked as never displayed, has edges to Jungle:755 and Jungle:753 only. Jungle:752, marked as displayed, is joined to the same two cards in both directions.Two identical views of a slate in the schoolroom. Jungle:781, marked as never displayed, has edges to Jungle:755 and Jungle:753 only. Jungle:752, marked as displayed, is joined to the same two cards in both directions.

The same picture and the same exits. Only Jungle:752 can be reached.

Jungle:249 is subtler. It is an isolated node, and it shows the stone circle with the niche of the book open at the back. This picture is not the first picture of any other card. It is the second picture of Jungle:213, the one that its script selects once the book has been revealed.

Jungle:249, marked as never displayed, and the second picture of Jungle:213, marked as displayed: the same view of a ring of standing stones in a round room, with an open niche in the far wall. A dashed red arrow labeled pixel-identical joins the two nodes.Jungle:249, marked as never displayed, and the second picture of Jungle:213, marked as displayed: the same view of a ring of standing stones in a round room, with an open niche in the far wall. A dashed red arrow labeled pixel-identical joins the two nodes.

Jungle:249 was a card for the open niche. Jungle:213 now holds both states.

This is the difference between Myst and Riven in one example. Myst would have needed two cards, one for the niche closed and one for the niche open. Riven keeps one card and two pictures, and the card that used to hold the second picture remains, with three hotspots named left, forward and right whose scripts are empty.

Survey Island

An Earlier Elevator

Garden:19 is a source node. It has two exits: down to Garden:12, with the three movies of an elevator ride, and forward to Garden:18. These are exactly the two exits of Garden:13, the card that the game shows inside the elevator of the fountain, at the top of its shaft.

Garden:19 and Garden:13 each lead down to Garden:12 and forward to Garden:18. Nothing leads to Garden:19. Below, the view of Garden:19, marked as never displayed: a wall of dark planks with an arched opening onto a corridor. The view of Garden:13, marked as displayed: the same corridor seen through an open front.Garden:19 and Garden:13 each lead down to Garden:12 and forward to Garden:18. Nothing leads to Garden:19. Below, the view of Garden:19, marked as never displayed: a wall of dark planks with an arched opening onto a corridor. The view of Garden:13, marked as displayed: the same corridor seen through an open front.

The same place in the graph, and two different elevators.

The two pictures do not show the same elevator. In Garden:13, its front is open onto the corridor of the fountain. In Garden:19, the corridor is seen through an arched opening in a wall of planks. The elevator was redrawn, and the card of its earlier design was left behind, with its hotspot and its movies.

The Back of an Elevator, Again

The same elevator holds a sink node, Garden:11. Its picture is named 11_gsubelevinelevback: the back of the elevator, seen from inside. Its script contains no navigation.

In Myst, the back of the wooden elevator of Channelwood was a false sink node: the cards that lead to it show it for an instant, then go on to the real destination. Four years later, Riven does exactly the same thing in another elevator.

Garden:9 enters Garden:11 and then goes on to Garden:12, in the same script. Garden:17 enters Garden:11 and goes on to Garden:13. Below, three views: the elevator from outside, its back wall of planks, and the view out of it.Garden:9 enters Garden:11 and then goes on to Garden:12, in the same script. Garden:17 enters Garden:11 and goes on to Garden:13. Below, three views: the elevator from outside, its back wall of planks, and the view out of it.

Garden:9 shows Garden:11, then goes on to Garden:12 within the same click.

The graph draws this second step with a hollow arrowhead, from Garden:11 to Garden:12 or to Garden:13, depending on the card that the player comes from. There are 22 of these steps in the game. Jungle:361 and Temple:20 are false sink nodes of the same kind.

The Station That Is Never Empty

Each maglev line keeps track of its car with two variables, one for each end. On the line between Jungle Island and Survey Island, for instance, leaving Survey Island sets gemagcar to 0 and jwmagcar to 1. A station whose variable is 0 shows its platform empty, and its button calls the car back.

The line between Survey Island and Book Assembly Island does not work this way. At its Survey Island end, the variable is gnmagcar. A new game starts with it at 1. Five instructions of the game’s scripts store a value into it, and all five store 1. Nothing ever sets it to 0.

The station was nevertheless built for both cases. Eight of its cards test gnmagcar, in twenty branches for the value 0. Seven full-screen pictures show the platform without the car. Six of their files are named nomag, as in the other stations. The button of the station still contains the instructions that would call the car back. None of this can run.

The variable gnmagcar starts at 1. Five scripts write 1 and none writes 0. An arrow labeled always taken leads to case 1, where the car is drawn. A dashed arrow labeled never taken leads to case 0, which holds 20 branches on 8 cards and 7 full-screen pictures. Below, two pairs of views of a maglev station in a cave: with the car, marked as displayed, and with an empty platform, marked as never displayed.The variable gnmagcar starts at 1. Five scripts write 1 and none writes 0. An arrow labeled always taken leads to case 1, where the car is drawn. A dashed arrow labeled never taken leads to case 0, which holds 20 branches on 8 cards and 7 full-screen pictures. Below, two pairs of views of a maglev station in a cave: with the car, marked as displayed, and with an empty platform, marked as never displayed.

The station of Survey Island with its car, and the same views without it. The scripts can only select the first.

One of the five instructions explains what happened: walking into the station, from Garden:51 to Garden:44, sets gnmagcar to 1. Whatever the player did with the car, it is there when they arrive. The designers apparently decided that this station would never be found empty, and made it so with one instruction, leaving the empty platform, its seven renders and its call button in the files.

The decision has a cost in consistency, which the scripts make visible: at the other end of the line, the variable bmagcar is kept properly. By the scripts, a player who rides the car to Book Assembly Island and comes back to Survey Island through the linking books finds the car waiting there, while the game still holds it at the other end. I have not found this described anywhere, and I have not checked it in the game itself.

Book Assembly Island

A Missing Card Behind a Passing View

Boiler:465 has two exits: to the right, Boiler:429, and to the left, Boiler:466, which does not exist.

Only one card leads to Boiler:465, and it does not stop there. The script of Boiler:455 shows Boiler:465 and goes on to Boiler:427, within the same click. It is a passing view, like the back of the elevator.

Boiler:455 leads to Boiler:465 by a solid arrow, and Boiler:465 to Boiler:427 by a hollow one. A separate arrow leads from Boiler:465 to the dashed box of the absent Boiler:466. Below, three views: a doorway, a closer view of it, and the inside of a dome.Boiler:455 leads to Boiler:465 by a solid arrow, and Boiler:465 to Boiler:427 by a hollow one. A separate arrow leads from Boiler:465 to the dashed box of the absent Boiler:466. Below, three views: a doorway, a closer view of it, and the inside of a dome.

The exit to the missing card belongs to a view that the player only passes through.

This may be why the missing card was never noticed: the player is never left on Boiler:465 long enough to turn left.

The Second Drawer

In Gehn’s laboratory, the top drawer of a small chest opens on a collection of eggs (Boiler:257). The card holds a third picture, in which the second drawer is open on a collection of butterflies. It is known: MYST & RIVEN Illustrated shows it, as a drawer that cannot be opened in the game.

The scripts show how far the second drawer went. The variable of the chest, bdrwr, is 0 when it is closed and 1 when the top drawer is open. The script that opens the top drawer still begins with a branch for the value 2, which would first play a movie. No instruction stores 2, the movie it names is no longer in the card, and no hotspot covers the second drawer. The picture stayed, with one branch of the script.

What an Arrow Cannot Show

The last findings came from the variables rather than from the edges. They are worth a step back, because they need the whole game at once, as a graph does.

A Second Graph

Riven’s scripts use 163 variables. A card does not only lead to other cards: it tests variables, and it sets them. This draws a second graph over the first one, in which a card that sets a variable is joined to every card that tests it.

The second graph is denser than it seems when playing. 1,337 of the 2,307 cards test at least one variable to decide what to show or where to lead, and 298 cards set one. The variable of the fire-marble domes, apower, is tested on 176 cards of four islands. And 35 variables are shared between stacks, set in one and tested in another: these are the wires that run under the sea.

The longest reach belongs to Prison:29. When Catherine’s cage has just been opened, its script sets fourteen variables at once, nine of which belong to Temple Island: the position of the rotating room, five doors, the maglev, the elevator and the bridge of the golden dome. The end of the game takes place on Temple Island, and it is prepared from another island, in one script, while the movie of her release plays.

Branches That Never Run

Myst’s scripts keep their history in the open: a link that the developers disabled is a line with two dashes in front of it. Riven’s scripts are compiled, and nothing in them is commented out.

There is an equivalent, though. A branch of a script runs when a variable has a given value. If nothing in the game can give the variable that value, the branch is as dead as a commented-out line. Finding these branches requires knowing every place where every variable is set: the value it starts with, the scripts that store a value into it, and the routines of the engine that do. I left aside every variable that the engine touches or that a script increments, to keep only certainties.

Three variables remain, with 28 dead branches between them:

VariableWhat happens to itDead branches
gnmagcarStarts at 1 and is only ever set to 120, for the value 0: the empty station
adoitNever set by anything7, for the value 1
bdrwrSet to 0 or 11, for the value 2: the second drawer

adoit is the most curious of the three. It is tested 151 times, on 131 cards, more than any other variable but one, and nothing ever sets it. It is 0 for the whole game. Wherever it is tested, a card loads its movies or its pictures “if adoit is 0”, which is always. Seven cards also say what to do if it is 1: the same thing, or a little less. It looks like a switch of the authoring tools, left in the scripts in its off position.

Two more variables are set and never tested: ostove, when the stove of Gehn’s office is lit or put out, and gcathtime, in the viewer of Survey Island. The game remembers them for nothing.

Pictures That Nothing Selects

The same reading tells which pictures the scripts can select. Of the 4,147 pictures that the cards hold, 19 are never selected by a branch that can run, leaving aside 16 cards on which a routine of the engine may draw them (the pages of the journals, for instance).

Seven of the 19 are the empty station. Of the twelve others, five are black, three are copies of a picture that is selected elsewhere, and two are small patches. Two are full views of their own: the bridge of Temple:236 and the drawer of butterflies.

The list is short. Riven’s files are remarkably clean: almost every picture that was kept is a picture that can be shown.

Two Variables, Seven Eggs

Two other variables caught my attention for their names: araw and aova. Ova is Latin for eggs. Following them through the scripts gives the complete mechanism of Riven’s easter eggs.

The variable araw goes from 0 to 5 in five numbered steps, then aova is set to 1. Five views with a small red frame on the spot to click: an egg in an open drawer of Boiler:257, a bowl in Rebel:11, a submarine seen from above in Jungle:333, a star at the top of a hall in Garden:15, and a spot on a rock in Temple:60.The variable araw goes from 0 to 5 in five numbered steps, then aova is set to 1. Five views with a small red frame on the spot to click: an egg in an open drawer of Boiler:257, a bowl in Rebel:11, a submarine seen from above in Jungle:333, a star at the top of a hall in Garden:15, and a spot on a rock in Temple:60.

Five clicks, in this order. A click out of order sets araw back to 0.

araw counts five clicks on five hidden hotspots, in a fixed order and on five different stacks: an egg in the drawer of Gehn’s laboratory, a bowl in Tay, the submarine seen from the control room of the bridges, a star at the top of the elevator of Survey Island, and four letters carved on a rock near the maglev of Temple Island. The fifth click sets aova to 1, and seven cards test aova to open what they hide.

None of this is new. Cyan itself published hints for these eggs, and they have been documented since 1998 by Riven Easter Eggs Revealed and by MYST & RIVEN Illustrated. The scripts confirm what these pages describe, and settle two details.

The first is the order. Each of the five hotspots tests araw for exactly one value and resets it otherwise, so the clicks only count in sequence. The submarine of the third step is not even displayed until the first two are done: its picture is selected when araw is 2.

The second is the book press. A press for bookbinding once stood on Book Assembly Island. Richard A. Watson, of Cyan, explained that it was removed because testers took it for a mechanism to operate. A working press was later reported as a seventh egg of the iPad version. It is in the files of the 1997 release: when aova is 1, a hotspot of 12 by 12 pixels named egg, on Boiler:299, leads to Boiler:304, where the press is drawn, and two hotspots lower and raise it.

A third variable, tdl, belongs to the same mechanism. It starts at 1. A click on the lever of the cage (Temple:134) makes it 2. A click on the tip of the cage’s golden roof, seen from below (Temple:153), makes it 3. Six clicks on the unconscious guard at the foot of the cliff (Temple:124), in a fixed order, make it 9. A seventh click then sets araw to 4, as if the first four eggs had been found. This shortcut is also known: clone2727, one of the authors of ScummVM’s Riven engine, described it in 2011. The scripts show how narrow it is. Ten cards of the first minutes set tdl back to 0 on most of their exits, and nothing ever sets it to 1 again. The shortcut exists once, at the very beginning of a new game, for a player who takes the few turns that keep it alive.

Finding known secrets this way matters for a reason: nobody told the analysis where to look. It was given the scripts, and the eggs came out with the dead branches.

The Blank Card

The last finding is about how the cards were made.

Gehn:89 is a black card with seven hotspots and no script: left, forwardleft, forward, forwardright, right, up and down, numbered 1 to 7, in seven rectangles that tile the screen. Prison:46 holds exactly the same seven.

A black frame divided into five vertical zones numbered 1 to 5 and named left, forwardleft, forward, forwardright and right, with two dashed horizontal bands across the top and the bottom, numbered 6 and 7 and named up and down.A black frame divided into five vertical zones numbered 1 to 5 and named left, forwardleft, forward, forwardright and right, with two dashed horizontal bands across the top and the bottom, numbered 6 and 7 and named up and down.

The seven hotspots of Gehn:89, as they are stored.

This is the blank from which Riven’s cards were made. Throughout the game, a hotspot named left has the number 1 in 1,405 cases out of 1,445, and a hotspot named right has the number 5 in 1,395 cases out of 1,439. The hotspots that a card adds for itself usually start at 8. The side strips are the same on almost every card: 1,299 left hotspots and 1,276 right hotspots have the exact rectangle of the blank, 74 and 72 pixels wide.

Making a card meant copying the blank, removing the zones that the view does not need, and scripting the others. Some were neither removed nor scripted: 66 hotspots named after a movement do nothing. Rebel:14 and Rebel:16 each keep five of them, Temple:402 keeps six. Ten cards keep a lone up band at the top of the screen, which still carries its upward cursor.

Five Targets Without Cards

Finally, eight instructions of the game ask for five cards that do not exist.

Missing cardAsked for by
Boiler:466Boiler:465, turning left (a passing view)
Jungle:740Jungle:739, from two hotspots. Nothing leads to Jungle:739
Temple:361Temple:360, turning left or right, and Temple:404 (the corridor)
Temple:477Temple:476, turning left. Nothing leads to Temple:476
Temple:478Temple:476, turning right

The graph keeps them as virtual nodes, drawn with a dashed border, as the Myst Graph did for its three missing cards.

Each stack numbers its cards from 1 without a gap, except at these five numbers. Every hole in Riven’s numbering is a card that a script still asks for: nothing is missing without a trace.

They have one thing in common. Seven of the eight instructions belong to cards that cannot be reached, and the eighth to a card that the player only passes through. The missing cards are the neighbors of removed places: Temple:476 is a view from a walkway inside the golden dome whose left and right turns are gone, Jungle:739 a view of the village whose step forward is gone. When a place was removed, the cards around it were not always removed with it, and their arrows still point to where it was.

Conclusion

I began the Myst Graph by asking what the game would look like if its cards and links could be seen at once. The drawing revealed the structure of its Ages, hidden views and interrupted routes. The Riven Navigator and The Riven Diffs then took the inquiry inside a card, comparing the pictures a single place can show. With the Riven Graph, I can study both scales together: the network of places and the images, scripts and variables within them.

Across both games, these structures preserve traces of how the world was made: a route cut off, an older view left behind, a picture reused, a script that still points to a missing card. Riven also makes the limits of this reading clearer. An unreachable card can share its picture with a reachable one, and an arrow can depend on a state the game never reaches. The files make these questions precise enough to investigate, even when they cannot tell us why a decision was made.

From Myst’s Ages to Riven’s islands, following the cards and their connections has given us another way to explore the worlds Cyan built.