Opentopia Directory Encyclopedia Tools

UOX

Encyclopedia : U : UO : UOX : UOX



 

UOX, or Ultima Offline eXperiment, is an Ultima Online (UO) server emulator that is written in C++ and released under the GPL. Today, the term UOX almost exclusively refers to the third version, UOX3.

Overview

UOX is a software suite that allows a user to manage a customized Ultima Online server to which they or others may connect. UOX is both free and open-source, released under the GPL, allowing anyone to modify and customize it to his or her will.

History

UOX has had a long history, and has seen three major version numbers, often marking change in development leadership.

UOX

Created during the beta testing of Ultima Online in 1996 or 1997, the first version of UOX is commonly regarded as the first Ultima Online emulator. Created by Jaegermeister. This version was closed-source.

UOX2

The second version was by Marcus Rating (aka Cironian), who rewrote UOX . UOX2 was also single-player . This version was also closed-source.

UOX3

UOX has spent the majority of its lifetime in its third version. Originally re-written from UOX2 by Marcus Rating, it has passed through many hands and gone through monumental changes. Some believe that the current rendition of UOX should be dubbed UOX4, as virtually every line of the program has been rewritten. This was the first version to have the source released to the public under the GPL. It was released on October 22nd, 1997.

Early development

Originally decentralized, early development of UOX3 (circa 1998) was done by many individuals with no version control and little synchronization or quality checks. This led to what is often termed "spaghetti code", stability issues, and bugs. Yet, even so, the original creator, Marcus Rating, was opposed to centralizing development:

"Anyway, and I should have probably said this earlier: I do not think that centralizing the development of UOX, as it is obviously happening, is a good idea. It was always wonderful to see how a lot of people just added their favorite features to UOX without having to think if someone else was working on the code too. Yes, it does lead to bugs sometimes, but actually UOX is still in a pre-alpha state, where no one should care about stability issues. Also, I do not think a revision control system is really necessary, if people just give a bit of an advance announcement before releasing things and remember to document all changes in the update.txt. (Yes, I have to remember that myself too)"
That choice and the resulting code base has often been one of the primary criticisms of the project (see: criticism). These issues have caused some to choose to create branches of the code (see: branches), and still others to create new emulators entirely.

Recent development

Today, UOX3 would appear as an entirely different program to one who used it at its inception. JavaScript is used to make just about anything in the game world scriptable, and the code is almost entirely object-oriented. Along with this rewrite, UOX3 has seen many enhancements in cleanliness, organization, and better design principles. This new code base, originally created by Matthew Randall (aka EviLDeD) and Daniel Stratton (aka Abaddon/Maarc), is now primarily maintained by Scott Thompson (aka giwo/Zane) and Geir Ove Alnes (aka Xuri/Xoduz) on SourceForge.

Web sites

Originally, UOX3 was hosted as a part of ["UO Stratics"] at uox.stratics.com. This was during the time when Marcus Rating was the primary developer.

As Matthew Randall and Daniel Stratton took over, development moved to a new web site, UOX3Dev.net. This web site remained the focal point of UOX3 development during its prime.

After the UOX3Dev.net site went down indefinitely, [UOX3.org], ran by Geir Ove Alnes, became the new official UOX3 web site, and remains the official web site to this day.

Features

Branches

Due to its popularity and the nature of open-source projects, UOX has been branched many times. Some of these offshoots are still around and have grown into projects that are completely different from UOX, and some have also been branched into new projects themselves. All were, at some point, based on the code of UOX3 or derived from an emulator that used UOX3 code. No known offshoots of either UOX(1) or UOX2 exist (likely due to them both being closed-source).

Branching took place when an individual or group decided they wanted to make changes to the program not consistent with the current development team's goals. In these scenarios, new projects based on the UOX3 source code were created in order to pursue the particular goals of that group. No other Ultima Online emulator has seen as many branches as UOX has.

Below is a short list of known branches, see ["Xuri's UO Emulator Timeline"] for a more complete listing along with information about many other (non-UOX derived) emulators.

Criticism

UOX (especially UOX3) has had many critics over the years. The most notable topics of criticism were on the buggy nature of the program, and the organization & leadership of the UOX development team.

A more recent criticism is of the movement towards JavaScript as the primary method of customization. Some feel that, given the open-source nature of the program, using a scripting language only complicates the code and is, overall, unnecessary. This view has only been shared by a minority who know C++ well enough to be quite capable of easily customizing the core of the program without the use of higher-level scripting languages. Some have even argued that there is already too stiff of a competition among Ultima Online emulators that have scripting support, and that being purely low-level code could be an advantage, though others have argued that it would still attract more users if it were easier to customize, and so the exportation of functionality to external scripts has continued.

Ultimately, these criticisms have led to the creation of other emulators or branches of UOX3, a few of which are noted above.

See also

References

External links

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.


Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: