Search Unity

Why Not Client Emulation?

Discussion in 'General Discussion' started by MortalMan, Sep 17, 2017.

  1. MortalMan

    MortalMan

    Joined:
    Nov 6, 2012
    Posts:
    25
    So as many of us are aware, there are some very polished open source World of Warcraft emulators out right now. They provide a damn near 1 to 1 copy of the official world of warcraft servers, or choose to emulate classic WoW, or Burning Crusade, or have different "fun" settings. The same is true for other MMO's like Ultima Online, Lineage 1 and 2, and many more.

    The problem with these emulators is that they are forced to use the "official" client for the players to play on these emulated servers. Sadly we usually don't have all the same editing tools to modify the clients for these emulated games as we do in Unity.

    My question is why not make a client in unity that works with these open source emulated servers? It wouldn't be easy, but seeing that these open source servers are allowing thousands of players on a single server it may be easier than making your own server side solution. Would it really be that much harder to emulate a client compared to emulating a server?

    Making a basic unity client that can "plug into" ascent emu, or L2J, or any other of these free open source emulators could make the process of making a "new" MMO much much faster.

    Yes, there are small legal hurdles involved. You can't use the same intellectual property, but if you wanted to create an almost 1 to 1 replica of World of Warcraft in terms of gameplay, legally you would just need to change around the names, rewrite the quests, and reskin and remodel everything. Look at all the reskinned game clones we have for android, and they are perfectly legal.
     
  2. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,160
    I'm pretty sure using one of the MMO frameworks on the asset store or even coding your own from scratch would be not only just as fast, but produce something considerably more reliable in the end.
     
  3. GCatz

    GCatz

    Joined:
    Jul 31, 2012
    Posts:
    282
    I've made once a client emulation for ArcEmu (WoW private server)
    it was made in unity flash + flash client

    All it had was player movement and monster spawning and moving,
    but this simple features took to much time for me as it was just a hobby...
    trying to mimic the protocol is a bigger time waster than the coding itself

    you better use a premade client + server for any real project
    The best one I've seen for any real MMO is kbengine

    The server can hold more than 5k concurrent users (like wow private server)
    see stress test:

    and uses all the enterprise's tricks that bigworld server has
    and supports unity out of the box.

    The biggest problem with MMORPG today is not networking but content & sustainable business model

    so TLDR;
    client emulation is a complete waste of time that stops being fun fast
     
  4. mysticfall

    mysticfall

    Joined:
    Aug 9, 2016
    Posts:
    649
    As I see it, the main strength (or weakness, depending on your perspective) of Unity is that it's a general game engine which is also more or less beginner friendly, so you can make any type of game you want with it.

    So, if you meant Unity should add specialized features that would allow people to make WoW/Lineage/Ultima clones with minimal effort, I'm afraid it might not be the right kind of a tool for you.

    On the other hand, if what you meant is to create such clones using Unity, then you can just go ahead and make them on your own, as I believe Unity already has sufficient features for the task.
     
  5. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,573
    Because it'll be harder than emulating a server, and because the resulting client will most liinfringe copyright of the original game anyway.

    It'll need to pull assets like textures and models from official clients. (because fans don't have manpower necessary to recreate every single asset). This makes the client rather useless, plus it'll be a great target for lawsuits and cease and desist letters.

    I think you're mistaken. It'll be much slower, because you'll be bogged in small details, like precisely mimicking behavior of the original. Basically, you'll spend most of the time trying to comply with formats, protocols and behaivors of someone else's software.
     
  6. MortalMan

    MortalMan

    Joined:
    Nov 6, 2012
    Posts:
    25
    You're grossly underestimating how reliable these server emulators are. Were talking about thousands of consistent players going months without a server crash.
    Thank you this was the most helpful post in the thread. I've never heard of anyone trying to emulate a client using an existing server emu software.

    Do you have a github account with your work? Do you have a download link anywhere? Did you do all this yourself?
    Im more interested in the "mimicing" the protocol aspect of this rather than actually making a full fledged game.

    Would you say it's significantly more difficult to emulate the client than it is to emulate the server?
     
  7. GCatz

    GCatz

    Joined:
    Jul 31, 2012
    Posts:
    282
    Yea made it myself

    maybe I will try and find it in my old HD and upload it to GitHub for others entertainment

    but basically it's unusable now and only a novelty
    as it was made with unity flash (long gone)

    you better try and find some client made in C# in GitHub if you would like to learn the inner working better
    in my AS3 version, there is a crazy amount of hacks that made it work

    I would say emulating the client is harder than coding your own client + server from scratch
    but you do learn to respect the smart people who coded the private servers
     
  8. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,203
    World of Warcraft server emulation is only popular because it's World of Warcraft. Strip out the IP by building a new client from the ground up and you've stripped out the actual value of MaNGOS for the vast majority of the user base it has. It isn't like MaNGOS can't be used for a different MMO either. It's been stated by its developers as being completely possible.
     
    zombiegorilla and mysticfall like this.
  9. MortalMan

    MortalMan

    Joined:
    Nov 6, 2012
    Posts:
    25
    Technically yes, Mangos is open source and could be converted to be used for a different MMO, but at the same time you could also say Mangos is open source so it could be converted into a word processing program.

    It would take quite a bit of work to convert mangos over for use in another MMO. Not impossible, but would probably still take several hundred hours of work to get something decent out of it. I would be interested to see other MMO emulated using Mangos as the base.

    I've been out of the server emulation scene for a while, but do you remember the "fun" servers people used to run for WoW. Basically they used all the same art assets as WoW, but had some custom maps, custom instances, custom dungeons, and could change around just about anything they wanted like mob health, player hit points, custom weapons etc. Look at all the WoW "clones" there are. I'd be willing to wager that another game very similar to WoW using ArcEmu or Mangos as it's server, and an "emulated client" could be commercially successful.

    Sadly though, from what Gcat is saying it may just be easier to create a WoW clone from Unity and existing asset store MMO server tools then it would be to emulate the client for use with a server emu.
     
  10. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,203
    No, you wouldn't be able to say the same thing at all. Outside of perhaps the data stream format that it uses to talk to the World of Warcraft client, MaNGOS functions in much the same way that a game engine like Unity functions. You script the functionality of the game. It's not hardcoded.
     
    Last edited: Sep 18, 2017
  11. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    Legalities aside, the client is arguably more difficult to replace in a game such as WOW because then you're going to be dealing with not only recreating the networking and some monster logic, but also all terrains, textures, models, and animations. Where creating a compatible server could be accomplished by a single person skilled with networking and server side logic, creating a new client will also require graphic artists, modelers, animation designers, and people with UI skills. That seems a much bigger task.
     
  12. MortalMan

    MortalMan

    Joined:
    Nov 6, 2012
    Posts:
    25
    The networking is mostly solved with the already existing open source server emulator.
    The general idea for client emulation would be not to create a new game engine from scratch, but to use Unity or some other game engine as a base and work that into an existing open source server emulator. As far as art assets, animations, and UI we have a ton of "free" poor quality assets to choose from. While these would not make for a "good" WoW clone they could be used as simple placeholders waiting to be replaced for something better. Even a simple proof of concept with poor graphics and animations would be fun spend time with. You wouldn't "have" to model, or animate a single prop or NPC.

    It should be possible for a single person to take an open source game engine and work it into Mangos, or Arcemu or any other server emulator. Difficult, but possible....

    Also let's not forget that the World of Warcraft is one of the most "hacked" games in the history of gaming. Bot programmers tore this client inside and out to allow them to run a botclient with lowest possible system resources. There "were" many small public hacks that allowed players to fly or teleport around the map. Every bit of this client has been looked into. The structure of the wow client, and how it works is very well understood. There wouldn't be much guess work. The real struggle would be in raw time consuming programming.
     
  13. mysticfall

    mysticfall

    Joined:
    Aug 9, 2016
    Posts:
    649
    I don't intend to be rude, but I'm still failing to understand the point of this thread.

    Are you saying Unity should change their engine to add specific features that fascilitate making WoW clones? Then I doubt you will ever get what you want, since it's not really compatible with the direction Unity has been following, if I'm not mistaken.

    Or are you trying to encourage others to take this approach and start making their games based on such emulators? You are free to do that, of course, but as others have already mentioned above, not everyone might be interested in developing clones with just placeholder art assets while restricting their game mechanic to what such servers already provide mostly.

    Or are you asking why more people haven't taken this approach before? It's probably the same reason mentioned above - people might be more interested in creating their original games rather than hacking a clone of an existing product, or they can be professional developers and they don't want to base their commercial products on such clones and face potential lawsuits.

    At any rate, it's clear why not everyone is so enthusiastic about the idea, although there's nothing wrong with having fun with such projects, if they provide what you are looking for in developing games for your specific needs.
     
    Last edited: Sep 19, 2017
  14. MortalMan

    MortalMan

    Joined:
    Nov 6, 2012
    Posts:
    25
    No No, please don't misunderstand...
    The point of this thread was to inquire as to why no one makes a client emulator. Afterall, it kind of makes sense considering the thousands of hours put into making these server emulators, emulating a client would be a logical next step. I remember "fun" servers even heavily modifying game assets to give there own emulated server a unique appeal.
    There was a bit of competition between these private server owners to provide the most fun and stable experience possible. I wanted to learn a bit more about the technical challenges involved in emulating a client and rather or not it has actually been attempted.
    I started reading about Conan Exiles and the personal "private" server scene from that game, and it brought about some nostalgia from when I used to mess around with WoW emulators many years ago. There was/is very large communities based around hosting and playing on these servers. Check out Ragezone.com if you want to get into server emus. Lightbulb! Why not client emulation?

    Unity doesn't need to change "anything" to accommodate any kind of open source server emulation software. Unity developers are doing a great job with creating and updating their game engine. Even though Unreal now provides similar licensing as Unity, Unity looks like it's still the most popular game engine for Indy developers. But this isn't really a "Unity" based thread. This is more of a general, "why not emulate a client?" thread.

    As for "restricting their game mechanic to what such servers already provide mostly" I would debate that this just isn't true. Giving the open source nature of these server emulators and a "potential" client emulator your imagination is the only limit in terms of game mechanics. Since many MMO's out today basically play like WoW with some tweaks here and there, in theory client emulation could have been a good idea.

    As for "professional developers not wanting to base their commercial products on such clones", I would argue that most, almost all works of art not just games are based off of some other game or piece of artwork. Did the developers of 90's Unreal feel "unprofessional" because there game was similar to Doom? I'm sure you're well aware of the Unity mobile game reskinning scene.

    Are there any hack or bot developers who would like to put their two cents in about the WoW client? I just want to hear opinions from different people from different aspects.
     
  15. mysticfall

    mysticfall

    Joined:
    Aug 9, 2016
    Posts:
    649
    Ok, thanks for the clarification. Now I understand your intentions more clearly thanks to your reply, although I still beg to differ on some of the points you made.

    First off, being an open source project does not mean it wouldn't contain certain assumptions and specific game logic that might feel restrictive when you want to build on top of such a platform. The problem in this case is not the license, but the fact that there's a big chunk of code that was specifically designed to be compatible with a different game than your own.

    Of course, you are free to rewrite it to suit your needs, but it's often more difficult to refactor existing codebase to make it do something it wasn't supposed to do initially than to write it from the scratch following the best design that can satisfy your requirements.

    And even if you have somehow analysed the code and rewritten it, it means now you have to maintain the modified codebase yourself, as the efforts needed to keep it synchronized with the original project would be proportional to the amount of code you've changed.

    And as to potential legal problems, there's a big difference between creating a game which is inspired by existing works, and making a working clone of a commercial game by reverse engineering it. Making a game which looks similar to Doom has nothing to do with creating a 'free' server of WoW that can actually work with the official game client, for example.

    And you need to understand that Unity is a generic game engine with which people write all sort of games, from simple mobile platformers to multiplayer FPS titles. And Unity isn't exactly a popular choice for building MMO games. Combined with various issues as mentioned above, it shouldn't be hard to understand why not everyone is so enthusiastic about building the next WoW clone with it, in my opinion.
     
    Last edited: Sep 19, 2017
  16. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    Have you ever built an MMO? Just because a server emulator exists doesn't mean the networking is "mostly solved". It is still a huge project to build out the client side. And free art assets existing is still a long way away from getting them to work properly in a game client. I've put the better part of a year of my spare time into an MMO project and I'm probably only halfway done, and I'm not even reverse engineering anything.