
Codex, the OpenAI coding agent used with a ChatGPT subscription, ran GPT-6 Astra to build an RPG you play with a mouse or a gamepad. Its scenery, sprites, portraits, sounds and twelve music tracks were generated. The project took ten turns, 3 h 05 min of agent working time and the equivalent of $65 at API rates. Four of my ten messages reported a flaw, from the logic of the houses to the collisions.
Codex, the OpenAI coding agent I use with my ChatGPT subscription, writes the files, runs the commands and generates the images without any copying and pasting. On 13 September 2026, with GPT-6 Astra, I asked it for an RPG in the style of EarthBound, the game by Ape and HAL Laboratory released on the Super Nintendo in 1994, in a single 147-word prompt.
For the Dune 2000 clone, I had worked in small requests over three days. This time, the prompt set a method for the scenery from the start, and the prototype came out in one evening.
Clairbois is playable below, with a mouse, a keyboard or a gamepad. The game waits for your click before loading its 56.7 MB.
Clairbois : le RPG façon EarthBound de Codex et GPT-6 Astra
La version 04.3 de Clairbois, telle que Codex l'a laissée le 13 septembre 2026. Souris, clavier ou manette, le premier geste active le son. Dans cette version intégrée, la sauvegarde ne dure que le temps de la page.
Protocol
Construit avec l'application Codex et le modèle gpt-6-astra en effort xhigh, le 13 septembre 2026 : 10 tours, 3 h 05 min de travail de l'agent. Fichiers du prototype servis tels quels, sans les pages d'audit ni les sources des images.

The project runs in an isolated sandbox (iframe sandbox and CSP): no access to the site, cookies or your session. Nothing loads before you click.
A map generated in one piece, then sliced up
I quote the prompt as written, translated from French, with only the typos fixed.
Generate an EarthBound-style game in HTML, CSS and JavaScript. I want you to keep the same art direction as the original game, with the same UI, for mouse/gamepad gameplay. I also want you to generate the characters, their sprites and movements, as well as the scenery and the SFX. For the scenery and the map, I want you to generate the whole map in one go, analyse it, and generate other images through a layer system to overlay them, the idea being that if a character walks behind a tree or a fence, they can visually be behind it, but the entire map will be generated in one go and will use this layer system. So you’ll detect the collisions and do manual mapping against the generated result, so that the character doesn’t walk through the scenery. Make a quick prototype of the game.
Games of the 16-bit era built their maps from tiles. Here, the scenery is a single illustration, and the engine has to know what goes in front of the hero and where he gets blocked. Astra chose Phaser 3.90, relied on OpenAI’s Game Studio plugin, on imagegen for the images and on sound-effects for the sounds, then announced a small neighbourhood adventure, with click-to-move exploration, dialogue and turn-based combat.
The characters, scenery and sounds were created for the prototype, named Clairbois. The hero, Nino, meets Lila, Marcel, Iris and Rémi, and fights a mushroom called Myco.
Twenty-six minutes for a first prototype
Astra generated the neighbourhood map, located the four trees, the fences, the buildings and the pond, then drew the collisions from their actual positions. Trees block at trunk level, and the foliage passes in front of or behind the hero depending on where he stands. The foreground layer came back with a checkerboard drawn in place of transparency, a flaw Astra spotted and fixed on its own.
For the sounds, the ElevenLabs key was missing at first, and Astra was preparing synthesised effects. I pasted the key into the conversation two and a half minutes later, and seven ElevenLabs effects replaced the synthesis. The turn ended after 26 min 6 s with 24 character poses, a complete run through to the battle and 35 passing checks, including a gamepad simulated through the Gamepad API. The delivered archive contains no key.
Houses with no logic, then an architect’s plan
My second request added the interiors of the three houses with several rooms, beds where the hero slips under the covers as in Alundra or Zelda, more quests and new areas. I interrupted it after four and a half minutes. My next message set a rule. Each room would have its own image, and the floor plans would follow a structural logic, with a staircase taken on the left arriving upstairs on the left, and a door in the same place on both sides of a wall.
Astra first wrote the floor plan of the three houses, two rooms on the ground floor and two upstairs, then generated the twelve rooms separately. The image generator moved some of the openings. Astra realigned each image to the coordinates of the shared plan, a logical surface of 512 × 512 per room, and applied the same transformation to the collisions and layers. Each of the 28 passages between rooms has its return link, tested in both directions.
I then asked for an audit of the houses. Astra found floor plans that were almost identical from one house to the next, rooms that were too empty, and upstairs staircases that looked as if they climbed further. It redesigned a family home, a grocery shop with a storeroom and a flat upstairs, and a clockmaker’s house built around a workshop, with a spiral staircase. The generator again added doors that weren’t in the plan, corrected before the collisions were set, and 158 layers were exported. The audit, spread over two turns, cost $14.95 at API rates.
A scale problem was still visible to the naked eye. The hero kept his outdoor size next to much larger furniture. He now stands about 62 pixels tall inside the houses, twice his outdoor size, like the residents.
Layers and collisions, the two bugs I caught
On turn 9, a screenshot showed the hero with his legs cut off while standing on open ground in the woods. Astra reproduced the cut down to the pixel. The tree layer used a rough outline that took in a triangle of grass. At the reported position, the old layer hid 89 pixels of the character, and the new one hides none. The eight trees in the woods and the orchard got detailed masks, stored as pixel strips in js/occlusion-data.js.
On turn 10, I could stand on some of the scenery objects. The sign shown in my screenshot had no declared collision, and Astra found other omissions among the rocks, bushes, roots and forest edges. It also fixed the pathfinding, which could offer a click path cutting across the corner of an obstacle. A save made on a spot that has since become solid now puts the hero back on the nearest open ground.
The project’s geometry checks run with npm test, with no dependencies to install. Here is their output, rerun on 14 September:
{
"maps": 15,
"rooms": 12,
"portalDirections": 28,
"reachableInteractions": 55,
"boundaryMovementSamples": 22023,
"passed": true,
"failures": [],
"checks": 1515
}The 1,515 checks pass in 2.9 seconds, with 17 ground and foliage probes and 54 scenery checks. The README written by Astra states that these geometric samples don’t prove every pixel of the scenery is right.
Twelve music tracks and seven portraits
On turn 7, I asked for music that changes with the situation and the environment. Astra wrote twelve prompts and generated twelve tracks with the ElevenLabs music API and the music_v2 model, for the village, the three houses, the woods, the orchard, two battles, resting in bed, the dream, victory and defeat. The ten ambient themes loop with a 350 ms fade, changes of location go through an 850 ms fade, and the music dips during dialogue.
Forty audio checks passed in Chrome. They verify the signal, the loops and the transitions, and the README notes that judging the music itself still requires listening.
The portraits came on turn 8. Astra had imagegen generate seven pixel art portraits from the existing sprites, keeping hairstyles, clothes and colours. They appear next to each character’s lines, and the hero’s portrait shows up in the menus with his level, hit points and power points. The windows hold up at widths down to 320 pixels.
Time, tokens and cost
| Measurement | Clairbois |
|---|---|
| Period | 13 September, from 16:53 to 23:23 (Paris time) |
| Agent working time | 3 h 05 min over 10 turns, 2 of them interrupted |
| Messages sent | 10, 2 of them with a screenshot |
| Model responses | 269 |
| Tool calls | 257 |
| Context compactions | 4 |
| Input tokens | 35,405,000, of which 33,769,472 read from cache (95.4%) |
| Output tokens | 301,285, of which 114,284 reasoning |
| Cost at API rates | $65.19 |
At the rates listed on OpenRouter on 14 September 2026, the same as for the Dune 2000 clone, the total breaks down into $16.36 of uncached input, $33.77 of cache and $15.06 of output. My ChatGPT subscription counts this usage against a quota, so the amount is a reference point. The same model takes on Claude Fable 5.1 with a three.js scene in our comparison of the two agents.
Two projects, two ways of steering the agent
| Measurement | Dune 2000 clone | Clairbois |
|---|---|---|
| Genre | real-time strategy | exploration RPG |
| First prompt | 66 words and a reference repository | 147 words and a prescribed method |
| Turns | 46 | 10 |
| Messages | 54 | 10 |
| Agent working time | 11 h 16 min | 3 h 05 min |
| Cost at API rates | $196.00 | $65.19 |
| Cost per working hour | $17.40 | $21.12 |
| Automated checks | 122 Node tests, 24 browser scenarios | 1,515 geometry checks |
The long prompt needed five times fewer messages, at a higher cost per working hour. The model responded more often, 1.45 times per minute against 1.27, with slightly less cache, 95.4% against 96.8%. The two games differ in genre and size, so these gaps don’t make one method better than the other.
What to remember
- Generating a whole map as a single image works, as long as every collision and every layer is then traced and tested.
- For interiors, the floor plan is written before the first image. Doors and stairs line up, and the 28 passages are checked.
- The image generator moves openings, draws checkerboards and adds doors. Check every image before it goes into the game.
- Four of my ten messages reported a visible flaw that the automated tests had missed.
- Twelve music tracks and seven portraits took two turns and $10.81 at API rates.
Common errors
architecture.json here.F2 here, and a pathing test.

