3 ms·
A lot of private servers are actually reverse engineered from game binaries. It takes a lot of dedication and a lot of time in IDA/Ghidra to accomplish. You bas
by shitlord 4y ago
A lot of private servers are actually reverse engineered from game binaries. It takes a lot of dedication and a lot of time in IDA/Ghidra to accomplish. You basically run your own copy of the backend and a patched client that connects to your backend.
When I was a teenager I remember playing on MapleStory private servers, and the backend was reverse engineered from the client. GTA private servers are also popular nowadays.
I don't really know where I'm going with this comment but you can always develop your own private server for a game if you have a team that's dedicated enough.
- duckmysick 4y agoHow do you do that when most of the calculations (and data required for those) happen on the backend?
- jpcrs 4y agoIn the case of MapleStory, in the past much of the game logic used to happen in the client side, that's why it was easier to reverse it (And create cheats for it). In many other games that have private servers: If there was no codebase leak, basically guessing what you can't know. That's why many private servers doesn't work 1:1 when compared to the official servers, people just tried to make the calculations as close as possible after reversing it.
- shitlord 4y agoGTA 5 has private servers as well, and it has a similar fat client architecture. It also uses P2P for a lot of things which was probably helpful for the FiveM developers. MapleStory was also kind of an interesting case because the developers were careless enough to include debug symbols with their binaries on multiple occasions.
- shitlord 4y agoThese sorts of games are usually not implementing sophisticated algorithms on the server side. The client is typically just sending simple events (e.g., player moved left) to the server. The server collects events from all the connected clients to build a shared state, and pushes state updates to clients. Edit: jpcrs makes a good point about this and their comment is worth reading.
- somat 4y agoIt is because doing the calculations on the server does not scale well, so no one wants to do it, usually what happens is that all the clients have to run the simulation anyway so the devs make sure it is the same simulation and all the server does is ship what are effectively the keypresses around. this is why desyncs are such a problem. Note that having the server do the calculation can solve some of the cheating problem, I remember a modified quake server that would not send location information if you could not see the player, which made wallhacks not work. I just got totally nerd sniped by the memory and while I can't find the demonstration video that impressed me so much at the time. I did find that it was darkplaces quake that added the option "sv_cullentities_trace" which prevents wallhacks. www.icculus.org/twilight/darkplaces/readme.html#ServerFeatures
- stevehawk 4y agosure, but almost any game built on the Steam engine or an id engine came with the server code, which was nearly any game that mattered for a decade. That was a huge library of games you could self host a server with.