The Emulator Post

(Or, why RunUO has not happened yet, or even why it is not very feasible)

Alright. There has, again, been a lot of talk about switching emulators since Sphere .51a is so limited etc. This pops up every now and then (for good reasons, I might add!) and the discussion usually looks exactly the same as the last time it was brought up; so I thought I'd write a post now, detailing the facts of why we haven't switched yet, what problems there are and what advantages there are.


~ RunUO ~

This is an emulator many of you, players and staff alike, have high hopes for. It is very well made, stable, not very buggy at all and with an impressive amount of features built into it from the start. So, why haven't we switched over to it already? I asked myself the same question a long time ago, until I started digging a bit deeper.

The sad truth of the matter is that while RunUO is indeed very customizable, it is built from the ground up to emulate OSI clones, as in shards that emulate the official servers, with everything that implies. It is completely built around the "game" aspect, and has zero support for things like what we do on Legacy in the form of quests and whatnot. Out of the box, with no added scripts, GMs don't even have the ability to make NPCs talk, sad as though it may seem. People have asked for equivalents to .xsay, .control and a lot of other commands for a long time, but the developers have said that they will never implement anything like that. Now, it should be said that some scripters have taken it on themselves to do so, and while commands like .xsay are functional, there is still no "proper" .control, just workarounds for it, which would make running quests much more difficult.

How bad is that? In my opinion, pretty bad, but after some adjustment... well, it might be bearable. But then there's the next problem, scripting. Sphere .51a uses a script language called SphereScript, which is very intuitive and just plain easy to learn, if limited in its applications. RunUO uses C# (C-sharp), a programming language that's -far- more complex. This wouldn't be a problem if anyone on staff actually knew it, but none of us does, and while I don't speak for the rest of the staff in this, I can say that the task of learning an entirely new programming language is far too daunting for me, at least.

So what can be done? Well, we have accepted scripts from players in the past, so there's an option right there... but quite frankly, that's not enough. Scripting can't be entirely in the hands of the players, for many reasons. They need to be held to a certain standard, written in (mostly) the same way, the staff needs a way to check for bugs, fix balance issues, write "secret" quest-related scripts, and dare I say it, make sure there are no exploits in player-contributed scripts, etc... the bottom line is that unless one of the current staff members takes it upon himself/herself to learn C#, a conversion will never happen.

There are some other concerns too, namely the loss of the world etc - but that's a temporary concern, and could be worked around. As it stands, while RunUO could bring significant benefits, it also has significant disadvantages compared to even our old Sphere .51a, and it is in my eyes not a feasible option for a server switch at all... at least not at the moment.


~ Sphere .56 ~

Sphere .56 is a new offshoot of the SphereServer "family" - it's actually newer than Sphere's release candidates for Sphere 1.0, which is a buggy mess and should never ever be-- okay, tangent. Back on track.

.56 offers -tons- of new features over our current server emulator, including a myriad of bugfixes and things. It is not quite up to RunUO's standards yet, but far closer than what we have today, with a substantially more powerful version of the SphereScript language for implementing new features. It does have its own share of problems, including a number of bugs that have not been fixed yet; the latest release is .56a, which had a number of daunting issues, but .56b is slated to be released soon, and by the looks of it it seems more stable by far. It should be said that .56 is not being developed by the "original" Sphere developers - they are busy working on 1.0 and their new MMORPG. Instead, .56 is being written by some who felt that the newer Sphere versions were inferior to the established but old .55i, and decided to improve on it instead.

So, advantages vs. disadvantages. First of all, .56 has some clear advantages in that it uses SphereScript, same as our current emulator. The language has been developed and changed a bit, so some (re-)learning will still be necessary, but nowhere near the amount of work learning C# would require. Also, chances are we could keep a lot of the world (if not all) if we converted to a newer version of Sphere, which would save a substantial amount of work for us. Also on the GM side, it would allow us to keep using Axis which is a -great- tool for GMing. RunUO has a similar (but much slower) tool called Pandora's Box, however. Using .56 would also allow us to keep many of our scripts with some rewriting, and would add many new features.

The disadvantages are that it doesn't offer the same amount of customization as RunUO (though still a very good amount) and it isn't as modern or up to date. The current Sphere community is also smaller than RunUO, I believe, so it's not as easy to get support for it.

This is in my eyes a -far- more feasible option for a new emulator.


~ Other Emulators ~

To be honest, I'm not up to date with the other emulators out there, except for SteamEngine which might be a viable option since it uses SphereScript as well - though development on it is a little slow.

The others like WolfPack, UOX, POL, etc all have different script languages and as such suffer from many of the same problems as RunUO. Thoughts on this are welcome, of course.



Anyway, I hope that this might have cleared some things up for some of you. I've been a bit concerned over this since RunUO may indeed seem all nice and shiny - and granted, it's great in many ways - but under the surface, it's not the same story for a shard like ours, at least. I'm not saying that it is entirely out of the picture, but right now it's not a very great option, to be frank. Feel free to post your thoughts and insights on the matter, as input is always welcome.

Discussion Thread