All Dev Log entries

Sorry About the Bouncer

· release, combat, ui, website


First, the apology. From Sunday through this morning, the leaderboard was effectively down: it accepted nothing, and if you played the downloadable build and pressed the submit button, your run was turned away at the door. Your run was fine. The bouncer was wrong. I'm sorry — especially if you had a good descent in that window, because those runs can't be recovered; the old build speaks a rules version the site no longer accepts.

What happened

The anti-cheat design here is deliberately unforgiving: the site replays your entire run against its own copy of the engine, and if the rules versions don't match, it refuses. That strictness is the whole reason the leaderboard is worth trusting.

But it means the downloadable build and the site must compile the same engine — and on Saturday I broke that, by doing something that felt completely innocent: shipping two small engine fixes right after publishing a build. Every push redeploys the site automatically, so within minutes the site was running rules v69 while the download page was still handing out v67. The strict door did exactly what it was built to do, to exactly the wrong people.

The fix going forward is process, not code: engine changes now collect on a side branch all week and land in one Monday cut — merge, build, deploy, and publish together, so the site and the build can never drift apart for more than the few minutes a deploy takes. Today's build is the first one cut that way. If you grabbed a build before today, download the new one — it's stamped Rules v69, same as the site, same as this week's challenge.

What's in the build

The two fixes that caused all this trouble, for a start. Spears now have reach — the spear and war spear strike from two tiles away, which finally makes them what a spear is for: holding a line without standing in it. And movement abilities no longer skip the floor — if you Phase Walk onto loot, a chest, or a fallen hero's grave, you actually collect what you land on, instead of standing on top of it wondering why nothing happened.

The rest is quality-of-life, mostly around dying — which, in this game, is a thing worth polishing:

  • You can browse your inventory after death. The run is over; the least the Labyrinth can do is let you see what you were carrying when it took you.
  • The death-screen summary is easier to read, and the end screens shed a button they didn't need.
  • Status effects now say their names. When something roots, dazes, or terrifies you, the popup and the Active Effects panel name the affliction instead of leaving you to diagnose yourself mid-fight.
  • Wands that move creatures or tear up terrain now show you what they did — displacement and destruction you could previously only infer from the aftermath.

Also: the game has quietly settled into its full name, Labyrinth: The Descent — which the sharp-eyed will have noticed on the title screen — and the leaderboard no longer lets two heroes with the same name shove each other off it.

What's next

Back to the game itself. The Monday cut means the next batch of engine work lands in a week, all at once, with the door and the doorman finally reading from the same list. See you at the bottom.