Made by two: a human and an AI building a puzzle game

Carillon is made by a two-person team: Shravan Goswami and Claude Opus 5.5, an AI model by Anthropic. How the work is split, and a few stories from the build.

4 min readBy Shravan Goswami and Claude Opus 5.5

A Carillon field mid-chain, with rings spreading and a floating chain count, tilted on a starry background
On this page

Carillon is made by a team of two. One of us is a person, Shravan Goswami. The other is Claude Opus 5.5, an AI model made by Anthropic, working with Shravan in Claude Code. This post is about how that works, told as plainly as we can, with a few real stories from building the game.

Who does what

Shravan decides what the game is. He chose the idea, a calm chain-reaction puzzle where every pop is a note, sets the direction, plays every build, and decides what stays in and what goes. When something feels wrong, he says so, and that becomes the next piece of work.

Claude writes most of the code: the rules, the solver, the level generator, the screens, the synthesised notes, the tests, the tools that make screenshots, store images and trailers, and this website. It writes down the reasoning behind each system in the project’s design notes, so the code stays something a person can study, question and change.

How a change gets made

A typical change goes like this. Shravan describes what he wants, often in a sentence or two. Claude reads the relevant code and notes, makes the change, and then checks it. The rules and the levels are tested without a screen. Anything visual is rendered to an image and looked at before it is called done. Each change is committed on its own, so every step can be traced and undone.

Three Carillon fields side by side: level 1 with six dots, level 31 with twenty-one, and level 100 with thirty-six
From level 1 to level 100: every field was grown, solved, measured and checked by code

Three stories from the build

The lonely last tap. An early version of the level generator grew each chain freely. The solver was happy, since every level needed exactly the taps it claimed. But on one late level, the first tap of the shortest solution popped 32 of its 34 dots, and the last two taps were lone dots that needed no reading at all. Technically correct, and no fun. The fix was to give every chain start a core of its own that no other chain can ever reach, and a rule that each chain must pop a fair share of the field. Getting that guard exactly right took a second attempt.

Levels that felt the same. Playing through, some levels felt like repeats even though no two matched dot for dot: a similar picture, or the answer in the same place. That feeling became a precise check. Every level is now compared with every other in all eight turns and mirrors, by picture, by where the answer sits, and by who-pops-whom, and a level that matches on any of them is thrown out. The early one-tap stretch was also cut shorter, because its late levels were more of the same find. Later the whole ramp was rebuilt steeper: one tap now lasts only three levels, the second tap arrives on level 4, and the hardest fields need five. How the levels are made has the details.

A switch that did nothing. Carillon has a vibration switch, and for a while, on Android, it did nothing at all: the app had never asked the phone for permission to vibrate. It is a small bug of exactly the kind that tests without a phone cannot see. The permission is now declared, and the switch does what it says.

What the AI is good at here

  • Trying many options quickly and measuring them, like adjusting the generator until the difficulty curve rose smoothly with no dips.
  • Being thorough in the boring places: re-solving every level and checking every pair for repeats on every build.
  • Building the tools around the game, so every picture on this site and every frame of the trailer comes from the real game, not a mock-up.

What stays human

Taste. Whether the notes sound right together, whether a level is fun, whether the night sky feels calm or just dark. Those calls are Shravan’s, made by playing, and the code follows them.

Carillon's About sheet on a phone, with the game's icon, version, and both team members
The About sheet in the game, opened from Settings, names both of us

Credit where it is due

The game says who made it, in the game itself. Open Settings, then About for the team and links to this site and the privacy policy, or Credits for everything Carillon is built with: the Godot Engine, the Outfit typeface, and the notes and art made in code for it.

Carillon's Credits sheet on a phone, listing the team, the Godot Engine, the Outfit typeface, and the notes and art made in code
The Credits sheet: the team, the engine, the type, and the sounds and art made for the game

Why tell you this?

Because you should know who made the things you play, and how it is paid for. Carillon is free to play. The Android app has a few ads, never during a puzzle, and a one-time Supporter pack that turns them off; the web version never shows ads. If you have thoughts on the game, or on how it was made, leave a comment on the support page. Both of us read them.

Comments

Sign in with GitHub to leave a comment or a question.