Every retelling of Ultima Online says the same thing: the designers built a living ecology, the players ate it, and the simulation died. The designer who built it says that story is not quite right. Players really were like locusts. But the ecology did not die the way the legend says, and the real causes matter more to builders of simulated worlds.
At a glance
The sources: Raph Koster, the system's original lead designer, in his 2006 resource-system posts and his correction post Did players destroy the UO ecology, plus the Game Developer report of the GDC Online 2012 postmortem.
The framing: this article corrects the famous version with the designer's own record. Garriott is quoted elsewhere as saying players killed everything so fast the simulation could not begin.
What the system was: creatures driven by resource labels PRODUCE, EAT, SHELTER, and DESIRE, with spawning tied to surpluses in the world. It ran in alpha in 1996 and was removed during beta in 1997.
What killed it, per Koster: radial-search plus pathfinding cost, creatures put to sleep when no player was near, and a closed resource bank that hoarding could drain dry.
Not claimed here: no kill counts, spawn rates, server costs, or player numbers, because no opened source states them. The resource values survived for crafting; only the AI was disabled.
Last verified: October 29, 2026.
The story everyone repeats, and the correction
Start with the legend, because your readers already know it. In the version usually told, Origin built a virtual ecology for Ultima Online, players poured in and killed everything faster than the game could spawn it, and the designers ripped the system out in sadness. Richard Garriott has been quoted in that spirit, saying the players killed everything so fast that the simulation could not even begin, and that nobody ever noticed the system. According to the person who designed the system, it is not quite what happened. Koster wrote a correction post because anecdote-based articles kept getting this wrong. He states two separate facts the legend merges into one: the AI was disabled because of the cost of radial searches followed by pathfinding, which had nothing to do with why the ecology collapsed; and the ecology collapsed because of a closed economy loop in which everything spawned from a fixed resource pool, which fell victim to player hoarding.
The system, conceived by Koster and his wife Kristen in early 1995, gave every object resource tags. A creature could PRODUCE things, EAT things up to a stomach size in bites of a given size, SHELTER near things it liked, and DESIRE things it wanted or feared, satisfying FOOD first, then SHELTER, then DESIRES. Spawning worked from surplus: plenty of GRASS spawned GRASS-eaters, and their MEAT then spawned MEAT-eaters. The famous pre-release example said that if adventurers thinned the rabbits, wolves would move on to deer, and a hungry dragon might then wander toward a village. In alpha, animals also levelled up like players, which produced the case's best joke: rabbits that survived a wolf fight got tougher, so players who let bunnies escape trained killer rabbits. The Game Developer report of the 2012 postmortem quotes Koster joking that alpha players soon found themselves playing Monty Python: The MMO, and that the team stopped the levelling but left one monster rabbit in the shipped world. That anecdote is real, and it is also small.
Three separate failures, not one hungry crowd
The first failure was performance, and it hit before players could do anything. Koster writes that the creature AI worked in alpha: beggars with a desire for GOLD followed rich players, and bears hung around near beehives. The problem was that the constant radial searches were incredibly expensive, and so was all the pathfinding. The team cut search frequency, then took a step Koster says alone really ruins the large-scale ecological applications completely: every creature was put to sleep when players were not nearby. A simulation that only runs while watched is not a world ecology anymore. The system was also rewritten during beta by an engineer who, in Koster's words, did not really like or understand it, and the planned second stage, hooking the ecology into quests, never happened. Spawn regions, which placed creatures by drawn areas and lists instead of by resource surplus, eventually took over all spawning.
The second failure was the closed bank, and this is where players genuinely broke something. In the original design, new objects were withdrawn from a resource bank: a fixed pool of each resource. When the bank was overdrawn of MEAT, nothing using MEAT could spawn until some MEAT was destroyed and returned to it. In practice, Koster says, it was not MEAT that stopped creatures spawning. It was FUR and similar goods that players hoarded, which prevented deer and rabbits from returning. His correction post gives the cleanest example: players killed sheep, made huge numbers of shirts from the wool to grind crafting advancement, then hoarded the shirts or sold them very slowly. The central bank ran out of wool and could not spawn more sheep. The players did not eat the ecology by killing too fast. They starved it by keeping too much: shirts sitting in banks and houses were wool that would never come back, so the world could not make the animal that wool came from.
What to reuse
None of the steps below are presented as what Origin did, because Origin did not do them. They are the design rules that follow from Koster's account of what went wrong, rewritten for a small team building a simulated world today, and they stay inside your own project: nothing here asks you to touch a live game, a public server, or anyone else economy. A simulated ecology has three budgets, not one: the processor budget for noticing the world, the material budget for making things, and the player budget for keeping things. Ultima Online ran out of all three, in that order, and the legend only remembers the third.
What to do Monday morning
Budget perception before beauty. Cap each creature search radius and frequency, and measure the cost with a full population before you promise a living world.
Give every faucet a drain. For each resource, name what destroys it, how fast, and what happens when players keep it.
Never let player-held stock block spawning. Decouple respawn from the bank: a creature should return on its own timer even while players sit on piles of its materials.
Test with locusts and hoarders, not tourists. In your own test build, reward testers in progression for grinding one resource, then watch the bank.
Ship a visible fallback. Decide in advance what your world looks like when the simulation is off, so a dead ecology degrades into a playable world instead of an empty one.
Write the correction into the pitch. If your trailer promises a dragon driven to a village by hunger, write down the exact chain that must work, and what breaks first.

