the book · contents
05-depth-costs-legibility 3,966 words about 17 min
Chapter 5. Depth costs legibility
You wanted a cistern under the dining hall, filled from the river. The plan had three steps: dig a tunnel from the riverbank, build a floodgate at its mouth, then cut the last tile of rock. The miner cut the last tile before the floodgate was built.
Water in Dwarf Fortress does not appear all at once. Each tile holds a depth from one to seven, and water moves tile by tile toward lower and emptier ones, so the river comes down the tunnel, spills into the cistern, fills it, and keeps going: down the stairwell, across the dining hall, into the bedrooms on the level below. By the time you have walled off the tunnel, several dwarves have drowned in their beds.
The fortress recovers, or seems to. The water is pumped out, the dead are buried, and the stockpiles are restocked. What you cannot see is the number each survivor carries. Every dwarf keeps a hidden stress value that runs from −1,000,000 to +1,000,000. The death of a friend or relative adds to it, scaled by personality facets such as stress vulnerability and bravery, and strong memories are promoted to long-term memories that go on adding stress whenever they come back to mind [1]. Above +10,000, +25,000, and +50,000 a dwarf risks tantrums, depression, and wandering about obliviously, and prolonged stress ends in insanity.
Months later, in the season after the flood, the metalsmith throws a tantrum in the dining hall and smashes a table. Everyone who watches gets a new unhappy memory. One of the watchers lost a brother in the flood. By spring a good part of the fortress is too stressed to work, the food runs out, and the next caravan arrives at a ruin. Years later, in a new game in the same world, the fortress is still there in Legends mode: a site with a name, a list of who lived and died in it, and the flood among its recorded events. An adventurer can walk into its halls.
Every link in that chain is a rule the game simulates, and none of them is hard to understand on its own: water flows downhill, people drown, grief adds stress, tantrums spread it. The chain as a whole is hard to see because it runs through months of game time and through a number the game never puts on screen.
Two scores
Every mechanic in the dataset carries six scores on five-point scales, each with written anchors. Two of them matter here.
Legibility asks how easily a typical player forms an accurate mental model of the mechanic from play. A 1 means most players misunderstand the causes even after many hours; a 2 means the mechanic is understood only through wikis or community analysis; a 3 means it is understood with deliberate attention and the game's own information tools; a 5 means it is transparent at a glance.
Emergence potential asks how much unscripted variety the mechanic generates when coupled with others. A 1 is deterministic and isolated: same input, same visible result. A 3 interacts with other systems to produce unplanned situations. A 4 frequently produces chains of consequences across systems. A 5 is a primary engine of emergent stories wherever it appears.
Dwarf Fortress's stress system scores 3 for legibility and 4 for emergence potential. Its simulated history, which runs a world forward for up to thousands of years before the fortress is founded, scores 2 and 5. The pause button scores 5 and 1.
The scores have a limit that applies to everything below. Every rubric score in the dataset was assigned by one model rater reading each mechanic's record against the anchors. No second rater has scored them yet: the dataset holds 0 independent ratings, and 0 scores have been checked by anyone else. The correlations below describe how that one rater read the design knowledge in the records. They are a consistent reading of that knowledge and say nothing yet about how players experience the mechanics. Second ratings are being collected through a calibration set of 20 mechanics with published reference scores; a rater who scores the set closely enough can then rate the rest.
What the scores show
Across all 199 mechanics, legibility falls as emergence potential rises. The Spearman rank correlation is ρ = -0.42 (p <0.001). The 14 mechanics scored 1 for emergence average 4.4 for legibility, and the 44 scored 4 or 5 average 3.1.
Figure: Each mechanic placed by rubric legibility (x) and emergence potential (y); area ~ number of games using it. Jitter is deterministic.
Part of that slope is built into the definitions. Mechanics in the legibility and time-and-pacing families sit at the bottom of the emergence scale by construction: an overlay or a pause button generates nothing on its own, and 69 percent of them score 1. Those mechanics also score high for legibility, since their job is to be read. Remove both families and the correlation weakens to ρ = -0.35, with the same sign. Among the mechanics that simulate something, the ones that produce more variety are still rated harder to read.
18 mechanics score 2 or lower for legibility. They include traffic congestion, food webs, gossip that spreads between agents, creatures that learn, natural selection, simulated history, and the scaling of threat to the player's strength. 16 of them score 3 or more for emergence, and several couple many agents or many cells, so the player sees only their outputs.
Readable rules, unreadable results
The legibility scale asks whether a player can form an accurate model of a mechanic from play, which is a different question from whether its rules are written down. Two of the catalog games scored 5 for emergence at the game level show how far apart the questions can be.
Conway's Game of Life has one rule, and it fits on a line: a dead cell with exactly three live neighbors comes alive, and a live cell with two or three survives. Everything else dies. The rule is complete, public, and the same for every cell, and it is still impossible to read a pattern's future off it. The rule is Turing complete, so whether an arbitrary starting pattern ever stops changing is undecidable, and a five-cell shape called the R-pentomino keeps changing for 1,103 generations before it settles. Half a century of discovery in Life, from the glider gun found in November 1970 onward, came from people trying seeds and watching.
EVE Online runs one economy for all its players, in which nearly every ship and module is made by a player and destroyed ships are gone for good. The market shows its price history to anyone. Wars create demand for manufacturing, manipulation such as ramping and bear raids is possible, and in 2007 the developer hired an economist to oversee the economy. The rules of a single trade are legible; the economy those trades add up to needed a professional to watch it.
A mechanic scores high for emergence when it feeds chains of effects through other systems, and every link it adds to a chain is a link a player has to follow to understand what happened.
Harder to balance
Emergence potential and tuning difficulty correlate at ρ = 0.61 (p <0.001), the strongest relationship among the six scores. Mechanics scored 1 for emergence average 1.6 for tuning difficulty; those scored 4 or 5 average 3.6. A 4 on the tuning scale means small changes cause runaway loops or dominant strategies.
In RimWorld a raid's size is a budget of raid points, computed before each raid as the sum of wealth points and colonist points, times a threat scale, a starting factor, and an adaptation factor, capped at 10,000. Wealth points rise from zero at 14,000 of colony wealth to 4,200 at 1,000,000; each healthy colonist adds between 15 and 200 points; the adaptation factor drops after colonists die or go down [2]. None of this is on screen. Players who read it on the wiki learn to manage wealth: they skip valuable furniture and art so the raids stay small, which is the opposite of what a colony-building game wants them to do. The mechanic scores 2 for legibility and 4 for tuning difficulty. Factorio scales its enemies on time, pollution, and destroyed spawners instead of wealth, and The Elder Scrolls IV: Oblivion scaled enemies to the player's level, drawing the complaint that progression felt pointless when every enemy kept pace.
Mood shows the runaway loop. A mental break in RimWorld or Dwarf Fortress writes negative memories into everyone who witnesses it, which lowers their mood, which raises their chance of a break. After a disaster, a whole group can cross its thresholds together, and the record for the mechanic lists the cascade as its first failure mode: a group spirals beyond recovery after a random event, and it feels unfair. Designers answer with mercy rules, caps on how much one kind of memory can stack, and cheap ways to recover, and each answer has its own failure: when fine meals and art are easy to come by, positive thoughts swamp negative events and the drama drains out.
Food webs show how a designer's fix can create its own failure. In the form Vito Volterra published in 1926, prey grow and are eaten in proportion to the number of predators, predators grow from what they eat and die at a constant rate, and the two populations cycle without settling [3]. Left alone, those cycles drift until one population reaches zero, so a food web can collapse with no mistake by the player. Games add carrying capacities, starvation, migration, and respawns to stop the drift, and the record lists the cost among the mechanic's failure modes: a hidden floor under a population makes overhunting free. SimLife lets creatures eat each other on a shared map, and in Viva Piñata visitors and predators arrive according to what the garden holds. Food webs score 2 for legibility and 4 for tuning difficulty.
Only 1 mechanic in the vocabulary scores 5 for tuning difficulty: the persistent world, which keeps running on a server while its players are away. Its record lists failures that a single-player game cannot have. Early arrivals pile up wealth and territory until new players find no room to matter, load in popular places degrades the simulation for everyone present, and the world dies when fewer people play than its systems assume.
Expensive and hidden
Legibility also falls as compute cost rises (ρ = -0.35, p <0.001). The mechanics that cost the most to run tend to be fields and crowds, and a player cannot watch a field or a crowd the way they can watch one colonist.
Oxygen Not Included runs every tile of its asteroid through the heat rule described in chapter 2, and its gases diffuse, equalize when a chamber is opened, and sort themselves by density. None of it is visible as anything but tinted tiles, so the game gives the player overlays for oxygen, temperature, power, plumbing, decor, and germs, and the record for fluid simulation lists, among its failure modes, that gases are unreadable without overlays and players misjudge spreading hazards.
In city builders, traffic shows the trade between cost and legibility running in both directions. SimCity has no cars. In Micropolis, the released source of the original engine, a zone looking for a destination takes a random walk of up to 30 steps along the road network, and each success adds to a traffic density value at points along the path; densities decay on every scan [4]. The player sees traffic as a map. Cities: Skylines simulates every vehicle on its lane, so a jam is something the player can watch form at an intersection. That made traffic easier to see and harder to understand: Cities: Skylines' vehicles crowd into one lane while parallel lanes sit empty, and stuck vehicles are removed by default, which hides real congestion. Traffic congestion scores 2 for legibility.
Watching individuals can also expose the shortcuts in a model. In SimCity (2013), whose GlassBox agents chapter 2 described, agents took the first available job and the first empty home rather than keeping persistent lives, and vehicles took the shortest route rather than the least loaded one. Players who followed individual citizens saw this, and read it as broken pathfinding.
Hard reads
Chance hides the cause in Caesar III and Pharaoh, whose walkers (chapter 3) give the houses they pass coverage that decays until the next visit. In Julius, an open-source reimplementation of Caesar III, a roaming walker first heads for a road point about 8 tiles out in a direction that rotates with each spawn, then wanders, turning pseudo-randomly at intersections [5]. A house that no walker happens to pass loses coverage, devolves, regains it on a later pass, and evolves again; the record lists that flicker as the first failure mode. Players answer with looping road blocks that leave a walker nowhere else to go. Walker delivery scores 2 for legibility.
Delay hides it in rail signals. A block signal admits a train only if the next block is empty; a path signal admits it once it has reserved a route to the next signal, so trains on paths that do not cross can share a block. Transport Tycoon had only two-way block signals, its Deluxe edition added one-way signals, and OpenTTD added pre-signals and path signals [6, 7]. Factorio pairs its rail signals with chain signals that mirror the signals ahead. The record's failure modes are about reading: conventions learned mainly from community guides, such as Factorio's rule of chain signals in and rail signals out, stop new players, and a deadlock that appears long after a junction was built is hard to trace back to it. Rail signaling scores 2 for legibility and 2 for tuning difficulty.
Sampling hides it in sports management, whose match engine (chapter 9) resolves each event with probabilities computed from attributes, tactics, fatigue, and context. One of its failure modes is a dilemma: an engine with little variance makes results feel decided by the ratings, and one with a lot makes tactics feel irrelevant. Another is the reading problem itself: players cannot tell bad luck from bad decisions. Football Manager drew its matches as text, then from 2005 on a 2D pitch and from 2009 in 3D [8], and the record warns that pictures which disagree with the underlying events undermine trust in the simulation. The engine scores 2 for legibility and 4 for tuning difficulty.
Absence hides it in off-screen progression, which The Sims 3 introduced (chapter 3) to keep a neighbourhood alive by simulating most of it roughly. The record's rule rolls life events for the households the player is not playing, from aging up and changing jobs to moving, marrying, having children, and dying, with probabilities set by coarse state such as age, money, and relationships, and writes the results into the state the full simulation reads when the player looks again. The record's failure modes are what that costs in reading. Off-screen events split families or move away characters the player cared about, which reads as the game vandalizing the save, and unreported changes leave players unsure why the town changed and send them to wikis and mods. Off-screen progression scores 2 for legibility and 2 for compute cost.
Mechanics that own nothing
Designers have answered the problem with the legibility layer of chapter 2: mechanics that read state other mechanics own and show it. The dataset's information-and-legibility family holds 10 of them, and they are old. The steward who reports the harvest in Hamurabi (1968) is the earliest advisor in the catalog; Lemonade Stand (1973) gave a weather report each morning, the earliest forecast; Balance of Power (1985) had map overlays and an alerts feed; Creatures (1996) let the player inspect a Norn's drives.
Four forms matter most for deep games.
Overlays recolor the map by one hidden field: land value, pollution, crime, coverage, temperature, germs. They turn a hunch into a picture, and they become the main tool for debugging a layout. Their failures are specific: ramps that normalize automatically make a minor problem look as red as a severe one, and an overlay of land value shows where it is high without showing why.
Causal tooltips let the player hover any derived number and see the list of named modifiers that produce it, each with a sign and a size, and hover the terms inside the list in turn. They are the signature of Paradox's grand strategy games; the catalog's earliest is Europa Universalis IV (2013), Crusader Kings III added nested tooltips on highlighted terms, and Victoria 3 uses them to break down battle calculations [9, 10]. They require the simulation to compute values as explicit lists of labeled terms rather than opaque formulas, which is a constraint on the engine. Late in a game the lists grow into walls of numbers that no longer explain anything.
Agent inspection opens a panel on one agent: needs, mood and its contributors, current job, health by body part. RollerCoaster Tycoon gave every guest a stream of readable thoughts, so a player could click a guest, read that a ride was too intense or a drink too expensive, and fix the park. RimWorld lists every mood thought with its source and expiry. The design question is whether the panel shows reasons or only values; a panel that shows need levels but not the rule that chose the action still leaves behavior looking random.
Chronicles record significant events into a history the player can browse. Dwarf Fortress's Legends mode lists historical figures, sites, artifacts, and civilizations, adds the player's own fortresses, and exports an archive that can reach about a gigabyte for long histories [11]. Out of the Park Baseball keeps a league's full statistical history, so long careers build an almanac. Most players never open a chronicle written as dry tables, and a chronicle without cause links lists what happened without saying why.
The family is undercounted in the catalog. Each record lists the mechanics its sources describe, and interface features are described less often than systems: the overlay record names Cities: Skylines' info views, while Cities: Skylines' own record does not list overlays. Treat the family's counts as lower bounds.
Hidden on purpose
Some mechanics make the player's picture incomplete by design. Fog of war gives each player a visibility state for every cell: unexplored, explored but not currently seen, or seen. Seen cells show live state and explored ones show the last thing observed, so changes there go unnoticed. Walter Bright's Empire, in 1977, is credited as the first use [12]. The record's simulation-game examples are Factorio's radar, which charts distant chunks slowly, and unexcavated rock in Dwarf Fortress, though neither game's record lists the mechanic; 13 catalog games do, among them Civilization, FTL, and Against the Storm, whose forest glades stay hidden until cut open. It belongs to the same family as overlays and tooltips and scores the same 4 for legibility: what it hides is the world, and its own rule is plain. Its failure modes are the ways that arrangement breaks. A computer opponent given the full map to make up for weak reasoning feels like cheating once players notice, cheap fast scouts make the fog trivial, and in games whose threats come from systems rather than opponents, fog adds travel without decisions.
Scouting knowledge hides attributes instead of terrain. Each attribute has a true value and, for each player, a level of knowledge; scouting raises the knowledge, and the display shows a masked value, a range, or an estimate whose noise shrinks as knowledge grows. Football Manager masks attributes and tracks how well its scouts know each region, and Out of the Park Baseball presents ratings as its scouting staff's opinion, with their accuracy as a setting. The record lists a failure that comes from outside the game: editors and database tools reveal true attributes, and the mechanic collapses for players who use them.
Gossip is a case where most games choose not to hide anything. A gossip mechanic gives each agent its own set of known facts and passes them along in conversation, with a probability set by how salient the fact is, the relationship, and personality. Most games skip it and treat every event as known to everyone; the social facts database behind Prom Week records every event as known to every character [13]. The record's failure modes show what spreading costs in reading: slow or patchy spread makes consequences feel disconnected from what the player did, and chains of retelling that cannot be traced make changes in reputation look random. Gossip propagation scores 2 for legibility and is used by 3 catalog games.
Choosing a point on the slope
The two colony sims at the center of this book picked different points between depth and legibility.
Dwarf Fortress was built on its designer's stated principles: break a system into parts, avoid overplanning, and base each model on a real-world analog [14]. The result has more mechanics than any other game in the catalog, 30, and the stress numbers in this chapter's opening come from the community wiki, because the game does not show them. RimWorld, whose record names Dwarf Fortress as an influence, uses several of the same systems and chose them for how legible and story-relevant their outputs are rather than for realism. Its thoughts are itemized, its injuries are named body parts, and its stress is a mood bar with visible thresholds, where Dwarf Fortress's is a hidden number.
Oxygen Not Included derives insulation, phase changes, and overheating machines from a single rule for heat moving between cells, so much of the depth is in one equation applied everywhere, and it gives the player overlays to read the results. Victoria 3 simulates prices, wages, and the politics that follow from them, and puts the explanation in the numbers: hover a price, then a modifier inside it, then a term inside that.
The cost of making depth readable is design work and screen space. Each coupled system needs a way to be read, and each legibility mechanic brings failure modes of its own.
Explaining a simulation's state from its own logs needs retrieval, summarization, and constrained generation, all of which exist, yet explanation is the rarest effect any technique in the dataset has on a mechanic. Chapter 10 makes the case for a why-query, a box where a player asks why something happened and gets an answer drawn from the game's event log; it is the highest-ranked opportunity in the dataset.
Exercise: trace a collapse
Pick a disaster you remember from a simulation game: a colony that fell, a city that went bankrupt, a factory that stopped.
- Write the chain of causes from the first event to the collapse, one link per line.
- Mark each link visible (the game showed it when it happened), findable (you could have found it with the game's own tools), or hidden (you learned it from a wiki, or not at all).
- For the first hidden link, design one legibility mechanic that would have shown it: an overlay, a tooltip, a line in an inspection panel, an alert, or a chronicle entry. Say what it would display and when.
- Say what your mechanic would cost. Would it make the right play obvious, and would that make the game easier than its designers intended?
Legibility is one of five limits on what a mechanic can be, and chapter 6 sets it beside the other four.
Sources
[1] Dwarf Fortress Wiki contributors (2026). Stress. Dwarf Fortress Wiki https://dwarffortresswiki.org/index.php/Stress
[2] RimWorld Wiki contributors (2026). Raid points. RimWorld Wiki https://rimworldwiki.com/wiki/Raid_points
[3] Vito Volterra (1926-10-16). Fluctuations in the Abundance of a Species considered Mathematically. Nature 118:558-560 https://www.nature.com/articles/118558a0
[4] Will Wright, Don Hopkins (2008). Micropolis: open-source SimCity source code. GitHub (SimHacker/micropolis) https://github.com/SimHacker/micropolis
[5] bvschaik (2026). Julius: an open source re-implementation of Caesar III. GitHub https://github.com/bvschaik/julius
[6] Wikipedia contributors (2026). Transport Tycoon. Wikipedia https://en.wikipedia.org/wiki/Transport_Tycoon
[7] OpenTTD Wiki contributors (2026). Manual/Signals. OpenTTD Wiki https://wiki.openttd.org/en/Manual/Signals
[8] Wikipedia contributors (2026). Football Manager. Wikipedia https://en.wikipedia.org/wiki/Football_Manager
[9] (2022). Victoria 3 nested tooltip system. PCGamesN https://www.pcgamesn.com/victoria-3/nested-tooltip-system
[10] Henrik (Paradox UX designer) (2023). Victoria 3 Dev Diary #74 - UX Improvements. Paradox Interactive forums https://forum.paradoxplaza.com/forum/developer-diary/victoria-3-dev-diary-74-ux-improvements.1567815/
[11] Dwarf Fortress Wiki contributors (2026). Legends. Dwarf Fortress Wiki https://dwarffortresswiki.org/index.php/Legend
[12] Wikipedia contributors (2026). Fog of war. Wikipedia https://en.wikipedia.org/wiki/Fog_of_war
[13] Joshua McCoy, Mike Treanor, Ben Samuel, Aaron A. Reed, Michael Mateas, Noah Wardrip-Fruin (2014-06). Social Story Worlds With Comme il Faut. IEEE Transactions on Computational Intelligence and AI in Games 6(2) https://cs.uky.edu/~sgware/reading/papers/mccoy2014cif.pdf
[14] Tarn Adams (2015). Simulation Principles from Dwarf Fortress. Game AI Pro 2, ed. Steve Rabin, CRC Press (chapter 41) https://www.taylorfrancis.com/books/9781482254808/chapters/10.1201/b18373-47
Dataset dfde7895aa6d.