Hand-drawn diagram: twenty-six words becoming a full browser RPG in three minutes AI Agents & Automation

One Sentence, One File, a Working RPG About Jesus Flipping Tables

Brett Ridenour Brett Ridenour · Published June 2026

It was 9:32 PM on a Tuesday and I was bored. I opened a fresh Claude Code session, sat there for about half a second, and typed this:

make me an rpg game to play in the browser about the life of jesus, him flipping tables. i want it to be fully functioning. get to work open it when youre done so i can play.

No spec. No mockup. No “make sure it has these features.” One run-on sentence with a typo. I hit enter and went to grab a glass of water.

When I came back, a browser tab was already open.

What actually showed up

It was a top-down RPG called Tables of Wrath — The Cleansing of the Temple. One HTML file. 716 lines. No dependencies. No internet required.

You play the Teacher. You walk around a tiled marble temple courtyard with WASD. You talk to Peter and the Widow and the Dove Seller. You hunt down money-changer tables and press space to flip them. When you flip one, coins scatter as physics particles, two doves fly out of the cage, and a shockwave stuns every merchant within 120 pixels. Cleanse all the tables and a glowing “GO IN PEACE” gate opens at the south wall. Run through it to win. Let the merchants drain your Resolve bar to zero and you lose.

It has a HUD. It has a dialogue system. It has hand-drawn canvas sprites for Jesus’s halo and robe. It has WebAudio sound effects you unlock by clicking once in the window. It has a restart key. It has win and lose screens.

I did not ask for any of that.

The flipTable function — coins, doves, and a stun shockwave

That function ran on the third table I tried to flip. The doves flew up. The merchants froze for 70 frames. I laughed out loud.

The map is text

The whole temple layout is fifteen lines of ASCII at the top of the file:

The temple, encoded as ASCII

# is wall. . is floor. T is a table. P is your spawn. E is the exit gate at the bottom. The reset function walks this grid, multiplies the column and row by a tile size of 40 pixels, and instantiates everything at the right spot on a 840×600 canvas.

There is something deeply satisfying about a level being a string. You could edit the map in a text editor. You could add a hundred tables. You could carve out an alcove. The model picked a representation that’s both readable to a human and trivial to parse, and it picked it without being asked.

The timeline

  1. 9:32 PM
    Prompt sent
    Twenty-six words. One typo.
  2. 9:32 PM
    Directory made
    mkdir -p ~/jesus-rpg
  3. 9:33 PM
    Game written
    716 lines of HTML, CSS, and inline JavaScript into index.html
  4. 9:33 PM
    Browser blocked
    Tried opening with the in-browser MCP. It refused to navigate to a file:// URL.
  5. 9:34 PM
    Syntax pre-flight
    Extracted the inline script, fed it to Node, confirmed it parses clean.
  6. 9:34 PM
    xdg-open
    Fell back to the OS default browser. The tab opened. The game ran.

The browser-MCP detour is the part I keep replaying in my head. The model tried the fancy tool first. The fancy tool said no. It didn’t sulk. It didn’t ask me to manually open the file. It ran the script through Node to make sure it wasn’t shipping me broken code, then shelled out to xdg-open and let Linux pick the browser.

That’s three different escape hatches in a row, executed in about forty seconds, with no nudging from me. The model was managing its own tool failures.

The part that’s actually new

I’ve shipped things from one-sentence prompts before. A landing page. A SQL query. A bash one-liner.

A whole game is different. A game has to feel like something. The collision detection has to be forgiving enough that you don’t rage quit. The enemies have to chase you with enough threat that the stakes feel real but not so much that you can’t reach the next table. The win condition has to land at the right moment. The doves have to flap.

None of that is in my prompt. The prompt says “fully functioning.” The model decided what functioning meant. It decided that a temple RPG needed NPCs you could talk to. It decided that flipping a table should free doves, not just topple a sprite. It decided that the gate should be locked until you’d cleansed the whole courtyard, because otherwise the player would walk out at minute one.

The prompt is starting to do less work, because the model is filling in the unsaid part with taste.

— The thing I keep noticing

A year ago a prompt this thin would have produced a static webpage with the words “Jesus flips tables” in Comic Sans. Today it produces a game with stun mechanics. The delta isn’t reasoning. The delta is that the model now has opinions about what a thing should be.

Where this gets useful

I don’t actually need a Jesus RPG. The reason I keep poking at prompts like this is that I’m trying to find the new ceiling on “one-shot from a vague description.” That ceiling is the price of every internal tool, prototype, and weird side experiment I might want to run in the next year. If the ceiling is a static page, I plan one way. If the ceiling is a complete interactive system that handles its own tool failures, I plan a very different way.

The ceiling moved this week. I don’t know how high it is yet. Twenty-six words for a working game is a data point, not a limit.

The game is sitting at ~/jesus-rpg/index.html on my machine. I haven’t touched a line of it. I’m probably going to ask for the whip-of-cords attack move next.