logoalt Hacker News

dvttoday at 6:07 PM6 repliesview on HN

This has been done before in both 1.6 as well as Source. I helped with some of these implementations back in the late-2000s when I was playing professionally and I even tried to kickstart an anti-cheat hardware solution about a decade ago[1].. spent way too much time working on some of these problems. The main issue with occlusion was slightly increased latency, visual jitter because of interpolation (especially around corners), and a few other more technical problems[2]. It's good enough for public servers, but not tenable in serious competition.

Cheating has always been a problem in FPSs, and it likely won't go away. That's why premier competitions have always been on LAN.

[1] https://www.pcgamer.com/introducing-gameref-the-anti-cheat-h...

[2] Hard to fully obfuscate audio sources, hard to obfuscate hitboxes since you still need them for collision checking (e.g. if a grenade bounces off an enemy player behind a wall—the server does not do all physics for all clients), and this is on top of the engine itself sometimes requiring actual entities, so you're stuck with these dummy entities in memory, and so on.


Replies

cosmic_cheesetoday at 8:01 PM

I wonder why similar methods haven't been employed in MMO servers to help curb botting/cheating there. The impact of jitter and loss of smoothness in a tab-target game like WoW would be minimal (even in PvP), because it's always had a noticable level of artifacts like rubberbanding.

show 4 replies
davedxtoday at 6:15 PM

Why on earth don't the producers of the game implement this? It sounds trivial to do?

show 3 replies
delusionaltoday at 8:01 PM

I was on the other side of this in League of Legends. They used to have packets leak information to the client about player position. The classic examples are for stuff like particle emission or spell usage. Well at some point they decided that they had enough and did a pretty major rework of their netcode to only send player positions when you were supposed to have vision on them (plus a tiny extra radius). That absolutely wrecked the determinism of the game, as small jitters would cause skill shots to hit you before they even drew in your game, players would become invisible as the packets arrived out of order. Particle emitters would bug out.

This stuff i way harder than people imagine. I think League eventually got it somewhat figured out, but it took a couple of years from what i recall.

6510today at 9:30 PM

my first thought was to have lots of hidden players running around that only you can see. The grenade thing kinda ruins it.

reactordevtoday at 8:03 PM

Except when the professionals are doing the cheating. LAN won’t save you. Word.exe

shaokindtoday at 7:07 PM

Valve also implemented this on CS:GO back in 2015 [0], and enabled by default in competitive servers, so I would consider it absolutely tenable (FACEIT, the platform used by competitive variants, had their own hand-rolled SMAC implementation, before using the 1st party solution, albei,t that solution was buggy). Why Valve didn't port this over to CS2, I will never know.

[0]: https://www.reddit.com/r/GlobalOffensive/comments/35zwwy/opt...

show 2 replies