Is the use of the term "emulator" to describe RunUO really accurate?
I've wondered this for a while now and I think it is worthy of discussion. RunUO is quite often referred to as an emulator; even Wikipedia vaguely describes it as such.
But what is RunUO really? RunUO is merely a reimplementation of the UO server software. This fits a liberal definition of the word emulator; which states that for software to be an emulator it must merely mimic the function of other software. However, RunUO does not appear to fit the technical computer science definition of the word.
Strictly speaking, a software emulator must allow a computer program "to run on a platform (computer architecture and/or operating system) other than the one for which [it was] originally written." The UO server software owned by EA is not being emulated. It has been completely rewritten from scratch through a process of reverse engineering packets sent and received by the client. It is a completely new piece of software with no ties to the original code base, yet allows existing clients to connect.
This is less analogous to common, true emulators and more analogous to things commonly mistaken for emulators, such as WINE. WINE removing a client win32 application's dependency on Microsoft's GUI libraries is analogous to RunUO removing the game client application's dependency on EA's game servers.
Perhaps the closest analogy is that to Samba. With Samba, a Windows file sharing server can be set up on any operating system anywhere without needing a new client. Samba is not considered an emulator, but like RunUO it is a free software reimplementation of proprietary server software with which the proprietary client is compatible. If the many projects like Samba which are clearly in the same class as RunUO (reimplementation of a server serving the same legacy client) are not considered emulators, why are all reimplementations of the UO servers (even those other than RunUO) considered emulators?
This makes no logical sense to me.
Thanks for reading.
I've wondered this for a while now and I think it is worthy of discussion. RunUO is quite often referred to as an emulator; even Wikipedia vaguely describes it as such.
But what is RunUO really? RunUO is merely a reimplementation of the UO server software. This fits a liberal definition of the word emulator; which states that for software to be an emulator it must merely mimic the function of other software. However, RunUO does not appear to fit the technical computer science definition of the word.
Strictly speaking, a software emulator must allow a computer program "to run on a platform (computer architecture and/or operating system) other than the one for which [it was] originally written." The UO server software owned by EA is not being emulated. It has been completely rewritten from scratch through a process of reverse engineering packets sent and received by the client. It is a completely new piece of software with no ties to the original code base, yet allows existing clients to connect.
This is less analogous to common, true emulators and more analogous to things commonly mistaken for emulators, such as WINE. WINE removing a client win32 application's dependency on Microsoft's GUI libraries is analogous to RunUO removing the game client application's dependency on EA's game servers.
Perhaps the closest analogy is that to Samba. With Samba, a Windows file sharing server can be set up on any operating system anywhere without needing a new client. Samba is not considered an emulator, but like RunUO it is a free software reimplementation of proprietary server software with which the proprietary client is compatible. If the many projects like Samba which are clearly in the same class as RunUO (reimplementation of a server serving the same legacy client) are not considered emulators, why are all reimplementations of the UO servers (even those other than RunUO) considered emulators?
This makes no logical sense to me.
Thanks for reading.