destroyulator/README.md
Monster Robot Party dd905d908d LANE7: CUBICLE HELL — the tilt loop, the job, and the payslip
The game stopped being a smash sandbox. You work a shift, the work provokes you, a
meter fills, you snap, and you cannot go back to your desk until you have broken
enough things. Then you sit back down and try to earn the rest of your day.

The score is your payslip: WAGES (tasks completed) - DAMAGES (everything you broke).
The load-bearing detail is that rage drains a FLAT amount per object destroyed while
each object bills at its OWN value — so during a meltdown the play is to wreck a lot
of cheap rubbish fast rather than put the sledgehammer through a filing cabinet. You
don't choose whether you lose your temper, you choose how much it costs. FURY (objects
broken while melting down) is tracked separately and deliberately isn't money, so
"I ended the shift owing them $2,400" stays a brag.

Rage.gd — WORKING -> MELTDOWN -> COOLDOWN. During a meltdown the clock STALLS if you
stop destroying; you must actually be breaking things.

RageOverlay.gd — the blood vessel. A vignette that closes in with rage and jumps
inward on every heartbeat, procedural veins that creep further into frame the angrier
you get, and a synthesized lub-dub going 62 -> 172 BPM. Zero assets: the shader is
built in code, the veins are draw_polyline from a seeded RNG, the heartbeat is a
generated WAV. Tops out as a heavy frame rather than a red screen — you have to be
able to see what you're about to destroy.

Tasks.gd — stations you walk to and are LOCKED IN PLACE at, because you're at your
desk and that's the joke. Two so far:
  SPREADSHEET  the selected cell silently drifts one cell partway through entry, with
               no sound and no animation. Commit without noticing and the figure lands
               in the wrong cell and you start again. This is the whole thesis of the
               game in about forty lines.
  PHOTOCOPIER  jams, and wants the right tray out of 1, 2, 2A, 3, 3B.
Snapping ejects you from the station at no penalty — you didn't choose to walk away.

CubicleHell.gd — 5-minute shift, wages vs damages, meltdown count, end-of-shift
payslip with a verdict line.

Also: HUD gets a monospace face (Godot's fallback is proportional, so the spreadsheet
grid and the work-order docket never lined up), and the arcade HUD's headline becomes
net pay, red when negative.

LANES/LANE7-cubicle-hell.md captures the rest of the design: more provocations, the
GAUNTLET mode (find which of many cabinets, pull drawers, destroy files individually,
and work out which tool the level wants without being told), the other three
workplaces, and why doratracyer/floor_plan can't help — it's OpenSCAD SVG->STL for
3D printing, no generation, no room polygons, GPL-3.0. Office.gd is already most of
a parametric floor-plan builder; lifting its numbers into a data spec is the real path.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 17:34:34 +10:00

2.0 KiB

DESTROYULATOR

Clock out. Smash everything.

A comedic, non-violent, first-person workplace-destruction game from Monster Robot Party. Nobody gets hurt but the furniture.

The game is CUBICLE HELL. You work a shift doing deliberately infuriating office tasks. A rage meter fills. When it fills you snap, and you physically cannot go back to your desk until you've broken enough things. Then you sit back down and try to earn the rest of your day. Your score is your payslip: wages earned minus damages caused — so during a meltdown you want to wreck a lot of cheap rubbish rather than one expensive filing cabinet. Falling Down, scored by payroll.

Level 01 is an open-plan office after the Dunder Mifflin floor plan. Design, built and planned, lives in LANES/LANE7-cubicle-hell.md.

Monorepo layout — one lane per directory

Dir Lane What
game/ Lane 1 — the game Godot 4.7 (Jolt physics, Mac-native). The shippable build.
web/ Lane 3 — web toy Three.js dig-and-destroy demo (planned; thriftgod-adjacent).
tools/ asset build Blender generators for the viewmodel + office props. Re-runnable.
LANES/ coordination Execution specs for parallel Claude/Opus work sessions.
3D-STORE/ not in git 700MB Blender/Unreal source-asset vault (see .gitignore).
destroyulater.txt lore The founding chat where the idea happened.

Asset generation lives in its own repo: ~/Documents/meshgod (text→GLB factory). The first-person arms are cut from ~/Documents/character_kit_modular (the GODVERSE modular character kit) by tools/gen_fps_arms.py.

Rules for parallel work sessions

  • A lane session writes ONLY inside its own directory. Cross-lane contracts (asset formats, file drops) are specified in LANES/*.md.
  • Every change to game/ must pass the headless smoke test before commit: Godot --headless --path game --quit-after 180 with zero script errors.
  • GLB convention everywhere: glTF Y-up, 1 unit = 1 m, origin at floor-center.