No description
Find a file
ventoz91 ed5fb09fd1 Update CLAUDE.md, TODO futureproofing and future ideas
- Rewrote CLAUDE.md to reflect Textual migration and current engine state
- Added Next Session futureproofing tasks to TODO
- Added event triggers in vault frontmatter to Future Ideas

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 19:35:15 -06:00
engine Migrate renderer to Textual; update docs and README 2026-05-31 19:23:22 -06:00
vault Initial commit — map rendering, movement, wall collision 2026-05-30 04:53:36 -06:00
.gitignore Initial commit — map rendering, movement, wall collision 2026-05-30 04:53:36 -06:00
CLAUDE.md Update CLAUDE.md, TODO futureproofing and future ideas 2026-05-31 19:35:15 -06:00
ideas.md Initial commit — map rendering, movement, wall collision 2026-05-30 04:53:36 -06:00
main.py Initial commit — map rendering, movement, wall collision 2026-05-30 04:53:36 -06:00
README.md Migrate renderer to Textual; update docs and README 2026-05-31 19:23:22 -06:00
TODO.md Update CLAUDE.md, TODO futureproofing and future ideas 2026-05-31 19:35:15 -06:00

MDRPG

A terminal roguelike where the entire game world lives in Markdown files.

Maps, NPCs, items, quests, and save data are all human-readable .md files with YAML frontmatter. The Python engine reads them, runs the game, and writes changes back.

##########
#........#
#..@..G..#
#........#
##########

Philosophy

If it can be represented as a Markdown document, it probably should be.

Game content is designed to be readable, editable, and shareable without touching code. The long-term goal is a community-driven world where contributors can submit new NPCs, maps, and quests through pull requests.

Running the Game

python -m venv .venv
source .venv/bin/activate
pip install textual python-frontmatter
python main.py

Controls: WASD to move, Q or Ctrl+C to quit.

Project Structure

main.py              # Entry point
engine/
  actors.py          # Actor dataclass
  map_loader.py      # Parses vault .md files into Python objects
  game.py            # Textual app, game loop, input handling, and rendering
vault/
  player.md          # Player stats and position
  maps/              # Map files (ASCII grid in body, metadata in frontmatter)
  npcs/              # NPC files

Adding Content

NPCs, maps, and items are plain Markdown files. See existing files in vault/ for the frontmatter schema. No code changes required to add new content.

Status

Early development. Milestone 1 complete — you can explore the dungeon and kill the Suspicious Goose.

Credits

Built with the following open source projects:

  • Textual — TUI framework for Python, powers the terminal UI and web serving
  • Rich — terminal formatting library (Textual dependency)
  • python-frontmatter — parses YAML frontmatter from Markdown vault files
  • PyYAML — YAML parsing