All Playtest Notes

The Playtester's Guide

· playtest, guide, onboarding


Welcome. You're one of a small number of people playing this before it's finished. The loop is simple: play, tell us when something's wrong or missing, and watch it get fixed — sometimes within the week. This doc is everything you need to get set up: what the game is, how to get it running, what the two developer sandboxes are for, how to use the Discord, how to report a bug or a feature, and how to get read access to the issue tracker so you can follow what happens to your reports.

Once you're playing, the in-game Player Guide (press ? any time mid-run) is the place for rules, stats, and strategy — this doc doesn't repeat any of that.

The game in ninety seconds

A sinkhole on a lawless frontier has opened into a living maze — the Labyrinth is a predator that feeds on life-force, and the gold rush around the hole is the monster hunting: treasure is bait, the shifting maze is herding, and every death inside makes it stronger. You play one rogue at a time, descending ten procedurally-generated levels of tactical, turn-based, grid combat, where positioning — flanking, chokepoints, overextension — is the whole tactical layer.

A few things worth knowing before your first run:

  • The Mood track (Curious → Watchful → Annoyed → Angry → Furious) is the Labyrinth's appetite. Kills raise it — nothing else does — and it never cools within a floor. A fresh floor starts back at Curious; a floor you revisit restores the tier you left it at (so climbing up and back down can't farm the anger away), and a boss kill resets it too. Higher Mood makes enemies hit harder and have more HP, never smarter or dumber.
  • Death is permanent, and the Labyrinth devours everything you were carrying. But your fallen hero leaves a grave at the depth they died — the next hero who crosses it gets their blessing and heals to full.
  • A named boss guards every floor from depth 5 down, dealt fresh each run from a pool of 21.
  • The run ends by choice, once the depth-10 boss is dead: climb out as a Survivor, descend further to the Hollow and claim the Heart, or renounce it and destroy the Labyrinth outright.

One honest note up front: the art lands in passes, and two are done — all five dungeon tilesets and the story-screen ink art are painted. The creatures are still letters and the props are still placeholder sprites. If you can see past that, what's underneath is finished, and it wants breaking.

Getting the build

There are two places to download from, and they don't ship the same thing — pick based on what you want.

  • itch.iohttps://davidbethancourt.itch.io/labyrinth-the-descent. Sign in (or register) and click Download Now; you'll get a name-your-own-price prompt, and "No thanks, just take me to the downloads" gets you the free build. While you're there, click Follow on the project page so new builds show up in your itch feed — it also helps the project's visibility on itch, so it's worth doing even if you mainly play from the website build. This download is the game only — no test harnesses.
  • labyrinththedescent.com/Download — the full zip: the game and both developer harnesses described below. Get this one if you want to try the harnesses too.

Either way, unzip it anywhere — there's no installer, nothing to register — and the build is unsigned, so Windows SmartScreen will warn you the first time you run an .exe. Click More info, then Run anyway. Past that, the two downloads are laid out a little differently:

  • From the website zip, run Labyrinth-Game\Labyrinth.exe to start. VERSION.txt at the top of the zip records exactly which build you have — worth checking when you report something.
  • From itch, Labyrinth.exe is at the top level of what you downloaded (no Labyrinth-Game\ folder, no VERSION.txt) — just run it. There's no in-game build string to check either; if a report needs to pin down which build you have, note the date you downloaded (itch's page shows when the last update went up).

A new build typically lands Saturday morning, US Central — the Discord's #developer-updates channel and the itch feed both announce it, and #playtesting-discussion points to that build's playtest notes: what changed and what specifically needs testing.

Your first run

Past the title screen (press any key) is the naming screen — this is where you choose your hero's name, pick one of three starting arts, and where a handful of other buttons live: Play This Week's Challenge (a seed shared by every player that week, with its own leaderboard — see Getting a run on the leaderboard, below), Watch the Week's Best Run (streams the current top-ranked challenge run as a replay, nothing downloaded), and itch.io / Purchased Copies (the same in-game shortcut to itch that's on the Player Guide's Links tab). If you load the weekly challenge and want a normal run instead, there's a button to cancel back out of it. Past naming:

  • ? opens the full in-game Player Guide — rules, stats, the bestiary, strategy, all of it. Read it whenever something's unclear; it's the single source of truth for how the game plays.
  • Esc opens the pause menu — Resume, Abandon Game, Player Guide, Settings, and the bug/feature reporting described below.

Getting a run on the leaderboard

Start it from the naming screen's Play This Week's Challenge. When the run ends (death or a win), the death/win screen has a Submit to Leaderboard button — this only appears for challenge runs; a normal run has no board to join. Submitting re-runs your game server-side to certify it actually happened before it's ranked (Ranked or Rejected). One rule worth knowing going in: graves count against you — legacy is scoped to that week's challenge, and fewer graves ranks higher, so playing it safe on a challenge run pays off on the board. On a win, there's also a separate, fully optional Hall of Fame submission with a line for an epitaph. Full standings and history are on https://labyrinththedescent.com.

The two test harnesses

If you got the full zip from the website, you also have two developer sandboxes. They're not the game — nothing you do in them touches your save, your profile, or any grave. Use them to poke at specific systems in isolation.

Combat harness (Combat-Test-Harness\CombatHarness.exe)

An arena for testing combat and AI directly: spawn a curated roster of the bestiary (it doesn't cover every one of the 74 enemies, but it's the bulk of them) or a whole depth-appropriate encounter, at a Mood tier and hero stat line of your choosing, and see what happens. Good for reproducing "this fight felt unfair" reports precisely, or just poking at one enemy's behavior in isolation. If the specific enemy you need isn't in the spawn menu, that's worth reporting too.

  • WASD / arrows — move, bump-attack
  • QEZX (or numpad diagonals) — diagonal move/attack, if your hero has the Diagonal Step ability; grant it from the right-click menu's Hero ▸ Abilities if the keys don't seem to do anything
  • . or Space — wait
  • O / C — open / close door
  • R — reset the scene
  • Tab — cycle scene presets
  • G — toggle grid overlay
  • P — toggle AI-path overlay
  • M — mute
  • Esc — cancel a placement/target
  • Right-click — the main menu: spawn an enemy or a depth 1–10 encounter, set the Mood tier, grant items, adjust hero stats/abilities, reset the scene
  • Left-click — place a spawn / confirm a target; right-click drag pans, wheel zooms

Level-generation harness (Level-Generation-Harness\LevelGenHarness.exe)

A pure map visualizer — no gameplay, no combat. Good for eyeballing what a given depth's layouts actually look like, hunting bad or unfair maps, and reproducing a specific map from its seed.

  • Space — generate a new random seed
  • R — regenerate the same seed (a determinism check — the map should come out identical every time)
  • G — toggle the room-graph overlay
  • WASD / arrows or right-click drag — pan
  • Wheel or + / - — zoom
  • The panel in the top-left lets you type a specific seed and depth, toggle "Follow depth ramp", and cycle the level theme (Auto / None / warren / catacombs / caverns / drowned / emberworks)

If you find something worth reporting in either harness — a nonsensical layout, an AI doing something clearly wrong — file it the same way as an in-game bug (below); just say in the note which harness it was.

Discord

Join here: https://discord.gg/hshGaREUQf. (This is a non-expiring invite; if it's ever dead, ask in-game or by email and you'll get a fresh one.)

Once you're in, here's what each channel is for:

  • #general — say hi, anything that doesn't fit anywhere else
  • #clips-and-highlights — screenshots and clips of runs, deaths, and moments worth sharing
  • #weekly-run — talk about the current weekly-challenge seed; compare runs and strategies — everyone's playing the same maze, so there's no spoiler etiquette to worry about
  • #tips-and-tricks — tactics, builds, item-identification lore, anything you've figured out that's worth passing on
  • #developer-updates — dev log posts land here automatically when a new build ships; mostly read-only
  • #playtesting-discussion — a short pointer lands here each build to the full playtest notes page (what changed and what specifically needs testing, at https://labyrinththedescent.com/PlaytestNotes); talk about what you found here

Voice channels: Lobby (drop in and hang out) and Gaming (co-play or screen-share sessions).

Reporting a bug or a feature

This is the most useful thing you can do as a playtester, and it's built into the game:

  1. Press Esc to pause, right when the bug bites (or whenever a feature idea occurs to you).
  2. Optionally fill in a contact email — leave it blank and the report is fully anonymous, or fill it in once and the game remembers it if you'd like to be reachable for follow-up.
  3. Add a note — a line or two about what you saw helps enormously.
  4. Click Report a Bug or Request a Feature.

That one click does two things: it saves a timestamped file to %USERPROFILE%\AppData\LocalLow\DefaultCompany\labyrinth-game\reports\ on your machine, then sends the same report straight to the developer through the website, which files it as a GitHub issue automatically. Beyond the optional contact email, the file contains no other identity-linked information — but it does carry a per-install player ID (a random code, not tied to your name, that lets reports from the same install be grouped) and your platform, alongside your hero's name, the run's seed, every command that led to the moment, the game version, and a short usage trail. It's not a description of the bug, it's the bug itself: it can be replayed and watched happen again exactly. One thing worth knowing if you fill in a contact email: it goes into the GitHub issue body, which every read-only collaborator (see below) can read — leave it blank if you'd rather not.

File it the moment it happens, not later from memory — the report only captures the run up to the point you press the button. If you're offline or the site is unreachable, the local file is still written; email it to davidbethancourt@gmail.com and it'll be filed as an issue by hand — it just won't happen automatically the way a submitted report does, so don't expect to see it on GitHub right away.

If the game crashes or hangs outright, Esc won't help and there's nothing to submit. Email davidbethancourt@gmail.com instead with what you were doing, and attach Player.log from %USERPROFILE%\AppData\LocalLow\DefaultCompany\labyrinth-game\ (or the matching combat-test-harness / level-generation-test-harness folder if it happened in a harness) plus whichever build you were on.

Following your reports on GitHub

Every report you file opens as an issue on the game's GitHub repository, which is where all bug fixes and feature work get tracked — including the whole backlog of not-yet-built features.

The easy way to follow along without any setup: https://labyrinththedescent.com/Reports lists every open (and recently closed) bug/feature issue — title, labels, and a short excerpt — no account needed.

If you want to comment or see the full detail on your own reports specifically, the repo itself is private, so get read access:

  1. Create a GitHub account if you don't already have one.
  2. Email davidbethancourt@gmail.com or DM DavidB on Discord with your GitHub username, so the account can be matched to you.
  3. You'll be added as a read-only collaborator — after that you can watch your reports, see what's queued, and comment.

One thing to know: read access also shows you the game's full source code, and every other playtester's reports — including any contact email they left — not just your own.

Advanced playtesting tools

A couple of hidden dev/testing tools live outside the normal game. Most testers never need them — reach for these when you're specifically trying to reproduce something at a particular depth, or the developer asks you to use them.

  • Jump straight to a depth. Launch the game with --start-depth N (N = 1–10) on its command line and the run begins there directly, with a randomized, depth-appropriate loadout (gear, gold, hero abilities) instead of climbing there normally — no on-screen picker. Windows tip: make a shortcut to Labyrinth.exe and append the argument to its Target field, e.g. "...\Labyrinth-Game\Labyrinth.exe" --start-depth 7. Useful for reproducing a bug at a specific depth without a full climb each time. A death on such a run files into its own playtest pool — it never seeds a grave in your normal runs (and a normal run's graves aren't visible to it either).
  • God-mode cheat. Ctrl+Alt+C mid-run boosts your hero to 1000 HP and 10 armor and makes every attack a one-hit kill for the rest of that session — not true invincibility, you can still go down to enough damage, but it makes reaching a specific depth or fight fast. Testing only — it latches on permanently once triggered and can't be turned back off until you relaunch, so don't use it on a run you want to actually play or submit anywhere, and don't treat combat under it as representative of a normal run. A cheat run can't be certified or submitted at all, and a death under it leaves no grave.

(--replay "<file>", for watching a run from disk, is a regular player-facing feature — see Watching a replay in the Player Guide, not listed here.)

What good testing looks like here

  • Try to get deep (level 7+) at least once before you start picking it apart — the full shape of the game matters more than any one system.
  • Play the weekly challenge when you can; it's the one place everyone's comparing the same run.
  • The boring bugs matter as much as the dramatic ones — report them as you find them.
  • When something feels wrong, say whether it felt unfair or just hard. Those get fixed very differently.

Thanks for playing. Now go feed it, or starve it — either way, it's hungry.