Rendered at 06:25:52 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
dvt 12 hours 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.
[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.
cosmic_cheese 10 hours ago [-]
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.
dietr1ch 2 hours ago [-]
I don't know how it'd be a huge advantage in MMOs, but in Ragnarok the bots used a re-implementation of the client and custom servers tested for differences and culling of entities by the original game client to ban bots (as they'd try to interact with entities that should've been culled)
dvt 10 hours ago [-]
Well, if you cheat in WoW, Blizzard might just sue you[1], so that tends to be quite effective :)
I haven't played WoW, but I played other third-person MMORPGs, and usually by design you can freely rotate the camera and see behind walls. The "fog of war" is simply a distance around the player. So they do implement this, it's just not nearly as complicated to implement as in an FPS.
foota 10 hours ago [-]
How would it help? MMOs generally don't need to know where things are right now since it's mostly static, no?
cherryteastain 10 hours ago [-]
WoW has a lot of mechanics involving line of sight (eg a spell you begin casting when the target was in LOS will fail when the casting time finishes if the target moves out of LOS) and positioning (AOE spells, spell ranges, NPCs/objects you can interact with only within a certain range, among many others)
ExpertAdvisor01 8 hours ago [-]
Has been implemented in mobas such as lol
davedx 12 hours ago [-]
Why on earth don't the producers of the game implement this? It sounds trivial to do?
mmh0000 12 hours ago [-]
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.
20k 8 hours ago [-]
It isn't an unsolvable problem though, there's only jitter because the implementation isn't very good
Implementing a more conservative anti wallhack cheat where player positions start streaming in slightly earlier still significantly cuts down on the efficacy of wallhacking, while entirely avoiding the jitter problem. Characters in CSGO move at a fixed speed, so you can calculate exactly how many ticks in advance you need to start sending that data in, before they will become visible to another client around a corner - and add a margin
There's also no excuse for sending player positions through a smoke for example - the server should be performing visibility culling
With the two combined you could cut the utility of wallhacks by 80%, in a way that would be completely unnoticeable. The real reason that this has never happened is that valve's investment into anticheat has always been pretty minimal compared to what's necessary for it to be effective (VAC has generally been the least effective anticheat). They're a small company which largely develops steam as a platform, not VAC or anticheat solutions for games
paulryanrogers 5 hours ago [-]
> They're a small company which largely develops steam as a platform, not VAC or anticheat solutions for games
If anyone can afford to develop effective anti-cheat, Valve can.
frollogaston 11 hours ago [-]
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.
6510 9 hours ago [-]
C. give everyone wall hack and aimbot.
dminik 7 hours ago [-]
They've actually unimplemented this. CS:GO being a source 1 game meant the maps used BSPs and got visibility checking essentially for free.
Various platforms even made it stricter. It was not uncommon to see enemies teleport from behind walls on Faceit as their settings were very strict.
However, Source 2 is more of a mesh based engine and so they just never bothered to implement this particular feature back in.
xeonmc 12 hours ago [-]
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.
tharkun__ 2 hours ago [-]
Hah, this reminds me of my "ancient past".
This must have been CS 1.4 or 1.5 times. I had terrible internet. 36k modem times, super high (ish - 150+ms at the very least, been a while, don't quote me, maybe it was way higher even?) ping to a server that had all the custom maps I loved.
I got accused of cheating.
I didn't.
Simply a result of CS/HL netcode. I was able to "run circles" around others. Something in that version favored my local client view of things I suppose. I literally just went around corners and if there was an enemy I circled them while driving bullets into them w/ my P90. They died without even really seeing me (from what they were saying). On my end everything looked smooth and normal.
This tactic never worked all that well on servers where I had the usual <120ms ping. I guess never mind at <15ms :)
efilife 8 hours ago [-]
Yup, I just reread the post you are talking about (https://www.riotgames.com/en/news/peeking-valorants-netcode) and it really seems like just endless fluff and no real solutions. Reading this post is almost unbearable and it all just comes down to this part:
> We built Riot Direct, our own internet backbone, to minimize network routing delays and processing time across the internet.
> We’re standing up VALORANT servers around the world, ultimately aiming to deliver 35ms ping to 70% of our player base.
> We optimized our servers to provide a smooth 128 server tickrate to all players.
> We optimized the VALORANT game client to run at 60FPS on most machines from this decade and higher framerates for players with high refresh rate monitors.
> We run clients and servers running with minimal buffering, targeting one buffered frame of movement data for clients and an average of half a frame of movement data on servers.
This seems like basic stuff that every other game does.
charcircuit 11 hours ago [-]
CSGO already added this over a decade ago.
aucisson_masque 8 hours ago [-]
> 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.
And even then I heard of aimbots included in the gamer mouse that would 'infect'the computer when it's wired in.
jjpones 6 hours ago [-]
That's the infamous "word.exe" CSGO scandal.
delusional 10 hours ago [-]
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.
reactordev 10 hours ago [-]
Except when the professionals are doing the cheating. LAN won’t save you. Word.exe
6510 9 hours ago [-]
my first thought was to have lots of hidden players running around that only you can see. The grenade thing kinda ruins it.
shaokind 11 hours ago [-]
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.
Always confuses me why people speak so authoritatively on topics they aren't versed in. PVS culling is not even remotely comparable to occlusion culling, mainly because wallhacks are not relevant accross the map; in fact they are only useful when opponents are always well into your PVS range.
FYI: there are also some clever ways to get around PVS culling (mostly by inferring opponent position based on other indicators, like gunfire).
9 hours ago [-]
xeonmc 11 hours ago [-]
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.
landr0id 13 hours ago [-]
I wonder how often wall hacks are actually used in high-level competitive play by cheaters vs ESP. ESP seems like the better route to avoid manual review flagging suspicious activity. Audible cues (which this currently does not mitigate, and I'm not sure it can) are things that can genuinely separate players by skill and you'd think someone running such a cheat just has very good hearing.
>CS2FOW uses static baked map geometry. Dynamic occluders such as doors, breakables, props, smokes, particles, and projectiles are intentionally out of scope for now.
Market window on Mirage just became more powerful on these servers :)
Very cool project nonetheless.
12 hours ago [-]
aidenn0 11 hours ago [-]
I didn't know what ESP was; from some googling, it appears to notify you when someone is aiming at you?
landr0id 11 hours ago [-]
Yeah my bad for not defining it. "Extra-Sensory Perception", basically as you said I believe is the most common feature -- but in general I think encompasses cheats that generally boost your "senses". So it could use audio to visually draw on your screen/radar where the sound came from.
The screenshot in this repo is kind of similar to wallhacks, but you could imagine this could easily be extended to show dropped items and the 3D audio location: https://github.com/ryanjpwatts/esp-analysis
dabber21 8 hours ago [-]
I wonder if it could spawn "ghost players" in places no player could be to detect reaction
skimdesk 1 hours ago [-]
There was research on this published by Activision [1]. Spawning fake enemies behind the users back, inside walls, etc.
The players who react to fake enemies self-identify as cheaters.
Honeypot & statistics are a much more interesting avenue of anti-cheat to me. The most egregious cheaters tend to get banned the most quickly with these techniques (e.g. a 200-1 K/D ratio = a lot of samples per unit time).
When it comes to cheating in video games, I subscribe more to the Dune philosophy than the LOTR philosophy. The ends (experience) definitely justify the means. Making sure that all cheaters are punished ~equally regardless of the effect of their infractions is fantastic in principle, but I'd rather if we could simply remove the ones that are obviously & openly ruining the experience.
False positives suck, but there is no reason to pander to the .01% performers if you are trying to keep a multiplayer game community alive. Esports has demonstrated this is a terrible approach. We had community servers that would ban people simply for being too good before all the matchmaking stuff started up. The anti-cheat was vibes based and arguably superior to anything going on today. It wasn't "fair", but it was generally a much better experience as a player.
Xeoncross 11 hours ago [-]
Moving away from the technical solution space - I'm curious, have their been any games (or communities) with a high entry fee/deposit (e.g. $500 USD) to join kept in escrow and lost in the event you're discovered to be cheating?
There are plenty more questions like paying for mods/review, securing the money, paying for servers, etc.. but my basic question is if cost of entry exceeds cost of reward from cheating has ever been attempted in a game.
Apparently buying a new copy of a $10-20 game isn't enough to keep people away from cheats. Less so when there is prize money on the line or skins (e.g. CS2) worth $100k.
lachiflippi 10 hours ago [-]
>e.g. $500 USD
I've seen private cheats for games with less-than-terrible anticheats charge that monthly, if not weekly. You're underestimating how much people are willing to pay to play with cheats, and overestimating how much regular people are willing to pay to play against players without them.
frollogaston 10 hours ago [-]
Yeah you'll deter legit players with the escrow way before you'll deter cheaters. It's a good thought but probably not going to work.
frollogaston 10 hours ago [-]
Csgo became free at some point, and I remember the amount of smurfing increasing a lot then. Have rarely noticed cheaters, but smurfs are just as bad if not worse. They do at least require new accounts to waste some time playing deathmatch to be eligible for competitive.
xeonmc 12 hours ago [-]
> Does it cause pop-in when peeking?
The goal is early reveal, not exact last-millisecond reveal.
CS2FOW predicts using movement and ping, reveals enemies slightly before exact visibility, and keeps revealed enemies visible briefly. This intentionally leaks a small near-corner window to avoid late pop-in.
This fails to address the main point of the "pop-in" issue relevant to fog of war systems, which is that it is the victim of the peek that gets the worst pop-in effect, the peeker much less so. The aggressive peeker gets the benefit of the early-prediction from the server since they're the initiator of the movement, whereas the victim only begins to receive the information after the peeker has already gotten two network roundtrips worth of early prediction.
bakies 12 hours ago [-]
Why wouldn't you just send the positions to both clients in the same tick? Seems trivial to solve.
Sayrus 12 hours ago [-]
Peeker's advantage is not directly related to fog of war. The peeker is moving so before the movement is even sent to the server, the client's camera began moving. As such, the peeker will have at least a tick, usually more before that new position is available to the opponent.
"Fixing" this would make movement sluggish: any movement would need to be validated by the server. Meaning delay between pressing keys and actual movement.
20k 8 hours ago [-]
But the pop in system doesn't relate to this at all. Peekers advantage still exists with this system on or off in exactly the same way, and both players will see exactly what they would have seen previously without the culling system
dvt 12 hours ago [-]
"Same tick" is a misnomer for a few reasons. First of all, games use UDP, which is basically a "fire and forget" protocol (which means packets get dropped routinely). Second of all, realtime games use some interpolation/prediction to make up for latency (and aforementioned dropped packets).
So it's sort of a "relativistic" temporal system, not a linear "oh now you're at t=1, now you're at t=2" kind of timeline. And there's all kinds of complicated ways you create concensus between multiple clients, between server and clients, etc. (A lot of this remains an active research area.)
bakies 8 hours ago [-]
Counter strike in fact uses ticks
dvt 8 hours ago [-]
A tick is the smallest amount of time the server does its "work" in. It does not mean, as the person I'm replying to was implying, that clients are 100% always lined up, because a game is played (locally) at much higher update rates.
So a server, of course, does send updates (player position, etc.) every "tick," but that doesn't matter. Even assuming zero dropped packets (suppose we're playing over TCP), it would feel like shit (stuttering, rubber-banding, pop-in, jittery physics, etc.) to play a game over a ~60ms latency that updates ~60 times a second vs other people that also are ~60ms from the server, so game engines do a lot of interpolation and servers are in charge of concensus. Hence, it's a bit of a misdirection to say: "can't you just send everyone the right player data every server update?" because servers obviously already do that (and that's not really the hard part, anyway).
Local interpolation and remote concensus is the hard part, and games handle this differently. In CS, for example, two players cannot kill each other (with guns) simultaneously. Valve's engine requires that someone always wins a gunfight (which sometimes can feel random). However, I would argue that feels way better than, e.g. in Halo, where you can headshot each other (and both players die), which feels dumb and frustrating.
So when building these servers, there are lot of tradeoffs to consider (a lot of which might change the feel of the game).
bakies 5 hours ago [-]
In the context of this fog of war thread when we're talking about pop in and peekers advantage. The relevant bit is to make the game fair for the both of them. For FOW its trivial to make the decision to reveal both players to each client during the same tick. Yes I'm aware of all the other knobs and gameplay possibilities. Ive got a shitload of hours and followed pro scenes for a long time, none of that matters to this fog of war anti cheat program.
dvt 3 hours ago [-]
> to reveal both players to each client during the same tick
And I explained why this is not feasible given modern network topology. Players move around maps and peek around corners in between these "tick updates" the client gets from the server; therefore, we have to use clever methods of interpolation and prediction as well as server consensus to ensure that gameplay is smooth (e.g. models can't just pop in out of nowhere, movement feels good) while also being as fair as possible (e.g. we don't favor one player's view over another's).
ThatPlayer 10 hours ago [-]
That would have to include your own position on your own client. Adding a delay of the RTT of the worst latency in the server to your inputs
Some games still do this. RTS games notably, but hide it with mouse and sound effects. If anyone remembers the Starcraft 1 option of "extra high latency", it would work by increasing the delay.
webstrand 12 hours ago [-]
Interesting, could it be mitigated by the server doing its own prediction and defogging the peeker early? Or is lag prediction in CS2 not entirely client-sided.
xeonmc 12 hours ago [-]
It's more that momentum-based defogging means that the peeker has control over how to manipulate the server's prediction, whereas the victim who is already disadvantaged by network latency now gets an additional penalty of the movement initiation being not telegraphed.
To solve this, the fog of war would need to use purely positional near-edge tolerances, which defeats the entire purpose of fog of war to begin with, which is the pre-aiming reaction time advantage of tracking the peeker through walls in addition to having a farther lever point from the cover than the peeker.
12 hours ago [-]
the_gipsy 9 hours ago [-]
What is the reason for thinking "early, not milliseconds" would not mean "early enough for the peeked/victim too?
Ultimately the server must decide when to "pop" players, regardless of client interpolation which can only happen after the pop. So why would the server delay the pop for one player?
lousken 11 hours ago [-]
Why hasn't valve poured a billion or two on fixing this concept and implementing it?
That's for Counter-Strike: Global Offensive - different engine.
nyeah 12 hours ago [-]
Wallhack is locked into the DNA of CS for some reason. The most common defense by far is mass denial. For the great majority of players that seems to be good enough.
ultimafan 9 hours ago [-]
Not just CS, I don't think people realize how prevalent cheating is in any multiplayer game. The issue is compounded by the fact that many high skill ceiling games are plagued by "micro cheats" being used by players that are already fairly decent at the game even without them, making it borderline impossible for casual players to tell if what just happened to them was a fair skill gap or someone cheating.
I don't play multiplayer games anymore for that reason. Too easy to go on an emotional tilt where you feel like you're suffering from paranoia and suspecting too many players of cheating. It's absolutely ruined competitive games for me.
toilet 6 hours ago [-]
Get good
frollogaston 11 hours ago [-]
I'm fine as long as the game is somewhat evenly matched, and not fine if it's not. With or without cheating. Then whatever cheaters they can catch and shadowban, great. Smurfing is a way bigger problem anyway, cause some people treat the game like a job and will beat you more reliably than cheaters.
MatheusFelipe 10 hours ago [-]
Why doesn't Valve implement this natively?
aucisson_masque 8 hours ago [-]
To me, the best anti cheat are the one you put in the game design.
There is only one 'fps' I play, it's called holdfast and is about Napoleonic warfare. Muskets are so inaccurate that having a wallhack or an aimbot would be complete nonsense.
There are still people who cheat in other way, but it's extremely limited.
Cheaters killed 90% of the multiplayer game to me.
szmarczak 12 hours ago [-]
This is good. However, it still sends info about the players ~200ms ahead which still makes you lose.
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.
[1] https://en.wikipedia.org/wiki/MDY_Industries,_LLC_v._Blizzar....
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.
Implementing a more conservative anti wallhack cheat where player positions start streaming in slightly earlier still significantly cuts down on the efficacy of wallhacking, while entirely avoiding the jitter problem. Characters in CSGO move at a fixed speed, so you can calculate exactly how many ticks in advance you need to start sending that data in, before they will become visible to another client around a corner - and add a margin
There's also no excuse for sending player positions through a smoke for example - the server should be performing visibility culling
With the two combined you could cut the utility of wallhacks by 80%, in a way that would be completely unnoticeable. The real reason that this has never happened is that valve's investment into anticheat has always been pretty minimal compared to what's necessary for it to be effective (VAC has generally been the least effective anticheat). They're a small company which largely develops steam as a platform, not VAC or anticheat solutions for games
If anyone can afford to develop effective anti-cheat, Valve can.
Various platforms even made it stricter. It was not uncommon to see enemies teleport from behind walls on Faceit as their settings were very strict.
However, Source 2 is more of a mesh based engine and so they just never bothered to implement this particular feature back in.
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.
This must have been CS 1.4 or 1.5 times. I had terrible internet. 36k modem times, super high (ish - 150+ms at the very least, been a while, don't quote me, maybe it was way higher even?) ping to a server that had all the custom maps I loved.
I got accused of cheating.
I didn't.
Simply a result of CS/HL netcode. I was able to "run circles" around others. Something in that version favored my local client view of things I suppose. I literally just went around corners and if there was an enemy I circled them while driving bullets into them w/ my P90. They died without even really seeing me (from what they were saying). On my end everything looked smooth and normal.
This tactic never worked all that well on servers where I had the usual <120ms ping. I guess never mind at <15ms :)
> We built Riot Direct, our own internet backbone, to minimize network routing delays and processing time across the internet.
> We’re standing up VALORANT servers around the world, ultimately aiming to deliver 35ms ping to 70% of our player base.
> We optimized our servers to provide a smooth 128 server tickrate to all players.
> We optimized the VALORANT game client to run at 60FPS on most machines from this decade and higher framerates for players with high refresh rate monitors.
> We run clients and servers running with minimal buffering, targeting one buffered frame of movement data for clients and an average of half a frame of movement data on servers.
This seems like basic stuff that every other game does.
And even then I heard of aimbots included in the gamer mouse that would 'infect'the computer when it's wired in.
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.
[0]: https://www.reddit.com/r/GlobalOffensive/comments/35zwwy/opt...
Always confuses me why people speak so authoritatively on topics they aren't versed in. PVS culling is not even remotely comparable to occlusion culling, mainly because wallhacks are not relevant accross the map; in fact they are only useful when opponents are always well into your PVS range.
FYI: there are also some clever ways to get around PVS culling (mostly by inferring opponent position based on other indicators, like gunfire).
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.
>CS2FOW uses static baked map geometry. Dynamic occluders such as doors, breakables, props, smokes, particles, and projectiles are intentionally out of scope for now.
Market window on Mirage just became more powerful on these servers :)
Very cool project nonetheless.
The screenshot in this repo is kind of similar to wallhacks, but you could imagine this could easily be extended to show dropped items and the 3D audio location: https://github.com/ryanjpwatts/esp-analysis
The players who react to fake enemies self-identify as cheaters.
[1]: https://www.activision.com/cdn/research/hallucinations
When it comes to cheating in video games, I subscribe more to the Dune philosophy than the LOTR philosophy. The ends (experience) definitely justify the means. Making sure that all cheaters are punished ~equally regardless of the effect of their infractions is fantastic in principle, but I'd rather if we could simply remove the ones that are obviously & openly ruining the experience.
False positives suck, but there is no reason to pander to the .01% performers if you are trying to keep a multiplayer game community alive. Esports has demonstrated this is a terrible approach. We had community servers that would ban people simply for being too good before all the matchmaking stuff started up. The anti-cheat was vibes based and arguably superior to anything going on today. It wasn't "fair", but it was generally a much better experience as a player.
There are plenty more questions like paying for mods/review, securing the money, paying for servers, etc.. but my basic question is if cost of entry exceeds cost of reward from cheating has ever been attempted in a game.
Apparently buying a new copy of a $10-20 game isn't enough to keep people away from cheats. Less so when there is prize money on the line or skins (e.g. CS2) worth $100k.
I've seen private cheats for games with less-than-terrible anticheats charge that monthly, if not weekly. You're underestimating how much people are willing to pay to play with cheats, and overestimating how much regular people are willing to pay to play against players without them.
"Fixing" this would make movement sluggish: any movement would need to be validated by the server. Meaning delay between pressing keys and actual movement.
So it's sort of a "relativistic" temporal system, not a linear "oh now you're at t=1, now you're at t=2" kind of timeline. And there's all kinds of complicated ways you create concensus between multiple clients, between server and clients, etc. (A lot of this remains an active research area.)
So a server, of course, does send updates (player position, etc.) every "tick," but that doesn't matter. Even assuming zero dropped packets (suppose we're playing over TCP), it would feel like shit (stuttering, rubber-banding, pop-in, jittery physics, etc.) to play a game over a ~60ms latency that updates ~60 times a second vs other people that also are ~60ms from the server, so game engines do a lot of interpolation and servers are in charge of concensus. Hence, it's a bit of a misdirection to say: "can't you just send everyone the right player data every server update?" because servers obviously already do that (and that's not really the hard part, anyway).
Local interpolation and remote concensus is the hard part, and games handle this differently. In CS, for example, two players cannot kill each other (with guns) simultaneously. Valve's engine requires that someone always wins a gunfight (which sometimes can feel random). However, I would argue that feels way better than, e.g. in Halo, where you can headshot each other (and both players die), which feels dumb and frustrating.
So when building these servers, there are lot of tradeoffs to consider (a lot of which might change the feel of the game).
And I explained why this is not feasible given modern network topology. Players move around maps and peek around corners in between these "tick updates" the client gets from the server; therefore, we have to use clever methods of interpolation and prediction as well as server consensus to ensure that gameplay is smooth (e.g. models can't just pop in out of nowhere, movement feels good) while also being as fair as possible (e.g. we don't favor one player's view over another's).
Some games still do this. RTS games notably, but hide it with mouse and sound effects. If anyone remembers the Starcraft 1 option of "extra high latency", it would work by increasing the delay.
To solve this, the fog of war would need to use purely positional near-edge tolerances, which defeats the entire purpose of fog of war to begin with, which is the pre-aiming reaction time advantage of tracking the peeker through walls in addition to having a farther lever point from the cover than the peeker.
Ultimately the server must decide when to "pop" players, regardless of client interpolation which can only happen after the pop. So why would the server delay the pop for one player?
>– Added trace-based visibility checks to prevent networking invisible enemy players.
https://blog.counter-strike.net/2015/05/11988
I don't play multiplayer games anymore for that reason. Too easy to go on an emotional tilt where you feel like you're suffering from paranoia and suspecting too many players of cheating. It's absolutely ruined competitive games for me.
There is only one 'fps' I play, it's called holdfast and is about Napoleonic warfare. Muskets are so inaccurate that having a wallhack or an aimbot would be complete nonsense.
There are still people who cheat in other way, but it's extremely limited.
Cheaters killed 90% of the multiplayer game to me.