Under the Carpet
Forty-eight front doors
It was a Friday, so James was at work, and the game got built from his phone in the gaps. By then the work ran through the beta of Claude Code's Projects feature: a planner hands the jobs out to several sessions of Claude Code Opus 5.5, the agent from here on, and they share one editor on the machine at home and take turns with it. He had noticed two things about it that week. The token bill had dropped. And the sessions kept going: when one filled up, at around half a million tokens, it wrote a handover and a fresh one started on the machine and carried on, instead of stopping halfway to summarise itself.
Friday had three of them going. One was putting furniture into the new upmarket estate. One was dressing a doorman. One was in a cellar with twelve plant pots.
The estate is the posh end of the map: Victorian and Edwardian villas, gas street lamps, clipped gardens. On Thursday the furniture had existed only as Blender renders. The night before, the agent had grouped about seventy real property listings into seven interior styles - Victorian heritage, Arts and Crafts oak, Regency, contemporary, warm minimal, traditional family, and one for people who collect things - and written a furnisher that lays out every house differently. James looked at the renders and said they looked wonderful and to put them in the game.
By mid-morning they were in. Thirty-seven houses, split into forty-eight homes once the semis and terraces were divided up. Six hundred and seven doors. Seven and a half thousand pieces of furniture, ornament, curtain and lamp, every one placed by a script.

James is building a British rival to GTA 6, on his own, and this is the one line of that argument Friday was about. Open-world games tend to paint most of their doors on, because a studio has to decide which buildings are worth an interior and who pays for them. Here nobody had to be persuaded. Every one of the forty-eight opens. Rockstar have a department for interiors. He had a Friday and a phone.
The kitchens with carpet
He had also asked for marketing stills, so the agent set up a camera in a doorway of each chosen room, lit it with temporary lamps and saved twelve frames at 4K. It looked at them and wrote a list of what was wrong. The walls read grey. The picture frames held a flat brown canvas. The olive tree in the corner was a cloud of green pillows. And some of the kitchens had carpet.

The agent's first explanation for the carpet was confident and specific: the furnisher had picked a grey carpet as a kitchen finish, and the rule for choosing finishes needed tightening. It put that on the fix list. It was wrong, and it would take most of the evening to find out.
James added his own notes from the stills on his phone, which were about the things a person notices and a checklist does not. The cushions on the sofa were leaning the wrong way. In one bedroom the door opened straight into the bed. There were floating green panels round an ornament on the floor, and something dark and upright lying on a bed that had no business being there. The cushions were turned round by lunchtime and the twelve frames retaken. Sixteen doors moved to the other wall of their rooms.
The carpet was not carpet. When the agent went to change the kitchen finish it found the kitchens were already set to limestone tile, and had been all along. What it had not checked was the height. The estate's houses had been placed five centimetres below the shaped ground, on purpose, so that no daylight showed under a front wall on a slope. Upstairs that did not matter. Downstairs the floor was five centimetres under the grass, and the landscape was simply drawing itself over every ground-floor room in the estate. Grey grass seen from above at that distance reads as carpet. The walls were partly the same thing.
The fix was to lift every ground floor six centimetres and leave the walls where they were. All forty-eight homes were rebuilt with it. Putting them back into the level is a job for an editor nobody else is using, and on Friday there was not one.
A light in every room
The evening job was lighting. Before it, the interiors were dark at night and dim by day, and the brief was a light that comes on when somebody moves in a room and goes off when they stop, quicker in bedrooms. The agent built it as one Blueprint with an invisible box the size of the room, a lamp, and a check once a second rather than every frame, then placed six hundred and sixty-six of them across the forty-eight homes.
Then it tested one, alone in the editor with nobody else's session waiting. It put the player in a bedroom: the lamp came on. It held him still: the lamp went off, with him still standing in the room, which was the point.
It found one honest gap on the way. A light that loads in around a player already standing inside its box does not notice him, because the engine skips those signals while the level is still streaming in. So somebody who loads a save in a bedroom gets a dark room until they step out and back in. It is written down for whoever reports it first.
What the lights are for comes later. The plan is for the player to be able to break into these houses, pick the locks, find the odd back door left open, and take what is worth taking, with a resident who might wake up and ring the police. The pieces are being built in that order. The lock picking is next.
Baked in
The doorman was Dean, one of the three door staff at the Sweatbox. He had an early note from James on his list: more muscular.
There is a rule in this project now, made after two of Dean's colleagues were dressed before anybody looked at their bodies. Every new character is checked bare, front and side, before a stitch of clothing goes on. The agent built Dean bare with the muscle slider pushed most of the way up and the fat slider down. From the front he came out with a proper V and a set of abs. From the side the belly still went out past the chest.

The agent tried pinning the waist. It tried the fat slider much lower. It tried pinning the chest and the waist together. Each build changed the front, and the side came back identical three times. Its conclusion, which it then proved, was that the side profile was not coming from the sliders at all: the body had been baked into the character's rig when it was first set up, and a body edit on a rigged MetaHuman never reaches the build. The only way through was to start Dean again from a clean body and rig him a second time.
James said continue with the rebuild. The rig step is the one part of that pipeline a script cannot press, so he did it twice himself. The first came back with a blurry face and an open mouth. The second was right, and at half five he said that's good. That was most of the day's graft on one man's stomach.
Love, Hate and a swallow
Then the dressing, which took the evening. A shirt cut short at the sleeve. LOVE and HATE across the knuckles in a blackletter font, a swallow on one side of the neck and a snake on the other. Ink up both forearms.

The forearms came out in scraps. The agent listed three suspects - the wrong level of detail, the skin poking through the ink layer, the ink faces pointing the wrong way - and tested two of them properly. Neither was it. The cause was its own earlier fix. It had softened the tattoo edges by blurring them, which halved the opacity across most of the design, and the ink material was the kind that draws a pixel or does not, with the cut-off at a third. Half of the ink now sat just under the line. Only the thick fills survived. Making the material properly see-through, with a solid core and a soft halo round each line, brought the lot back.
The neck had a different problem: the swallow had been placed so that it rendered at the collar, under the shirt. It was repainted straight into the face's own skin texture instead.
After that the boots. James wanted them in black, then the toe cap taken off the second pair. Every pair of cargo trousers in the project turned out to be elastic-waist joggers, so he kept the slacks and asked for the shirt in white. The badge moved to the left chest, the licence band went over the sleeve, and he got a silver hoop in his left ear and a gold ring on the little finger, low enough that the E of HATE still reads.

The day had one bad half hour in the middle of it. A step that clears out a character's old build folder sat for over twenty minutes on one core, deleted nothing, and took the editor's connection with it. The agent had to stop the editor by force, and the furniture session, which James had paused so Dean could have the editor, may have lost unsaved work when it did. Swapping a built mesh would have done the job. That is the note now.
Twelve pots
The third session was in the cellar of the player's house, where the grow has been built one piece at a time since September. On Friday it got bigger: twelve pots, three LED panels, a table for drying and bagging, and fourteen bags of coir. James sent a shot list from his desk at snap time. He wanted it photographed the way a person with a phone would, slightly off level, slightly out of focus, from seed to a table of bags.

The run did get from seed to bags, and fourteen frames came out of it. But it ran at about one frame a second, and the plants grow on the game's own clock, which is fed by frame time and capped, so a slow editor means a slow crop. Turning the quality down, shrinking the window and lowering the resolution did nothing. A GPU profile did: of a 682 millisecond frame, 668 went on the shadows the volumetric clouds cast onto the ground. In a cellar. Switching the cloud shadow and its sky occlusion off took it to about nine frames a second, and the crop came in.
Five fixes were made during that run to get it through - the watering can ignoring the new pots, an LED that at its set brightness lit nothing at all next to the cellar strip lights, three others - and all five were made inside the running game, where nothing saves. They have to be built properly before the next run. That was the session's last note at about midnight.
Asking
Somebody on X said that week that most games fail because they are made for the developer and not for the people who might play them, and that developers do not ask. James took it as an instruction. The posts from here on will ask more than they tell. The other half of that is having somewhere to answer, so: suggestions go to [email protected], or to the game's X account, and they get read.
He meant to play the new houses with an Xbox controller at the weekend. The ground floors are still under the grass in the copy he would be playing.
The fault
Ground-floor rooms show grass or grey speckle through the floor in Unreal Engine 5.8
Furnished interiors placed inside buildings on a sculpted landscape. Upstairs floors rendered their finish correctly. Every ground floor showed a grey speckle that read as carpet in kitchens, and some walls read grey.
- Wrong guess: the furnisher had picked a carpet finish for kitchens. It had not; the material bindings were correct (limestone tile).
- Actual cause: the houses were deliberately placed 5 cm below the carved landscape pad so that no gap showed under a wall on a slope. The ground-floor slab therefore sat below the terrain surface and the landscape drew over it.
- What it cost: an evening, and twelve marketing stills that show the fault.
The fix
Lift the ground floor above the terrain, not the building
Raise only the level-0 floor slab and the level-0 internal doors by 6 cm; leave the shells, exterior doors and ramps where they are, so the wall still meets the slope. All 48 homes were rebuilt with the lift. Re-placing them in the level is the next step.
The guard: when a floor shows the wrong surface, check its height against the landscape before touching the material. Read the material binding first; if it is right, the surface you are seeing is not that floor.
The fault
MetaHuman belly will not shrink in profile: Fat and Muscularity change only the front
A MetaHuman built with Muscularity 2.0 and Fat -0.4, then Fat -1.5, then chest and waist girths pinned: every build changed the front silhouette and produced an identical side view, with the belly past the chest.
- Cause: the body was baked into the character's rig when it was first rigged. Body edits on an already-rigged MetaHuman Character do not reach the built mesh.
The fix
Rebuild from a clean body and rig again
Set the body on a garment-less copy, then re-run the rig (and texture) step. Rig-only gave a blurry face with the mouth open; rig plus texture sources was correct.
The guard: check every new character bare, from the front AND the side, before any clothing work. Clothed builds cull the skin under the clothes and hide the fault.
The fault
Tattoo layer renders as scattered fragments on a skeletal mesh in Unreal Engine 5.8
Forearm tattoos on a separate skinned ink layer showed only the thickest strokes. Level of detail and skin poking through were both A/B tested and ruled out.
- Cause: the art had been blurred to soften the edges, which halved its alpha (median about 0.33). The ink material was masked with an opacity mask clip of 0.333 times an ink alpha of 0.9, so most of the design fell under the cut-off.
The fix
Make the ink translucent, with a solid core and a soft halo
Build the texture as a solid core plus a separate wide halo (alpha is the larger of the two), set the ink material to Translucent with Opacity = art alpha times InkAlpha, no dither, and give the textures alpha-coverage mips.
The guard: a masked material deletes everything under its clip value. Check the alpha histogram of any softened texture against the clip. Straight after a texture reimport the ink can look missing for a few seconds while shaders compile; reshoot before diagnosing.
The fault
Play In Editor at 1 fps indoors: VolumetricCloudShadow 668 ms per frame
A Play In Editor session inside a cellar ran at about 1 fps with the GPU at 100 %. Lowering scalability, r.ScreenPercentage, the streaming pool and the window size changed nothing. ProfileGPU showed a 682 ms frame, 668 ms of it VolumetricCloudShadow (CloudShadow 450 + CloudSkyAO 218).
The fix
Switch the cloud shadow off for indoor test runs, and profile before guessing
r.VolumetricCloud.ShadowMap 0 and r.VolumetricCloud.SkyAO 0 in the console took it to about 9 fps. Restore both to 1 afterwards; they shade the outdoor terrain. This is a workaround for test runs, not the fix for the game.
The guard: run ProfileGPU before changing any setting for a slow editor session. Anything that runs on frame time - a game clock, a growth sim - runs slow with it.
The kit
| Tool | Why this one |
|---|---|
| Claude Code Projects (beta) | a planner running several Opus 5.5 sessions on one shared editor, each handing over to a fresh one when full |
| Blender | the furniture kit, floor plans, the tattoo and boot layers |
| Unreal Engine 5.8 | the placement, the lights, and every fault above |
ProfileGPU | named the slow pass in one frame after four settings changes named nothing |
| His phone | the cushion and door notes, from the stills, at work |
Plain English
| Term | What it means |
|---|---|
| PIE | "Play In Editor" - pressing play inside the editor to test the game without building it first. Fast, and it behaves subtly differently from the real build. |
| MetaHuman | Epic's system for realistic human characters - face, body, hair and clothing, ready to animate. Every named person in the game is one. |
| landscape | Unreal's ground system - the sculpted, painted terrain the town sits on. |
| material | The recipe describing how a surface looks: colour, roughness, shininess, transparency. |
| masked material | A material that is either fully drawn or not drawn at each pixel, cut at a threshold, so anything fainter than the threshold simply vanishes. |
| translucent | A material the engine blends over whatever is behind it instead of drawing solid. How glass, water and ghosts are done; how bright it looks depends on what is behind it as much as on itself. |
| alpha | The transparency information in an image. |
| mipmap | Pre-shrunk copies of a texture used at distance, so far-away surfaces do not shimmer. |
| overlap event | A signal Unreal sends when something walks into or out of an invisible trigger box, used to start or stop behaviour without checking every frame. |
| ProfileGPU | A console command that captures one frame and lists how many milliseconds the graphics card spent on each job, so the slow one shows itself instead of being guessed at. |
| volumetric cloud | Clouds built as a real 3D volume the sun shines through, rather than a picture painted on the sky. They cast shadows on the ground, which is what makes a storm dark - and, left alone, too dark. |
| console variable | A named engine setting that can be changed while the game runs, by typing it into the console, or fixed in a config file. |
| level streaming | Loading and unloading parts of the map while the game runs, so the whole world need not be in memory at once. |
| Blueprint | Unreal's visual scripting. Logic built by wiring boxes together with lines instead of typing code. This whole game is built in it. |
| LOD | Simpler versions of a model, swapped in as it gets further away. The trick that lets a street hold hundreds of objects. |
Things we still need to fix tomorrow:
- Re-place the 48 homes in the level with the lifted ground floors, then look at every kitchen floor.
- Rebuild the navmesh over the stairs and ground floors at the new height.
- Put the takeable items in the houses, place the daily door-lock reroll and the night curtains.
- Lock picking is next, then the residents who notice.
- Build the five grow fixes properly, and reshoot the bags and the transplant with the LED fixed.
- Find out whether the standalone game pays the same 668 ms for cloud shadows.
- Curve Dean's clip badge onto the shirt; a purple badge for Lee is after that.