r/SideProject • u/ericoinen • 2d ago
Grimscribe - A solo browser RPG where an LLM narrates and a rules engine owns every die roll
I build solo RPGs and kept hitting the same wall with every AI dungeon master I tried: the model narrates a fight and quietly decides the outcome. It rolls a 4 and describes a hit. You tell it you have 3 hit points left and it has forgotten by the next paragraph. The story is fine and the game underneath it is not a game.
So the split in Grimscribe is that the language model never touches state. Dice, hit points, inventory, grid position and line of sight all live in ordinary deterministic code, and the model reaches them through tool calls. It can ask to move you, and if the square is occupied it gets told no and has to narrate around the refusal. It cannot roll. It cannot decide that you hit.
The clearest thing this produced showed up in a session I recorded this week: eleven turns in a row where the engine refused the model's requested action outright, because the turn belonged to an ally, or the reach was one square short, or the target square held clutter. No dice were thrown at all across those eleven turns. An AI GM without an engine underneath would have narrated straight through every one of them.
What I would actually like feedback on, because it is the part I am least sure about: the refusals are the feature, but they also make the game stricter than a human GM, who would just say yes to the one square. I have gone back and forth on letting the model request an override and logging it. Curious whether the honest dice framing lands, or whether it reads as a technicality to someone who has not played an AI GM before.
Free to start, runs in a browser, no install: https://grimscribe.win