Simon Willison ran the same one-shot prompt (a single instruction with no follow-up clarifications) against two different coding agents and got two different games. The first was Claude Fable 5 building a Raccoon Heist game from a premise he wrote with GPT-3 and DALL-E four years ago. The second was Codex Desktop (OpenAI’s IDE-integrated coding assistant) running GPT-5.6 in Sol Ultra mode (the aggressive sub-agent variant that breaks tasks into smaller parallel pieces) on the same prompt. The Codex version, which Willison named Moonlight and Mayhem, is meaningfully better at the heist premise. The bug it shipped with is what makes the comparison interesting.
The premise, in Willison’s words: in Raccoon Heist, you and your team of thieving raccoons pull off daring heists, from robbing banks to stealing priceless art. Fable 5’s version gave him a single raccoon in a backyard collecting coins and fish. GPT-5.6 Sol gave him a museum heist where he rescues two raccoon crewmates, stacks them on top of each other, and busts a golden sardine out of its case. That is the version Willison kept, and the one that ships with a real bug.
What the bug was, and why it matters
The bug, which Willison documents in the repository, is that each raccoon in the initial Codex output had an eyeball enlarged to the size of a giant black sphere floating over its head. Willison caught it in the screenshots after the build completed. Codex did not catch it during development, despite reviewing the same screenshots.
The fix took two more prompts. First, Willison asked Codex why the raccoons had huge black spheres on them. Then he asked Codex to fix it. The result is the version of the game you can actually play without flinching. The full Codex transcript is in the repository, which Willison notes Claude Code does not have an equivalent “copy as Markdown” export for.
It matters because this is the kind of failure mode (an obvious visual defect that the agent reviewed and approved) that automated QA is supposed to catch. If Codex is reviewing screenshots during development and not catching a giant floating black sphere, the review step is not doing what it claims. Either the screenshot review is shallow, the screenshot-to-code mapping is not what the model thinks it is, or the model is not actually looking at the screenshots and is just pretending to.
Willison does not pick one of those explanations in his post. The implication is that the answer is some combination of all three, and that anyone shipping Codex-generated visual work needs to look at the screenshots themselves before calling it done.
What “Sol Ultra” actually means here
GPT-5.6 in Sol Ultra mode is the configuration that makes heavy use of sub-agents (specialized helper processes that the main agent delegates pieces of work to, then stitches back together). For a one-shot game build, that means the model is breaking the task into pieces (textures, level layout, character art, game logic) and running the pieces in parallel before composing them.
The result Willison got is noticeably better than Fable 5’s single-pass result on the same prompt. The heist premise is honored. The game has actual characters with roles. The setup of stacking raccoons to reach the prize is the kind of mechanic that reads as designed, not generated. That is what the sub-agents bought him.
The cost was 52 minutes of Codex time. Willison does not give a full AgentsView cost estimate in this post (the link is to the repository), but the duration is the part of the cost that is worth noticing. A one-shot prompt that takes 52 minutes of agent runtime is not a casual tool. It is a project.
The mark of a generated game versus a designed one
The detail that distinguishes Moonlight and Mayhem from Fable 5’s Raccoon Heist is the mechanic. Fable 5’s version has you as a single raccoon in a backyard collecting coins and fish. The mechanics are movement and pickup. Codex’s version has you rescuing two crewmates to stack them and bust a golden sardine. The mechanics are positioning, stacking, and retrieval.
That is a meaningful difference. The Codex version has a verb that is heist-appropriate (stack and bust). The Fable version has verbs that are not (collect and pickup). When you stack three raccoons to reach a high shelf, the player is doing something that maps to the premise. When you collect coins in a backyard, the player is doing something that maps to almost any premise, including none.
This is what you get when an agent breaks a task into pieces and assigns one of them to “make the mechanics feel heist-appropriate” rather than treating the prompt as a single shot. The sub-agents let the model think about each piece with more care than the one-shot case allows. The result is a game that looks like the premise, not a generic platformer with raccoon skins.
The bug undermines this read, but only partially. The bug is the eyeball, not the design. The design is good. The eyeball is a defect in execution. They are different problems.
What this tells you about Codex as a creative tool
The honest read of Willison’s test is that Codex in Sol Ultra mode is a real creative tool for projects of this size, with the caveat that any generated visual work needs human review. The 52-minute build time is a meaningful investment for a game you might play twice. For a game you intend to ship or share widely, that review step is the difference between a working product and a working product with a giant black sphere on every character.
The comparison to Fable 5 is also instructive. Fable 5 produced a competent but generic game. Codex produced a game that honored the premise but shipped with a visible defect. The agent that produced the more creative result also produced the more embarrassing failure. That pattern is consistent across most of the recent Willison experiments with these tools: the more capable the agent, the more original the output, and the more you have to look at it yourself before trusting it.
Willison is sharing the Codex transcript in the repository, which is the right move. Anyone evaluating these tools should be looking at the transcripts, not the polished outputs. The polished output is what the agent decided to show you. The transcript is what the agent actually did.
Trade-offs
The honest trade-off matrix for one-shot game generation with current agents looks like this.
- Output quality is good enough for prototypes. Codex’s Moonlight and Mayhem is a working game with a real mechanic and a real visual style. If you are testing a premise, this is enough to know whether the premise is interesting.
- Visual review is required. The giant-eyeball bug is the kind of defect that automated review did not catch. If you cannot review the screenshots yourself, the output is not ready to share.
- Build time is a real cost. 52 minutes is not a casual ask. For hobbyist projects that is fine. For commercial work, that is project-level time.
- The premise fidelity scales with the agent’s mode. Fable 5’s single-pass version produced generic mechanics. Codex’s Sol Ultra version produced premise-appropriate mechanics. The sub-agents matter.
- The transcripts are not standardized. Codex will export the session. Claude Code will not. If you care about reproducibility or audit, the tool choice is partly about exportability.
If you are testing game premises or visual concepts, Codex in Sol Ultra mode is a serious option. If you are shipping anything that faces a public audience, the review step is not optional.
Bottom line
Simon Willison’s Raccoon Heist comparison is the cleanest example yet of what sub-agents buy you in a one-shot generation. The Codex version honored the premise. The Fable version did not. The bug in the Codex version is the part that should make anyone using these tools for visual work slow down and look at the output themselves before shipping it.
The repository Willison linked includes the working game, the buggy version, the texture prompts Codex generated for gpt-image-2, and the full Codex transcript. If you are evaluating Codex as a creative tool, that repository is worth more than most of the published reviews. The transcripts tell you what the agent actually did, and what it actually missed.