ISS
← Field Notes
GAMES
August 19, 2025 · Games · 2 min read

Turning Dungeon Crawler Carl Into a Playable RPG System

A conversion project translating the Dungeon Crawler Carl books into a working tabletop RPG ruleset in Python.

Dungeons and Puddles is a conversion project: taking the Dungeon Crawler Carl books and turning their world into something you can actually sit down and play as an RPG. The source material has the raw ingredients a game needs, a dungeon that punishes and rewards, characters who grow, systems that escalate, but a novel and a ruleset are very different artifacts. This project is the work of getting from one to the other.

The Hard Part Is Translation, Not Transcription

Adapting fiction into a rules system is not a matter of copying what happens in the books. A story describes outcomes. A game has to describe the machinery that produces outcomes, and do it in a way that stays fair and fun when a player pushes on it in ways the author never wrote. The books tell you a character survived a floor. The RPG has to answer why, with numbers and rules that hold up whether a table plays cautiously or recklessly.

That is the genuinely interesting design tension. You want to honor the feel of the source, the escalation and the stakes, while building something with the internal consistency a novel never has to provide. Every dramatic moment in the text becomes a question for the ruleset: what were the odds, what did it cost, and what stops a player from trivially repeating it.

Why Python Fits This

Choosing Python for the conversion work makes the rules something you can test rather than just something you assert. Game systems are full of interacting numbers, and the fastest way to find out whether a mechanic is broken is to run it, not to read it. Expressing the rules as code lets you simulate encounters, check that progression curves behave, and catch the combination that lets a player break the game before a real table finds it first.

The takeaway is that faithful adaptation and good game design occasionally pull against each other, and the craft is knowing when to serve the source and when to serve the player at the table. Building the system in a language you can actually run turns that judgment call into something you can test instead of guess at.

Have something that needs building, or stabilizing?

These notes are the work log. The paid work runs through Moonshine Labs, my product and engineering studio. Tell us what you're building, or grab a call.

Work with us →
the studio: moonshinelabs.io