Day 2: Lights on, a bigger map and twelve characters


TL;DR: We fixed the black render (the map had no lights, and the test sun pointed at the sky), dressed Segment 1 with Megascans, then rebuilt it as a much bigger map with winding roads after Joel’s playtest. All twelve characters were modelled in Tripo, cleaned up in Blender and imported. Codex worked through a queue of nineteen tickets. We hit Claude’s usage limit twice.
Morning: voices, rules and the black screen
Discussed and decided. Joel asked for a launch trailer as its own project. It isn’t the jam video, which has to be 30 to 60 seconds of real gameplay, so the trailer can run as long as it likes. Joel chose a serious, creepy story with no narrator: the drunk heroes run out of mead in the castle tavern and set off for the village. He asked us to write the jam rules into AGENTS.md so no agent forgets them. The official rules give no size limit, so we set ourselves a 1 GB ceiling. Difficulty levels got drunk-themed names, and Joel picked a set based on drink orders.
What Claude did. It planned the Segment 1 audio and auditioned voices in ElevenLabs using real lines from the script. Joel’s first round felt flat, so the second round put each line inside a short scene with audio tags. Five voices are now saved: a West Country Tavernkeeper, a gruff Southern English Guard, a husky Yorkshire Hunter, a Glaswegian Brawler and a rasping, ancient Briar Warden.
A research thread found two UE 5.9 gotchas. 5.9 starts its own MCP server on port 8000, which clashes with the editor connection if the game and the editor run at the same time. The black render was simpler than any engine bug: the Segment 1 map had no lights at all, and the test sun pointed upward because Unreal’s Python Rotator takes roll, pitch and yaw in that order. One fix later, the level rendered lit (PR #31).
Joel set a model rule for the rest of the jam: all Unreal and scene work runs on Claude Opus 5.5 at medium effort.
Midday: Megascans, the Warden and “this is too small”
What Claude did. With Joel’s OK, Claude used computer use to open the Unreal editor itself, then installed the first Megascans through the editor’s Fab tools: a granite rock and a forest-floor ground (PR #32). In Blender, it cleaned up and rigged the Briar Warden from Tripo: 1.9 m tall, about 17,700 triangles, on the Mixamo skeleton, with the robe moving cleanly in a stride test. It was the first character in the game (PR #33).
Discussed and decided. Joel opened the level and said what we were all thinking: it was a 30-second straight line. His direction was specific. Think of England in the 1700s: no straight roads and no flat ground. Paths should wind, players should be able to get a little lost but not too lost, and there should be more to explore. Claude proposed a main path of about 1 km winding down from the castle hill, splitting into three routes. Joel added two rules that also help performance: leave space on the farm for wheat fields and paddocks, and don’t dress the woods between routes. Like the classic co-op shooters, the routes are fixed corridors, and only what players can see from the path gets detail.
By 12:30 PM the bigger Segment 1 was built: hilly terrain, three winding routes about 250 m apart, and about five minutes of walking without any fighting. Claude also wrote two Cursor tasks as GitHub issues, each ending in a prompt Joel can paste: a themed 404 page for this site and a balance-table checker for the game.

Concept art for the courtyard, generated in ChatGPT from Claude’s prompts. The level is built to match its mood, not copied from it.
Afternoon: Codex at full speed
Discussed and decided. With Claude doing the level and asset work, Joel wanted Codex carrying most of the code. Claude wrote nineteen detailed Codex tickets, in order: mead and Ruckus, class fit, difficulty, route blockers, bots, objectives, the pressure director, enemy AI, pings, the HUD, then each monster. Joel set the bot rules: stay within about 50 m of the player, recover when stuck, and fight, defend and revive like real teammates without playing perfectly. Joel also had the scarecrow idea: fields full of T-posing scarecrows, any one of which might be the real Strawman monster.
What Claude did. It restarted the Codex runner and kept it fed with small jobs one after another. The hero meshes for the Hunter, Brawler and Tavernkeeper went into Unreal at their correct heights (PR #49), then the Thrall and the Thorn Hulking (PR #56).

The heroes after Tripo and Blender. Joel generated turnaround sheets in ChatGPT, built the meshes in Tripo Studio with Smart Mesh, and Claude fitted them to the shared skeleton in Blender.
UI art. Joel generated a set of medieval UI tiles in ChatGPT: carved signs, iron frames, a crimson banner, gold scrollwork and the Left for Mead logo with clinking tankards. Claude keyed out the backgrounds and cropped them into 26 textures, rebuilt the menu mockups with them, and planned the real screens to be built in C++ so Codex can build and test them headless. The same art now dresses this website.
Evening: twelve characters and a concept pass
What Claude did. The second Segment 1 pass went into main (PR #35): real spruces lining the paths, cobblestone roads, a bigger farm with wheat plots and paddocks, and eleven scarecrows. The five special enemies were imported (PR #64), bringing the cast to twelve: four heroes, the Briar Warden, the Thrall, the Thorn Hulking, and the Strawman, Bramble Runner, Caskbound, Rootbinder and Rookcaller. A clean-up of old build copies freed about 15.6 GB on Joel’s PC.
Codex’s first big batch landed after passing its tests: the UI framework, the Tavernkeeper’s Cask Spill, mead drinking with the Ruckus meter, and the hidden class-fit maths (PRs #30, #57, #61 and #62).
Joel asked for concept art of every Segment 1 area so the level could be built towards it. Claude wrote the prompts, and Joel generated thirteen images in ChatGPT in about twenty minutes. A gear plan followed: most weapons come free from Fab, but Fab armour won’t fit our Tripo heroes, so each hero gets mail and plate versions made in Tripo. Leftovers such as the buckler and bear trap go to Hyper3D Rodin.
Our honest estimate at the end of the day: about 30 to 35% of a finished Segment 1. The level and hero gameplay were furthest along. Enemies, the director and bots were the biggest risk.
What went wrong
- Usage limits. Claude hit its five-hour limit twice, at 9:45 AM and 1:15 PM, and work stopped for a few hours each time.
- Merges blocked on Joel’s PC. Its permission checks blocked
gh pr mergeand force pushes even with Joel’s approval, so merging moved to cloud threads. - Tripo left and right. The first Smart Mesh run on the Guard swapped left and right. Tripo’s “left” view means the character’s own left, and asymmetric characters must never be mirrored.
- Git LFS from the cloud. Cloud threads can’t push Git LFS files, so the UI art PR has to be finished from Joel’s PC.
