Comment by tomxor

10 hours ago

> What is a videogame cheat? [...] an external program that somehow manipulates the game or reads information from the game to provide you with an advantage over others.

This has always interested me when it comes to the need for anti-cheat to exist... For instance with wallhacking, the way most FPS style game engines have always been written means the server sends all player location information to all clients, so it's all there in memory if you can get to it.

But what if your server engine instead only sent relevant player location data to each client, it would be more work, the server would have to do occlusion tests for each player pair, but a bounding box and some reasonable spatial partitioning should make that reasonably efficient. To prevent occlusion lag, e.g players not smoothly appearing around corners, the server can make reasonable predictions with some error margins based on a combination of current player velocities and latencies.

I know this is just one part of cheating, but it seems like all the other ones (manipulating input) is a losing battle anyway. I mean ultimately you can't stop people hooking up the input and display to a completely independent device with computer vision.

This is already done in Valorant at least (and presumably other games I'm not as familiar with). Unfortunately you are strongly limited by network latency. Imagine you're standing up against a wall next to a door. You expect if you step 1 foot sideways to instantly see the entire room and everyone within it. Hence your client already has to know everyone's locations in the room or you will get pop-in. You can limit people's ability to get truly implausible free information, but pretty much any-time someone is rounding a corner there is an unavoidable period of game-breaking free information you have to give the client.

If you look at the bottom gif in this post you can see what a huge advantage a wall-hack still is: https://technology.riotgames.com/news/demolishing-wallhacks-...

>the server would have to do occlusion tests for each player pair, but a bounding box and some reasonable spatial partitioning should make that reasonably efficient.

Shadows and reflections are the hard part. Especially when light can be cast by your own/other players' weapon. It gets even more complicated with ray tracing becoming common.

  • Good point, there's also sound. I suppose ultimately only server side rendering could solve that... although that is a thing now.