The Myst Graph, 2: Revealing New Findings

Introduction

Previous analyses of Myst’s source code have indicated that some assets are not seen in the game, such as Catherine’s crumpled note and the opened music box in the Mechanical Age. Also, the analysis of commented-out scripts indicates the reference to an intriguing “Rattle Ratchet Routine” (Myst:70105), as revealed during the “Reverse Engineering Myst” presentation at Mysterium Con 2024:

-- Rattle Ratchet Routine…

-- It’s no longer with us, but it may be back!!!

These findings offer a fascinating glimpse into the artistic, gameplay, and last-minute decisions made by the Myst creators. By creating the “Myst graph” (shared in a previous article), I aim to reveal new insights into the game’s creation by focusing on the relationships between cards instead of just the cards themselves.

Visual Indicators

Before diving into the findings, let’s clarify one point related to visual indicators used in this article.

A close-eye icon superimposed on a game screenshot signifies that the asset is not accessible within the game environment. This typically occurs when the asset is featured in a source node with no incoming edges, effectively making it invisible and unreachable. On the other hand, an open-eye icon indicates that the corresponding asset is visible and can be accessed while playing the game (I typically used reachable nodes to show a contrast in viewing perspective). By default, if no indicator is shown, the image is viewable in the game.

Also, for demonstration purposes (especially when the edges-density is high), edges may be highlighted with thick red lines.

Disclaimer

This project is a personal initiative to analyze and understand the classic Myst game. It is an unofficial and nonlucrative open-source effort created for educational purposes only. This project is not affiliated with Cyan Worlds, Inc. or the original creators of Myst. Any opinions, insights, or analyses presented on this blog are my personal views and do not reflect any official positions or statements of Cyan Worlds, Inc., its affiliates, or any organizations I might be affiliated with.

Before analyzing this graph, please be aware that this series of articles will contain spoilers for the game. If you are new to Myst or plan to play it soon, I recommend skipping these articles and experiencing it firsthand: Myst remains such a fantastic game!

Revisions

This article only scratches the surface of these discoveries: there are likely many hidden gems waiting to be uncovered. If readers have additional insights from the analysis of the Myst graph, I encourage them to share their work by emailing me at myst.graph@glthr.com. I will do my best to update this article to refer to their publication (if they have a blog, etc.) or, with their permission, feature their contributions by updating this article. I will also update this article with new findings and corrections. These changes are tracked on this page.


General

Shortest Theoretical Path

From the dock (Myst:8336), where the player starts the game, to Dunny:11088, where the player can return to Myst Island, the theoretical minimum distance is 24 edges. (Note that the last node can be subject to interpretation, as some people may consider that the return to the library is the actual ending).

One of the possible paths (there are alternative sub-paths in the library, after Myst:46094) is: Myst:8336 → Myst:2737 → Myst:5026 → Myst:6798 → Myst:7516 → Myst:7902 → Myst:8079 → Myst:3604 → Myst:9960 → Myst:11521 → Myst:46094 → Myst:49958 → Myst:47338 → Myst:49781 → Myst:56926 → Myst:63906 → Myst:71909 → Myst:23753 → Myst:28552 → Dunny Age:6532 → Dunny Age:2943 → Dunny Age:9757 → Dunny Age:4840 → Dunny Age:10805 → Dunny Age:11088.

As explained in the first article, this calculation assumes no gameplay constraints and provides a baseline for understanding the graph’s topology. One instance of the shortest theoretical path can be downloaded here.

Longest Shortest Theoretical Path

The most distant nodes are Selenitic Age:26154 (the tower controls) and Channelwood Age:88814 (the Achenar monitor), which are separated by 130 edges. Coincidentally and anecdotally, these nodes feature screen-based interfaces with button controls. The graph representing this path can be downloaded here.

Self-References

Three nodes refer to themselves. These self-loops are used as a mechanism to represent interactive effects instead of a navigational means.

In Myst Island, a self-referencing node represents the view of the control panel of the underground room next to the ship (90877). In Mechanical Age, 34613, representing the hologram in Achernar’s room, also self-loops. The goal of these actions seems to reset the state of the card, which contains variables.

In the Mechanical Age, the cage card (14628) redirects to itself too, but for a more practical effect: cycling quickly between cards to simulate, alongside with sound effects, the rendering of electricity arcs: cage, cage electrified, cage electrified bright, then cage again. Interestingly, it also connects to two sink nodes (i.e., nodes with no outgoing edge, leading nowhere), as they are used for this effect, not for navigation.

Isolated Cluster

As indicated in the previous article, there is an isolated cluster of three nodes unreachable from the game. The puzzle they represent has not been removed from the game; it has just been duplicated and replaced by Mechanical Age:33452, which is part of the game. The key difference is that the duplicating card plays a video named “MU Lower Layer” before going to the card Mechanical Age:35943.


Cross-Ages

Initially, the Spaceship on Myst Island (78050) was somehow directly linked to the Selenitic Age (31832, virtual). This link was removed (but still visible in the code), and the destination card was removed, too. As of the game’s release, only the exterior path (Myst:14069) is reachable when leaving the ship.


Myst Island

Centrality of the Bookshelf

With 19 incoming and 10 outgoing edges, the bookshelf (Myst:48938) is a central hub connecting various nodes throughout the graph. This position can be attributed to its role as a gateway for accessing openable books, which are treated as individual nodes that share connections with the bookshelf. This feeling is reinforced by the fact that returning from an Age places the player in front of the bookshelf (see the “transitivity” section of the previous article). This is unsurprising in a universe where books are the gateway to other worlds.

Additional Note on the Crumpled Note

It is a well-known fact that Catherine’s note is not represented in the final game as a crumpled letter.

The graph reveals that the cards featuring the crumpled note assets are still in the game, like the assets themselves, but not reachable. Looking at the North, the bidirectional edges between 8631 (crumpled note) and this latter and 8079 have been transformed into directed edges from 8631, making it a source node. A bidirectional edge was created between 25971 and 8079, bypassing 8631. Looking to the South, the mechanism is identical: 28321 was transformed into an unreachable source node, while a bidirectional edge was added between 9648 and 91471.

While it does not reveal a new finding here, the graph shows that the assets do not appear in the game because they were not used but rather because the cards that feature them were disconnected, and the gamer cannot reach them.

Retrofitted Observation Platform Edges

Initially, accessing the codes on the observation platform utilized the same navigational technique as most nodes. The player would reach code 68940, click to zoom in, navigate to the relevant card, and click again to return to the zoomed-out view. A bidirectional edge would be expected between 68940 and each of the cards representing codes.

However, this approach has since been modified to use backtracking edges instead. First, the backtracking functionality was implemented by introducing a “push card” from the origin edge and a “pop card” for the target edge (this mechanism will be explained in detail in the third article). Second, the directed edge from the code view (e.g., 66100) to the observation platform (68940) was disabled (prefixed with “--”) as it was no longer necessary.

In summary, bidirectional edges have been replaced with backtracking edges for the zoom in/zoom out effect.

The Planetarium Device and the True-False Source Node

According to the graph, 42800 is a source node. But something seems off: researching the contents of the cards reveals that the asset, “Planetarium3-Up LightsOn”, representing the device on top of the dentist chair when the lights are on, does not appear to be duplicated in another node. Also, this asset is reachable from the game. Consequently, 42800 must somehow be reachable, too.

Additionally, there is an inconsistency in the vicinity of this node: 42659, which represents a partial view of the device when lights are on, supposedly has a backtracking edge with 41677, which shows the device when lights are off. This is not possible, as the player is expected to switch off the lights using the button next to the door; they cannot do it from the chair.

A review of the cards reveals that 42659 indeed points to 41677, and they have a backtracking dynamic (push/pop card) conformingly to the graph indications. However, 41677 operates an immediate substitution of images to display “Planetarium3-Up Lights On” when lights are on. So, ultimately, this image is directly used by another node than 42800: it is, indeed, a source node, and most of its logic (it would be interesting to study to which extent) is present in 41677.


Selenitic Age

Unreachable Nodes

Several views cannot be seen in the Selenitic Age.

The graph reveals two alternative viewpoints on the crater rim, each representing a nuanced shift in perspective from the views selected for the release.

Also, regarding the crater rim, while 13290 is a source node, its asset is used by 12953 (qpat3) and, therefore, is viewable in the game. Another inaccessible alternate view relates to the stone forest, offering a slight change of perspective (compare 19922 and 20027).

The two last ones show that it was initially envisaged that the player could raise their head to see the wind tunnel access from below.


Mechanical Age

Unreachable Nodes

Node 38824, featuring asset “East Is. 8-W (Down)”, is inaccessible from within the game, as it is a source node. Consequently, the corresponding asset is not used. If the image seems familiar, it is because it was replaced by a slightly different change of perspective, reachable from 16009. Also, 15738, representing the player looking down to the East, is unreachable.


Channelwood Age

The Back of the Wooden Elevator, a False Sink Node

Nodes 45661, 96885, 97270, and 98476 use the same asset: “ElevatorEntered”. The graph analyzer interprets them as sink nodes. Indeed, manual verification shows that these nodes do not have special scripts on their own: their sole purpose is to display the back of the wooden elevator.

Given that no Myst player has ever been stuck in an in-game elevator, and considering that these nodes are connected to the central cluster, it is clear that they cannot be actual sinks. There must be a way to escape them. By examining the nodes pointing to these pseudo-sink nodes, we can identify the trick: they first reach the node representing the back of the elevator, then utilize a command that, to date, I have been unable to identify in the HyperTalk reference books (“vs left” or “vs right”). Finally, they reach the actual node. This behavior is similar to the electrified cage effect from the Mechanical Age, where the card just serves as a visual transition to the actual view.


Stoneship Age

Unreachable Nodes

In the Stoneship Age, the unreachability of the nodes is subtle. First, 17724, representing an open door in the tunnel, was replaced by 17526, which uses its scripting capacity to display the door open.

Node 53791, featuring the book linking to Myst Island, is interesting because it demonstrates a debugging device used by the Myst creators: the beep. The beep is noticeable on cards Mechanical Age:33554 (commented out), Mechanical Age:34613 (commented out), Myst:42800 (beep enabled, unreachable node), Selenitic Age:54693 (the Mazerunner ship; still enabled; a card so complex in comparison with the others that it would deserve an article of its own), and Stoneship Age:53791 (beep enabled, unreachable node). 53791 was replaced by 23473, which incorporates a very different script. Anecdotally, they both represent the same image and use different image files.


Dunny (D’ni) Age

The Shared Card That Goes Nowhere

Last (at least for the scope of this article), two very similar locations—at first glance, the images may appear identical, but subtle differences suggest the rendering of different views—, 7365 and 8487, have backtracking edges to a common node, 11283. Because their architecture is the same, it makes sense for them to share the same zoomed-in perspective.


Next Steps

These findings presented here are low-hanging fruits revealed by the graph analysis, and probably more will emerge. In the third article, published on a couple of weekends, I will go into great technical details to explain how the Myst graph generator, named DeMystify, works under the hood and open source it.

In preparation for the release of DeMystify, if you have features you would like the graph generator to support, feel free to send your suggestions to myst.graph@glthr.com.

0
Subscribe to my newsletter

Read articles from Guillaume Lethuillier directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Guillaume Lethuillier
Guillaume Lethuillier

Opinions expressed in this blog are solely my own and do not express the views or opinions of my employer