Living Lore Machine
Living Lore Machine is a turn-based dungeon crawler that tells your story back to you. Every run starts with an AI narrator picking a corner of Ayárin, a continent of star-glassed deserts, dwarven holds, and a forest where time runs wrong, and inventing a reason you are headed underground. Then it is you against a freshly generated dungeon: step, strike, and set bombs one turn at a time while enemies telegraph their attacks, pick up fire, ice, and electric weapons to hit them where they are weak, and grab every coin and gem you can on the way to the exit. Die or escape, the game remembers what you killed, what you found, and what finally got you, and a bard turns it into a short legend you can save beside your score on the leaderboard.
Attention: Not hosted, and the repository is private. The graphics are still simple placeholder shapes; the image above is a real in-game screenshot.
Built
2025
Who built it
Team of four with Ben Smith, Braeden Farley, and Bin Jin, and the largest share of the final code is mine. I built the dungeon generator, the turn system, combat, items, and inventory, bombs, and the enemy roster. Ben built the grid engine and pathfinding, Braeden the legend generation and admin tools, and Bin the lore storage.
Repository
BenSmith1202/AIGameWebProject (private)
Built with
- TypeScript
- Excalibur.js 0.31
- Vite 7
- Bootstrap 5 and Bootstrap Icons
- Python
- Flask
- Flask-SQLAlchemy (SQLAlchemy 2)
- Flask-Login
- Flask-WTF and WTForms
- Flask-Migrate (Alembic)
- flask-vite
- SQLite
- Argon2 hashing with a Fernet pepper (passlib, cryptography)
- OpenAI API (GPT-3.5 Turbo)
- Jinja2 templates
Not hosted - possible later
Not hosted. It runs locally as a Flask server plus the Vite dev server.
It needs a Python host such as Render or Fly.io with a database and an OpenAI key, and every run makes two paid GPT calls. It is not deploy-ready as it stands: the config is hard-coded to development mode, the play page loads the game from the Vite dev server, and Flask-Migrate is missing from requirements.txt. It is a team repo, so agree the release with the team first.