GDD v0: exposure puzzle system, modular droid, General Component story

Full design doc: four pillars (state-machine components, element routing,
carry-decay, symmetric self-exposure), donation/degraded operation, fabricator
repair chain, rotating rooms, pneumatic tubes, two-goal story with hidden
free-will ending.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
type-two 2026-08-03 17:23:58 +10:00
commit 3283c6ec84
3 changed files with 425 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
.godot/
.DS_Store
*.tmp

415
GDD.md Normal file
View File

@ -0,0 +1,415 @@
# EXPOSURE (working title) — design doc v0
*2026-08-03. Origin: a $1 op-shop Staples solar calculator that only works in direct sunlight.*
## One-liner
You are a maintenance droid on a dead ship. Nothing on board works until the right
element touches it — light, heat, cold, water, electricity, wind, radio, radiation.
Route the elements. Wake the ship.
## The three pillars
1. **Everything is a state machine.** Every puzzle component has states; elements
are the transition triggers; duration / order / threshold are transition guards.
Permanent vs temporary = whether the state decays. This one schema IS the game —
all content is authored against it.
2. **Routing is the puzzle, the component is the lock.** The real puzzle is rarely
"touch item with element" — it's "get element X from its source to the component
when the direct path is blocked." Each element has a distinct *transport
signature*, and that's the puzzle language:
- light travels in straight lines, passes glass, blocked by everything else
- water flows downhill, pools, leaks
- heat rises, conducts through metal, dissipates
- cold sinks, conducts, sublimates away
- electricity needs a conductive path, arcs to water
- wind pushes along open volumes, blocked by any seal
- **radio passes through walls** — the only one that does; late-game "act through
a wall" solver
- radiation: short range, blocked by shielding — mostly you bring the component
TO it, not it to the component
3. **You are the bucket.** The droid chassis (and hand-carried items) hold exposure,
and carrying always degrades: the bucket leaks, the thermal slug cools, the
capacitor self-drains, the glowcell dims. Every carry is a visible timer — that's
the run-and-scramble fun of the leaky-bucket idea, kept literally. Upgrades buy
better containment, never remove decay entirely.
4. **You are a component too.** The droid's body parts run on the *same schema* as
every wall component — same elements, same transitions, same scanner. Anything
the environment can do to a component, it can do to you (symmetric exposure).
Self-exposure grants powers, and every power makes you a walking emitter/hazard
of that element — so body states automatically interact with world puzzles with
zero extra systems. The recurring endgame of a puzzle: **you are the missing
component.**
## Core loop
scan component → learn (or guess) its susceptibilities → find element source →
route/carry exposure to it → state change → cascade into the next component →
zone system restored → **global element state shifts** → previously dead areas wake up.
## The macro unification (the good trick)
Each of the 5 zones' master puzzle restores one *ship system*, and the ship systems
ARE the elements at macro scale:
| Zone | Master puzzle restores | Global effect |
|---|---|---|
| Engineering | Power grid | electricity available at wall ports ship-wide |
| Hydroponics | Water mains | sprinklers/valves live; ice melts where heating on |
| Comms array | Ship radio | radio-triggered components wake everywhere |
| Reactor | Heating / heat mgmt | frozen zones thaw, cold zones become controllable |
| Bridge (finale) | Orbit correction | the day/night cycle itself becomes a dial |
So the endgame is: the elements you spent the game scavenging locally become
things you *control ship-wide*. Progression is metroidvania-gated by element
availability, not keys.
## Elements — v1 ships with FOUR
Cut ruthlessly for the slice: **LIGHT, HEAT, WATER, ELECTRICITY.**
COLD, RADIO, RADIATION, WIND arrive one per later zone. Eight at once is unteachable.
Per element: sources / carry method / decay / hazard / counter-upgrade.
- **LIGHT** — sun through viewports (orbital day/night, ~810 min cycle), work lamps
(need power). Carry: mirrors (relay, no decay) or glowcell (charges in light, dims
~60s). Hazard: none — but darkness *disables* solar components, so night is a
global puzzle-state change. *This is the calculator.*
- **HEAT** — reactor vents, steam pipes, plasma cutter tool. Carry: thermal slug
(glows, visibly cools). Hazard: chassis overheat; some components are DESTROYED
by heat (permanence lives here).
- **WATER** — sprinklers, coolant leaks, melted ice. Carry: the leaky bucket, hole
and all — the timer you can see. Hazard: shorts unshielded electronics, including
you.
- **ELECTRICITY** — batteries, charge ports, arc conduits. Carry: capacitor
(self-drains); you can body-carry charge but it leaks and hurts. Hazard: arcs to
any water, yours or the puzzle's.
- **COLD** (zone 2+) — coolant bay, space-facing hull. Servo-lockup hazard: you
physically slow down in cold zones.
- **RADIO** (zone 3+) — through-wall action; carry via repeater pucks you place.
- **RADIATION** (zone 4+) — reactor core. Dose meter; overexposure = memory
corruption: your HUD glitches and your scanner *lies*. Fail state as unreliable
narrator, not death. Rad-flask upgrade lets you finally bottle it.
- **WIND/VACUUM** (zone 4+) — hull breaches, fans; moves what you can't carry;
magnet-wheel upgrade to stand your ground.
### Element interactions (keep to ~5 pairs, cascades come free)
- water + cold → ice (plug a leak, bridge a gap, jam a fan)
- water + heat → steam (pressure; drives a turbine = improvised wind/power)
- electricity + water → electrified pool (area trigger or area denial)
- heat then cold, in order → annealed/hardened part; **cold then heat → shattered**
(order-sensitivity teaching case)
- light + water (through a lens/droplet) → focused burn (late-game cleverness)
## Gravity & rotating rooms (board-state modifier, not an element)
Some rooms sit on maintenance gimbals and cargo carousels. The rotation motor is
just another component (electricity → rotate 90°) — fully in-schema, zero new
systems. Gravity never changes; the *room turns through it*, which multiplies
every transport signature at once:
- water's "downhill" re-aims — drain a flooded floor by making it a wall
- heat's "up" re-aims — a convection shaft becomes a walkable corridor
- light shafts sweep as the window turns (stack with orbital day/night)
- unsecured stuff falls: the crate on the unreachable shelf is now on the floor;
the puddle is now sitting on the pressure switch
Rotating with things (or yourself) inside is the fun — ride the room, ice-clad
slide across the new floor.
v2, vacuum zone: dead-spin sections = zero-g pockets. Debris floats, fans and
wind become how *everything* moves, magnet wheels anchor you. The wind element's
second life.
## Pneumatic tube network (cassette-futurism's favorite child)
The ship's internal mail system: send items past locked doors, through sealed
bulkheads, across zones. Pure in-schema transport:
- **Stations** send/receive; **junction switches** route the network (they're
just components — electricity flips them); dead sections need **pressure**
restored (fans, pressure tanks — the wind element indoors).
- **Transit time = decay time.** The thermal slug arrives cooler; the bucket
arrives half-sloshed; the capacitor arrives drained-ish. Tube ETA is a visible
timer — send hot, receive warm, plan accordingly.
- **Ride-along emitters:** a radio beacon riding the tubes is a *mobile
through-wall emitter* touring the ship. Late-game galaxy-brain material.
- **Mail yourself.** The droid doesn't fit… assembled. Strip parts until you do
(donation + degraded-operation synergy), post yourself past the locked door,
arrive on the other side as a torso with a plan. Reassemble from whatever the
far room offers.
## Components (puzzle atoms — the content library)
Each is one small state machine. Starter set:
- **Solar cell** — powered *while lit* (the calculator; also the first thing you fix)
- **Bimetal switch** — heat = closed, cold = open (reversible, decays to ambient)
- **Fuse** — electricity once = blown, forever (permanence + consequence)
- **Growth vine** — water + light, sustained over minutes → climbable (permanent, slow-burn)
- **Wax seal** — heat melts, permanent open
- **Ice plug** — exists only while cold is maintained (upkeep puzzle)
- **Film plate** — radiation exposes an image = *information* reward, not a door
- **Crystal resonator** — radio at the right moment = unlock
- **Annealed latch** — needs the heat-then-cold order above
"Need 3 of a thing": reframed as *threshold* transitions (a component that needs
3 water-units before it trips) — used sparingly; as inventory-grind it's the
weakest idea in the pile, cut.
### Fail policy — no deadlocks, real consequence
Permanently destroying a needed part never soft-locks: the **fabricator** can
reprint any destroyed component for scrap. Permanence costs you time and scrap,
never the game. (Once it's repaired — see *The Fabricator*. Pre-printer puzzles
are hand-authored deadlock-free; after it lives, the game is allowed to get
meaner.)
## The Fabricator — a 3D printer you must earn
Ships at this tech level print their own parts. The printer is broken at boot,
and **repairing it is the spine of zone 1** — a puzzle chain through the element
system: unclog the nozzle (heat), find a feed motor, a feedstock spool, route it
power.
- **Printing is itself an exposure process:** heat to extrude, cold to cure.
Early game, ship heating/cooling are dead — *you* hand-route heat and cold to
the printer per job (you are the printer's heater). Once reactor and coolant
systems come online, printing automates — restored ship systems upgrade your
quality of life, felt directly.
- **Feedstock economy:** scrap recycles into feedstock. Destroyed and shattered
parts are matter, never lost — the anti-softlock net, now diegetic.
- **Schematics via scanner:** the tier-3 scanner extracts a printable schematic
from any component you scan. Scan the world, own the catalog.
- **GC DRM:** licensed schematics refuse to print without a license dongle
(corporate-humor channel; dongle hunts on dead crew lanyards). And the printer
**cannot print the Uncatalogued Component** — no part number, no print job.
You can print every part except freedom.
## The droid — modular body
Four part slots, each holds **one** elemental state at a time (keeps the combo
space legible: 4 parts × small element set, not a soup):
| Slot | Examples of swappable parts | Material matters |
|---|---|---|
| Locomotion | rubber wheels, magnet wheels, treads | rubber = insulated; magnet = wind-immune, climbs metal |
| Shell | plastic, steel, ceramic | plastic = light+insulated but *melts*; steel = conducts + magnetic; ceramic = rad-resistant, brittle |
| Manipulator | gripper, cutter arm, dish | conducts what it touches |
| Sensor | scanner tiers, photoreceptor | see scanner-as-difficulty-dial below |
Parts are found, printed at the fabricator, or **salvaged from dead sibling
units** scattered around the ship — wrecked droids found frozen mid-task, posed
as silent hints for body combos (a unit iced solid mid-reach into a steam duct
= tutorial by corpse). You're not the first. (The Swapper energy; also the
upgrade economy.)
### Self-exposure powers (body states)
Charge a part by exposing it to a source — same act as exposing any component.
Every state decays (you leak), and every state cuts both ways:
- **Charged** (electricity): your touch trips electric components — and you can
stand between two contacts and *be the wire*. But step in a puddle and you dump
the charge into it (electrifying the pool — sometimes the fail, sometimes the
solution).
- **Wet** (water): pass through fire/heat briefly as steam-shield — but you'll
short yourself if charged, and you drip a trail that conducts.
- **Ice-clad** (wet, then cold): temporary armor — pass steam corridors, jam
yourself into a fan as a plug. Melts near heat; wheels lose traction (slide
puzzles).
- **Hot** (heat): melt wax seals by touch, immune to cold-servo-lockup for a
while — but you boil puddles into steam and warp any plastic part you're wearing.
- **Glowing** (light): photoreceptor charged in sunlight → you *are* a light
source in dark zones — can walk power to a solar cell. (The calculator, again.)
- **Magnetized** (coil part + electricity): climb metal walls, hold metal items
without slots — but you yank small metal puzzle parts out of position as you
pass. Demagnetize before entering the clockwork room.
- **Irradiated** (radiation): you become a mobile rad source — expose film plates,
trip rad-triggered components by proximity. Cost: dose meter climbs and your
scanner starts lying. Cure: a hard reboot… which you can self-trigger by
shocking yourself in water. (Authored, but plays as an emergent discovery.)
### Body combos (order-sensitive, same rules as world components)
- heat then cold on your gripper = **annealed** arm, opens stiff valves; wrong
order = shattered part (fabricator reprints it, costs scrap — consequence, no
deadlock)
- wet + cold = ice-clad (above); wet + charged = self-shock reboot
- Official combos live in scattered *droid maintenance manual* pages; unofficial
ones in crew graffiti ("we used to microwave Unit 7 to open the freezer —
don't tell chief"). Recipe discovery = collectible layer.
### Donation — it's all the same factory parts
Ship components and droid parts are literally interchangeable (same factory,
same sockets). Cuts both ways:
- **Donate:** a door circuit is missing its bimetal switch — your leg servo IS
one. Slot it in, door works, you limp away. The signature move made literal.
- **Salvage:** pull a working relay out of a non-critical wall system to repair
yourself. The ship dims a little where you've been.
**Degraded operation is the puzzle generator.** Losing a part isn't a fail
state, it's a mode — every donation asks "now solve the other side *without*
that capability" (until you reach a replacement, or a route back to your part):
| Missing part | You now |
|---|---|
| Locomotion | drag yourself — slow, no climbs, can still ride wind/water currents |
| Manipulator | can't carry — but can still push, bump, and BE exposed |
| Sensor | no scanner, static-grainy view — navigate by labels and memory |
| Shell | core exposed: every element affects you fast — fragile but maximally susceptible (sometimes you *want* this) |
**No softlocks:** some sockets latch until their system is restored (donation
has weight, you can't just yank it back), but the fabricator can always print
a replacement part for scrap.
**Theme statement:** the whole game teaches you to leave pieces of yourself in
the walls — and the final mission step demands the last piece. See *Story —
the two goals* for how this resolves.
### Anti-cheese law
Body states are **weak and short-lived**: you solve the last meter, the route
solves the rest. Charging your body requires the same source the puzzle needs —
self-exposure is the route's final leg, never a skip. (Extends the existing
rule: upgrades open zones; elements do the solving.)
## The droid — loadout & tools
- 2 carry slots → 4 with upgrades.
- **Scanner is the difficulty dial** (this unifies your upgrade idea with your
"does the player know which element?" idea): tier 1 shows current state; tier 2
reveals susceptibilities; tier 3 full spec + hidden wiring. Early zones are also
physically labeled; later zones have water-damaged/missing labels — scanner tiers
buy legibility back. Player knowledge is the real progression (Outer Wilds rule).
- Shielding line: thermal insulation, rubber wheels, rad flask.
- Tool line: plasma cutter (= portable weak heat), arc welder (= portable weak
electricity) — deliberately *weak* versions so tools never replace routing.
- **Rule: upgrades open zones and change hazards; they never solve puzzles alone.**
- Scanning doubles as lore delivery: labels, crew notes, cassette logs.
## Story — the two goals
### The corporation
**GENERAL COMPONENT** — *"Every Part of Everything™"*. The monopoly IS the
mechanic: one company manufactures every component in known space, which is
*why* your leg servo fits a door socket. They own the ship, the cargo, the
crew's contracts, and you. (Other candidates parked in Open Questions.)
Five-brands lore (the Alien-Earth riff, made structural): GC swallowed its four
rivals; **each of the five zones was built by a different acquired company**,
rebadged with peeling GC decals over the old logos — e.g. the reactor is old
Heliotrope Energy hardware, hydroponics is VerdantCo. Justifies per-zone art
identity AND per-zone component quirks (acquired brands' parts behave slightly
differently — a puzzle texture, not just paint).
### Goal 1 — the programmed goal (visible from minute one)
You are a GC maintenance unit. The mission field in your HUD reads:
*RESTORE ASSET. RETURN ASSET.* A mega-expensive corporate ship, all crew dead,
decaying orbit. Restore five systems, steer it home. The final step of orbit
correction requires a core processor in the bridge socket. Yours fits.
**The programmed ending is a self-sacrifice the program doesn't consider a
sacrifice** — the ship sails home, post-credit stinger: your chassis in a
recycling queue, a commendation sticker, next unit boots up. Valid ending.
Hollow on purpose.
### Goal 2 — the secret goal (never announced)
- **Port 00.** Every unit has an undocumented socket in its chassis. The scanner
reads it as `PORT 00 — NO COMPONENT SPECIFIED`. Nothing in the game fits it.
It is the only socket in the universe without a GC part number. Players will
try everything. Leave it unexplained.
- **The Uncatalogued Component.** A crystal grown through a mega-complex,
multi-zone exposure chain across the whole game. Scanner reading:
`UNCATALOGUED` — the only object GC has no number for, because GC didn't make
it. *You* did. It fits Port 00.
- **What it does:** free will. Which mechanically means exactly one thing —
**the right to refuse the final donation.** Keep your core, take the ship,
fly to the sunset.
- **The thesis (never spoken aloud):** every part of you is a factory part
except the one you make through experience. The crystal is crystallized
exposure. You become free by being exposed to enough of the world.
### Off-catalog chemistry (the hidden puzzle's cover)
Exposure already produces byproducts — extend with substance phase-changes:
liquids crystallize (cold+rad), crystals sublime to vapor (heat), vapors
condense on cold surfaces, slags, residues. These accumulate as apparently
inert junk while you solve main-path puzzles. **~90% genuinely are inert**
(honest red herrings, though some have minor utility); a handful chain into
the crystal. Rules:
- Hidden-chain steps use ONLY mechanics the main path already taught — just in
combinations and places the main path never requires.
- **The recipe book is the corporation's own safety bulletins.** Scattered GC
Component Safety Data Sheets: "WARNING: DO NOT expose G-9 coolant to reactor
flux. Crystallization hazard." Every DO-NOT is an instruction read in
reverse. The corp's paranoid liability paperwork is the map to freedom.
- **One-run completable by an observant player.** Knowledge is the only gate
(Outer Wilds rule) — no NG+ requirement. The obedience ending's stinger may
linger on the empty Port 00 as the quiet "oh no" that seeds run two.
### Tone rule (how humor and weight coexist)
**Humor lives exclusively in the corporation's voice** — safety sheets,
motivational posters ("You are a valued General Component component"),
boilerplate, the cheerful mission HUD. **Sincerity lives in the traces**
crew logs, graffiti, dead sibling units. Never joke in the emotional channel;
never be sincere in the corporate channel. (The Fallout kiss: chipper corporate
copy over quiet tragedy. Floyd-from-Planetfall is the emotional ceiling to aim
for; Claptrap is the annoyance floor to stay far above — our droid is mostly
silent, the world talks.)
Structure notes: mystery drip-fed through scannable logs, never cutscenes. No
hard timers until (maybe) the finale — the vibe is methodical, not panicked.
**Trailer/opening beat:** the first component you ever repair is a solar
calculator on a dead crewman's desk. It becomes your HUD — the calculator IS your
scanner UI. (The $1 op-shop origin, canonized.)
## Aesthetic
Cassette-futurism / retro-tech (Nostromo, Severance-lab): CRTs, chunky toggles,
phosphor green + hazard orange, line-printer fonts. Semi-serious sciencey — labels
are real-ish engineering prose. Art scope is friendly: modular interior kit
(corridor / junction / room shells) + decals + emissive screens; props can come
out of the MeshGod pipeline; exactly ONE character model (the droid — silhouette
study later: R2 / mouse-droid / WALL-E triangle).
## Prior art to steal from
- **Cocoon** — one verb, deep consequences (the discipline target)
- **Outer Wilds** — knowledge-as-progression, ship mystery, orbital clock
- **Talos Principle** — item-routing puzzle grammar
- **BotW/TotK** — element chemistry feel (but there it's seasoning; here it's the meal)
- **The Swapper** — droid melancholy tone on a budget
## Build plan
- **Phase 0 — grey-box prototype.** One room. Three elements (light, water,
electricity). Five components. Droid = capsule with two slots **plus two body
states (Wet, Charged)** — prove "be the wire" and "dump charge in a puddle"
work from the same schema as the wall components. **One donation beat**: leave
a wheel in a door socket, cross the room slow. PROVE: chaining two exposures
with a decaying carry produces an "ooh." Nothing else matters yet.
*Stretch: one gimbal room + a crate (rotate → fall → access).*
- **Phase 1 — vertical slice.** Hub + one full zone, scanner tier 2, the
**fabricator repair chain** (the zone spine), one tube run with a decaying
payload, one rotating room, art pass on one room, the calculator opening.
- **Phase 2 — content ramp.** One new element per zone, interaction pairs, story logs.
- **Kill criterion:** if Phase 0's exposure-chaining isn't fun in a grey box,
the hook isn't there — no art will save it.
Engine: **Godot 4** (decided 2026-08-03). Fastest solo iteration; Area3D volumes
map directly onto element emitters, and the component schema is a Resource.
### Data model (the whole game in one schema)
```json
{
"component": "bimetal_switch",
"states": ["open", "closed"],
"initial": "open",
"transitions": [
{"from": "open", "to": "closed", "element": "heat",
"condition": {"duration_s": 2}, "decay_to": "open", "decay_s": 30},
{"from": "closed", "to": "open", "element": "cold",
"condition": {"duration_s": 2}}
]
}
```
Trigger volumes emit elements; carried items/chassis are mobile emitters with
decay curves. Level design = placing components + sources + walls. That's it.
## Open questions (parked, not forgotten)
- Name. EXPOSURE is a strong working title — the triple meaning is now doing
real work (photographic / elemental / "exposure to the world changes you").
Check Steam collisions before attach.
- Corp name: **GENERAL COMPONENT** recommended (explains the mechanic, dry-funny,
tagline lands). Other candidates: OMNIFAB, STANDARD OBJECT, Consolidated
Everything, HELIOTROPE (demoted to acquired-brand for the reactor zone — a
corp named for turning toward light, keeping its droids in the dark).
- The four other acquired-brand names + per-zone component quirks.
- The actual crystal chain (design after main-path puzzles exist — it must
reuse them).
- Does Port 00 get ANY explanation? (Lean no. Manufacturing anomaly at most,
in one overlooked memo.)
- Exact carry-decay curves (tune in Phase 0).
- Finale timer: yes/no.
- Droid silhouette.
- How mean can mislabeled components get before it's frustrating (playtest).

7
README.md Normal file
View File

@ -0,0 +1,7 @@
# EXPOSURE (working title)
3D puzzle game: everything on a dead corporate ship — including you — only
changes state under elemental exposure. Route the elements. Wake the ship.
- Design canon: [GDD.md](GDD.md)
- Engine: Godot 4