This is unfortunately easier said than done. This defcon talk from 14y ago comes to mind.
If 100% of the game state is server authoritative, then there are always exploits in the netcode. Because either you have netcode that is so rigid that the first time a packet is late, or some floating point math doesn’t add up right, you don’t know what to do and break; or you have netcode that makes up for little discrepancies, and hackers eventually find them and abuse them.
It would be nice if the client isn’t told about player locations they don’t see yet, but now the server has to calculate occlusion for every player vs every opponent on every server tick. And let’s say you find a magically optimized way to do this, now how do you attenuate sounds like footstep or gunshot dynamics?
Anticheat is always an arms race. There is no “just do X, and you’ve defeated the cheaters”. Contrary to popular belief, hundreds of very smart people have been working at solving these problems for literally decades, and the arms race always ends up on the client.
This is unfortunately easier said than done. This defcon talk from 14y ago comes to mind.
If 100% of the game state is server authoritative, then there are always exploits in the netcode. Because either you have netcode that is so rigid that the first time a packet is late, or some floating point math doesn’t add up right, you don’t know what to do and break; or you have netcode that makes up for little discrepancies, and hackers eventually find them and abuse them.
It would be nice if the client isn’t told about player locations they don’t see yet, but now the server has to calculate occlusion for every player vs every opponent on every server tick. And let’s say you find a magically optimized way to do this, now how do you attenuate sounds like footstep or gunshot dynamics?
Anticheat is always an arms race. There is no “just do X, and you’ve defeated the cheaters”. Contrary to popular belief, hundreds of very smart people have been working at solving these problems for literally decades, and the arms race always ends up on the client.