@Morgana: Programmers are packrats by nature. I don't believe for a minute that they really have lost the original server birth backups, and the backup of every single major publish before AOS. I haven't written a line of code in 10 years, but I've still got backups of stuff I did in college. The first time you have trouble because somebody does something you didn't expect, or runs a program at the same time that causes a crash, or you just realize that you're the only person in the whole world who thought all those neat changes were really great, and you don't have that original code to put up til you can get it fixed, you learn to always keep a backup of the backup of your backup. With UO's history of having dozens of bugs pop up with every patch, and even more in a major publish, I can't imagine them just blithely deleting the old code. I especially can't believe that they would delete something as important and historic as the original server birth snapshot.
Yeah, I checked out the free shard server side code. It's open source. The server side code for most of the free shards was written by a young man, in the back of a bar in his spare time after work, before he went to Iraq to serve in the Marines. It's just C# subroutines, combined with loot tables compiled by using a program that collected all of the data from the actual loot from several thousand monster corpses of every type to get the probability distribution, and combat tables based on both actual damages for every weapon type, and the combat data that the devs of that era released. The data may be off by .001%, but that's not enough to matter to the average player.
It's actually probably a lot better design than the tens of millions of lines of interdependent code in the original UO programming. Smaller is faster and consumes less resources. It's also easier to debug. Modularity and the fact that it was written by one person, not hundreds, so it is internally consistent, make it a lot less susceptible to bugs in the first place, and a LOT easier to introduce new content and change major properties of the game. Instead of spending dozens of man-hours figuring out whether your subroutine will clash with anything else in that mountain of interdependent code, you just add a line of code to reference your subroutine and you're done, providing that your new system is internally consistent and error-free. For instance, one free shard had really highly developed tree harvesting system. There is a harvesting tool to choose between collecting fruit, bark, leaves or logs. An oak tree always yielded oak logs. A cypress tree yielded cypress wood. An apple tree yielded apples. If you cut it down, it yielded apple logs. Once an apple tree was cut down for logs, you couldn't harvest any more apples from it until it had time to grow back. It made sense, a lot more than UO's RNG determining what kind of wood you get. It was a complex system that took a matter of days to develop, whereas simply adding an RNG to the trees on production shards took literally years. The fact is that the complexity and interdependence of the original UO code is one of the major reasons why it is so hard to get even minor additions to the game, and most of the ones we do get are heavily dependent on the RNG, while some of the more ambitious free shards can change major systems in a matter of days, sometimes hours, without ever worrying about how many bugs they might be introducing, or whether it will break combat or do something really weird. And they seldom have to access the RNG; the changes can be both detailed and item-specific. All in all, I believe that the idea of a smaller, modular server-side code is one of the reasons why the free shards have proliferated so much, and no two are exactly alike.
And I think running an entire shard on one server is great.
The truth is that UO uses multiple servers for each shard because, in 1997, a single server didn't have the processing power to handle an entire shard with 500 players on it simultaneously. The best commercial connections couldn't handle much bandwidth, either. Having Felucca split up into multiple servers caused endless problems with both playability and bugs, including the notorious item dupes, but it was a necessity, given the technology of the day.
On the other hand, one free shard I checked out during the course of this discussion bragged that it was able to handle both 9,000 players logged in simultaneously AND a 15 gigabyte per second denial of service attack.
How large of a player base can a single modern server handle today? Most players will log on about an hour a day, on average. That means that a game with 9,000 players logged in will have an active player base of about 9,000x24=216,000. But games like UO that require utility accounts won't all be active. The majority, in fact, will be utility accounts for storage, utility characters, house holders, etc. so those accounts will seldom be logged in. In other words, that one server could probably handle a subscriber base of about a half-million accounts without ever exceeding to maximum capacity. But UO has literally dozens of servers per shard, with just a few thousand subscribers on any given shard, and populations on some of the less popular shards that may be less than 1,000, with less than 100 people online at any given time. It's a tremendous waste of resources, and increases their operating costs tenfold over the optimum levels. It's about like driving to work in a tractor trailer. It works, but it just isn't practical.
10 years ago, things were different. At UO's height, there may have been 10-20,000 players logged in at any given time, spread across 26 shards and hundreds of servers. Even with literally rooms full of servers that were top-of-the-line back then, in the publish 16 era, people could barely move and server crashes were common when just a couple hundred players were concentrated in one area of a server, at a champion spawn.
If they were writing the code for UO from scratch today, using current server capacity, they might have two or three servers per shard, but they certainly wouldn't have split Felucca into several server boundaries. More than likely, they would have adopted the one shard per server system that the free shards use.
Even if the UO devs somehow managed to lose everything, both programming languages and equipment have improved vastly over the last 13 years. They should just accept the challenge and redo the server side to take advantage of all the great new hardware, improved programming languages, and the vast increase in available bandwidth. We know that all of the combat damage tables and monster loot tables are open source, there for the taking. A kid was able to make a perfectly functional T2A server side from scratch in his spare time, so I don't think that it would be nearly the impossible task for an entire team of professional programmers that they make it out to be.
They just need to realize that we don't care what the server side code looks like, as long as gameplay is the same as it was back then. Whether it's tens of millions of lines of code written in a forgotten language, or a few brand-new C# subroutines, if it looks like T2A, and behaves like T2A, and plays like T2A, for all intents and purposes, it will be T2A.