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>
40 lines
2.1 KiB
Markdown
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`.
|