this isn’t about anything specific, this is just a general question.

i always assumed that multiplayer wouldn’t work on pirated copies of games, or at most you’d have to play on specially configured servers. but the other day i saw a thread about a game where online multiplayer works even with pirated copies, and now i’m curious about how often that happens.

i understand that every game is different, and i want to know: what are your experiences with online multiplayer in pirated games?

  • daniyeg@lemmy.ml
    link
    fedilink
    English
    arrow-up
    11
    ·
    11 months ago

    getting multiplayer working on a pirated copy really depends on how the game handles multiplayer itself. in general you can divide them into these categories based on how you pirate them:

    the easiest ones would be games that allow community or self-hosted servers. getting multiplayer working on them is essentially just cracking the game itself and turning off a few validation checks. if you wanna play with your friend it can be as simple as checking a tick box when creating a new game, although some games have a separate server binary and you probably need a static ip and other complications that arise when you wanna host a server. these games usually have communities that host servers for everyone and some of them can be as active as the original game’s server or even more. this would also probably disable any anti-cheat that the game might have so they may force the players connecting to have a separate anti cheat. some examples that i’ve played would be older valve games and minecraft. most game these days don’t use this model though.

    a little harder would be games that only work over LAN. these also don’t need anything special done to them and if you genuinely get people on the same network you can actually play together, however in this day and age gathering people around on the same place can be quite hard, and also if your group is large enough your router may not be able to handle it, not to mention you can’t play with strangers online. that’s why you need an extra layer of software to simulate people being on the same LAN. the ones i have worked with are Hamachi and GameRanger. these tend to be very finicky about the exact version everyone is using so make sure to have the exact version with the exact patch number. these tend to be much older games, mostly strategy games since that was the most popular genre at the time, although early fps games are also LAN based. the games in the previous category also usually have LAN support. some examples i remember would be borderlands 2, age of empires 2 and stronghold crusader.

    the biggest category today would be peer-to-peer (p2p) games which use p2p connections as the main way to communicate. in these games one of the clients usually acts out as the host while others connect to it over the internet. some of them might not even have a host and everyone connects to everyone else… and it’s all a giant mess that you really shouldn’t care about. what you should care about is that these games are way much trickier since game clients need to find each other, be aware of each other and send stuff to each other at all times, therefore most of these games usually use third party APIs do all the syncing. this makes it harder to play them online since they also use these APIs to check if the game is genuine or not. wouldn’t it be nice if we could take a free game that uses one of these APIs, send our requests as if we were playing that game so the validations checks wouldn’t happen? since most games on PC release on steam we can use the steam API (steamworks) to play them. these games need to be patched in order to pass off the game’s requests as if it came from another app. these patches are usually called steam-fix or online-fix patches, and most of them use the Space Wars game which is an example game that valve uses in their documentation to explain how their API works, and developers can use it in order to test out their game to see if it’s compatible with steamworks or not (some patches might use a different game like cube racer or TOXIKK but these are rare). that’s why it works since it’s all exposed and it has a legitimate use so valve is unlikely to nuke it. most modern games that can’t afford dedicated servers (usually indies but sometimes big games) use this method instead. i’ve played too many games this way but the most recent example was lethal company.

    last but not least is games that use dedicated servers. unfortunately you can’t play most of these since the server is closed source and no one can host their own server except for the game developers. however some games have had their source leaked, or someone has gone through and painstakingly recreated the game and emulated the server of these games. they are called “private servers” and you can usually find people hosting these, or even host one yourself since most of them tend to be open source. most of them don’t work with the ordinary cracked version of the game but rather have their own special clients. be careful with these since you are trusting the host to actually be secure and most of them are not and you might get your data leaked. most of these private servers tend to be for MMOs since recreating a game demands a very dedicated player base over a long period of time. the most famous example are WOW private servers, specifically Warmane servers which have their own ecosystem.

    there are also some oddities here and there that don’t neatly fit in these categories. you can’t play most emulated games online, but some emulators have networking functionality and with modified ROMs you can to play multiplayer, some emulators are purpose built to just play one game really well (like slippi for super smash bros melee), some games originally didn’t have online play at all but someone patched it in etc etc.

    TL;DR: there are some general ways that you can get multiplayer on a game working, but it depends on the game. if the game can’t have a steamworks patch or it can’t work with LAN, then you need game specific ways of making it work. if there’s a way, someone has posted about it online so don’t be afraid to look for it. i’m sorry about the length of this comment hope it helps.