Behind the scenes

How Wyrdale was made

Four days, one director and a crew of AI agents, with every stage checked by an independent verifier.

A guild workshop: the director over the plans, and his crew painting, copying, measuring and testing.
One director, one crew.

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.

  • Coding agents wrote the C++ server and client, the Node.js platform (accounts, persistence, rankings) and the tools.
  • Astra, the art director, writes the art direction, generates every reference sheet and reviews its own batches. References become 3D through image-to-3D tools.
  • Independent verifiers rebuild every stage from a clean clone, run scripted play sessions recorded on video, compare screenshots against a baseline and try to break things.
  • A lore keeper checks every line of world text against the world bible.
  • An economy simulator runs the valley's economy before any number goes into the game.
  • The AI arena plays thousands of bot fights to find exploits and balance combat.
HUD study in the Slate theme, with dark surfaces.
Interface study in the Slate theme.
Journal study in the Codex theme and a crafting window.
Journal (Codex) and crafting study.

The pipeline

How an idea becomes part of the valley

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.

Code

Five stations: a plan written at a desk, artisans building, an inspector checking, a test yard, and the town gate opening.
  1. SpecThe director writes the rules in the design docs.
  2. AgentsCoding agents build it in C++, TypeScript and Python.
  3. VerifierAn independent agent rebuilds it from a clean copy and tries to break it.
  4. CI and QAThe build server compiles, runs the tests and plays a recorded QA scenario.
  5. LiveOne command deploys the server, the API and the client.

Art

Five stations: a reference painting, a clay model, a carver's cleanup, porters carrying it in, and the anvil in use in the forge.
  1. ReferenceAstra paints a reference sheet in the game's style.
  2. Image to 3DRodin, Tripo or Meshy turn the sheet into a model.
  3. CleanupBlender scripts fix scale, pivot, materials and level of detail.
  4. ImportGLB through Unreal's Interchange, with collision and LODs.
  5. In the gameA QA screenshot checks it from the game's own camera.

Made for the game

What we built to build 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.

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.

The AI arena

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.

endless-data

One source of truth for items, recipes, skills and lore. It generates C++ and TypeScript and is checked by the CI and at login.

The economy simulator

Runs the valley's economy for days and weeks before a price or a recipe goes into the game.

The lore validator

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.

World and kit generators

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.

The animation pipeline

149 clips retargeted to one skeleton, with the locomotion graph generated by code instead of by hand.

The platform

Accounts, persistence, trade, rankings, voting, an admin dashboard and the NPC dialogue budget, in Node.js and PostgreSQL.

One-command deploy

Builds the Linux server in Epic's container and ships the API, the game server and the client zip.

The metrics script

Counts commits, assets and agent work for this site's dev diary.

The workshop

Tools we used

Engine and content

  • Unreal Engine 5.8the game, driven by agents through Epic's official MCP and editor scripts
  • Blender 5.2kits, cleanup and renders, through scripts and the Blender Lab MCP
  • Niagaravisual effects, wired by an editor utility in C++
  • Mixamo and Epic's Game Animation Sampleanimation clips and locomotion
  • Poly Haven and ambientCGCC0 textures for terrain, rock and buildings

AI models

  • Claude Code (Claude)the coding crew, subagents and verifiers
  • Codex (gpt-6-astra)Astra, the art director, and its image generation
  • ClaudeNPC conversation, with a daily budget
  • Nano Bananaquick reference edits

Image to 3D

  • Rodin, Tripo and Meshyprops and statues, organic shapes, characters and animals · See the comparison

Infrastructure

  • Gitea with LFS and Actionsrepositories, large files and the build runner
  • Docker and Epic's dev-slim imagethe Linux server build, without compiling the engine
  • Fly.iogame server, API and database in São Paulo
  • Cloudflare Pagesthis site
  • ffmpegvideo of every QA run

From the workshop floor

The evidence behind the choices

Every important decision was measured first. Three examples, with the real numbers.

Which image-to-3D service for what

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:

  1. Meshy 6
  2. Tripo H3.1
  3. Rodin Gen-2.5 (API)
  4. Rodin Gen-2.5 (site)
  5. Hunyuan3D 3.1
  6. Trellis 2
The founder's statue: the same model from six services
The founder's statue
The market cart: the same model from six services
The market cart
The anvil on a stump: the same model from six services
The anvil on a stump
ServiceAverage scoreFix-up timeUsed for
Rodin Gen-2.5 High4.9 / 5~15 minhard props, statues and characters
Tripo H3.14.1 / 5~20 minorganic and colorful pieces: trees, bushes, awnings
Meshy 63.9 / 5~22 minfirst characters and animals
Hunyuan3D 3.13.4 / 5~28 minnot used
Trellis 22.7 / 5~38 minnot used

Also found: the classic FBX importer broke every generated mesh, while the same files in GLB through Interchange came in clean.

Why we built the AI arena

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.

  • It shaped the enemy AI: wolves that run when hurt, guards that chase criminals, a lord that gets faster below a third of his health.
  • It balanced the skills: archers were too strong and mages too weak, and the arena showed it before any player did.
  • It caught exploits: fights where nobody could win because both sides kept running away, and NPCs you could kill for free by walking backwards.

What the economy simulator checks

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.

  • Buying from NPCs to resell or melt down never turned a profit, so the village reserve can't be farmed.
  • Inequality stayed moderate in every scenario (Gini around 0.5).
  • It also shows what still needs tuning: item prices and a newcomer's income still miss our targets in most scenarios, so the economy keeps being adjusted after the jam.

Under the hood

The platform behind the valley

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.

Screenshot coming soon

Accounts and sessions

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

Screenshot coming soon

Persistence

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

Screenshot coming soon

Item audit

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

Screenshot coming soon

Admin dashboard

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

Screenshot coming soon

Rankings

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

Screenshot coming soon

Votes, quests and the Journal

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

Screenshot coming soon

NPC dialogue budget

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

A master builder's wall of charcoal sketches for bridges, a lab, an archive, homes and a stable.
What comes next is already on the wall.

Jam build

What's in this cut

  • A 1 km² valley: the town on stone terraces, villages, forest, river and lake, a mine and four dungeons
  • Live dedicated server, accounts and characters
  • Woodcutting, mining and fishing; forge, anvils, carpentry and campfire; three qualities and bandages
  • Melee, bows and spells; death with full loot, ghost and resurrection
  • Bank, NPC shops with opening hours, player trade, local chat, PK title and rankings
  • Villagers with daily routines: they drink, dance, work the anvil and gossip at the tavern
  • Conversations with the locals in your own words, through Claude, with trust and lies
  • Quests and the first community project: the Arcane Tower building site
  • 175 NPCs and creatures, balanced in an AI arena that has already closed real exploits
  • Town votes: after the Arcane Tower, players choose the next building by bringing materials to its site

After the jam

The extended cut

  • The full Journal investigation board
  • Player homes: one per account, built anywhere in the buildable area with no fixed plots, with room for about 50 at first
  • The arena learning from real player fights and reported exploits
After the jam