How UO rares were born
(Visited 53379 times)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.
36 Responses to “How UO rares were born”
Sorry, the comment form is closed at this time.
You know, on one hand, I really enjoy these insightful posts on one of my most favorite games of all time…but on the other hand, knowing how the sausage is made… XD
I believe the black dye tub was started by a third-party application that changed the index value sent from the client to the server (which the server didn’t check). Black was the easiest color to get since it was the result of any unused index, but other colors reserved for monsters (such as fire or ice) were also possible but were much more rare and I can only assume more vigorously punished as I stopped seeing people use those colors shortly after the black tubs became somewhat common.
“Our wisdom was not in inventing an awesome cool collectible feature. It was in surrendering control to the awesome power of emergent behavior.”
Exactly! While my industry isn’t related to entertainment, this is something we are fighting with. We have to push the norm of centralization and control and get people comfortable with the fact the the folks who use the system may be able to provide value beyond what the creators bestow upon them.
[…] This post was mentioned on Twitter by Raph Koster, Mark Madsen, Mike Maughmer, Syd K., Ask A Jedi and others. Ask A Jedi said: Not TOR related, but a great writeup from Raph Koster on how "rares" came about in Ultima Online. http://tinyurl.com/26trgxj #gamedesign […]
I would love to read an article on old UO exploits like house breakins, talking about how they were possible and how the live team dealt with fixing exploits both proactively and reactively, and how they used blackhat websites like DrT, etc. I’d find that fascinating.
It’s been years since I’ve played UO, yet I still very much enjoy reading this little posts of insight. Healthy emergent behavior I think would be rather key to the long-term success of an MMO. I of course say “healthy” to differentiate from those which do not add to the game in a positive way (driving players FROM rather than TO the game).
If it helps, this is me gently prodding for the house break-in write-up (and, really, anything about your UO days — they are, by far, my favorite articles).
And Scopique, it’s still damned good sausage, regardless!
And now 30 minutes of unproductivity as I go re-read the UO resources articles yet again…
I remember creating black and slime green dye by following some sort of ritualistic process described by one of my more devoted guildies. Sadly enough i forgot the details over the last 12 or so years. We usually were in a great hurry to do these types of things before upcoming patches as we always thought they would be fixed with the next patch, usually they wernt. 🙂
I also remember going out on a boat looking for the fault line between the zone servers to dupe gold so we could bypass some sort of dupe-checking algorithm that processed each zone server individually… o.o
I’m a little surprised that it was practical to be so accepting. When I’ve worked with code that had lots of object classes and behaviors, I’ve felt strong pressure to help keep it manageable by reducing the number of corner cases. Someone whose backpack is equipped with a portable patch of water seems likely to be a fruitful source of weird new corner cases. Of course, there’s an important tradeoff that things should have rich behavior so that interesting gameplay emerges and/or the world feels more immersive. Such behavior creates an irreducibly large number of cases you need to specify, implement, and test. But various things I can imagine doing with a portable patch of water would seem to bring complexity without much gameplay or immersion. Committing to handle weirdness like people stacking multiple portable patches of water on top of each other seems like it could be a significant simulation headache for little gameplay gain.
Fascinating.
Please continue writing these inside information posts about UO. Anything you can share is very welcome. Aside from the nostalgic value, these behind the scenes articles provide a rare peek into early mmorpg development and evolution.
Thanks
William, UO had very FEW object classes. Instead, stuff like “Water” was handled by a resource property system that was independent of object classes. Behaviors were handled by attached scripts, also independent. Browse through the “ultima online” tag for articles on some of that stuff.
The upshot was that if youw anted water to be stackable, you would just tick the “stackable” checkbox.
Every time I think/hear about UO, all I want to do is go back and play it again. I remember trying to collect the various rares, spending hours waiting for them to respawn so I could try to get it before someone else.
Games like WOW, I think have really killed the true MMORPG.
I agree with barduck, we want more stories of UO.
Guys, while I love pulling the curtain back on UO too, please keep in mind that the game is still a going concern, and that while many bugs have long since been addressed, giving out too much info on exploits may suggest productive approaches for new exploits.
I do recall one particular instance from the early days when we had one of the coders in a group chat and mentioned a certain enhancement we’d like to see. He excused himself for a moment, and when he came back, said that the change had been made.
-5 for poor code control. +10 for responsiveness to player feedback.
I always thought that things like the fruit bowls were intentional, that the bugs were strictly things like the water tiles and two story statues. This is the first time I’ve realized that it all was a bug, not just that part of it.
And for the first time I’m understanding the breadth of what you are talking about with “emergent behavior”.
UO was magical, and I think we can all agree that it was more than just the “rares”. The social aspect, in particular, which rares had some part in playing. “Ownership” is another thing, and that’s a complicated aspect that involves just about everything. Hell, players felt like they “owned” valleys and crossroads and things like that. Even, in part, the “rares” market.
Another aspect of all this “emergence” was the hidden locations that players “marked”. I think this is an important aspect. Discovery, which is something that’s also sorely lacking in MMORPGs. Not just walking into an area that you’ve never been to before. Real discovery, where you do something to make these discoveries such as hidden locations and even “rares”, such as it was.
Yes, UO was “magic”. Maybe accidental, but it’s like a big red arrow pointing “this way”. But discovery that’s designed to be made by everyone on a quest, this doesn’t have the same flavor to it. Unless maybe, if it’s a challenge that’s made to be hard and not an automatic.
At any rate, there’s the road for you developer types. It points “that way”.
You want “next generation”, but that’s new tech only to you guys. To players, “next generation” is solving these problems associated with this stuff, and bringing it to us players. We already know how to fly.
Sam: good to see you haven’t changed…
Even if any of the issues still existed, and any of that original code is still running, security through obscurity is never the way to go. If any knowledge from Raph’s posts lead to a successful exploit, we might have to call UO a 14-year beta test.
[…] Hacker News Tagged with: born • Online • rares • Ultima • were If you […]
Interesting history lesson – thanks for sharing this Raph! I know it wasn’t the same kind of issue, but this reminds me of how the resource system in SWG lead to armor with nearly 100% protection from damage. It also reminds me of those rare, ridiculously powerful weapons that would drop now and then. It would be interesting to hear some history on those. True bugs? Oversights? Intended?
When I first started reading this I was sure it was going to be about rare USEFUL items but to find out that these items had almost no use in the game and that they were not even designed to be rare is awesome. I think even though the items didn’t have any use, being apart of the players ability to customize there house was very useful. The question is how do we create the rarelust today?
I can remember posting on the org. Markee site many years ago and still speak to some of those people I meet there. I was mostly posting in the “Attended Macroing” forum back then.
Some of the server-birth rares that I can remember are: Statue from Minoc, Broken Chair, Covered Chair, Lich Throne, Talking statue, blood tiles (5 types), Water tiles, tree stump with a axe in it, 3 connected jars, empty jar, the viles from the mage shop in Magencia, and there are quite a few more. Not counting the weekly or daily spawns like the empty basket or fruit basket, and the rocks.
The greatest thing about UO (other than that is the place I meet my wife) is the friendships that forged from the game. 13 years later I still speak to people I meet in that game. What I find more confusing than anything is the fact that all these years later, there has never been a game since that has done all of the things UO did. Let alone bring the feeling that UO did the first time you walked out of town and got pwnt by a bear or skeleton or even another person.
Two of the lessons that UO imparted to every MMO that came after;
1) If you give players enough tools and freedom, they will build a world deeper, richer and more complex than you could ever script for them.
2) If you give players too much freedom, some small number of them will gleefully pull the world down in flames.
The market learned lesson two very well. Unfortunately, it’s been far too slow in remembering lesson one. It’s a tough balance, to be sure, but the genre will never reach its full potential without it.
@ Yukon, add this:
2a) Unless…unless the players can actually do something to this small percentage to defend their world from the flames. And then, the world becomes even deeper, richer, and more complex for the experience.
Yet, the game producers seem to want to either protect this small number from such justice, or remove all the depth and richness and complexity because of the unforgiving and eternal fires they would bring.
If you give players the power to sanction other players, this power will be misused by bad actors to victimize innocent players.
In UO, we had the whole phenomenon of Blue PKs using a variety of dodges to flag innocents as criminal in order to kill them without penalty.
An even clearer example occurred in The Sims Online, with organized “mafias” blackmailing players with the threat of trashing their reputations in the social network. This is arguably a major factor in TSO’s demise.
It could be classed as an emergent behavior (like rares…. hmmm, there’s a thread about rares…), but it’s so predictable a trend that I’m openly skeptical that ANY player justice system can work outside of a very limited and constrained framework.
It’s not far removed from vigilante ‘justice’ in real life. An eye for an eye leaves the whole world blind.
But if players can only carry out this “justice” on the players who deserve it, via flags without the “dodges” (as you put it very well), then why can’t you see that working?
Zomg dont lock down your black dyetub where public can get to it, or even friends, or someone would dye it a normal color 🙁
I don’t think it’s possible to have a system that only flags those that deserve it, owing to the subjective nature of that judgement. And if it is possible, I don’t see the value add outweighing the cost.
Raph’s essays on the subject, under the games tab, are worth reviewing. My two cents worth from personal experience is that being an in-game cop is time-consuming, boring and not something I’d care to do again without a decent salary (I mean real money, not virtual gold).
And that’s apart from the question of whether using violence to enforce my own view of right and wrong is significantly different than killing some n00b, taking all their worthless stuff and feeding it to a goat while they watch.
Yukon, I really don’t understand a response like that. Where do you see subjectivity coming into the picture? How does a player get to choose what’s right and what’s wrong? The game has to do that. And if you keep it simple, it works.
UO tried to get “gamey” with theirs. A thief “defends” himself, and can kill a blue victim and not get a flag for murder? Why can’t people see that what they were doing is building in a “dodge”? KISS, simple to avoid such loopholes.
If the subjectivity is not in the hands of the players, it’s baked into the ruleset and the system will be gamed until it’s meaningless, no matter how simple or complex it is.
That just seems so fundamentally self-evident to me that I don’t know how to explain it or break it down any further.
Even in games where the flagging is as basic as “friend/enemy”, you get jerks sabotaging their own team for laughs, and you end up taking “friendly fire” penalties to get them out of the way.
The best flag is the “You Can’t Attack Me Without My Consent” flag. That’s simple.
Well, no, because the jerks just became a criminal to their own guild.
See, you’re stuck on the problems that arose from UO’s system. And that system was screwed up because of looking at it as a game, instead of a world. In this particular case, you’re talking about guildies killing their own because guildmates could freely attack their own, so as to allow training of skills and tactics. But just as the other incident of “gamey” design with the thief “protecting” himself, this is building in an ability to abuse other players. If guilds want to train, let them use a Duel system that includes groups. The same system that can also be used for player contests outside of their own guilds.
Yeah, me too. 😛
I’ve had a first-hand look at the limitations of tinting clothing/objects from my attempts at creating content for Second Life. An item textured with a ‘light’ base loses detail and looks flat when overlaid with a dark color, but an item with a ‘dark’ texture is impossible to render in light colors.
UO’s dye system IS a clever use of limited art resources, but the consequence is that the closest you can get to black on most clothing pieces (without a ‘true black’ tub) is a medium grey or dark blue. We players might prefer a nice rich black with appropriate highlighting to make it pop, but that would require either doubling the clothing art and animation files, or a smart tinting system with functionality similar to Photoshop’s layer modes. Neither seems likely at this point in UO’s life cycle.
And sometimes you just need a real black. You don’t want to show up to a formal occasion in a powder blue tux.
UO supports palettes, though, not just flat colors. In UO terms, they are called “hues.” The challenge is that the source art needs to use as much of the range from black to white as possibel to maximize the range of the palette that shows up. Most UO art does not.
Ahhhh. I wonder if that’s what they used to produce some of the cloth colors in the Tailoring Bulk Order Deed system.
They’ve introduced a number of different dye systems in the time I was away from the game, which would increase player options if they weren’t so hard to come by. The saving grace of the dye tub, crude as it is, is that you can experiment to get the effect you want at minimal expense.
[…] Raph however has another story of his time spent on Ultima Online in which he reveals how Rare artifacts actually came to be. […]
I don’t know the house break-in exploits, but I did discover and report a boat break-in exploit that is now fixed. I discovered it by accident. I had a boat, and multiple characters. I logged one character out while he was standing on the boat. I logged another character in and took the boat out for an adventure. Later, I logged back in as the first character. In the meantime, someone else had anchored a boat in the spot my character had logged off from. When I logged him back in, he was on the deck of someone else’s boat and had access to their hold. Had I been the sort of person who exploited fellow players, I could have used this to rob lots of boats (of course that could easily have gotten my account banned). Instead, I reported it to the developers, who fixed it quickly. I’ve never posted the “how” of the exploit publicly before now. I feel safe doing that since the bug is long since fixed and I haven’t been playing the game for years now.
[…] the agency, tool makers or tool users, is not solidly established. Other times markets spring up by accident. But in the main, we are exchanging one type of fixed developer vision for another. Modeling a […]
[…] How UO rares were born […]