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>
44 lines
2.2 KiB
Markdown
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.
|