Ludo.ai
Article9 min read

We Gave Claude Code 5 Days to Finish Our Game. Here's What It Cost

The last fight in Grave Night: the Skeleton King. Every sprite, sound, music track and voice line here came from Ludo, and every line of the game's code from Claude Code. Turn the sound on. (Played by the game's demo bot.)

Grave Night began as a mini game with no ending: Patch, a knight with a pumpkin for a head, against skeletons that never stopped coming. It was 629 lines of browser code. So we handed it to Claude Code to turn into a finished game, had Ludo make every picture, animation and sound it needed. It took five days.

Grave Night now has three nights, upgrade cards, a two-phase boss, a title screen and an ending, and it is free to play on itch.io. Claude Code wrote all of the code. Ludo, the tool we build, made every picture, animation, sound, music track and voice line. At public prices, the game's assets and code cost $134.47. Here is what broke along the way, how each thing got fixed, and what it cost.

Prefer to watch? The whole build in seven minutes, on our YouTube channel.

Day 0: the setup and the rules

Three rules held for the whole build:

  • Claude Code writes the code.
  • Ludo makes the assets, through the ludo CLI.
  • Miguel from our team plays it at the start and at the end, and watches clips of the build in between.

A second Claude session ran the production. It turned Miguel's notes into work orders for Claude Code, ran Ludo, measured every build and proposed the picks, and Miguel accepted or vetoed each one.

The five days are the calendar days with a recorded Claude Code session on the game: one for the setup, then four in a row. Every hour of those sessions is on the bill. The setup session gave the game what the rest of the build would lean on: every run recorded so it can be replayed exactly, a web build, and a loading bar.


Day 1: "The timing is off"

Miguel played the mini game first. This was his whole note:

"The sound of the sword slash and the other attack does not match what is happening on the screen. The timing is off.  also, sometimes there is an audio glitch when the attach sound plays, not sure what that is about. consider the playtesting complete with these comments"
— Miguel, from our team, after the first playtest

He was right on both counts. Measured frame by frame, the hit sound fired six to seven frames (100 to 117 ms) before the blade crossed the enemy. The glitch was real too: the game started one of its hit sounds without a fade, and that sound plays on about half of all hits, so about half of all hits clicked.

That note became the goal for the whole build: every attack sound within one frame of its hit, no audio glitch in a full ten-minute run, and only Miguel, playing it, could pass it.

In a 29-minute session, Claude Code moved every impact sound to the frame where the blade connects, gave every sound a clean start and end (keeping the originals), and added a limiter so stacked sounds never clip. Measured afterwards, the hits landed within a fifth of a frame. But numbers are not ears, and Miguel would not play it again until the end.

The same day, the game got a shape to aim for: three nights of three waves each, and an empty slot at the end for a boss.


Day 2: the Skeleton King

First, each night needed a place. Night one's whole level set, a ground texture and nine props, came from Ludo's Image Generator, cut out with Remove Background, in about six minutes of CLI runs.

Then the boss. He started as a concept picture we had made for the pitch. Ludo turned it into six 3D-ready pictures, and we kept one. That picture became a 3D model, the model got a rig, and one batch of Directional Sprites animated it: six moves in eight directions, 48 sprite sheets from one command. Free previews of 17 animation presets decided which six moves he would get.

The Skeleton King's chain in Ludo: a concept picture of a crowned skeleton in a purple cape, a 3D-ready picture of him holding his sword out to the side, the 3D model, then his idle in eight directions as pixel-art sprites and five frames of his slam
One character, one chain: concept picture, 3D-ready picture, 3D model and rig, then Directional Sprites renders every move in eight directions.

His picture, model, rig, sprite sheets, sound effects and music took about 14 minutes of CLI runs. The 3D model took 158 seconds, the rig 40, and all 48 sheets came back from one batch in 129 seconds. The same CLI runs made his sound effects and music: eight effects and two music loops. For scale, Directional Sprites costs 1 credit per direction, so his 48 sheets were 48 credits.

Claude Code turned it all into a fight in one 90-minute session: two phases, a slam that warns you on the ground before it lands, and an army of skeletons he summons. Starting at his fight, our demo bot beat him nine times in twelve.

Miguel watched the clips and sent two notes:

"the circular "wave" after the boss's attack shouldn't superimpose on the characters"

"can we do a song remix for the second level?"
— Miguel, after watching the Day 2 clips

The slam's ring was drawn after everything else, so one work order moved every ring down to the ground, under the characters. For the remix, Ludo made four versions of our theme, and we kept the one that holds the tune. Two more level sets gave each night its own place: the pumpkin patch, the drowned churchyard and the frozen crypt. And Ludo gave the King his voice, three lines in all, including "Rise, my children! Drag him down!"

Four Grave Night screenshots: Patch fighting skeletons in a pumpkin patch, in a drowned churchyard, in a frozen crypt, and facing the Skeleton King in a graveyard
Night one, the pumpkin patch. Night two, the drowned churchyard. Night three, the frozen crypt. Then the Skeleton King. Every ground, prop and character is a Ludo generation.

Day 2, continued: making it fun

Between nights you now pick one of three upgrade cards, and the cards stack. Miguel liked the remix enough to ask for more:

"the remix is great, but we should have a different remix for each level. I love this pass!"
— Miguel

So night three got its own. Ludo also made the logo, the title art, the menu buttons and their sounds, the card art, and the title and victory music. Claude Code built every screen around them: title, how to play, pause, victory, game over, and a credits roll that it counts straight from the asset files.

The Choose an Upgrade screen in Grave Night: three cards with pumpkin crests, Soul Harvest, Long Roll and Pumpkin Heart
The pick at every dusk. The card frame and the icons are Ludo pictures; the rules behind them are Claude Code's.

Then came tuning. Night three was too hard: our bot won only three runs in twelve. With the upgrades in, it wins seven.

Then the sound pass. Every file went through ludo toolbox, the CLI's free offline tools, for a loudness check, and the quieter of the two hit sounds was layered up to match the other (-26.7 to -20.9 LUFS). The final mix never clips: zero samples at full scale.

Not everything went clean. The full test run found two bugs, both in the tests themselves, and a 40-minute session fixed them. That left 206 checks, all passing.


Day 3: shipping it

On a simulated phone connection, the game made you wait 69.9 seconds before you could play anything. Claude Code split the loading by night, the title first and then only what night one needs, and after one session the title showed in 3.6 seconds. On the final build it shows in 2.25. Held upright on a phone-size screen, the game was a thin strip, so now it asks you to turn your phone.

Then the title screen got Miguel's attention. His note: "the main character is looking at the ground". From the game's high camera, you only saw the top of Patch's pumpkin. Ludo's Image Generator made him a new pose, looking up at the moon.

His next note:

"I don't like the fake idle on the menu screen. you can just animate an idle..."
— Miguel

He was right: the idle was a still picture, stretched by one percent. So Ludo's Sprite Generator animated a real one, and our first pick ran eight frames at five a second. Miguel sent it back: "Needs more fps or animation frames. Not great". He asked for more frames, and the idle Ludo made next ran 36 frames at twelve a second.


Day 4: the final playtest

He sent it back once more. Patch's carved face moved, as if he were talking:

"I don't want it talking. give me just 3 new alternatives for me to pick. just the animations, no need for fancy renders"
— Miguel

So we showed him three new idles from Ludo, and Miguel picked the cape rippling in the wind. Movement inside the mouth dropped from 10.2 to 1.7 on our measure.

Patch, the pumpkin knight, on the Grave Night title screen: he stands still with his sword raised while his purple cape ripples in the wind
The title idle Miguel picked: 36 frames at twelve a second, made with Ludo's sprite animation. The face stays still; the cape does the moving.

Then Miguel played the near-final build with sound on, for the first time since day one. He had no note on the hit sounds. He had two others:

"1) the main menu: sound/music takes a long time to start"
"2) I have no way of knowing when I can smash. there's no "reload" indication"

"other than that it's good"
— Miguel, during and after the final playtest

One more session fixed both. The title music now starts the moment you press (on a simulated slow line it could lag up to 0.45 seconds; now it is 0.00), and a boot icon from Ludo fills on the HUD while the smash recharges. On the final build every hit still lands within a fifth of a frame. Miguel accepted his run, then the two fixes, and the goal from day one was met.


The receipt

Here is what the game's assets and code cost at public prices, the mini game's assets included.

WhatUsedAt public prices
Claude Code19 recorded sessions, 22.0 hours$110.59
Ludo477.5 credits for the 148 assets in the game$23.88
The game's assets and code$134.47

The Ludo credits split two ways, each asset traced to the job that made it: 245 for the mini game's assets and 232.5 for the assets made for this game. That is every picture, animation, sound, music track and voice line in the game: 78 pictures, 27 animations, 34 sounds, 6 music tracks and 3 voice lines. Meanwhile the code grew from 629 lines to 2,236.

Why public prices? We build Ludo, so we pay no Ludo bill, and Claude Code ran on a subscription. So we priced the credits at Ludo's Pro plan ($50 for 1,000 credits a month) and Claude Code's token counts at Anthropic's API prices for Claude Opus 5.5 at the time of writing.

The bill leaves out the production session that ran the checks, the code session that built the original mini game (it was not timed), and our own time. It is the game's bill, not ours.

And whatever you make with Ludo, you own.


Make your own

Every picture, animation and sound made for Grave Night's build came from the ludo CLI, run next to the coding session, and the CLI works from inside Claude Code too. Getting there takes three commands: npm install -g @ludoai/cli, ludo login, then ludo skill install, which teaches Claude Code the commands. The steps, from planning an asset list to shipping on itch.io, are in our guide: How to make a game with AI using Claude Code and Ludo.ai.

The CLI comes with the Pro plan, and the 477.5 credits behind Grave Night's assets fit inside one month of it.

Make the art, animation and sound for your own game, in the browser or from the CLI.

Try Ludo free

Play Grave Night

Hold out for three nights, three waves each, pick an upgrade at every dusk, and beat the Skeleton King to see the dawn. Grave Night is free and plays in your browser. It is made for a keyboard: move with WASD or the arrow keys, slash with J or Space, smash with K and roll with L or Shift.

Play Grave Night on itch.io

Your next asset is one prompt away

30 free credits to start. No credit card required.

Keep reading

All posts