|November 24th, 2010|
Amaranthar in the comment thread on the last post referred to “rares” in Ultima Online as a feature. They weren’t really, though. They were a bug.
First, a definition of rares. These were simply items that were incredibly uncommon. Often they were near unique. They couldn’t be found via loot — they were only spawned once, really, when the server came up. As a result, they were immediately collectible. Most of them had no use whatsoever — they were simply uniquely colored objects, like a red vase that a crafter couldn’t replicate, or an object that was outright not craftable at all. A few were obvious bugs, like “water tiles” — a literal patch of water that you could pick up and stuff in your backpack, which because of how the simulation layer behind UO worked, actually functioned as water. You could fish in it, or pull a jug of water for cooking from it.
Needless to say, collectibility alone was sufficient to drive these to have immense value in UO’s economy, which was largely player-driven. Rares began to show up on eBay going for substantial dollar amounts, sometimes in the hundreds.
Ultima Online was not a streamed title. It shipped on a CD. You can think of the CD as basically a pre-cached version of the assets for the game. We did have the ability to add new items to the actual client cache, via a patch, but the baseline was always the CD’s contents.
We took advantage of this fact to divide everything in the world of UO into two classes: static and dynamic objects.
- Static stuff was stuff that we didn’t expect to change. It was trees, it was the terrain, it was the water features. It was the buildings in the cities, and the furnishings in the buildings.
- Dynamic stuff was simulated by the server, and in fact, we simulated quite a lot. Every creature, every item someone crafted, every invisible object used by the simulation (spawners, for example).
Stuff that was on the CD was therefore “dead” stuff. Stuff that didn’t move, stuff that didn’t behave. To get some behaviors out of them, they could still have resource system data on them (even a static object knew that it was made of wood, for example) and then we had invisible objects that summed up all the resources from a small area so that you could mine from the ground, etc. These were called “chunk eggs” and eventually led to 8×8 macroing.
One of the vicissitudes of AAA MMORPG development is that you gold master a disc near the end of development. Not at the end of development. You are able to keep working on server-side stuff for a while after the disc has to be locked down. And this means that bugs keep coming in from QA (and then from Live operations) well after the disc has been committed to and cannot be changed. You’re used to seeing large patches on the first day of an MMO, and this is why.
Well, many of the bugs that were reported in that period (and ever after) in UO were map bugs. Examples:
- When laying down vases on the table in a particular room of a particular structure, someone accidentally placed that vase as a dynamic object rather than a static one. The bug report is “I can take the vase, and I am not supposed to be able to.”
- Water in UO had a painstakingly created depth effect on the coastlines, which was made by using translucent water objects over a trench close to the coast, then fading the translucency; once you were at a depth where the water was opaque, we switched to tiles. (I spent many hours filling in those objects, and wrote flood-fill code to place them all. You can faintly see the effect in the radar map here — a “halo” around the coastline). It was all for the sake of a cut feature: having some of the fish creatures visibly swimming under the surface in shallow water. But, sometimes a tile got missed, and there would be a “hole” in the water.
The fix for these was to place a dynamic object there, to patch the hole, or replace the vase.
But when the UO server booted up, any dynamic object that wasn’t where it was supposed to be, got respawned. So if you forgot to mark that object as “no pick up,” it would just get picked up again, and at next server reboot, replaced, and…
In fact, on some servers, the fix was applied live, not as a dynamic object patch… the result there was even rarer — if the GM forgot to make the object no pick up, then there was a temporary patch that would get stolen… and wouldn’t get replaced.
How did players find these? By mousing over every single tile in the world.
Other types of rares had a similar birth. “True black dye” was the result of an incorrectly initialized value on a dye tub. A statically placed dye tub couldn’t have an index into a hue table, you see. (Hues were basically palettes of colors used for tinting objects). And if you didn’t have a hue index, the palette you got was solid black — even eating away the shadows and highlights. You looked like a hole in the world.
I am speculating, but somewhere a dye tub that should have been static was left dynamic, and didn’t have a hue value, so someone tried dyeing cloth from it, got true black, so then they took that color into one of their own dye tubs (you can transfer dye colors from tub to tub in UO) and started selling true black clothing.
True black clothing started going for hundreds overnight. So we removed it (the artists hated it as an abomination). Which just made the color rarer, which drove up value even more.
The upshot of rares? Players started launching websites and forming communities around collecting, building lists and making real money and creating strategy guides around rares. Check out this video by someone who dove into it wholesale:
After banging our heads against this sort of thing for a few weeks, we embraced it instead. Players felt clever. They had invented a minigame out of our bugs, and it was a minigame people were willing to pay thousands of dollars a month to play. People started making museums of rares.
Our wisdom was not in inventing an awesome cool collectible feature. It was in surrendering control to the awesome power of emergent behavior. The credit we can take is only for having created a fertile and dynamic enough environment where this sort of thing can happen. Environments like this also produce house break-ins (maybe I’ll write about that someday…) and PKing and much else that can be incredibly pernicious. But far more often than you would think, you get magic through serendipity.
Your other choice, of course, is to assume that you are going to produce magic on demand.