The dungeon under this blog has a bottom now. Depth 13, with a sensible end to the gameplay loop. The rest of this post is three-ish days of analytics from the dungeon, and the caveats are at the end because they matter more than usual.
The door
1,040 entries against 4,216 visits in the same window. A quarter of the people who came to the blog got in, which sounds better than it is, because most of them came for a post that lists the ways in.
The ranking is what I didn’t predict:
pie showData
title Ways in
"tapped" : 575
"konami" : 251
"dungeon" : 95
"xyzzy" : 75
"iddqd" : 26
"delve" : 16Tapping the footer was the afterthought. It exists because the Konami code needs a keyboard and a lot of readers might not have one, and it took about as long to write as this paragraph. It beat every other path, surprisingly.
Most players did meet somebody
The first post ended by saying I had modest expectations about two strangers finding each other down there. 530 sessions saw another living player. There were 1,040 entries, and 893 sessions the close event managed to catch.
I want to be careful about why that happened, because it isn’t the netcode. Everyone joins a room named after the UTC date, so the only thing standing between two readers is whether they were reading at the same time. For three days they usually were. The blog served 4,216 visits in that window against 15,171 in its entire history, which is to say the dungeon has spent its whole life inside one spike.
When the spike flattens, the meeting rate goes to about zero, and no amount of WebRTC changes that. A multiplayer easter egg on a personal blog is a party that works while people are still arriving. I knew that in the abstract before I built it. The number makes it specific: the feature I’m fondest of has a half-life of a few days.
One thing in here I didn’t expect at all. Graves started holding the dead player’s purse yesterday, so walking over somebody’s death pays. Three graves have been robbed. Two of them belonged to a stranger.
Where people die
| Depth | Arrived | Died |
|---|---|---|
| 1 | 996 | 144 |
| 2 | 568 | 180 |
| 3 | 389 | 70 |
| 4 | 262 | 71 |
| 5 | 164 | 94 |
| 6 | 115 | 31 |
| 7 | 59 | 40 |
| 8 | 48 | 23 |
| 9 | 24 | 15 |
| 10 | 14 | 12 |
| 11 | 0 | 3 |
Depth 2 kills more people than depth 1 in raw count, on 43% fewer arrivals. That isn’t tuning. It’s the monster table climbing faster than ten hit points can absorb, and depth 2 is where a player who’s still pressing arrow keys politely finds out.
The bigger drop is earlier, and it isn’t deaths. 996 people arrived at depth 1. 144 died there. 568 went deeper. The other 284 stood in a stone room, took no damage worth dying to, and left. The first floor is where people decide whether they’re playing.
The whole funnel, floor by floor:
---
config:
sankey:
nodeAlignment: left
labelStyle: outlined
height: 420
---
sankey-beta
entered,d1,996
entered,stayed in the village,44
d1,d2,568
d2,d3,389
d3,d4,262
d4,d5,164
d5,d6,115
d6,d7,59
d7,d8,48
d8,d9,24
d9,d10,14
d10,d11,3Every step is the arrival count from the table, so the gap between one floor and the next is everyone who died there or stopped. Depth 11 is the one step that isn’t measured: the arrival event recorded nobody down there, and the three deaths are people a fall trap dropped out of depth 10, by a route that never fires an arrival. Falls feed the floors above it too, which is why the descent counts run low and every per-depth rate in this post is a ceiling.
Traps sprang 1,110 times, 872 gas and 238 falls. 258 chests turned out to have teeth. The dark came for someone 82 times, all of them on depth 5 or deeper, which is the only place it lives.
What’s down there that nobody has used
Zero sessions have reached depth 13. Zero have walked back out through the arch, which is the only exit that isn’t dying and the only way gold survives a run. The deepest anyone has been is 11, twice.
The rest of the tail is about as thin. 437 of 893 sessions killed nothing at all; one killed 114. 702 ended holding no gold; two ended holding 224. The median session is 31 seconds.
That last number is the honest shape of an easter egg. Most people open the door, look at the room, and close it.
So I built a farm
319 of 893 sessions never went down the stairs. 36% of the people who find a secret dungeon do not want a dungeon. They wanted to find something, and they did.
The village used to be a well, a signpost and an arch. Yesterday it got a farm: a farmer with three lines about the hole under the arch, and a cow, a sheep and chickens that wander a tile at a time and say something when you walk into them. The talk event fires once per speaker per session, so it counts sessions that found the cow rather than how many times somebody walked into a cow.
Eight sessions found the farmer, five the chickens, four the cow, four the sheep. Twenty-one bumps, one day up, on the wrong side of the spike. That’s a baseline, not a verdict.
What the numbers can’t say
More of this than I’d like.
Falls didn’t count as descents until this morning. A fall trap drops you a floor by a route that never fired the arrival event, 238 times, which is why the table above has three deaths at depth 11 and nobody arriving there, and why depths 5, 7 and 9 read as deadlier than they are. Every per-depth rate in this post is a ceiling.
The session event rode pagehide until yesterday. Mobile browsers kill hidden
tabs without firing it, which is where the missing sessions went. It fires on
first background now, and that trades one bias for another: a reader who tabs
away and comes back is measured up to the moment they left, so long sessions
read short.
The trap event carries the kind and the depth as two properties of the same event, and I can’t join two properties through a share link. I know there were 872 gas traps. I have no idea where any of them sprang.
Umami derives its session id from IP and user agent and resets it daily, so “did anyone come back the next day” isn’t a question I can ask.
Some of it is coarse because I made it coarse. The session event carries four numbers about the run and nothing about the person: no input method, no step count, no path through the floor.
I’ve stopped adding rooms. Depth 13 is the end and the few floors above it stay deliberately empty so the final approach is a walk rather than a fight, and at some point somebody is going to get there.
