Last year I made a prototype of a swipe-card game about being trans. Reigns, but the kingdom is your body and your relationships and your bank account. I liked it. The writing worked. But the balance was broken — some choices were obviously better than others, cards showed up in the wrong order, and the whole thing felt like it was inflating toward a happy ending no matter what you did.
I put it down.
This weekend I picked it back up and rebuilt it with Claude. Not just the code — the methodology. Claude taught me how to think about card game balance as a system problem, and that changed everything.
The simulator came first
Before we touched a single card, we built a Monte Carlo simulator. 10,000 random lives. Two strategies: pure random and greedy (minimize distance from 50 on all stats). It spits out: which cards never fire, which choices are dominated (one side is always better), where the stat curves collapse into sameness, what percentage of lives hit each ending.
This is the tool that made the whole weekend possible. I could write a card, run 10k lives, and see immediately: “oh, this card’s right choice gives +10 self and +5 connection and costs nothing — no one will ever pick left.” Or: “this positive-recognition card is firing for closeted players because I gated it on card count instead of actual transition markers.”
I’m not a programmer. A year ago I wouldn’t have known how to think about balance this way. The simulator isn’t clever code — it’s a way of seeing. Once you have it, you can’t unsee. Every design decision becomes testable.
The real problems were temporal
The hardest bugs weren’t code bugs. They were life-order bugs.
A card about the PE changing room (“更衣室”) was gated on an embodiment stat that rises slowly. Which meant it could unlock at card 14 — after you’d already dealt with intimacy, legal transition, building a career. A PE changing room after you’ve built a whole life. We capped school-age cards so they can’t fire past mid-game. If conditions are met too late, the scene is skipped, not played out of order.
A card about “the night you’re finally not the minority” was triggering for players whose family support was high — but high family support isn’t the same as having found trans community. We had to separate the tag from the stat.
A card about relational absence (“空着的那一栏”) was appearing before you’d actually lost anyone. Gated it on rupture tags or connection dropping below 38.
Each of these is a design problem that looks like a code problem. The simulator finds them. Fixing them means understanding what the card is actually about — what life-stage it belongs to, what it presupposes.
Bad-day cards: the missing downward pressure
The prototype had a positivity bias. Stats drifted up. Every life converged toward a good ending.
I wrote bad-day cards: the family member who intrudes, the good news with no one to share it, the dissociation spiral where you wake up and hours are gone. Both choices on these cards cost something. There’s no “right” answer to a bad day.
The simulator confirmed: self drift dropped from +31.9 to +29.2. Connection p10 went from 64 to 51. Lives finally diverge. Some lives are hard. That’s what I wanted.
Why it’s text, not images
We talked about making visual cards early on. But the prototype’s language quality felt right — it was doing something specific that illustration would flatten. “十六岁的清晨,镜子里的身体开始说话。它说着一种你不懂的语言” — that’s not a scene you can draw without pinning it to one body, one mirror, one room. The text lets it be your mirror.
So we leaned into it: literary paper aesthetic, Noto Serif on cream, hairline rules, no emoji, no color-coding on stats. You’re reading something intimate, not playing something gamified.
Lean before you know
In the first prototype, choices were hidden until you swiped past a threshold — you commit with your body before you read what you’re committing to. We’d lost that in an early rebuild. Restoring it was one of the last things we did, and it made the whole thing click again.
It’s the mechanic that makes this game about transition rather than themed around transition. You don’t read both paths and pick the optimized one. You lean — and only then do you see what you were leaning toward. That’s closer to how it actually works.
De-locked gender
I almost added a start-of-game toggle: are you transmasc or transfem? Then I realized: that would re-impose the binary the game critiques. Instead, misgendering cards say “the word that isn’t yours.” Your experience fills the shape.
What I learned about working with Claude
This was a two-person jam. I brought last year’s prototype, all the card scenarios (from years of clinical work with trans clients), every aesthetic and design call. Claude wrote the code, built the simulator, and — crucially — taught me a methodology for thinking about balance.
The workflow wasn’t “I describe, it builds.” It was iterative diagnosis. I’d play a life, something would feel wrong. We’d run the simulator, find the structural cause, fix it, run again. “The swipe doesn’t feel like a physical object” → restore hinged tilt + shadow that lifts on grab. “This card shouldn’t fire here” → figure out what it presupposes, gate on that.
21 commits in two days. Each one solving a specific problem we could name.
What’s next
Hormones gatekeeping arc — the waiting, the letters, the blood tests. An entrepreneurship chain that’s half-written (making your voice into a livelihood without selling out). Maybe a “lives lived” gallery: showing you other paths after yours ends. Sound? I keep going back and forth. Silence might be the right call for something you read.
Play it
The game is free. 47 cards, bilingual (中文/EN, toggle anytime), ~20 choices per life. No winning. Just the name your life earns by the end.
Built with Claude (Anthropic) as code collaborator and balance methodology teacher. All scenarios, design direction, and creative decisions by Jo / 何苦开心.