not-tonight/docs/GAME_DESIGN.md
type-two 92e370e8c3 Add role ladder (glassie/bartender/doorgirl/bouncer/DJ) to design + role-agnostic sim rule
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 15:58:03 +10:00

14 KiB
Raw Permalink Blame History

NOT TONIGHT — Game Design Document

Working title: NOT TONIGHT (aka "Hard No: A Hospitality Power Trip") Genre: bureaucracy-sim / power-trip catharsis. Papers, Please meets a Saturday night in Fortitude Valley. Platform: browser (desktop-first, mouse-driven). Pixel art.


1. Pitch

You are the Head of Security at a volatile, pretentious nightclub. Your job is not to make money. Your job is to protect the Vibe — by keeping the wrong people out, throwing the messy people onto the street, and doing it all with absolute, unquestionable authority.

But you're squeezed from both sides: management's dress-code demands get more psychotic by the hour, and the Liquor Licensing Inspector is circling. One minor through the door on a fake ID and you're not power-tripping anymore — you're unemployed.

2. The Three Meters (core economy)

Everything in the game moves one of three numbers:

Meter Range Goes UP when Goes DOWN when At zero / max
VIBE 0100 Right people in, messy people ejected stylishly, queue hype Wrong people in, dead floor, fights you missed Vibe 0 = Dazza fires you (fail night)
AGGRO (queue) 0100 Making people wait, arbitrary denials, rain Letting people in, smooth queue flow Aggro 100 = queue riot / someone glasses the door (fail night)
HEAT (legal) 03 strikes Minor admitted, maggot-drunk served/ignored, capacity breach, incident-report lie discovered Never decreases within a night 3 strikes = licence pulled, run over (fail RUN, not just night)

The design intent: Vibe rewards cruelty, Heat punishes carelessness, Aggro punishes slowness. Every decision at the rope pulls at least two of them in opposite directions. That tension is the whole game.

3. The Night Loop

A night = Door phase → Floor phase (interleaved) → Last Drinks → Night Summary.

The clock runs 9:00 PM → 3:00 AM (compressed to ~1215 real minutes). You are physically in ONE place at a time. While you're on the Floor, the queue Aggro climbs and the door is worked (badly) by Trainee Kayden. While you're at the Door, infractions accumulate on the Floor. Deciding where to be is a resource decision. A radio crackle ("mate you'd better get in here") tells you when the Floor needs you.

3.1 Phase 1 — THE DOOR (static desk scene, Papers-Please grammar)

Forward-facing tableau: the rope, the queue snaking off-screen, rain, the kebab shop glow across the road. Patrons step up one at a time. Your desk/tools:

  • The Rope button. Unhook to call the next patron up. You can just… not. Making people wait builds Hype (a Vibe multiplier) but ticks Aggro. You can look at your phone while they stand there. This is a feature.
  • ID tray. Patron hands over ID. Checks: birthday math (are they 18 as of tonight's date?), expiry, photo vs face (paper-doll hair/skin/face features must match), obvious fakes (laminate peel, "McLovin"-tier joke names, wrong state hologram). Admitting a minor = instant Heat strike when the inspector audits.
  • The Clicker. Physical capacity counter. Click IN, click OUT. Venue has a licensed capacity; going over is a Heat strike if inspected. (The clicker is also just… satisfying. Make it clunky and loud.)
  • Dress-code card. Management (Dazza) texts new rules through the night, escalating from sane to unhinged:
    • 9:30 PM — "no thongs, no singlets"
    • 10:30 PM — "no visible logos"
    • 11:30 PM — "no white sneakers UNLESS vintage"
    • 1:00 AM — "no one who looks like they'd request a song" Rules are live the moment the text arrives. You scan the sprite, then DENIED (giant red stamp) or wave-through. Wrong admits drain Vibe when Dazza does a lap and spots them.
  • Sobriety check. Red eyes / sway in the idle animation / hiccup SFX are tells. Trigger a test: recite the alphabet backwards, answer an unhinged riddle, walk the line (cursor-follow minigame). You may fail them even if they pass. (Aggro cost.)
  • Guest list clipboard. Misspelled names, "+1"s that arrive as +6, and the trap: "I know the owner." Usually a lie (deny → Vibe up). Sometimes TRUE (deny → massive Vibe hit + a furious Dazza text). Tells exist if you look hard enough.
  • UV pass-out stamp. Anyone stepping out for a smoke gets a UV hand stamp. Re-entry = check the stamp. This pays off in the Floor phase (see flashlight).

Verdict verbs: ADMIT · DENY (stamp) · SOBRIETY TEST · PAT-DOWN (send to contraband check) · "one sec" (leave them standing there).

3.2 Phase 2 — THE FLOOR (top-down patrol)

Top-down 2D crawler through the dark venue — bar, dance floor, booths, toilets, smoking area. Nearly black except neon accents; your flashlight cone reveals detail. The flashlight is also the UV lamp (toggle): checking pass-out stamps, spotting spiked drinks glowing wrong.

Infraction Detection Mini-game Notes
The Cut-Off Sway animation at the bar, bumping into people Aggressive dialogue tree: "Have some water, mate" → "You're done for the night." Escalating drunk states: Tipsy → Loose → Messy → Maggot Leaving a Maggot on the floor when the inspector walks in = Heat strike. Escort-out animation: their avatar slouches in defeat.
Toilet intruders Two pairs of feet under one stall door Rhythm game: time your door-bangs to the muffled techno kick. On-beat bangs = shock factor multiplier, they scatter. Off-beat = they ignore you, Vibe leaks The beat is the actual audio engine beat — see §5
Contraband Suspicious idle (patting pockets, glancing) Pat-down: rapid drag-and-drop from pockets into the AMNESTY BIN. Chaotic item pool: baggies, flasks, a whole kebab, a live budgie, someone else's ID Timed; miss items and they walk with them
No stamp UV lamp on a re-entered patron shows nothing March them back to the door They snuck past Kayden. Kayden apologises on radio.
Fight brewing Two patrons in escalating shove animation Get physically between them before the swing timer ends Missed fight = big Vibe + Aggro hit, possible Heat

3.3 Last Drinks & Night Summary

3:00 AM: lights up (the floor scene literally brightens — brutal), sweep the stragglers, then the Night Summary:

  • Vibe graph across the night, cash (wage + Dazza's mood bonus), Heat status.
  • The Incident Report. A form. You fill in what happened. You can lie ("the patron fell over by himself"). Lies reduce Heat now but the inspector cross-references reports across nights — contradictions surface later as strikes. This is the game's long-memory conscience mechanic.

4. People

4.1 Patrons are data, not sprites (THE core technical/design decision)

Every patron is a generated record:

  • demographics: age (some 17½ — that's the ID game), archetype
  • outfit as typed layers: shoes {type, colour, vintage?}, top {type, logo?}, accessories… — the paper-doll renderer draws the layers; the dress-code engine evaluates the same data. The player judges pixels; the rules judge data. The gap between those two is where the gameplay lives.
  • intoxication (drifts up over the night, per-patron tolerance)
  • hidden flags: fake ID?, contraband?, on guest list?, actually-knows-the-owner?
  • memory: regulars persist across nights (seeded RNG). Deny the same bloke twice and he comes back in a bad disguise (fake moustache on the same sprite — same walk animation gives him away).

4.2 Archetypes (initial set)

The Fresh-18 (nervous, ID is REAL, don't be a monster) · The Almost-18 (confident, ID is fake) · The Finance Bros (travel in packs, one is always Maggot) · The Influencer ("I'm on the list", films you when denied — denying costs Aggro, gains Vibe) · The Regular (knows your name, tips) · The Owner's Mate (the trap) · The Quiet Messy One (seems fine at the rope, Maggot by midnight — tells were there) · The Inspector (plainclothes! reads as a normal boring patron; if you're breaching when they reveal, strikes rain down).

4.3 The moral undertow (why it's not just cruelty)

Papers, Please works because the stamps land on people. Scatter scripted encounters through the generated crowd: the girl who needs back in to grab her mate from a bad date (no stamp, over capacity — your call); the freshly-dumped guy who just wants one quiet beer (he's already Loose); the regular's last night before moving away. Doing the human thing usually costs Vibe or risks Heat. The game never tells you which choice was right. This is the difference between satire and a bullying simulator — protect this in every content pass.

4.4 Dazza (management, via text)

Never seen. Escalating texts: dress codes, vibe complaints ("why is the floor MID"), 2 AM philosophy, occasionally something that reveals he's terrified of the owner too. The unreliable authority you serve.

5. Aesthetic

  • Visuals: gritty high-contrast pixel art. Rain-slick street, neon signage, dark interior with light pools. Exaggerated animations: dramatic drunk falls, the defeated slouch of the ejected, the stamp SLAM.
  • Audio (the signature trick): ONE looping synthesized techno track (WebAudio), played through a low-pass filter whose cutoff = your location. At the door: muffled kick through the wall. Step inside: filter opens, full track. The toilet rhythm game syncs to this same clock — the beat is authoritative from the audio engine, not an animation timer. UI sounds heavy and aggressive: stamp slams, door thuds, radio static, the clicker's clunk.
  • Tone of writing: Australian. "Mate", "youse", "carn". Affectionate, not mocking. The kebab shop across the road is visible all night and is the true moral centre of the game.

6. Roles & career mode

Structural principle: the venue is ONE simulation; a role is a lens + verb-set over it. Patrons are role-agnostic data wandering the crowd sim; each role is a scene that reads the same state with different permissions. The career ladder doubles as the tutorial — each role teaches one system before the endgame role demands them all. NPC staff work whichever roles you aren't (competence varies — see Kayden).

Role Verbs Teaches Signature tension
Glassie (entry) Collect glasses (hand-stack grows: taller = clears faster, wobbles more; drop = smash + mop duty), mop spills before slips, restock runs through the crowd, find lost phones Floor navigation, drunk-tells by pure observation ZERO authority. You see the Maggot but can only radio it in — and watch who responds
Bartender Order queue (orders get slurred/ambiguous with patron drunkenness), pour minigame (jigger = safe, free-pour = fast/risky), tips via speed + banter picks, drink-watch (intervene on the glass-hoverer) Intoxication rules from the server's side RSA: you legally CANNOT serve a Maggot — the cut-off with them begging across the bar, Heat if the inspector's watching
Doorgirl The Door phase (§3.1): IDs, dress code, guest list, rope theatre Inspection & social judgment The whole §3.1 tension set
Bouncer The Floor phase (§3.2): patrol, ejections, stalls, pat-downs Enforcement & positioning The whole §3.2 tension set
DJ (unlock) Ride the crowd's Energy curve with track picks (tracks = parameter sets on the synth engine — gameplay drives the actual audio), beatmatch transitions (align two beat bars, cut on the one), field booth requests Reading the room Request verbs: the dismissive headphone-lift, the nod-then-never-play, the hard no. Denying: +Vibe (purists), +Aggro (requester's table)
Head of Security (endgame) §3.1 + §3.2 interleaved, PLUS radio command of NPC staff in every other role Everything at once You used to speak into the radio; now you're the voice on the other end

Roster board frames progression: pick shifts from a weekly roster (role × venue = level select), wages differ by role, story beats attach to roles.

Venues as difficulty tiers, nights as rounds (Thu → Fri → Sat per venue):

  1. The Royal (dive bar). Glassie/bartender shifts. Loose rules, capacity 80.
  2. Voltage (Valley club). Doorgirl/bouncer shifts. Full ruleset, inspector active.
  3. Elevate (rooftop). Head of Security. Dress code hell, influencer density, VIP politics.
  4. ROOM (underground techno, boss venue). The DJ shift + Head of Security finale. Dress code re-randomises every 15 in-game minutes, everyone claims VIP, the inspector is definitely in the building, and the techno is so loud all dialogue is written as lip-read guesses.

Roguelite-lite structure: fail a night → retry the night; 3 Heat strikes → run over. Seeded runs for shareability ("seed VALLEY-4207 is brutal").

(Far-future note, not a plan: this structure is accidentally multiplayer-shaped — one night, each player a role. Architecture shouldn't preclude it; nothing should be built for it.)

7. Scope guardrails

  • v0.1 = ONE venue, Door phase only (the doorgirl shift), 3 nights, placeholder paper-doll art. Ship it.
  • v0.2 = Floor phase + door/floor interleave + audio engine.
  • v0.3 = progression, regulars' memory, incident report, inspector.
  • v0.4 = content pass (archetypes, scripted encounters), real pixel art, boss venue.
  • v0.5+ = the role ladder (§6): glassie → bartender → DJ, roster board. Roles are post-core-game content — but every earlier phase must keep the sim role-agnostic (no system may assume the player is security).
  • Cut before slipping: fight mini-game, budgie, venue 3. Never cut: the clicker, the stamp feel, the low-pass filter trick.