DevQA and the qa harness
Scripted play sessions with a dedicated server and several clients: screenshots, video, contact sheets and a visual diff against an approved baseline. It runs on every push.
Behind the scenes
Four days, one director and a crew of AI agents, with every stage checked by an independent verifier.

Wyrdale was made by one person directing a crew of AI agents, in four days, for the 2026 Epic AI MegaJam. The agents write specs, code and tests; every design call belongs to the director.
The art is AI-generated and human-directed: every image on this page started from a style brief (gouache, slate and codex), was reviewed, and was redone when it needed to be. The interfaces below are style studies, not game screenshots.
A lot of what's on this page doesn't exist yet. We'd rather show the plan honestly than promise what isn't ready.


The pipeline
Two assembly lines ran side by side for four days, one for code and one for art. Nothing reached the public server without passing every station.


Made for the game
Most of the work was not the game itself but the tools that let a crew of agents build it safely and quickly.
Scripted play sessions with a dedicated server and several clients: screenshots, video, contact sheets and a visual diff against an approved baseline. It runs on every push.
Bots with the same inputs as a player fight in parallel, faster than real time: about 1,900 fights in 110 seconds, with win rates, Elo and exploit alerts.
One source of truth for items, recipes, skills and lore. It generates C++ and TypeScript and is checked by the CI and at login.
Runs the valley's economy for days and weeks before a price or a recipe goes into the game.
Checks every line of world text against the bible, a blocklist of names from other games, and whether each fragment can be learned in four days.
Scripts that lay out the 1 km² valley, place about 37,000 pieces of nature and build the house, dungeon and furniture kits in Blender.
149 clips retargeted to one skeleton, with the locomotion graph generated by code instead of by hand.
Accounts, persistence, trade, rankings, voting, an admin dashboard and the NPC dialogue budget, in Node.js and PostgreSQL.
Builds the Linux server in Epic's container and ships the API, the game server and the client zip.
Counts commits, assets and agent work for this site's dev diary.
The workshop
From the workshop floor
Every important decision was measured first. Three examples, with the real numbers.
The same 7 test assets (a brazier, a crate and barrel, an anvil on a stump, a market cart, a founder's statue, a bench and a builder) went through 6 services with the same reference image. Each result was scored from 1 to 5 and timed for how long it would take to fix.
Left to right, in each strip:



| Service | Average score | Fix-up time | Used for |
|---|---|---|---|
| Rodin Gen-2.5 High | 4.9 / 5 | ~15 min | hard props, statues and characters |
| Tripo H3.1 | 4.1 / 5 | ~20 min | organic and colorful pieces: trees, bushes, awnings |
| Meshy 6 | 3.9 / 5 | ~22 min | first characters and animals |
| Hunyuan3D 3.1 | 3.4 / 5 | ~28 min | not used |
| Trellis 2 | 2.7 / 5 | ~38 min | not used |
Also found: the classic FBX importer broke every generated mesh, while the same files in GLB through Interchange came in clean.
An MMO lives or dies by its fights: enemies have to be interesting and challenging at the same time, and no way of playing can be the only right one. Balancing that by hand, a few test fights at a time, takes weeks and still misses things.
So we built an arena where bots play with exactly the inputs a player has, reaction delays included, and fight thousands of matches faster than real time. The same brains then became the enemies in the valley.
35 scenarios of the valley's economy, each simulated for 90 days with 5 to 10 random seeds, before any price went into the game.
Under the hood
The game server is only half of Wyrdale. A Node.js platform with PostgreSQL keeps everything that has to survive a restart, and gives the director a control room.

Sign-up, login and password reset, plus the tickets that let a client join the game server.

Characters, backpacks, banks, dungeon chests and the state of the world survive restarts. Every change goes through atomic operations.

Every item has a unique id, so the admin can trace where it came from and who held it.

Players and characters, bans, suspensions and roles, servers and live events, in one place.

Skills and PK counters recalculated every 15 minutes, with a public API. The site's rankings page is resting for now.

Community votes with public results, the state of every building site, quest progress and trust with each NPC.

Every conversation with Claude goes through the platform, under a real daily cap, so a busy day never runs away with the bill.

Jam build
After the jam