Remix.run Logo
dvt an hour ago

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.

shaokind 25 minutes ago | parent | next [-]

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...

xeonmc 14 minutes ago | parent [-]

PVS-based culling is very different from the kind of fog of war system in discussion here. The cases that these FoW systems purports to deal with would all be "pass" cases for PVS culling.

PVS culling solves the informational/strategic advantage aspect provided by wallhacks, but not the pre-aiming reaction-time advantage in a peeker vs holder scenario.

davedx an hour ago | parent | prev [-]

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

mmh0000 an hour ago | parent | next [-]

Because what do you think matters more in an online game:

A. Smooth and consistent client experience, where bullets hit what you aim at (client-side prediction) where aimbots and wallhacks work.

B. Jittery/laggy client experience, where aimbots still work, but wallhacks are disabled?

You can only choose one option.

Generally, everyone agrees "A" is the best option and cheaters will be dealt with at game time. It's annoying, but that's the cost of online video games.

frollogaston 34 minutes ago | parent [-]

Also even if it worked perfectly, there'd still be other practical ways to cheat. In a way it's better to detect cheats than prevent them, because you waste a lot more of their time sticking them into a pool of cheaters and can also undo it. Though afaik Counterstrike tells you when you're low-trust.

charcircuit a minute ago | parent | prev | next [-]

CSGO already does it.

xeonmc an hour ago | parent | prev [-]

The many tradeoffs involved are not trivial, this can only feasibly work well on LAN.

This is the reason why Valorant is the least playable among all competitive shooters if your internet is anything lesser than Google campus fiber, ironically in spite of having even-slower-than-CS movement physics on its side to mask the problem.

Riot conveniently cherry picks the best case scenario and handwaves the actual technical tradeoffs in their smug "we solved peeker's advantage!" engineering blog posts that are really just barely-disguised monorail Gish gallop.