RobOS 2D RPG Engine · Godot 4.3
Descendant of Erdrick,
restore the light.
An NES-authentic 8-bit 2D RPG rebuilt from a declarative Knowledge Graph with 100% clean-room procedural pixel art & chiptune audio, an in-engine autonomous Stride AI, chained Cucumber checkpoint tests, and a headless global pathfinding audit proving every tile, chest, door, shrine, and boss in Alefgard is reachable.
Scroll ↓The game
The 1986 console RPG classic, engineered as verifiable data
Every map, staircase, locked door, treasure chest, shop inventory, monster stat block, and spell formula lives in typed JSON registries under data/v1/. The Godot 4 engine renders clean-room procedural tilemaps, executes authentic turn-based battles and dungeon darkness radii, and exposes a live HTTP telemetry & AI control server.
29 Connected Maps
Explore the 124×124 Alefgard overworld, 6 towns, Tantegel Castle & Basement, 4-floor Garin's Grave, Mountain Cave, Erdrick's Cave, Swamp Cave, 2 holy shrines, and 8 floors of Charlock Castle.
In-Engine Stride AI
AIEngine.gd plays the game strictly via real player inputs (move_up/down/left/right, ui_accept, cmd_menu), holding continuous multi-tile strides across straightaways.
Player AI vs Enemy AI
Launch with --demo to watch the autonomous Hero AI navigate dungeons, unlock doors, manage HP with Herbs & spells, and battle the Enemy AI without human intervention.
Chained Checkpoints
Cucumber BDD scenarios chain JSON save states from New Game (King Lorik) through finding the Magic Key, unlocking the Throne Room door, descending stairs, and exiting to the World Map.
100% Clean-Room Assets
All 29 map backgrounds, 40 monster sprites, character walk sheets, and 28 chiptune MP3 tracks are synthesized procedurally by tools/recreate_clean_room_assets.py.
Global BFS Audit
A headless Godot pathfinding test walks all 15,227 connected (map, col, row) states from ThroneRoom (3,5) to prove 100% reachability of every chest, relic, and boss.
Autonomous Agent Governance & Map Completeness
Proof of Viability: Global BFS Pathfinding & 20-Slide Tour
In a 29-map RPG with multi-floor dungeon loops, locked doors, overworld bridges, and shrine teleporters, a single off-by-one coordinate in a stair registry or an unwalkable bridge tile can silently make an endgame relic impossible to obtain. RobOS eliminates soft-locks with tests/test_map_completeness.gd — a headless multi-map Breadth-First Search (BFS) verifier that starts at New Game (tantegel-castle-2f @ 3,5) and proves every map, stair, door, chest, and quest milestone is reachable.
Verified Quest Relic & Milestone Shortest Paths from New Game Start
| Milestone / Relic | Map Key | Coordinate | Min BFS Steps | Shortest Multi-Map Transition Route | Status |
|---|---|---|---|---|---|
| King Lorik Audience | tantegel-castle-2f | (3, 5) | 0 | tantegel-castle-2f | ● PASS |
| Throne Room Magic Key | tantegel-castle-2f | (6, 5) | 3 | tantegel-castle-2f | ● PASS |
| Stones of Sunlight | tantegel-castle-b1 | (5, 6) | 58 | tantegel-castle-2f → tantegel-castle-1f → tantegel-castle-b1 | ● PASS |
| Erdrick's Tablet | erdricks-cave-b2 | (10, 4) | 148 | tantegel-castle-2f → tantegel-castle-1f → world-map → erdricks-cave-b1 → b2 | ● PASS |
| Princess Gwaelin Rescue | swamp-cave-b1 | (6, 20) | 172 | tantegel-castle-2f → tantegel-castle-1f → world-map → swamp-cave-b1 | ● PASS |
| Fairy Flute (Kol) | kol-1f | (10, 7) | 187 | tantegel-castle-2f → tantegel-castle-1f → world-map → kol-1f | ● PASS |
| Staff of Rain Shrine | northern-cave-b1 | (4, 5) | 202 | tantegel-castle-2f → tantegel-castle-1f → world-map → northern-cave-b1 | ● PASS |
| Fighter's Ring | mountain-cave-b2 | (3, 3) | 220 | tantegel-castle-2f → tantegel-castle-1f → world-map → mountain-cave-b1 → b2 | ● PASS |
| Erdrick's Armor | hauksness-1f | (19, 13) | 233 | tantegel-castle-2f → tantegel-castle-1f → world-map → hauksness-1f | ● PASS |
| Silver Harp (Garin's B4) | garinham-b4 | (6, 1) | 265 | tantegel-castle-2f → ... → garinham-1f → b1 → b2 → b3 → garinham-b4 | ● PASS |
| Rainbow Drop Shrine | southern-cave-b1 | (6, 6) | 284 | tantegel-castle-2f → ... → swamp-cave-b1 → world-map → southern-cave-b1 | ● PASS |
| Erdrick's Sword | charlock-castle-b2 | (6, 6) | 470 | ... → charlock-castle-1f → b1 → b2 → b3 → b2 → b1 → charlock-castle-b2 | ● PASS |
| Dragonlord's Altar | charlock-castle-b7 | (20, 12) | 560 | ... → charlock-castle-1f → b1 → b2 → b3 → b4 → b5 → b6 → charlock-castle-b7 | ● PASS |





AI Playthrough
Reachable is not beatable — so the engine plays the whole game
The BFS audit proves every tile can be reached. The AI Playthrough proves the game can be won: PlayGameBrain.gd takes over the controller and plays from King Lorik's throne room to the Dragonlord using only real inputs and the IPC state feed, seeking the next entry of a 70-milestone registry (every chest, every purchase, every quest item, every level gate). A Python driver cuts one video and one save checkpoint per milestone, deadlock watchdogs in the brain and in the driver catch hangs, and a GNOME tray icon with a progress ring plus a live dashboard let you follow a two-hour run at a glance. Every bug it hit so far was a game bug.






Play & Verify
Run the game, autonomous Demo AI, and headless pathfinding tests
# Launch Quest: Warrior Dragon normally or in Autonomous Demo Mode (Player AI vs Enemy AI)
godot --path games/quest-warrior-dragon
godot --path games/quest-warrior-dragon -- --demo
# Run the Headless Global BFS Map Completeness & Pathfinding Audit (+ generate 20 slideshow screenshots)
python3 games/quest-warrior-dragon/tests/test_map_completeness.py
python3 games/quest-warrior-dragon/tests/test_map_completeness.py --screenshots
# Run the Chained Cucumber Checkpoint E2E Scenarios (Throne Room -> Key -> Door -> Castle 1F -> World Map)
xvfb-run -a behave games/quest-warrior-dragon/tests/e2e/features/king_to_world_map.feature
# Let the robos-jrpg AI play the ENTIRE game as a user would ("play the game" mode: real inputs + IPC state only)
python3 games/quest-warrior-dragon/tests/e2e/play_full_game.py
python3 games/quest-warrior-dragon/tests/e2e/play_full_game.py --stepped # one video + checkpoint per milestone, tray icon + dashboard
The BFS audit proves every tile is reachable; the AI full-game playthrough proves the game is beatable. PlayGameBrain.gd takes over the controller and seeks the next entry of an ordered milestone registry (data/v1/milestones.json: every weapon and armor purchase, every treasure chest, each quest, the Dragonlord, the ending) from King Lorik's throne room to the credits — no teleports, no stat edits. A Python driver watches over the IPC web service, asserts invariants (never standing on water, HP never negative) and writes a JSON report with a video, a save checkpoint and a screenshot per milestone.