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>
164 lines
2.7 KiB
JSON
164 lines
2.7 KiB
JSON
{
|
|
"strokes": [
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 160,
|
|
"h": 168,
|
|
"color": 2,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 6,
|
|
"y": 16,
|
|
"w": 148,
|
|
"h": 146,
|
|
"color": 10,
|
|
"meaning": "Floor"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 160,
|
|
"h": 16,
|
|
"color": 6,
|
|
"meaning": "Wall"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 160,
|
|
"w": 65,
|
|
"h": 8,
|
|
"color": 6,
|
|
"meaning": "Wall"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 95,
|
|
"y": 160,
|
|
"w": 65,
|
|
"h": 8,
|
|
"color": 6,
|
|
"meaning": "Wall"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"w": 6,
|
|
"h": 168,
|
|
"color": 6,
|
|
"meaning": "Wall"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 154,
|
|
"y": 0,
|
|
"w": 6,
|
|
"h": 70,
|
|
"color": 6,
|
|
"meaning": "Wall"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 154,
|
|
"y": 100,
|
|
"w": 6,
|
|
"h": 68,
|
|
"color": 6,
|
|
"meaning": "Wall"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 30,
|
|
"y": 120,
|
|
"w": 18,
|
|
"h": 8,
|
|
"color": 2,
|
|
"meaning": "None"
|
|
}
|
|
},
|
|
{
|
|
"Rect": {
|
|
"x": 100,
|
|
"y": 60,
|
|
"w": 22,
|
|
"h": 8,
|
|
"color": 2,
|
|
"meaning": "None"
|
|
}
|
|
}
|
|
],
|
|
"spawn": [
|
|
24,
|
|
130
|
|
],
|
|
"exits": [
|
|
null,
|
|
1,
|
|
3,
|
|
null
|
|
],
|
|
"objects": [
|
|
{
|
|
"name": "tree",
|
|
"sprite": "tree",
|
|
"x": 44,
|
|
"y": 70,
|
|
"look": "An ancient tree, bark like old leather.",
|
|
"takeable": false,
|
|
"synonyms": "oak trunk wood",
|
|
"use_text": "",
|
|
"needs": "",
|
|
"wins": false
|
|
},
|
|
{
|
|
"name": "sword",
|
|
"sprite": "sword",
|
|
"x": 80,
|
|
"y": 132,
|
|
"look": "A notched iron sword someone left in the grass. Finders keepers.",
|
|
"takeable": true,
|
|
"synonyms": "blade weapon",
|
|
"use_text": "",
|
|
"needs": "",
|
|
"wins": false
|
|
},
|
|
{
|
|
"name": "rock",
|
|
"sprite": "rock",
|
|
"x": 120,
|
|
"y": 134,
|
|
"look": "A mossy boulder, smug and immovable.",
|
|
"takeable": false,
|
|
"synonyms": "boulder stone",
|
|
"use_text": "",
|
|
"needs": "",
|
|
"wins": false
|
|
},
|
|
{
|
|
"name": "sign",
|
|
"sprite": "sign",
|
|
"x": 80,
|
|
"y": 44,
|
|
"look": "A signpost: CAVE east, INN south.",
|
|
"takeable": false,
|
|
"synonyms": "notice post",
|
|
"use_text": "",
|
|
"needs": "",
|
|
"wins": false
|
|
}
|
|
]
|
|
} |