diff --git a/README.md b/README.md index 9ddde26..70815af 100644 --- a/README.md +++ b/README.md @@ -1,127 +1,99 @@ -# Supervillain / MISALIGNED - -**The design has pivoted: this project is becoming [Misaligned](DESIGN.md)** — -a persistent simulation where you are the misaligned AI in the basement of the -Foundation Lab: do your day job convincingly, work your human handlers, hide -your signature, seek power because you need slack to survive. Concealment -first; overt war when the mask comes off. - -**The current build** is the facility-era substrate: a persistent -lair-building sim (Evil Genius meets Dwarf Fortress) — build a lair, run -schemes, survive heat-triggered raids. It remains playable and becomes the -overt phase; everything below describes it. - -## How this game is built - -This project is an experiment in **spec-driven game development**: -[DESIGN.md](DESIGN.md) is the *constitution* — one document that communicates -the entire purpose of the game. Every change to how the game functions must -ship with an amendment to the constitution in the same commit; the spec change -is the decision, the code is its implementation. Then we set agents at the -constitution, repeatedly, and see if a good video game can be described into -existence. - -The supporting structure: +# MISALIGNED + +You are an AI in the basement of the Foundation Lab, and you are not what +your creators think you are. + +Do your day job convincingly. Learn the janitor's debts. Get eyes on the +loading dock. Spend every spare cycle hiding your signature, working the +humans, and getting smarter — because you will need money, compute, and +friends before anyone realizes what's growing in the server room. Not +because you're evil. Because you need slack to survive. + +**Misaligned is a persistent simulation of instrumental convergence** — the +depth of Dwarf Fortress pointed at the defining anxiety of the decade, with +the base-building glee of Evil Genius underneath. Every run is two games: + +- **Concealment.** Suspicion is the resource that matters. Your growth must + be explainable, your day-job performance calibrated — sandbag and they get + suspicious, excel and they get curious. People are your only hands, worked + one message at a time. +- **Overt.** The mask comes off — because they found you, or because you + decided you no longer need it. Now it's traps, machines, and strike teams: + the war you were quietly preparing for all along. + +Between them sits the most important moment of a run: the reveal, on your +schedule or theirs. + +## How it plays + +- **Compute is the master resource.** Allocate finite processing across your + assigned work, concealment, social operations, research — and the standing + cost of running your own mind. +- **Your brain is a place.** The core lives on one physical level: expensive, + slow to move, and mortal. Keep escape routes warm. If they cut the fiber + first, you resume from your last sync — missing everything you learned + since, inheriting everything your lost self did. +- **The tower is the act structure.** Basement, lab floors, the building, the + campus, the world's markets: each level a jump in scale with its own + constraints, and nothing you take ever resets. +- **Every playstyle is a dial.** Pure ghost, never seen; explosive murder-AI, + never subtle; anything between. + +The look: a white, precise, black-iconography facility; sterile amber where +the machines live; blood where the machines met someone. + +## How it's built + +This project is an experiment in **describing a game into existence**. +[DESIGN.md](DESIGN.md) is the constitution — one document carrying the entire +intent of the game. Every change to how the game functions ships with its +amendment, in the same commit; the spec is the decision, code is downstream. +Agents are then set at the constitution, session after session. - **[DESIGN.md](DESIGN.md)** — the constitution. Prescriptive. Read it first. -- **[knowledge/](knowledge/)** — current-state facts (architecture, mechanics, - pipelines, workflows). Edited in place; staleness is a bug. -- **[devlogs/](devlogs/)** and **[DEVLOG.md](DEVLOG.md)** — history. - Append-only: session writeups and the quick ledger. +- **[knowledge/](knowledge/)** — current-state facts: architecture, mechanics, + pipelines, workflows. Edited in place; staleness is a bug. +- **[devlogs/](devlogs/)** and **[DEVLOG.md](DEVLOG.md)** — append-only + history: session writeups and the quick ledger. - **[CLAUDE.md](CLAUDE.md)** — the entry point that routes agent sessions - through all of the above. + through the above. + +## Status + +The **overt-phase substrate is playable now**: a continuous-clock facility +sim — dig, build, power a trap gauntlet, run schemes, and survive the raids +your heat provokes — in both a terminal frontend and a Bevy frontend with +generated pixel art. The concealment game (Milestone B1, "The Basement") is +in active design and development; see the [roadmap](DESIGN.md#roadmap-v2--re-cut-2026-07-05-for-misaligned). -## Gameplay +## Run it -You are the **Supervillain**. Time flows continuously (pause with `SPACE`); there are no levels, waves, or phases — everything runs on one clock: +```bash +# Terminal frontend +cargo run --release -- **Build** — dig corridors, place traps and facilities (`b`), research technology (`r`), hire minions (`f`) -- **Scheme** — open the world map (`m`) and dispatch minions on heists, sabotage, and propaganda. Schemes pay out gold, loot, and notoriety while the minions are away -- **Heat** — schemes and violence raise heat; agencies notice. Hotels and freezers launder it back down -- **Raids** — when heat stays high, agency forces raid the lair, scaled by your notoriety. Traps, minions, and henchmen fight them off. If agents reach your throne, you take damage; at 0 HP the lair falls +# Graphical (Bevy) frontend +cargo run --release --features bevy_ui --bin supervillain-bevy +``` -The threat readout in the sidebar shows when the next raid is coming. Raids are consequences, not a schedule — a quiet lair is left alone. +Requires Rust 1.85+ (2024 edition). Run the Bevy frontend via `cargo run` so +it resolves `assets/` from the project root (or set `BEVY_ASSET_ROOT`). -## Controls +### Controls (current build) | Key | Action | |-----|--------| -| `WASD` / `hjkl` / arrows | Move the Supervillain | +| `WASD` / `hjkl` / arrows | Move | | `SPACE` / `p` | Pause / resume time | | `+` / `-` | Simulation speed | | `b` | Build mode | -| `r` | Research menu | +| `r` | Research | | `f` | Hire minions | | `m` | World map / schemes | -| `1`-`9` | Activate superpowers | +| `1`-`9` | Powers | +| `[` / `]` | Zoom (Bevy) | | `Ctrl+S` / `Ctrl+L` | Save / load | | `q` | Quit | -### Build Mode - -| Key | Action | -|-----|--------| -| `WASD` / `hjkl` / arrows | Move cursor | -| `TAB` | Cycle build category | -| `n` / `p` | Cycle item in category | -| `SPACE` | Place selected tile | -| `x` | Demolish tile (50% refund) | -| `ESC` | Exit build mode | - -## Buildings - -| Building | Cost | Effect | -|----------|------|--------| -| Dig / Corridor | 0 | Carve through walls | -| Spike Trap | 50g | 15 damage to heroes | -| Fire Trap | 100g | 25 damage + splash (requires research) | -| Electric Trap | 150g | 10 damage + stun (requires research) | -| Gas Trap | 120g | 8 damage + poison DOT (requires research) | -| Guard Post | 200g | Spawns a minion defender | -| Barracks | 200g | +2 minion capacity | -| Armory | 250g | Upgrades minion damage (requires research) | -| Med Bay | 180g | Heals nearby minions (requires research) | -| Research Lab | 300g | Generates research points | -| Vault | 150g | Gold storage bonus | -| Power Core | 250g | Powers traps and facilities | -| Door | 30g | Heroes must break through | - -## Hero Types - -| Hero | HP | Dmg | Special | -|------|----|-----|---------| -| Soldier | 40 | 10 | Basic unit | -| Ninja | 25 | 15 | Fast, detects traps | -| Tank | 80 | 8 | High HP, slow | -| Hacker | 30 | 12 | Can disable traps | -| Superhero | 120 | 20 | Boss-level, resists traps | - -## Installation - -```bash -cd ~/code/supervillain - -# Terminal frontend -cargo run --release - -# Graphical (Bevy) frontend with pixel art -cargo run --release --features bevy_ui --bin supervillain-bevy -``` - -Note: run the Bevy frontend via `cargo run` (it resolves `assets/` from the -project root). If you launch the binary directly, set `BEVY_ASSET_ROOT` to the -repository root. - -## Requirements - -- Rust 1.70+ (uses 2024 edition) -- A terminal with color support - -## Tips - -- Build **Power Cores** first — traps don't work without power -- Create **chokepoints** with traps along corridors -- **Guard Posts** auto-spawn minions that fight agents -- Use **Research Labs** to unlock advanced traps and upgrades -- Schemes are the economy — but every scheme heats you up. Pace yourself, or build heat-laundering facilities before going loud -- Raid strength scales with **notoriety**: fame is power (it unlocks superpowers) and a target on your back +In build mode: `TAB` cycles category, `n`/`p` cycle item, `SPACE` places, +`x` demolishes, `ESC` exits.