UOX
Encyclopedia
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.
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:
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.
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), Daniel Stratton (aka Abaddon/Maarc), "Tauriel" (real name unknown), and Bryan Pass (aka Zippy), is now primarily maintained by Scott Thompson (aka giwo/Zane) and Geir Ove Alnes (aka Xuri/Xoduz) on SourceForge
.
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.
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.
Ultima Online
Ultima Online is a graphical massively multiplayer online role-playing game , released on September 24, 1997, by Origin Systems. It was instrumental to the development of the genre, and is still running today...
(UO) server emulator
Server emulator
Server emulator, a term that is widely used to describe reimplementation of MMORPG game servers, typically clones proprietary commercial software by a third party. The term "private server" is also used while it may not be accurate as often the legitimate server is also privately owned...
that is written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
and released under the GPL
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
. 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 22, 1997.Early development
Originally decentralized, early development of UOX3 (circa 1998) was done by many individuals with no version control and little synchronizationSynchronization
Synchronization is timekeeping which requires the coordination of events to operate a system in unison. The familiar conductor of an orchestra serves to keep the orchestra in time....
or quality checks. This led to what is often termed "spaghetti code
Spaghetti code
Spaghetti code is a pejorative term for source code that has a complex and tangled control structure, especially one using many GOTOs, exceptions, threads, or other "unstructured" branching constructs. It is named such because program flow tends to look like a bowl of spaghetti, i.e. twisted and...
", stability issues, and bugs
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...
. 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. JavaScriptJavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
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), Daniel Stratton (aka Abaddon/Maarc), "Tauriel" (real name unknown), and Bryan Pass (aka Zippy), is now primarily maintained by Scott Thompson (aka giwo/Zane) and Geir Ove Alnes (aka Xuri/Xoduz) on SourceForge
SourceForge
SourceForge Enterprise Edition is a collaborative revision control and software development management system. It provides a front-end to a range of software development lifecycle services and integrates with a number of free software / open source software applications .While originally itself...
.
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
- Open-source C++.
- Customization through JavaScript.
- Commands are scriptable - more than 100 commands are scripted and can be modified by administratorsSystem administratorA system administrator, IT systems administrator, systems administrator, or sysadmin is a person employed to maintain and operate a computer system and/or network...
already, and new ones can be added. - All UOX3 script and configuration files are reloadable during runtime.
- Extensive logging of server errors, packets sent and received, commands used, spellsMagic (gaming)Some role-playing games or game systems can include a set of rules that are used to portray magic in the paranormal sense. These rules simulate the effects that magic would have within the game context, according to how the game designer intended the magic to be portrayed...
cast, combat messages, and in-game player chatOnline chatOnline chat may refer to any kind of communication over the Internet, that offers an instantaneous transmission of text-based messages from sender to receiver, hence the delay for visual access to the sent message shall not hamper the flow of communications in any of the directions...
. - Regional spawningSpawn (computing)Spawn in computing refers to a function that loads and executes a new child process.The current process may or may not continue to execute asynchronously...
system that allows an administrator to spawn large numbers of non-player characters or items without significantly increased world-save times, because objects spawned regionally are not saved and only kept in memory for as long as the server is running. Upon server restart, they are all re-spawned. - Region-specific control of weather effects, lighting, appearance (Felucca, Trammel, spring, winter) and ore-resources.
- Custom dictionary system allowing for the display of server and script messages in multiple languages (Currently there are only dictionaries for EnglishEnglish languageEnglish is a West Germanic language that arose in the Anglo-Saxon kingdoms of England and spread into what was to become south-east Scotland under the influence of the Anglian medieval kingdom of Northumbria...
, and to some extent - FrenchFrench languageFrench is a Romance language spoken as a first language in France, the Romandy region in Switzerland, Wallonia and Brussels in Belgium, Monaco, the regions of Quebec and Acadia in Canada, and by various communities elsewhere. Second-language speakers of French are distributed throughout many parts...
and GermanGerman languageGerman is a West Germanic language, related to and classified alongside English and Dutch. With an estimated 90 – 98 million native speakers, German is one of the world's major languages and is the most widely-spoken first language in the European Union....
, though any language with a country-code supported in the Ultima Online client is possible to use). - Customizable races, allowing for alliesAlliesIn everyday English usage, allies are people, groups, or nations that have joined together in an association for mutual benefit or to achieve some common purpose, whether or not explicit agreement has been worked out between them...
, enemies, monsters opposing or assisting each other, skill-bonuses/penalties, etc.
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 UOX1 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.
See also
- Ultima OnlineUltima OnlineUltima Online is a graphical massively multiplayer online role-playing game , released on September 24, 1997, by Origin Systems. It was instrumental to the development of the genre, and is still running today...
The game that UOX emulates. - Ultima Online Shard EmulationUltima Online shard emulationFans of Ultima Online have reverse engineered the game to produce server emulators of the original Electronic Arts servers. With the modern server-emulation software available today, it is possible to customize most aspects of the game and support large numbers of concurrent players on a single...
External links
- UOX3.org The current official UOX3 development site.
- UOX3 @ Sourceforge The UOX3 Official Sourceforge Project
- OpenUO @ Sourceforge A Sourceforge Project for all things UOX