Why COH will not get a server emulator.

Started by Leandro, January 03, 2013, 03:37:38 PM


Kyriani

Quote from: Madadh on January 11, 2013, 08:56:38 AM
Frankly, yes.  I did like the i23 version of the game, and so, if I were 'stuck' with that, I'd be ecstatic..I will happily admit, I do want to see i24, too...   But I dont think an i23 version would be 'settling'..  And I totally disagree with.. "And that's not what we want".  I want CoH back, period...  I will take that. If it is ever offered...


But, I have to commend ya on all the technical details


Cheers

I think his intention in that post wasn't so much saying "we don't want a frozen at i23 or i24 COH" but rather I think he was saying "Why settle for i23/i24 that never advances when we can have endless expansion possibilities on top of i24"

Starsman

Quote from: Arcana on January 11, 2013, 01:11:30 AM2.  The community server can be said to emulate a game server relative to the game client, but its not a server emulator.  That's two different things.  Emulating a protocol is not the same thing as emulating a server.

Correct me if I'm wrong here: does this mean that

1) from the point of view of a player that never touches or administers either server (original official one or the compatibility one) there is no distinction, he just see what he can honestly call "emulation"
2) From the point of view of an admin, or developer that works on or administers the server, there will be a very obvious difference and (should he know the definition of emulation as you stated before) he will never dare call it emulation (or accept anyone else calling it so.)

And for clarification, if I understood your reason for it to not be considered "emulation", is that the server side of Paragon's servers would get inputs that the private server can't ever receive (because there was no way of snooping and scanning through them)... right? So it's not emulation because it's not acting on the same full set of inputs as the original ones... but these are inputs players would never actually generate, just the server doing "its thing"...? Therefore, since this hypothetical compatibility server may be doing its own set of server inputs in its own way, that are likely not even similar to the official servers... well that means it's not emulation... I know I'm going loops here but just want to make sure I am in the right path on every redundant expression of what I am ... "understanding".

For the sake of the community: please stop the cultural "research" in your attempt to put blame on the game's cancelation.

It's sickening to see the community sink that low. It's worse to see the community does not get it.

I'm signing off and taking a break, blindly hope things change.

Codewalker

It's also partly a connotation issue. As someone who has played some other MMOs and seen the various developments going on, there are two things that are typically called "emulators" by the communities of those games:


  • A private server that is either based directly on leaked code (Aion), or written to interface with leaked server data files (WoW), both of which are extremely dubious and much more likely to be subject to serious legal action than a clean implementation.

  • A half done hack job running on a crappy MySQL database that barely works, crashes all the time, and is so buggy as to not really be playable. Often missing pretty much all content other than whatever monsters the server admins feel like spawning for giggles, which probably don't even have working AI.

There are a few notable exceptions (SWGEmu comes to mind), but they're rare.

We don't want either of those. :)

The Fifth Horseman

Quote from: Starsman on January 11, 2013, 03:41:23 PMCorrect me if I'm wrong here: does this mean that
1) from the point of view of a player that never touches or administers either server (original official one or the compatibility one) there is no distinction, he just see what he can honestly call "emulation"
2) From the point of view of an admin, or developer that works on or administers the server, there will be a very obvious difference and (should he know the definition of emulation as you stated before) he will never dare call it emulation (or accept anyone else calling it so.)
Sounds about correct.
We were heroes. We were villains. At the end of the world we all fought as one. It's what we did that defines us.
The end occurred pretty much as we predicted: all servers redlining until midnight... and then no servers to go around.

Somewhere beyond time and space, if you look hard you might find a flash of silver trailing crimson: a lone lost Spartan on his way home.

Starsman

Quote from: Codewalker on January 11, 2013, 04:36:30 PMThere are a few notable exceptions (SWGEmu comes to mind), but they're rare.
SWGEmu is already functional?
For the sake of the community: please stop the cultural "research" in your attempt to put blame on the game's cancelation.

It's sickening to see the community sink that low. It's worse to see the community does not get it.

I'm signing off and taking a break, blindly hope things change.

Numerology

Quote from: Starsman on January 11, 2013, 05:28:24 PM

SWGEmu is already functional?

Looking back over their news archive they have had players on the test server from at least 2010. I don't recall when they launched their proper live servers or know how many features are still to be fully developed however.

Arcana

Quote from: Starsman on January 11, 2013, 03:41:23 PM
Correct me if I'm wrong here: does this mean that

1) from the point of view of a player that never touches or administers either server (original official one or the compatibility one) there is no distinction, he just see what he can honestly call "emulation"
2) From the point of view of an admin, or developer that works on or administers the server, there will be a very obvious difference and (should he know the definition of emulation as you stated before) he will never dare call it emulation (or accept anyone else calling it so.)
If such a player is being honest, he should honestly call it a community server, because he has no idea how it was created.  For all he or she knows, its a pirate server running a stolen copy of the game code, or a reverse engineered server created from the server specs, or a project Z server that shares nothing with the original servers except an ability to talk to the client.  A player with no technical knowledge or skill would have no idea whatsoever whether the servers he or she was connecting to were emulators or not.

QuoteAnd for clarification, if I understood your reason for it to not be considered "emulation", is that the server side of Paragon's servers would get inputs that the private server can't ever receive (because there was no way of snooping and scanning through them)... right? So it's not emulation because it's not acting on the same full set of inputs as the original ones... but these are inputs players would never actually generate, just the server doing "its thing"...? Therefore, since this hypothetical compatibility server may be doing its own set of server inputs in its own way, that are likely not even similar to the official servers... well that means it's not emulation... I know I'm going loops here but just want to make sure I am in the right path on every redundant expression of what I am ... "understanding".
I'm not sure what the "it" you're referring to is.  I said a server emulator, if it was really emulating the server and not just the client network and state protocol, should be capable of using the original CoH server-side data.  We don't have that data, so we couldn't even attempt to do that, so a server emulator would not even be attempted to be written in the first place.

It would be as if the developers of DOSBox said they were trying to emulate an IBM PC that could play old DOS games, except they did not have any and no copies of such games existed anywhere that was generally available.  The second question to ask would be "how would you do that?" But the first question to ask would be "why would you do that?"

Arcana

Quote from: Codewalker on January 11, 2013, 04:36:30 PM
It's also partly a connotation issue. As someone who has played some other MMOs and seen the various developments going on, there are two things that are typically called "emulators" by the communities of those games:


  • A private server that is either based directly on leaked code (Aion), or written to interface with leaked server data files (WoW), both of which are extremely dubious and much more likely to be subject to serious legal action than a clean implementation.

  • A half done hack job running on a crappy MySQL database that barely works, crashes all the time, and is so buggy as to not really be playable. Often missing pretty much all content other than whatever monsters the server admins feel like spawning for giggles, which probably don't even have working AI.

There are a few notable exceptions (SWGEmu comes to mind), but they're rare.

We don't want either of those. :)
Which is why I really consider all community server projects I'm aware of reimplementations.

Starsman

Quote from: Arcana on January 11, 2013, 06:47:03 PM
If such a player is being honest, he should honestly call it a community server, because he has no idea how it was created.  For all he or she knows, it's a pirate server running a stolen copy of the game code, or a reverse engineered server created from the server specs, or a project Z server that shares nothing with the original servers except an ability to talk to the client.  A player with no technical knowledge or skill would have no idea whatsoever whether the servers he or she was connecting to were emulators or not.

I am just trying to clarify here because I never seen the argument before, technically wise the first time I saw the use of the word "emulator" was as a way to play games without the original console, but still requiring the original game data (input may come from very different source like a keyboard instead of a gamepad.)

I am not defending or forcing this definition, just stating where I come from. For ages I heard people call third-party servers for MMOs as "emulation" and from my ignorant perspective, it seemed to fit (as far as I know the client has all the data I need to play.)

So although from that point I can easily see the "community server", I may not only also think "emulation" fits, but also, it's a one-word way of saying it... and to be honest one-words win for simplicity. Would "simulator" work?

QuoteI'm not sure what the "it" you're referring to is.  I said a server emulator, if it was really emulating the server and not just the client network and state protocol, should be capable of using the original CoH server-side data.  We don't have that data, so we couldn't even attempt to do that, so a server emulator would not even be attempted to be written in the first place.

I'm not sure what it is either! If a server was able to get that server side data and use it (lets ignore how we would get access to it for now) would it be considered then an emulator? Or is an emulator simply something that pretends to be hardware?

For the sake of the community: please stop the cultural "research" in your attempt to put blame on the game's cancelation.

It's sickening to see the community sink that low. It's worse to see the community does not get it.

I'm signing off and taking a break, blindly hope things change.

Arcana

Quote from: Starsman on January 11, 2013, 07:32:32 PM
I am just trying to clarify here because I never seen the argument before, technically wise the first time I saw the use of the word "emulator" was as a way to play games without the original console, but still requiring the original game data (input may come from very different source like a keyboard instead of a gamepad.)

I am not defending or forcing this definition, just stating where I come from. For ages I heard people call third-party servers for MMOs as "emulation" and from my ignorant perspective, it seemed to fit (as far as I know the client has all the data I need to play.)

So although from that point I can easily see the "community server", I may not only also think "emulation" fits, but also, it's a one-word way of saying it... and to be honest one-words win for simplicity. Would "simulator" work?
If we're discussing how these things are built, that's a technical discussion.  If we are discussing what the average person calls things, its whatever jargon is in general usage.  "Server emulators" are colloquial jargon for anything that replaces the official servers that used to exist, even if they are magic boxes powered by unicorns.

Its no different than when someone calls an ethernet switch a "hub."  Technically, hubs and switches are two completely different things.  In a technical discussion of ethernet from an IT perspective, that's a non-trivial error except in colloquial conversation: a networking person should know the difference and should be hit in the head if he calls that a semantic difference (also: fired).  However, I wouldn't correct my mother on that usage, because from an outsider perspective they do not know the technical difference and therefore cannot be expected to honor the descriptive difference.

In a casual conversation about server replacements for CoH, I wouldn't nit-pick the use of the term "server emulator."  But this was a discussion about the specifics, and that casual immunity no longer applies here.

redgiant

Quote from: Arcana on January 11, 2013, 08:30:46 PM
In a casual conversation about server replacements for CoH, I wouldn't nit-pick the use of the term "server emulator."  But this was a discussion about the specifics, and that casual immunity no longer applies here.

You are by definition emulating the communications protocol between client and server no matter what use of the client you are making.

What you may or may not be additionally emulating are the game content and systems, such as what maps and mobs it uses, and all the behavior and calculation results that sum up to act and look like "The Game" we played before.

1. If experiencing Atlas Park or any familiar map play as close to Nov 30, 2012 as possible, then you are attempting to emulate City of Heroes content-wise as well.

2. If not, and you just want to use the client but show a different landscape or one that behaves differently in small or large ways, then you are only emulating some of the gameplay component systems enough to do that job.

Clearly (1) requires much more detailed replacement gameplay systems server-side to try to respond to the client in as much the same way the real Servers would have that is possible. Everything from combat mechanics and calcs to scripted events have a big burden on them to result in the same communications stream as the real Servers would have produced, regardless of what spinning gerbils in your black box are used to accomplish that.

All (2) requires is that the messages to the client make sense. Without the goal of emulating the content and gameplay systems we knew, this could result in an infinite variety of games that have anywhere from some passing resemblance to CoH, to looking more like WoW or Everquest ifyou so chose.

So its all in the level of emulation desired by you.

---------------
tl;dr

Communications protocol emulation is required no matter what.

Content and gameplay systems behavior emulation is only needed to the extent you are trying to copy the old City of Heroes content and behavior we knew. Without this goal, you could drive the client as a game that looks and acts nothing (or partially) like what we knew.

So it is an emulator by definition. The extent of emulation is the only question.

Arcana

Quote from: redgian on January 12, 2013, 12:14:24 AM
You are by definition emulating the communications protocol between client and server no matter what use of the client you are making.
To be precise, you can emulate a system that uses a protocol, but not literally emulate a protocol (which I imprecisely stated colloquially earlier).  Something that "emulates" a protocol and something that implements a protocol are indistinguishable from each other.  Emulation by definition reproduces behavior, not structure, in operational definitions involving software.

No definition of emulation I consider reasonably valid for software systems would imply that implementing a communications protocol was a form of emulation.  In a professional context, I would consider someone trying to convince me its possible to functionally emulate HTTP without implementing HTTP to be high.

Mister Bison

Quote from: Arcana on January 12, 2013, 02:29:24 AM
To be precise, you can emulate a system that uses a protocol, but not literally emulate a protocol (which I imprecisely stated colloquially earlier).  Something that "emulates" a protocol and something that implements a protocol are indistinguishable from each other.
I think I can think of some protocols out there that "emulate" another protocol. At least new versions of old protocols are this when they want to be retrocompatible. Like the ISO model can easily emulate the TCP/IP model (okay that's not a protocol but you get the point). And isn't USB2 this to USB1.1 ? (there is no need for two hardwares to make devices compatible to the two protocols)
Yeeessss....

candidate

I remember reading similar post as OP in some WOW forums, saying why wow players would never see an emulator.

6 months later I was able to play on a private server.

So anything is possible.

But ofc a LEGAL private server will never be.

Septipheran

#115
lol, is this whole thread about whether or not it's okay to call a generic company's tissue a kleenex instead of a tissue? Personally I just want to blow my nose, man.

Arcana

Quote from: Mister Bison on January 12, 2013, 08:51:26 AM
I think I can think of some protocols out there that "emulate" another protocol. At least new versions of old protocols are this when they want to be retrocompatible. Like the ISO model can easily emulate the TCP/IP model (okay that's not a protocol but you get the point). And isn't USB2 this to USB1.1 ? (there is no need for two hardwares to make devices compatible to the two protocols)
USB2 is backward-compatible with USB1.1.  USB2 specifies that all USB2 devices must support the requirements of USB1 and negotiate them appropriately.  To put it another way, USB2 is a superset of USB1; it includes as a requirement the exact communications protocol of USB1.  It does not emulate USB1.  A USB2 device could perhaps be described as being able to emulate the behavior of a USB1 device, but USB2 does not emulate USB1.  It implements USB1 directly as a requirement of the specification.

The closest thing I can think of to "protocol emulation" are network testing systems.  There are systems that pretend to execute a network protocol to test that all the transmission equipment handle that transmission correctly.  I use VOIP testers, for example, that generate something that appears to be SIP call traffic from one end of a network to another.  These are often colloquially called "protocol emulators" in that they appear to implement SIP or H.323 but don't really: the two end points are talking gibberish and not really even listening to what each other is saying except for the minimum necessary to keep things like session state and round-trip lag elements of the protocol valid. 

In a sense its a form of "protocol emulation" in that its reproducing the behavior of a system relative to some standard (that standard being what intermediate network gear sees) but its not really emulating the protocol itself; its emulating the network characteristics of the protocol for test purposes.

Arcana

Quote from: candidate on January 12, 2013, 09:51:42 AM
I remember reading similar post as OP in some WOW forums, saying why wow players would never see an emulator.

6 months later I was able to play on a private server.

So anything is possible.
I suspect that one day someone will publicly announce a City of Heroes server emulator.  Its just unlikely it will actually emulate the original CoH servers except superficially.  Not because its impossible, but rather because its technically suboptimal to even try compared to all other reimplementation alternatives.

Little Green Frog

Quote from: Arcana on January 12, 2013, 08:13:20 PM
I suspect that one day someone will publicly announce a City of Heroes server emulator.  Its just unlikely it will actually emulate the original CoH servers except superficially.  Not because its impossible, but rather because its technically suboptimal to even try compared to all other reimplementation alternatives.

You know, by no definition emulators are required to precisely replicate inner workings of a system they imitate.

Mister Bison

Quote from: Arcana on January 12, 2013, 08:00:46 PM
USB2 is backward-compatible with USB1.1.  USB2 specifies that all USB2 devices must support the requirements of USB1 and negotiate them appropriately.  To put it another way, USB2 is a superset of USB1; it includes as a requirement the exact communications protocol of USB1.  It does not emulate USB1.  A USB2 device could perhaps be described as being able to emulate the behavior of a USB1 device, but USB2 does not emulate USB1.  It implements USB1 directly as a requirement of the specification.

The closest thing I can think of to "protocol emulation" are network testing systems.  There are systems that pretend to execute a network protocol to test that all the transmission equipment handle that transmission correctly.  I use VOIP testers, for example, that generate something that appears to be SIP call traffic from one end of a network to another.  These are often colloquially called "protocol emulators" in that they appear to implement SIP or H.323 but don't really: the two end points are talking gibberish and not really even listening to what each other is saying except for the minimum necessary to keep things like session state and round-trip lag elements of the protocol valid. 

In a sense its a form of "protocol emulation" in that its reproducing the behavior of a system relative to some standard (that standard being what intermediate network gear sees) but its not really emulating the protocol itself; its emulating the network characteristics of the protocol for test purposes.
If what's bold, that is what you say, is not saying "USB2 protocol requires all devices to comply with protocol USB1", and so, "USB2 protocol incorporates protocol USB1 and more" that is, "USB2 imitates USB1 and exceed it", then I'll be damned.

I'm going to propose the definition in Wikipedia's article on Emulators, which stipulates that "In computing, an emulator is hardware or software or both that duplicates (or emulates) the functions of a first computer system (the guest) in a different second computer system (the host), so that the emulated behavior closely resembles the behavior of the real system. This focus on exact reproduction of behavior is in contrast to some other forms of computer simulation, in which an abstract model of a system is being simulated. For example, a computer simulation of a hurricane or a chemical reaction is not emulation." So, as long as the intent is to provide an exact reproduction of behaviour, of which we have had countless examples an we even know the majority of the rules, then yes, we can have an emulator of City of Heroes, as long as the people who have the best knowledge of it are behind it, and as long as it was a human-created system, it can be recreated to fool every other human as being the real thing.

And I think we've just got the kind of person quoted in this post, the rest of this kind must already be on Titan board, and the kind that can't help us because of NDA shouldn't count.

If the problem is the server's input file being an unknown, that's partially correct. Those are not unknown, they are variables. Emulation doesn't care to emulate every data it's going to have presented, it copies the mechanism. Saying a "community server" can't be an emulator because we will never have the server data files is like saying you can't have homebrew on the PSP because we couldn't read what was on the discs. We all know the data that was in the server files, the only problem being we don't know their format is moot. When you plug an MP3 player on a pair of speakers, they don't care if the format was in fact Ogg. The output is the same. That's the same with CoH client and a community server, wether it's an emulator or a reimplementation is the same - the game is supposed to function the same.

Maybe the cruelest fact would be that the server files are forever gone. So no developer will never have to ever bother with making what would truly be considered an "emulator" because there is nothing to emulate except the whole server and its data altogether. Then isn't that an emulator ? It also transforms raw power into client-compatible data ! We reimplemented all the mechanisms necessary to produce the same output, and it will have the same input: the client commands and raw power.
Yeeessss....