MRPGI/kit/README.md
type-two d0caf983a0 Initial commit: MRPGI — Apple-Silicon AGI adventure engine
A new-school reimagining of Sierra's 1980s AGI interpreter in Rust + macroquad:

- Dual-buffer (visual + priority) room model with hand-painted walkability
- In-engine room editor: brush/line/rect/fill/pick/erase/oval/image/spawn/object tools
- Sprite pipeline (PNG -> EGA quantize), multi-room worlds with edge exits
- Objects with look/use/needs/keys/win conditions (no code)
- Forgiving text parser + optional local-LLM lane (Ollama / OpenRouter)
- Branching NPC dialogue trees, chiptune SFX, per-room ambient music
- Content kit: 61 archetypes across fantasy/scifi/monsters/saucy/horror
- Full docs: README, EDITOR_GUIDE, MANUAL, art manifesto + Gemini prompts

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 17:26:55 +10:00

40 lines
2.1 KiB
Markdown

# MRPGI fantasy starter kit
Drop-in building blocks for fantasy games. Regenerate any time with:
```sh
cargo run -- --kit
```
That writes placeholder sprites into `sprites/`, this kit into `kit/`, **and**
installs a playable 4-room fantasy world into `rooms/` (your existing rooms are
backed up to `*.json.bak` first).
## What's here
- **`objects.json`** — a catalog of object archetypes (sword, spellbook, orc, key, chest, door, altar, potion, torch, villager, tree, rock, sign). Each is a ready-made object with name / look text / use text / `needs` / `wins` / synonyms already written.
- **`locations/*.json`** — prefab rooms: `forest`, `cave`, `dungeon`, `inn`. Each is a complete, valid room (painted scenery + objects + spawn + exits).
- **`ART_MANIFESTO.md`** — exact specs to replace the crude placeholder sprites with real art.
## How to drop a location into your game
Rooms live at `rooms/room0.json`, `room1.json`, … (room 0 is where you start).
```sh
cp kit/locations/forest.json rooms/room4.json
```
Then launch, press `>` in the top strip to walk to room 4, and edit away. (Re-wire
its **exits** on the top strip so it connects to your other rooms.)
## How to drop an object into a room
Open `kit/objects.json`, copy one object block, and paste it into the `objects:
[ … ]` array of any `rooms/roomN.json` (adjust its `x`/`y`). Or just place a
sprite with the object tool (`0`) in the editor and copy the look/use/needs text
from the catalog into its fields.
## The built-in fantasy quest (what `--kit` installs)
0. **Forest** — grab the **sword**. Paths: cave (east), inn (south).
1. **Cave** — an **orc**, a **chest** (needs a key), and the **spellbook** on a ledge.
2. **Dungeon** (north of cave) — an **altar**. `use altar` with the spellbook → **win**.
3. **Inn** (south of forest) — the **villager**, a **potion**, and the **key** (for the chest).
Solution: forest → inn (get key) → forest → cave (get spellbook; key opens the chest for gold) → dungeon → `use altar`. Win. Try natural language too — `pry the chest open`, `read the spellbook`, `bonk the orc`.