

I do think there is quite an obvious solution that game developers dont yet realize.
The client is always compromised
Instead of relying on increasingly invasine client side anti cheat, with a zero trust mentality it doesn’t matter how many cheats the client has installed.
Ofcourse this is’t easy to do, but its the only thing that actually works, client side anti cheat will always be broken.
I do think some of these limitations can be resolved. But it indeed poses a big challenge. You can go to big lenghts with server occlusion checking to prevent wall hacks but under zero trust any game with directional sound already has build in wallhacks.
I mostly speak from experience with my developing my own game which is not an FPS. Previously the client would send “i build on this position”. Which could very easily be abused. Which I then changed to “i build with this angle and this distance from the previous node” the client would then already show the newly constructed “ghost” node while the server would check if that construction is valid and then send the real position to all clients. The only thing a player would notice is that with high ping the constructed node would move slightly as it got the definitive position from the server. While being significantly more cheater proof.
I suppose im biased towards this kind of thinking since im not working on a FPS game, what for me might be a simple change is a massive undertaking for other genres.