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>
54 lines
3.3 KiB
Markdown
54 lines
3.3 KiB
Markdown
# MRPGI starter-kit art manifesto
|
||
|
||
The kit ships **crude placeholder sprites** so everything's visible immediately.
|
||
Replace any of them with real art and the game upgrades instantly — **same
|
||
filename in `sprites/`, then press `R` in the editor.** This doc is the spec for
|
||
making the real ones.
|
||
|
||
## The sprite spec (always)
|
||
- **PNG with transparency.** Transparent pixels = see-through in game.
|
||
- **Small, at game scale.** The play area is 160×168 *fat* pixels. A prop is ~12–28 px; draw 1:1.
|
||
- **EGA 16 colours.** Load `palettes/mrpgi-ega.gpl` into Aseprite/Inkscape. Off-palette art is auto-snapped to nearest EGA on load (so it still works, just less crisp).
|
||
- **Filename = id.** lowercase, no spaces: `orc.png`, `spellbook.png`. The name is what the game and objects reference.
|
||
- **Bottom-centre is the "feet."** The sprite is drawn standing on the click point, so put the base of the thing at the bottom of the canvas.
|
||
- **Fat pixels:** game pixels are 2× wide. A circle drawn round looks slightly wide in game (classic AGI). Ignore it, or pre-squash horizontally if you care.
|
||
|
||
## The kit sprites (replace these)
|
||
|
||
| file | size (w×h) | what | key EGA colours |
|
||
|------|-----------|------|-----------------|
|
||
| `tree` | 18×26 | leafy tree, trunk at bottom | green 2/10, brown 6 |
|
||
| `rock` | 16×12 | mossy boulder | gray 7/8 |
|
||
| `orc` | 14×22 | green brute, red eyes | green 2/10, red 12 |
|
||
| `sword` | 10×26 | upright blade + hilt | light gray 7, brown 6, yellow 14 |
|
||
| `chest` | 20×15 | banded wooden chest | brown 6, dark gray 8, yellow 14 |
|
||
| `torch` | 8×24 | stick + flame | brown 6, red 12, yellow 14 |
|
||
| `potion` | 10×18 | vial, red liquid, cork | cyan 11 glass, magenta 13, brown 6 |
|
||
| `door` | 16×26 | banded wooden door + knob | brown 6, dark brown, yellow 14 |
|
||
| `villager` | 12×22 | robed person, skin head | blue 1/9, skin (light red 12) |
|
||
| `spellbook` | 16×12 | purple tome + rune | magenta 5/13, white 15, yellow 14 |
|
||
| `key` | 16×8 | iron key, bow + teeth | yellow 14 |
|
||
| `altar` | 20×16 | stone block + glow | gray 7/8, cyan 11 |
|
||
| `crate` `barrel` `sign` | — | already generated; same idea | brown/gray |
|
||
|
||
(Want more? Same recipe: `skeleton`, `goblin`, `coin`/`gold`, `shield`, `bottle`,
|
||
`mushroom`, `lantern`, `gravestone`, `bookshelf`, `bed`, `well`, `bridge`.)
|
||
|
||
## How to make them
|
||
|
||
**Aseprite (best):**
|
||
1. Palette ☰ → *Load Palette* → `palettes/mrpgi-ega.gpl`. (Optional: *Sprite → Color Mode → Indexed* = pixel-perfect.)
|
||
2. New sprite at the size above, transparent bg. Draw the thing standing on the bottom edge.
|
||
3. Export `.png` into `sprites/` with the matching name. `R` in the editor to reload.
|
||
|
||
**Inkscape:** draw it, set a tiny px page (Document Properties), Export → PNG (transparent) into `sprites/`.
|
||
|
||
**AI rough-start (Gemini/Imagen — then clean up in Aseprite):**
|
||
> `16-colour EGA pixel-art sprite of a {THING}, about {W}×{H} pixels, transparent background, single object centred and standing on the bottom edge, bold readable silhouette, flat colours, retro 1980s Sierra adventure style, NO text, NO drop shadow, NO background.`
|
||
>
|
||
> e.g. THING = "a green orc with red eyes holding a dagger", W×H = 14×22.
|
||
|
||
Image models are sloppy at tiny exact pixel art, so treat their output as a base
|
||
and tidy it in Aseprite against the EGA palette. For *backgrounds* (whole rooms),
|
||
you can also just paint them with the editor's own tools — no files needed.
|