Didn't most first person games have this automatically because of using the Quake engine due to their PVS system? It was used to reduce drawing overhead but also beneficial in not sending more data than needed and preserve bandwidth serversided.
AFAIK no they didn't, Valves engines are from the Quake lineage and still use PVS but they only added serverside fog-of-war to Counter Strike relatively recently in ~2015. As the Valorant article goes into, it's a harder problem than it appears because you need to allow the client some wiggle room to know an enemy in coming around a corner before the player sees them so that lag compensation and shadows work correctly (Valorant sidesteps the shadow issue by simply not having players cast shadows). Plus PVS is quite coarse so if you want precise culling you need a more computationally expensive solution.
This video compares Valves own fog-of-war implementation to the implementation used by FACEIT, a third party competitive matchmaking service, which shows there's a pretty wide range of trade-offs to be made. Valve went for conservative and fast, while FACEIT went for aggressive and (presumably) slow:
Valves implementation is better than nothing, it at least stops cheaters from knowing which direction the other team is going at the start of a round, but beyond that it doesn't stop them from knowing exactly where most enemies are standing around corners because the serverside visibility checks are so coarse.
I'm not sure if the fog of war anti-hack applies to League of Legends: Wild Rift (mobile version of LoL) since there are map hacks where you can see enemy positions going around:
That's weird, top-down games usually have a clearly defined fog-of-war so it's relatively simple for the server to withhold information that clients don't need to know. Maybe they cheaped out by using peer-to-peer netcode in that version, so there isn't an authoritative dedicated server?
I don't think it did officially, there were definitely server plugins that did it back in the day but AFAICT it wasn't official until this 2015 update:
If you're remembering playing with the r_drawothermodels console command to get a faux-wallhack effect, that was still subject to the engines clientside occlusion culling so it didn't show everything the client (and real cheats) were actually aware of.
I can't help but envy the engineers in this article as I sit here, procrastinating my fulltime career as a glorified CRUD engineer with complementary soft skills.
Maybe the grass is always greener, but it just sounds like an incredible opportunity for anyone working on the Valorant team. You get to solve challenging, interesting problems that hundreds of millions of users will benefit from, that's just so cool to me.
I generally agree that "the grass is greener" is common for IT people I think. It's a huge field, and you hear about people doing cool things all the time.
But on the flip side, that one cool thing might be the ONLY thing they do, all day, every day, which might not be as cool after 6-10 years.
But I do think your point about benefitting large numbers of people is a strong motivator..that's partly what academia relies on to keep employees as below-market rates -- the mission oriented drive to make the future better. I don't mean to poke at that issue specifically, but it's a great example of how teachers, etc. will continue to work for pennies as long as they can afford it (it's almost abusive).. but that drive is a critical part of their personal happiness
> But on the flip side, that one cool thing might be the ONLY thing they do, all day, every day, which might not be as cool after 6-10 years
Yeah, sometimes I think I'd like to be a systems engineer and work on databases or similar but then I think about that being 100% of my work and realize I don't desire that kind of job.
This stuff seems fun until you realize it means you're choosing to specialize in something pretty niche. I prefer being a product engineer working on web stuff for now until I find something worthwhile specializing in.
Riot has a notoriously toxic work environment, and recently has had massive rounds of layoffs[0]. And it’s extra bad for women, like at most game studios.
One of the things about a blog like this is that this isn't one persons job; it's the equivalent of something like this [0]. It's a design tenet of the application, and an engineering culture of the team.
You're ever chasing the mouse. If it's not some hacker, it's some bug. If it's not a bug than its a feature and then all three.
Directors want results, 24 hour of stressful debugging to discover why some new person can now shoot through walls, creating a patch, replicating and ensuring it doesn't exploit or nuke any other feature and pushing the patch out without effecting gameplay is stressful. Partly why Overwatch had real-time patching abilities on each game.
You don't get downtime, no sitting on tickets. Hacking costs revenue and you got to ensure your work is correct.
While playing FPS', I wondered why corners were a point of contention for me, both in dying or killing, and now I have additional insight.
I can sit at a corner and die from an oncoming enemy, or I can take the corner and take the enemy. I assumed it was all due to my own biological perceptual system, and now I see the synchronization would be giving each player an advantage depending upon who's overtaking the corner.
Gunplay in FPS games like CSGO and Valorant are all about angles. Almost all of the action happens in the split moments of contact, as players transition from not seeing each other to seeing each other.
So in that sense, corners are pretty much a point of contention for everyone at every level since most of the game is based around taking and holding corners/angles.
The peeker vs holder relationship is pretty interesting to analyze as there is more to it then just server sync. But how both players try minimize/isolate the amount of angles they attack/are exposed at any given point in time.
As well as use their general game knowledge to make predictions about where the enemy is most likely to be in a certain situation. Prioritizing their attention/crosshair on those angles while ignoring the others.
I think this what makes it fun. Theirs a lot of thinking + buildup/anticipation for the moment of contact between players which is then usually resolved in <1s. And since the dead player has to then sit out the round it feels meaningful.
Being further from the corner than your opponent also gives a big advantage since for any given angle as you peek you will see more of your opponent than they see of you.
The downside to being farther from the corner is that you're much more exposed. Player B only has to take 1 or 2 steps to take cover from Player A. Player A needs to run much farther to take cover.
Keep in mind that you're wider than the single spot you see from, it's possible for your opponent to see part of you before you can see your opponent at all. Who can see the other first depends on who is farther from the corner, as they see past it at a shallower angle.
I like to think of it as making sight-lines versus breaking sight lines.
And in fact, both people can be making one at the same time, but the trick is that they are a slightly different lines because each client has a slightly different idea of where both players are.
It's sort of neat that the same FPS networking fundamentals have stood the test of 25 years of game time, and it's a good historical lesson for those entering the industry or hobbyists to just study what architecture came out of Quakeworld.
Basically the only anti cheat that is somewhat successful. Secure multiplayer matchmaking has its price unfortunately.
But any process your user runs can read memory of other processes of the same user, Windows provides an API for it. So its not just kernel stuff that is scary.
Some of Valorant's game servers are hosted in a data center very close to my house. When I played, my ping was in the single digit milliseconds. Some people accused me of being a Riot employee.
Of course, that low ping didn't prevent me from being utter trash. My K/D ratio was usually around 0.3.
Come to think of it, seeing the network buffering they perform, I wonder if having such low ping actually gave me a disadvantage when peeking towards someone with a 30 ms ping?
Back in the early days of the internet when it was mostly connecting to universities, there was a popular PK mud hosted at the university I went to. So I had a massive advantage in that game. Game hackers weren't really a thing so people just assumed I was amazing at the game.
Most likely not, because modern game engines take a timestamp of your command packets and do relativistic calculations on when you clicked versus another player, and how that affects hitscan and projectile-based weapons.
Those timestamps are compared to a window against the server's and other players'.
Very strange that no one mentioned Valve’s papers on this which covers as far as I can tell most points here, nor “I Shot You First” which if I remember right was Halo’s version.
https://technology.riotgames.com/news/demolishing-wallhacks-...
Not many first person games have that "fog of war", it turns out to be quite hard to implement well.
This video compares Valves own fog-of-war implementation to the implementation used by FACEIT, a third party competitive matchmaking service, which shows there's a pretty wide range of trade-offs to be made. Valve went for conservative and fast, while FACEIT went for aggressive and (presumably) slow:
https://www.youtube.com/watch?v=8w1ICIBO3D4
Valves implementation is better than nothing, it at least stops cheaters from knowing which direction the other team is going at the start of a round, but beyond that it doesn't stop them from knowing exactly where most enemies are standing around corners because the serverside visibility checks are so coarse.
https://www.youtube.com/watch?v=pGKZCQoqEOk
https://www.youtube.com/watch?v=V600M8NqpzM
https://old.reddit.com/r/GlobalOffensive/comments/37ebes/maj...
> Added trace-based visibility checks to prevent networking invisible enemy players.
If you're remembering playing with the r_drawothermodels console command to get a faux-wallhack effect, that was still subject to the engines clientside occlusion culling so it didn't show everything the client (and real cheats) were actually aware of.
Maybe the grass is always greener, but it just sounds like an incredible opportunity for anyone working on the Valorant team. You get to solve challenging, interesting problems that hundreds of millions of users will benefit from, that's just so cool to me.
But on the flip side, that one cool thing might be the ONLY thing they do, all day, every day, which might not be as cool after 6-10 years.
But I do think your point about benefitting large numbers of people is a strong motivator..that's partly what academia relies on to keep employees as below-market rates -- the mission oriented drive to make the future better. I don't mean to poke at that issue specifically, but it's a great example of how teachers, etc. will continue to work for pennies as long as they can afford it (it's almost abusive).. but that drive is a critical part of their personal happiness
Yeah, sometimes I think I'd like to be a systems engineer and work on databases or similar but then I think about that being 100% of my work and realize I don't desire that kind of job.
This stuff seems fun until you realize it means you're choosing to specialize in something pretty niche. I prefer being a product engineer working on web stuff for now until I find something worthwhile specializing in.
Probably different at Riot? Not sure.
But companies like Blizzard/Activision and some smaller companies were described as very toxic environments.
[0]: https://www.riotgames.com/en/news/2024-rioter-update - 11% of staff let go
[0] https://www.figma.com/blog/keeping-figma-fast/
You're ever chasing the mouse. If it's not some hacker, it's some bug. If it's not a bug than its a feature and then all three.
Directors want results, 24 hour of stressful debugging to discover why some new person can now shoot through walls, creating a patch, replicating and ensuring it doesn't exploit or nuke any other feature and pushing the patch out without effecting gameplay is stressful. Partly why Overwatch had real-time patching abilities on each game.
You don't get downtime, no sitting on tickets. Hacking costs revenue and you got to ensure your work is correct.
Wake up the next day and start all over.
While playing FPS', I wondered why corners were a point of contention for me, both in dying or killing, and now I have additional insight.
I can sit at a corner and die from an oncoming enemy, or I can take the corner and take the enemy. I assumed it was all due to my own biological perceptual system, and now I see the synchronization would be giving each player an advantage depending upon who's overtaking the corner.
So in that sense, corners are pretty much a point of contention for everyone at every level since most of the game is based around taking and holding corners/angles.
The peeker vs holder relationship is pretty interesting to analyze as there is more to it then just server sync. But how both players try minimize/isolate the amount of angles they attack/are exposed at any given point in time.
As well as use their general game knowledge to make predictions about where the enemy is most likely to be in a certain situation. Prioritizing their attention/crosshair on those angles while ignoring the others.
I think this what makes it fun. Theirs a lot of thinking + buildup/anticipation for the moment of contact between players which is then usually resolved in <1s. And since the dead player has to then sit out the round it feels meaningful.
https://x.com/RiotTuxedo/status/1250637504895541248
And in fact, both people can be making one at the same time, but the trick is that they are a slightly different lines because each client has a slightly different idea of where both players are.
But any process your user runs can read memory of other processes of the same user, Windows provides an API for it. So its not just kernel stuff that is scary.
Vanguard might be nice if you want to dedicate a PC to locked-down gaming, not so much if you just want to do legitimate $anything_else with it.
And yet Valorant and every other game with kernel-level anticheat seems to have been hacked anyways
Overwatch has a long time-to-kill, interesting to compare tradeoffs.
Some of Valorant's game servers are hosted in a data center very close to my house. When I played, my ping was in the single digit milliseconds. Some people accused me of being a Riot employee.
Of course, that low ping didn't prevent me from being utter trash. My K/D ratio was usually around 0.3.
Come to think of it, seeing the network buffering they perform, I wonder if having such low ping actually gave me a disadvantage when peeking towards someone with a 30 ms ping?
Yes. Counterintuitively, the players with the worst connections often get away with the most ridiculous nonsense.
Those timestamps are compared to a window against the server's and other players'.
Did you feel it potentially made the game MORE fun for you, having that high ping? I presume yes?