4 ms·
> At some point you have to trust the client. I'm not convinced of this, and the general trend of every online game that cares about cheating since at least Qu
by arohner 14y ago
> At some point you have to trust the client.
I'm not convinced of this, and the general trend of every online game that cares about cheating since at least QuakeWorld (1996) is moving in the direction of not trusting the client for important things.
> Keeping everything and all variables on the server is impossible
True, but you can get quite far by only giving the client the information they're supposed to have. Wallhacks were originally possible in Quake because pre-QW, the client received the position of every player on the map.
The strongest way to prevent wallhacks is to only tell the client about other players they should be able to see. The id and valve engines do this, for the most part. Again, quakeworld in 1996 severely curtailed wallhacking by only showing the users players that were visible, or "almost visible", i.e. near corners.
Your example of infinite health packs is something that could be trivially tracked on the server side and is, even for games as big as WoW. WoW tracks the current inventory of every single player in game. You can tell because sometimes when there are server glitches, you're unable to pick up loot from dead monsters.
- deleted 14y ago[deleted]
- jiggy2011 14y agoThe reason that the client may need to know about other players locations when they are not visible is sound. You can hear somebody moving on the other side of the wall to you and for the sound to be realistic it needs to be played at the correct volume level determined by distance etc. This isn't a big issue in some games , because you can just make peoples movements silent (of course there is still weapon sounds). However other games (like CS) have a stealth element where you need to make a tradeoff between moving quickly and noisily or slowly and silently so the sound is a big part of that.
- Hemospectrum 14y agoSound sources can be anonymized, though. If the source of a given sound is on the other side of a wall, the player can't see who it is, and the client doesn't need to know. I'd go so far as to not even notify the client about sounds that are too quiet and far away for the player to be able to hear in the first place. Calculating echoes on the server and having the client treat them as separate "original" sound sources should also help somewhat.
- jiggy2011 14y agoEven if you don't know who it is, knowing that someone is around the other side of the wall is a huge advantage in an FPS game. Also players tend to have their teammates displayed on a map, so the cheat program could take this into account and mark as friend or foe. Pushing this info to the client early also allows the program to make sure all the required assets are loaded into memory before it has to be rendered. You could stream sound from the server, but latency might be an issue.