Search Unity

How to create a server for dead game - Murderous Pursuits Mobile

Discussion in 'Multiplayer' started by Mimrixerix, Apr 7, 2021.

  1. Mimrixerix

    Mimrixerix

    Joined:
    Apr 7, 2021
    Posts:
    3
    Hi, I would like to set up a server emulator / private server for Murderous pursuits Mobile.
    The game was not very successful, so the developers decided to shut down the servers.
    I would like to set up my own server on which I could play with friends.
    The problem is that the original servers are no longer running so how can I start my own?
    I have the game client files, and everything, but not server software( btw, I already asked developers for it. They sent me to ______).
    So how, or is it possible?
    PS pls don't send me just: Give it up, It is impossible. At least tell me why.
    ¨ upload_2021-4-7_8-23-21.png

    upload_2021-4-7_8-24-2.png
     
  2. luke-unity

    luke-unity

    Joined:
    Sep 30, 2020
    Posts:
    306
    It is not impossible, but it usually involves reverse engineering the client files and rebuilding a game server which matches the client.
    I'm no legal advisor but reverse engineering software is illegal in some places in the world and often breaches the EULA agreement you signed with the company when downloading the game. So I don't think the Unity forums is the right place to discuss this. There are other communities like r/REGames which are better fit for these kinds of discussions.
     
  3. Mimrixerix

    Mimrixerix

    Joined:
    Apr 7, 2021
    Posts:
    3

    Is it illegal if I want just to play with friends and I don't want to distribute the software?‍
     
  4. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    So this is generally done by reverse engineering. WoW famously has had pirate servers running older expansions, or vanilla WoW, that were created in that manner. Basically you analyze anything you can about the client and the network communication, and try to recreate the server side from that information. It became pretty famous for WoW in 2016 when they unleashed their legal department on the issue.

    It likely violates the DMCA and WIPO treaties protections regarding "Circumvention of Technological Protection Measures". A server build never released to the public could easily be argued as such a protection measure. It also likely violates any TOS you may have agreed to when first playing the game.

    Your reverse engineered server build might also violate trademarks or other IP owned by the company, depending on what you actually need to put into the server build to make it functional.

    You don't have to distribute the server build itself to cause yourself problems. In the WoW example, Blizzard was sending out cease and desist orders for running the server, not for distributing the binary.

    But did you ask the developers for permission to do this? The company can give you permission to do whatever with their IP, and that should clear up any legal issues if they were to do so. Though the technical issues... :p

    Good luck!
     
    luke-unity likes this.
  5. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    The client communicates to the server via network packets.
    To emulate a server, you need to emulate all of the packets.
    For that, you need to understand them first.

    There are tools like wireshark that let you listen to all packets being sent.
    See if you can find any common patterns like <<id, content>> whenever you use a health potion.

    If you can't, then the packets are probably encrypted or packed. In that case you would have to use a debugger to breakpoint on WSASend/Recv. From there, go up higher in the stack trace until you find a function that looks anything like SendMessage<<id, content>>.

    If you found it, you would have to log whatever goes through it. Tools like MHS from LSpiro (on windows) help you do that rather easily. Otherwise you would have to add a code cave yourself, i.e. JMP to a logging function, log, JMP back to the original function.

    Use your health potion again, see how something like <<id, content>> is logged. ID should always be the same. Content probably different depending on inventory slot. Maybe even some kind of item id. If there's an item id, you would also need all the game's item ids :)

    That's just one packet, and probably the easiest one. You would have to do this for all the packets, including movement, login, etc.

    Once you understand the protocol, you can make the server reply to the client. You would have to format packets in the original way (encrypt/pack), for that you would have to analyze the path from your SendMessage<<id, content>> to WSASend/Recv and figure out what exactly it does.

    Many of the packets likely require all kinds of other data that you need to extract from the game's media files - which you also need to analyze in the same way.

    If the game is popular then you can probably find someone at least unpacking media files or the encryption or similar. If not, you would have to do that all by yourself.

    It's not impossible and definitely worth it for the learning experience, even if you don't finish.

    Ultimately it would probably be easier to do client & server from scratch in Unity, and just reuse the models from that game (which is illegal).

    Imho ask the guys nicely if you can license their server. Easiest solution :)
     
    Last edited: Apr 8, 2021
    Joe-Censored and luke-unity like this.
  6. antsonthetree

    antsonthetree

    Joined:
    May 15, 2015
    Posts:
    102
    May not be what you are looking for but: The game is still available for PC on Steam. You could play on PC. Or if playing on mobile is required then you could run the SteamLink app on your phone and link it to your PC. SteamLink is available on Android and Apple devices and works pretty well (I use it on Android).
     
    Joe-Censored likes this.
  7. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    If the game is still one of their active products, but just on another platform, I'd suspect they would be far less happy with a reverse engineered server build than if this was your typical abandonware game.