215 lines
14 KiB
Markdown
215 lines
14 KiB
Markdown
# 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** | 0–100 | 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) | 0–100 | Making people wait, arbitrary denials, rain | Letting people in, smooth queue flow | Aggro 100 = queue riot / someone glasses the door (fail night) |
|
||
| **HEAT** (legal) | 0–3 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 ~12–15 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.
|