From 3283c6ec84292d27d50ba52d6787328d08f1f381 Mon Sep 17 00:00:00 2001 From: type-two Date: Mon, 3 Aug 2026 17:23:58 +1000 Subject: [PATCH] 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 --- .gitignore | 3 + GDD.md | 415 +++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 7 + 3 files changed, 425 insertions(+) create mode 100644 .gitignore create mode 100644 GDD.md create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..82d44d5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.godot/ +.DS_Store +*.tmp diff --git a/GDD.md b/GDD.md new file mode 100644 index 0000000..3db13d3 --- /dev/null +++ b/GDD.md @@ -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, ~8–10 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). diff --git a/README.md b/README.md new file mode 100644 index 0000000..3315dc9 --- /dev/null +++ b/README.md @@ -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