FQ
A fan-made recreation of 1999 EverQuest, written from scratch in plain C.
Login, world and zone servers, a low-poly OpenGL client under heavy fog, and a world you can walk on foot from Qeynos to Freeport. Built by AI coding agents, one zone at a time.
Fan project. Not affiliated with or endorsed by Daybreak Game Company. Details
Scrub through the build
Each bar counts the screenshots taken in that stretch of time. Drag, or use the arrow keys, to step through the highlights.
Releases
Each version is a snapshot of the world. What is built is in view; what comes next is still in the fog, the way the far hills were in 1999.
Rebuilt from nothing
Three kinds of server run the world, as they did in 1999: a login server, a world server and zone servers, talking over their own reliable UDP. A Windows client draws it all in low-poly OpenGL, with day and night under heavy fog; a game day lasts 72 minutes.
Nothing is borrowed. There is no engine and no library beyond the C standard library and the operating system, and no file from the original game. Every zone, creature, spell and line of dialogue is written new: inspired by the classic, never copied.
Today you can walk from North Qeynos to West Freeport, clear Blackburrow and Befallen, and ride a ship across the Ocean of Tears. The other classic zones, from Halas to the Plane of Sky, are being built now, and so is sound.
How it is built
FQ is written by AI coding agents (Claude Code), with one person deciding what to build and playing the result. The agents cannot talk to each other while they work, so everything they share is written down: contracts to build against, a script for each feature, and tests that decide when a piece is done.
It began as a three-line request: work out what a game like this needs, then build it, with enough zones to make the run from Qeynos to Freeport. The first commit, on 25 September 2026, could not run a game: it held the plan, the contracts, a shared base library and stubs that compile. The servers, the client, the bot and the first eleven zones landed on top of it less than four hours later.
Every big feature since has been one workflow: a script, written and started by the main session (the one agent the owner talks to), that runs agents in phases, up to 21 of them at the same time. So far 16 workflows have run 388 agents, and between them they have made 40,742 tool calls, mostly shell commands, file reads and edits.
-
Contracts first
Agents working in parallel cannot ask each other anything, so the rules come first. Before there was a server, a client or a tool, there was a network protocol that fixes every message down to the byte, a zone file format, a game data format, an architecture document and 28 C headers with stubs that compile. An ownership map gives each agent its own files and no one else's. If a contract lacks something, the agent works around it inside its own files and says so in its report. Only the main session changes a contract.
Three critics read the contracts before anyone built on them: one as a client developer, one as a server developer, one as a content author. They found 69 problems, 2 of them blockers, and those were fixed first. The big features since then (boats, sound, the rest of Classic) open the same way, with their contracts locked and the whole tree building before any builder starts.
One piece of code is shared outright. The client and the zone server run the same movement and collision code, and check on connect that they loaded the same game data, so the step the client predicts is the step the server checks.
The contracts in the middle, the parts of the game around them, each marked with what it is built against. Line counts are today's. -
One feature, one workflow
The phases hardly change from feature to feature. Contracts are locked first. Builders then work in parallel, each on the files it owns. QA agents walk every new zone, take screenshots and look at them. An integrator runs every test. Then reviewers attack the result, each through one lens, and report only defects they have confirmed with a failure scenario. A fixer repairs them, adds a regression test for each and runs everything again.
Hard problems get competing designs first. For boats, three agents each designed a ship system and three judges scored them: a sceptical distributed-systems engineer, a veteran of the 1999 game and a lead who knows this codebase. The winner was a timetable that every server and client computes the same way, so ships never have to be sent over the network. The judges' objections were fixed, and good ideas were taken from the other two designs.
The boats workflow on 26 September: 33 agents from research to master. Each figure is one agent; the winning design is drawn in red. - Research. The classic routes, stops and timings, and the swimming rules.
- Three designs. Deterministic, server-authoritative and free-form: one agent each, none seeing the others.
- Three judges. Each scores all three for robustness, fidelity, risk to the codebase and testability.
- Contracts. An architect merges the winner with the best other ideas and locks the docs, headers and protocol version 2. The tree builds with warnings as errors.
- Build. 14 agents in four groups: game core, content, services, and the client with the bot.
- QA. One agent per new sea or landing zone and one for the harbours: zonecheck, then screenshots they look at and fix.
- Integrate. The new zones join the cluster; every suite, the voyage tests and the journey run.
- Review. Four adversarial reviewers: riding and crossings, protocol and security, swimming, the client.
- Fix. All 16 findings fixed, each with a regression test, and everything run again.
- Merge. The main session rebuilds from clean, runs it all once more, commits and merges.
-
A road for each feature
Each feature is built on its own git branch, in a separate working copy, so the main copy stays playable: the owner plays from it while the agents work. Builders never commit. When a workflow ends, the main session rebuilds from clean with warnings as errors, runs every test suite and zonecheck, and only then commits and merges.
Three roads have rejoined master so far: dungeons and boats on 26 September, and sound on 27 September. One is still out: the rest of the classic zones.
Git branches as roads, from the first commit to 27 September. Small gems are commits, large ones are merges. Agent counts include each feature's design or planning workflow. -
Tests decide
No feature merges on an agent's word. It merges when these pass.
- 878 Unit tests in 23 suites, built with warnings as errors.
- 22 Zones checked by zonecheck: routes you can walk, zone lines that arrive somewhere, spawns that exist.
- 13.8 km The journey A bot runs North Qeynos to West Freeport on the zones' own roads: 11 zones in 461 s at five times run speed, and 0 position corrections from the server.
- 5 Voyage tests Both ship lines both ways, a zone server killed mid-crossing, skewed clocks, 5% packet loss. The full run takes about 76 minutes.
The ship tests earned their keep. The first full voyage run failed at the South Qeynos gangway, the fix for that broke jumping overboard, and it took more rounds before a run came back clean.
Sound is checked the same way. Its workflow script puts it plainly: “We cannot listen.” So the agents render test mixes to files and measure them instead: peak level and loudness, clipping, clicks at loops and crossfades, silent gaps. The sound build was validated that way before it joined master on 27 September.
-
Every screenshot is kept
QA agents take screenshots and then open them to look; they have done that 8,774 times. Every capture is archived. The archive holds 10,975 so far, and it is what this site is made of: 3,967 are published here. Newer captures join at the next data build, and any that show a local file path are left out.
This site was built the same way. Three design agents each made a working prototype from real screenshots. The owner liked A best, preferred B's terrain map, and wanted C's build timeline, screenshot archive, zone list and releases, so those parts were rebuilt in A's stone and parchment.
-
A Norrath 1999stone, bronze and gold leaf
-
B Night fog, lantern lighta low-poly terrain map
-
C Draw distancea build log you can scrub
The site you are readingA's look, B's map redrawn in ink, C's timeline, archive, zone list and releases
Sketches of the three design prototypes and of the final site that combines them. -
-
What people still do
One person decides what gets built, and plays it. Ships with dock callers who tell you when the next boat is due, different music for day and night, and home cities that look like different cultures were all the owner's requests. A ship the owner saw frozen at a zone edge while playing is now a top-priority item on the to-do list.
The agents work to a usage allowance. When it ran out partway through, the sound and classic-zone builds stopped mid-phase; their work was checkpointed, and finish workflows picked it up. Plenty is still open, and the to-do list in the repository says so.
From the to-do list
- Ships look frozen while they wait at a zone line.
- Jumping down steep slopes can rubber-band: about 450 moves in 50,000 in North Qeynos.
- The Linux build has never been compiled.
- One network test failed once under a fully parallel run, and nobody knows why yet.
- Passwords cross the network in clear text. Fine for a development server, not for a public one.
Zone atlas
All the classic zones and how they join. Lit zones are open to play today; the rest are being built. Pick a zone to see where it leads and what it looks like.
Drag the map sideways to see all of it, or use the list below.
All zones
Screenshots
Raw captures from the development builds: zone QA passes, culture kits for the home cities, the client itself and the sound validator. The text in each shot's top-left corner is the client's debug overlay.
Progress
The same place, the same camera, build after build. Pick a viewpoint and drag across the picture to compare.
Viewpoints
The list is one stop for the Tab key: the up and down arrows move through it, Enter compares.