I grew up on 1990s point-and-click adventures and never got over them, so last month I started making my own, with AI agents doing the work. The first article covered four days: a game bible, a prototype made of grey boxes, and a 300-pixel hero whose arms kept switching sides. This one covers the next nineteen. On 14 October I wrote decision 86 into the project log: Act I is finished. It is the first act of the first game I have ever made, and about 38 people have played it, most of them strangers.
The game is Tihotapska pot (The Smuggler's Road). The hero is Martin, a salt smuggler from the Bloke plateau in 1844 with a mare, a lot of strength and plenty to say about both. Act I is one village: his leaking pot, a neighbour's pot he has to return, an inn with two carters who do not want to pay, a vagrant eating the innkeeper's bacon in her cellar, a torn pack strap, a smith with an anvil to move, a bundle of hay, and a mare to lead out of the stable before the road to Trieste. About 20 minutes of play.
| Act I on 14 October | |
|---|---|
| Engine | Godot 4.7.2, GDScript, single-threaded web build |
| Code | 5,299 lines of GDScript, 1,820 lines of Python tools, 155 GUT tests (Godot's test framework) |
| Content | 5 rooms, 124 dialogues, 8 items, 772 lines per language |
| Voices | 573 Slovenian and 573 English recordings |
| Game pack | 63 MB for a Slovenian player, plus a 27.5 MB English voice pack; the engine adds 8 MB |
| Play time | 17 to 21 minutes for the testers who finished in the second week |
| Testers | 67 logged sessions in 38 tester folders |
| History | 252 commits, 86 dated owner decisions, 23 days |
Who did what
| Role | Model or tool |
|---|---|
| Code, content, plan, orchestration | Claude Code, Opus 5.5 |
| Every player-facing line, Slovenian and English | Claude Fable 5.1 as a subagent |
| Paintings, sprites, animation frames, independent reviews | Codex, GPT-6 Astra, from 14 October GPT-6.1-Sol |
| Voices | Gemini 3.8 Flash TTS in batch mode, transcript check with Gemini 3 Flash |
| Music | Lyria, 60-second loops per place |
| Second image model, third opinion | Grok 4.7, from 13 October |
| Browser play-throughs | Playwright, Chromium and Firefox, phone viewports |
| Design, taste, scope, playtesting | me, 551 messages |
My side of it is measurable: 551 messages in the main session, 8.6 million output tokens on the Claude side, 87 Codex sessions, and a decisions file where every entry has a date and my own words in quotes. The agents propose; the decisions file is mine. I play, I complain, they log the complaint as a numbered decision and implement it.
The model that writes the code never writes the lines: Fable gets the script as a separate job and reviews it with fresh eyes, which is how the "dry" diagnosis below came out sharper than mine. Codex is a different vendor, so its reviews of Claude's work are not Claude grading itself. Its image tool repaints a patch of a painting and the patch is composited back with every pixel outside it unchanged, which is what talk frames, idle frames and door fixes need. Gemini TTS has a Slovenian voice and is cheaper than the alternative; ElevenLabs gets a blind trial when the game is done. Grok came last as a third opinion and a second image model, and so far it has lost the one contest it entered.
How anything gets judged
Code. A step is done when the build gate is green: engine import, a content validator with its own regression tests, a voice check, 155 GUT tests including whole-act play-throughs, the web export and the English voice pack. About 12 minutes, run before every commit. The validator refuses content that would trap a player: a choice list without a way out, an action a hotspot can never show. On top of the gate, a Claude agent plays the act blind through a browser bridge (its first run took about 115 actions and found a hidden way out), and Codex plays both routes end to end in Playwright and writes a ranked list of what it saw.
Images. Nothing is judged on a downscaled screenshot, after the first article's arms-on-the-wrong-side episode. Every art change is checked on full-resolution crops around the figure, then a separate Codex run that did not paint anything reviews the result in the running game, with saved crops as evidence, before anyone shows me. When taste is involved I get a side-by-side page and choose: the higher-camera inn, the mare's walk (version 3 won, version 2 "looked worse"), Martin's size in the foreground ("leave it as it is"). Even inside a painting task Codex grades its own output: it flagged its four-beat mare gait as unacceptable after three tries, and version 3 replaced it.
Text. Fable writes, Codex reviews, Fable revises; then I read every spoken line of the act on one page, Slovenian and English side by side with the voices, and leave notes. No line gets a voice until I have played it and said it is right, because voices cost money and retakes cost more.
Audio. Every take is transcribed and compared with its line, up to three takes, and a 10-second script checks every file's encoding, speech rate, level, pauses and clipping. Beyond that, my ear is the judge; the five episodes below show why.
Playing my own game was the useful part
On 26 September, my fourth play-through, I wrote one line in the log: "dry, too little soul." Fable's independent diagnosis of the script was more precise than mine. Of 28 lines the villagers spoke in my play-through, 22 were an order or the next step to do: bring, tidy, go, now the strap. Every character talked like Martin, two sentences and an aphorism of the shape "X, not Y" at the end of each one. Nobody had a history with him. And the load-planning quiz made a man with twenty years on the road propose carrying the neighbour's pot to Trieste, because that was one of the menu options.
Fable changed 67 lines that day. Three days later I asked for Martin himself to come from the 1858 story the game is based on, not from a character sheet. Fable read the full text and built a profile with a verbatim quotation for every trait: talkative, not terse; short only when a matter is settled; cheerful hyperbole before an effort; appetite as the unit of measure. 32 more lines went.
The play-throughs found things the tests did not. I left a conversation with the smith halfway and then could not answer the innkeeper's "how will you pay": an invisible gate, removed. I clicked a woman who was walking across the yard and she walked all the way back to her spot before she would talk: "why must they go back to their place?" Now people stop where they are. On 2 October I played the whole act and threw out the opening puzzle. Martin no longer packs a household load; he takes a purse, the innkeeper's food and the neighbour's hay, under which the salt will ride home, and he leaves three debts behind him. That rework also gave the smith his own smithy and the yard another 1,100 pixels to the left.
Monkey Island as a textbook
I am a Monkey Island fan, so a separate Claude session spent 1 to 9 October watching a four-hour no-commentary walkthrough of the Special Edition and taking notes, then compared the notes with our repository. Nothing of the original's art, lines or music went into the game. The numbers did.
In the eight Monkey Island conversations it measured, seven menus had four options and every menu had a way out, follow-up chains went two to four deep, and every line of the hero was chosen by the player. In ours, 11 of 94 dialogues had a choice at all, the deepest went two levels, and the player heard 3.7 spoken lines per decision against one or two. The whole video had 234 cuts in 82 distinct shots, with camera height and the hero's size changing by room. Our five rooms were all a frontal stage at eye level with Martin at 300 pixels in every one.
So the talks got the Monkey Island shape: the player picks Martin's lines, used choices dim, a person can end the conversation, and every longer talk has one set of answers that are all jokes. The inn was repainted with a higher camera, more tables and guests cut by the frame, like a tavern in a classic adventure.
Two more things came from that review. Decision 11 had said "no hint system". Decision 62 amended it: a click on Martin gives his own line about what still waits for him, alternating with jokes. And "angleška sol", English salt, the smugglers' code word for whatever is in the sacks, turned out to appear in Act I only in the subtitle. Now the carters ask what it is. "Salt." "What kind?" "English." It is never explained, and it never will be.
The voices, a serial in five episodes
Episode one. The first article shipped with Piper, one Slovenian voice for everybody. On 25 September a blind test of ten lines put Gemini TTS against it and Gemini won every line. All lines were regenerated with one voice and style per character and an automatic check: Gemini transcribes each take, the transcript is compared with the line, up to three takes.
Episode two. The English version arrived on 26 September, and the English voice pronounced "Cerknica" three different ways in three takes. Respelling the names (Nezha, Mateeya), a pronunciation guide, and a light Slovenian accent all failed a blind test. So the English version got English names: Agnes, Matthias, Gertie.
Episode three. On 9 October I cut the download. The eleven big paintings went to lossy WebP (103 to 81 MB) and all voices were re-encoded from Vorbis quality 4 to quality 1 (81 to 63 MB). I listened to a comparison page and heard no difference. Three days later I played the game and the sound was poor. The measurement, on one line whose text had not changed: with the q4 file as the reference, the re-encoded q1 file's error was only 12 dB below the signal, about a quarter of its amplitude, most of it above 8 kHz. Two lossy passes did that. 916 voices came back from git, 115 made since were voiced again, and a check in the build gate now refuses any voice below q4.
Episode four. A take that said "Matija, Matija" where the line had one Matija still scored 0.95 on the transcript check. A doubled-word rule, a recheck of every voice, 43 Slovenian and 3 English takes remade, one English hint had said a phrase three times. Wrong stress is fixed with spellings for the voice only: kokóši, barantájo.
Episode five. I asked whether Gemini could listen for quality instead of me. Blind, it found 1 or 2 of 10 q1 takes it was shown. Four takes voiced with a deliberate English accent, which I heard as odd and slow, it rated 5 out of 5 and called native Slovenian. As a listener, Gemini checked words, not sound. A 9 October estimate for one pass of Act I in both languages: about $0.66 on Gemini, about $5 on ElevenLabs.
The mare, by the way, is a conversation partner since decision 59. Martin picks what to say; she answers in horse. A snort, a blow or a whinny, written out as a subtitle.
Strangers
On 7 October I removed the password from the test page and posted the link in a Slovenian developer Discord. The game logs every click, line and refusal with a timestamp and sends it to my server, after a notice and an optional nickname; the switch to turn it off is in the settings. A script turns each log into a summary: device, language, how far the player got, what was refused, where it stopped. First night: 13 sessions from 9 testers, one finished (12 minutes 31 seconds, on his second try, in Slovenian). Everyone else stopped in the house, the yard or the inn.
The logs said what the comments did not. Every browser that reported a language reported English, so every session started in English, and the two who switched to Slovenian found the dropdown late. The first comment from a Slovenian developer was "why is Slovenian not the default?" The language had flipped before: Slovenian only on day one, English first on 28 September because I wanted a wider audience. On 8 October it flipped back for good, decision 77: Slovenian first, English kept for Act I, later acts translated in one go when the whole game is done.
The second wave, 9 to 12 October, brought 20 sessions from about 18 players. Nine were on phones held sideways, most in a browser window about 300 pixels tall, where the game's 30-pixel text is about 9 pixels. None of them got further than the yard and the smithy. Six of the fourteen who left the house left without the neighbour's pot. Testers clicked doors two or three times while Martin was still walking. Two finished, in about 17 and 21 minutes.
Each of those became a task: bigger text on small screens, Martin stops once at his door and mentions the pot, a double click on an exit goes through at once, and a door ignores clicks for half a second after a room change. The staged hints came from a second, deeper Monkey Island analysis, which had counted 242 hint records in the Special Edition: a mild hint first, the clear one on the next click, the current room's hint before any other, and a test that walks two orders of the solution to prove every state has one.
What did not work
AI video. I wanted the hearths to flicker and the cutscenes to move. Four routes were tried side by side on 6 and 7 October: code-only shaders, Codex-painted flame frames, a depth-map camera move, and video generation from our paintings through Veo and Kling. The depth-map move tore the rigging and sails of the Trieste boat into stippled streaks. The video models moved things, but Martin drifted and the style drifted with him. Decision 74: free methods only. Flames are three or four frames painted by Codex and cross-faded, with a breathing glow, embers, kettle steam and snow through the doors.
Walk cycles, with two image models. Codex failed at a frame-consistent side walk in September. On 13 October Grok got three attempts at the same task: the look stayed consistent, the legs never alternated. Codex reviewed Grok's frames and said keep the current ones. The mare got her walk another way: Codex painted the legs after Muybridge's photographs of a draft horse, eight frames driven by the ground covered, and that one I approved from a side-by-side.
Tests that waited for the real thing. The test step of the build gate had grown to 825 seconds, almost 14 minutes, because the whole-act tests waited for every voice to play and every fade to end. Codex's pre-Act II review found it. Voices silenced in tests and the departure sped up: 551 seconds. The same review moved the English voices into a separate pack fetched only when English is chosen, so a Slovenian player's download went from 90 to 63 MB.
Where it stands
Act I is closed and playable in the browser at smugglersroad.com/test, Slovenian or English, about 20 minutes; it logs what you do and sends it to me, and says so on the first screen. The next milestone is Act II in Trieste, written and voiced in Slovenian only until the whole game is done, then translated in one go. Of the 86 decisions in the log, more than 20 amend or supersede an earlier one.
Wrapping up
"No difference" in a listening test was a re-encoding error a quarter the size of the signal. "English first" lasted ten days against nine Slovenian testers. "No hint system" lasted nine days, until a Monkey Island review and then six of fourteen players leaving without the pot. The agents wrote 5,000 lines of code and 1,146 voice files, and they complained too: Fable diagnosed the dry script better than I had, Codex rejected its own walk cycle. What stayed mine was the ranking. Which complaint counts, which number is good enough, which of two inns goes into the game: 86 times in 23 days, and more than 20 of those overturned something I had decided before.









Top comments (0)