Valve announced a change for Steam today that will make things a lot clearer for everyone, as developers will now need to clearly list the kernel-level anti-cheat used on Steam store pages.
Now if only they could more clearly communicate when games are playable offline.
I imagine the alternative way to combat kernel-level cheats would be asking player for all his game state data, validating it on a server?
Wouldn't work on peer-to-peer and you'd have to do a bunch of unnecessary compute(recalculating every tick if player-generated data is possible according to game rules) but its the only way I can think of.
Don't tell the client what's going on outside its vision, I suppose? Add a small buffer to compensate for latency, so wall hack would be more of a "corner hack".
I mean sure, that is how some (mostly strategy and tactical) games do it, but for an FPS, figuring out where the buffer should be would be a programmers nightmare. I guess you would have to try to calculate all possible lines of sights a player could have within some buffer time (100-1000ms) and then all players that could in theory enter them... Add physics and it is practically impossible.
Also, corner hack is useful enough and it does not address aimbot. IMO the answer is some combination of human moderation and ability to play with "friends" instead of randos. E.g. you could ask people to like or dislike a player at the end of a match and try to pair players that liked each other in the past.