Hacker News new | ask | show | jobs
by DethNinja 1816 days ago
You can actually raycast at server time and only send the location of players visible to client back. So wallhacks are definitely detectable on server side, in fact one of the games I’m making uses this system, it isn’t even that expensive.
2 comments

Scenario: I step around a corner. There are enemies behind the corner which I didn’t see previously because they were hidden behind the corner for me.

Will I see enemies behind the corner instantly, or do I have to wait for round-trip time for the server to acknowledge that I stepped out of the corner and tell me where the enemies are?

Wall scale would have to be reduced around 10% less for visibility check on the server-side, so that player view info would be sent without RTT problems especially for the cases you mention.
This makes sense. However, what if we consider another scenario: a cheating player just staying behind the corner. He/she would have no problems receiving information about enemies behind that corner, so this would be much easier for the cheater to push the corner. Basically, the portion of the wall that you cut off for purposes of this visibility check can be considered transparent for cheaters, and opaque for legitimate players, putting legit players in disadvantage.

Can this happen in the game you make? If yes, do you consider this a vulnerability?

It definitely can happen, it is a vulnerability but an acceptable one:

1. There is no such thing as perfect anti-cheat solution with today’s resources. Even client side rootkit based solutions can be overcome.

2. My solution completely eliminates wall hacking at 90% of the cases, same can’t be said for the rootkit anti-cheat solutions.

3. Game can be designed to put corner campers to disadvantage. But honestly no need to think extremely deep about such cases, you would first release the game then check the player complaints about wall hackers. If it is a major issue then you can implement a double ray-cast solution for most reported players, use correct size wall for their ray-casts and ban them statistically. Even if you can ban players accidentally it wouldn’t be a huge portion of your player base.

Yes, but nonetheless, we either get a solution that affects gameplay experience, like enemies popping out with a delay, or that works only partially - in a variant with reduced walls, in 100% of cases, a cheater will have a bit more time to prepare for what's around the corner.

It is true that there is no silver bullet. Anti-cheating solutions are all about compromises. Ring-0 anti-cheats are just another compromise that enable anti-cheat developers to scan for cheats efficiently, with some risk of privacy abuse added (and not as big risk as some may think - I believe Microsoft would revoke driver signatures from any anti-cheat developer that tried doing shady stuff, after which the developer would go bankrupt, most likely). This is not a compromise that most of HN would take, but I don't see a problem if users are well-informed about the risks.

False-positive bans of legitimate players can become a legal liability, especially for users that paid real money for the game.

This doesn't 100% fix the vulnerability. If your game has footstep sound effects the hack can detect the location of the audio sources playing footstep clips.

(I agree though that low-level anticheat also doesn't 100% solve cheating, and causes lots of problems for legitimate players. Just that cheating is always going to be a game of cat and mouse)

> the hack can detect the location of the audio sources playing footstep clips.

You don't need a hack for this; the whole point[0] of having footstep sound effects is that the player can detect the location of the audio sources playing footstep clips.

Edit: 0: well, and ambiance, but if your ambiance is impacting your tactical considerations, that's a game design issue in and of itself.