A game of dice & human nature
The Gauntlet is not about dragons. It is about you — a single human being moving through a sequence of real situations: confrontations, failures, betrayals, bad nights, impossible choices. Every trial ends the same way. You pick an approach. A die decides if it works. You live with what happens next.
There is no winning. There is only how far you get and what breaks you.
Every trial has a Flee option. You can always walk away from the situation. You survive it — but Morale drops 20 points, Nerve falls, Ego takes a double hit, and the wound "they know you ran" is added to your record. Fleeing too often is its own kind of failure.
Each stat represents a dimension of human functioning. They are not fixed personality types — they are resources that deplete under pressure and recover slowly through success.
When you roll the d20, your stat modifier is added to the result. The modifier is calculated the same way as AD&D: (stat − 10) ÷ 2, rounded down. A stat of 10–11 gives +0. A stat of 16 gives +3. A stat of 6 gives −2.
Morale is a separate resource — not a stat, but a threshold. It starts at 100 and erodes with every failure, fumble, and flight. It recovers slightly with success and crits.
Below 25: the heartbeat starts. The red vignette closes in. High-difficulty choices (DC 12+) are locked — your broken state limits what you'll even attempt.
At zero: the run ends. Not from a stat failure — from a loss of the will to continue. This is the most common way runs end.
Each trial is a self-contained human situation. The game currently contains 12 distinct trials, drawn from experiences most people recognize: the confrontation that comes out of nowhere, the call you've been avoiding, the night you can't sleep through.
Each of the four choices shows two pieces of information: the stat it tests, and the DC (Difficulty Class) you need to meet or beat.
Roll (d20) + modifier ≥ DC = success. The modifier is (stat − 10) ÷ 2, rounded down. A natural 20 always succeeds regardless of DC. A natural 1 always fails regardless of stat.
On a success: the stat you used increases by 1 (or 2 on a natural 20). Ego rises by 1. Morale recovers 8 points (20 on a crit). Score increases.
On a failure: the stat you used decreases by 1 (or 2 on a natural 1). Ego falls by 1. Nerve falls an additional 1 if you've failed consecutively. Morale drops 12 points (25 on a fumble). A wound is added.
Wounds are text descriptions — not numbers. "Jaw set permanently wrong." "They know you lied." "Can't meet their eyes anymore." They accumulate in the left panel. They have no direct mechanical effect — but they are a record of how you got here. The last four wounds are shown on the death screen.
The same trial will not repeat back-to-back. Across 12 trials in the pool, any given run will encounter a different sequence. The game tracks which trial last appeared and excludes it from the next pick. Over many runs, you'll encounter all twelve.
The Gauntlet is built around documented tendencies in human decision-making under pressure. It doesn't tell you about them — it lets you experience them. Here is what is actually happening beneath the surface.
Winning streaks raise Ego. High Ego triggers Hubris. Hubris causes miscalibrated choices. Miscalibrated choices cause failure. Failure crashes Ego. The arc of overconfidence is built into the engine.
Nerve is the only stat that degrades automatically from context, not just from choosing Nerve-based options. After any two consecutive failures — regardless of which stats were involved — Nerve takes an additional hit.
This models the real effect of sustained failure on courage: it isn't that you chose to be less brave, it's that the environment ground it out of you. Players who avoid Nerve-based choices don't avoid Nerve damage — they just lose it more slowly.
A high Luck score (17, 18, 19) feels meaningful. It isn't — the dice don't know. But you'll feel luckier with a 17 showing than with a 5, and that feeling will influence which risks you take. The game is watching.
The Flee option is always available. It is the rational choice when your relevant stat is low and the DC is high. It costs Morale, Nerve, and Ego — but it costs less than a bad roll on a long shot.
Except that over time, fleeing degrades Morale faster than most failures. And the wound "they know you ran" follows you. Players who flee strategically often find they've optimized themselves into a corner: stats intact, Morale at 15, out of will to continue.
Below 25 Morale, the game locks any choice with DC 12 or higher. This isn't punishment — it's modeling the real cognitive narrowing that happens under sustained stress. Fight-or-flight limits options. When you're breaking, you reach for the safe move, the small move, the survivable move. The game enforces this.
The start screen for returning players shows what killed them most often and which stats they habitually chose. This information is meant to nudge — or to be ignored. Players who see "most often broken by: nerve" and immediately put their lowest roll in Nerve are testing something real about how we respond to feedback about ourselves.
Score is awarded on every successful trial outcome. The formula is:
Natural 20s score at maximum — the roll is 20, giving the highest possible base. Crits also double the stat gain, which compounds into future rolls. Natural 1s score nothing and trigger extra costs.
Your grade is determined entirely by how many trials you survived (not fled, not failed — survived with a success). Fleeing counts as a failure for grading purposes.
The game tracks across all sessions in your browser: best score, best grade, most trials survived in a run, total runs played, total trials won across all runs, and what killed you most often. These appear in the Hall of Records on the right panel during play and on the death screen after each run.
The game also tracks which stats you choose most across all your runs. After several runs, the start screen will flag your most-used stats with ★ and the stat that kills you most with ✕. This is not advice — it is a mirror.
If you beat your best score or best trial count, the death screen announces it with a gold banner and a distinct sound — five ascending tones — before the usual death toll plays. It's the only celebratory moment in the game.
All sound in The Gauntlet is generated in real time using the Web Audio API — no files, no downloads. Every sound is synthesized from mathematical primitives: sine waves, sawtooth waves, filtered noise. The design goal was that each sound should feel like its event, not just accompany it.
Sound can be toggled with the ♪ button in the header or the M key at any time. Your preference is saved between sessions.
The game is fully playable with mouse or keyboard. All primary actions have keyboard equivalents.
| 1 | Select choice 1 |
| 2 | Select choice 2 |
| 3 | Select choice 3 |
| 4 | Select choice 4 |
| F | Flee the trial (costs Morale −20, Nerve −1, Ego −2) |
| Enter | Roll the d20 (after selecting a choice) |
| M | Toggle sound on / off |
| ? | Open this manual |
| Esc | Close this manual |
The manual button is always available in the header. Opening the manual does not pause or affect your current run. Game keyboard shortcuts are disabled while the manual is open.
Click a roll number to select it, then click a stat card to assign it. Click an assigned stat card to unassign it. Re-roll discards all rolls and generates new ones. All six stats must be assigned before you can begin.
Play Again returns to the start screen with fresh rolls. Clear Records wipes all stored history from your browser — this cannot be undone.
The d20 in the center of the screen becomes clickable after you select a choice. It is the only clickable element that matters. If the die shows ? and is not responding, you need to select a choice first.
Version 2.0 · Sound + Memory Edition
Built on Web Audio API & localStorage · No external dependencies during play