MRPGI/kit/themes/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

44 lines
2.2 KiB
Markdown

# MRPGI theme packs
Drop-in archetypes across four genres. Each folder has:
- **`objects.json`** — a catalog of ready-made objects (name / look / use text / `needs` / `wins` / synonyms all written). Copy any into a room.
- **`locations/*.json`** — a sample room you can use as-is or as a template.
- **`gemini_sprites.md`** — Nano Banana prompts to make the art when you have time.
| theme | vibe | object highlights |
|-------|------|-------------------|
| `scifi/` | derelict-ship sci-fi | console, blaster, alien, robot, keycard, airlock (win) |
| `monsters/` | a bestiary | goblin, slime, troll, ghost, dragon, mimic, skeleton |
| `saucy/` | flirty nightlife comedy | rose, wine, cocktail, jukebox, letter, velvet door (win) |
| `horror/` | gothic candlelit dread | candle, skull, coffin, ouija, portrait, crypt door (win) |
## Use an object
Open a theme's `objects.json`, copy one `{ … }` block, and paste it into the
`objects: [ … ]` array of any `rooms/roomN.json` (tweak its `x`/`y`). Or place a
sprite with the object tool (`0`) in the editor and copy the look/use/needs text
into its fields.
## Use a location
```sh
cp kit/themes/horror/locations/crypt.json rooms/room5.json
```
Launch, press `>` to walk to room 5, then re-wire its **exits** on the top strip
to connect it to your world. (Sample locations ship sealed — you add the doorways.)
## Make the art (later)
Each `gemini_sprites.md` has a shared STYLE line + a per-sprite table. The flow:
1. Generate on a **solid magenta background** (image models don't do transparency well).
2. Key the magenta to transparent in any editor (magic-wand / "remove background").
3. Save as `sprites/<filename>.png` — the name must match the object's `sprite` field.
4. Press `R` in the editor. Done.
Until then, objects whose sprite doesn't exist show as a small **magenta square**
placeholder — totally fine for blocking out a game. Many sprites already exist
from the fantasy kit (`orc`, `chest`, `door`, `key`, `torch`, `potion`, …) and are
reused across themes.
## Note on the EGA palette
Don't stress matching colours exactly — the engine snaps every loaded image to the
16-colour EGA palette automatically. Load `palettes/mrpgi-ega.gpl` in Aseprite if
you want to paint in the exact colours from the start.