jsheard 3 days ago

A related article on refining their netcode to minimise the usefulness of wallhacks:

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.

  • r1chardnl 3 days ago

    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.

    • jsheard 3 days ago

      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:

      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.

      • ancieque 3 days ago

        I remember installing a metamod plugin to my cs 1.5 Server that added server side fog of war iirc. But i could be mixing things up.

        • shaokind 3 days ago

          SMAC certainly predates Valve’s official implementation, wouldn’t be surprising if something else also did it.

        • CodeArtisan 3 days ago

          Probably CSGuard/HLGuard. It had a popular wallhack-block feature that was using a lot of CPU.

      • renewiltord 3 days ago

        Oh great video. Thanks for sharing. Surely the tick rate has to be lower on FACEIT as a consequence? Maybe this is why everyone in matchmaking would talk about it.

        • coverj 3 days ago

          at this time valve official servers were 64 tick and FACEIT 128 tick.

          This has been replaced by 'subtick' which I don't know enough about to comment.

      • yapyap 2 days ago

        2015 was 9 years ago

        • jsheard 2 days ago

          9 years ago is relatively recent when talking about the design of the Quake engine and its descendents, which was established 28 years ago.

    • hinkley 3 days ago

      I’m pretty sure the first wall hack I heard of was on the Quake engine so that must be something they fixed later on?

      • sodality2 3 days ago

        It's a matter of how aggressive is the fog of war and removal of irrelevant entities. Sometimes it's high, sometimes it's low. Too high, and people glitch into existence on high-latency connections. Too low, and you know exactly where people are far behind where you need to.

        Many custom servers in games like CS enable a more aggressive version, in cases where you geographically will be close, so you can rule out high latency connections and have more aggressive fog of war.

        • hinkley 3 days ago

          I believe in the Quake case they made all the walls transparent so you could see everyone coming. Which means they weren’t doing much fog of war at the time.

          • xor42 3 days ago

            Regarding the Quake engine and its evolutions (Q3, Call of duty, RTC Wolfenstein), the most common trick was to modify the rendering mode of all player entities so that they are drawn above everything else.

            The engine has a flag that is mainly used to draw the player's weapon (which is rendered above the rest). Using this flag for players was the "engine compliant" way of making a wall hack.

            • Gravityloss 2 days ago

              You could also replace player model with a big spiky thing. The spikes would poke through walls.

              Or in team fortress, replace the sniper's red aimpoint dot with a big model. They become easier to avoid.

              Of course not great from large distance / players behind multiple walls but I think the server wouldn't send you the info of those guys anyway.

  • theogravity 3 days ago

    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:

    https://www.youtube.com/watch?v=pGKZCQoqEOk

    https://www.youtube.com/watch?v=V600M8NqpzM

    • jsheard 3 days ago

      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?

  • nick_ 3 days ago

    IIRC Counter-Strike had it back in ~2002.

    • jsheard 3 days ago

      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:

      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.

      • nick_ 3 days ago

        I'm referring to CS 1.2 or so, back in ~2002.

        The thing I remember was that my friend's graphics card had a global transparency setting built in (AKA a wall-hack mode lol). You could see other players come into view as soon as the came into an area that was rendered. Then a CS patch came out and the players weren't visible until very shortly before they would become visible had we not had the uhh... transparency mode on haha.

        • jsheard 3 days ago

          Yeah that's the same deal as r_drawothermodels, crudely forcing the GPU to render objects that are behind other objects would give you a partial wallhack, but that wouldn't disable the engines occlusion culling so once it determined that an object was definitely no longer visible it would skip drawing it altogether, and you would stop seeing it through walls. "True" wallhacks were able to override the clients occlusion culling and reveal everything, so to defend against that the occlusion culling needs to happen on the server, which came much later.

          • nick_ 3 days ago

            Oh interesting. Thanks! We must have assumed it was client-side and gave up.

            • nick_ 2 days ago

              *server-side

  • Hikikomori 3 days ago

    Their rather simple maps also help.

Syntaf 3 days ago

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.

  • ldoughty 3 days ago

    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

    • ZephyrBlu 3 days ago

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

  • xyst 2 days ago

    The pressures at game studios are often very high. These game studios prey on people/gamers to “do it for the passion”.

    Probably different at Riot? Not sure.

    But companies like Blizzard/Activision and some smaller companies were described as very toxic environments.

  • maccard 3 days ago

    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.

    [0] https://www.figma.com/blog/keeping-figma-fast/

  • greenthrow 3 days ago

    Talk to people who have actually worked in the games industry. It's terrible.

  • doublerabbit 2 days ago

    NDA,

    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.

ncr100 3 days ago

Awesome insight.

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.

  • aleksiy123 3 days ago

    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.

    • hinkley 3 days ago

      “Doors and corners” as Detective Miller was fond of saying.

      • dmoy 3 days ago

        Staircases too. There's one of the more respected instructors up near here in northern Oregon who does civilian tactical training stuff. Which is not my cup of tea, but it is interesting listening to the guy rant. He has what appears to be a deep seated fear/loathing for staircases.

        • seanw444 3 days ago

          They suck all around. Going down, your legs are exposed, then your chest, then you finally have the ability to see the next floor, so your gun and your eyes don't get down fast enough to be able to process the bad guys in time before you get filled with holes.

          Going up, your head is exposed, so that becomes the primary target, when people typically aim for center mass. But center mass isn't visible immediately, so head takes all of it. On top of that, the whole 360 degrees of the next floor becomes visible at once, so there's no way to take slices of the room at a time, like you would a doorway.

          Staircases are very brutal. But really, room clearing as a whole is the last thing you want to be doing. You can do it completely correct, and still die. Room clearing is a matter of minimizing chances, not eliminating them.

          • msanlop 2 days ago

            > so head takes all of it

            Maybe you implied it, but adding to the 'going up' case, there is bullet ricochet -- also reffered to as skipping or bouncing bullets -- that makes it so that bullets will ricochet out at a shallow angle and ride out the wall or floor, making your head hittable without even aiming at it. Here is a instructional FBI video talking about it.[0] And a more modern take.[1]

            [0] https://youtu.be/7tUW0cUkNv0?feature=shared&t=240 (I think the date is wrong, other places mark it as being from 1974-5)

            [1] https://www.youtube.com/watch?v=gT219NKPJh0

          • InDubioProRubio 2 days ago

            Imagine a handgrenade- with shotgunshells and 6 cameras glued to it. It can trigger the shotgun shells, giving it the ability to "hop" on a vector. It has a primitive friend/foe system (friends are behind the plane it was launched from) all else is foe. You throw it at the start of the stair-case it hops up, blows the door open, enters the room, finds a target, explodes near it. All in a series of bangs.

            I call it the hedgehog. It lifes here now. Very good at trench clearing too. https://imgur.com/a/hedgehog-De90woA

            Bonuspoints if it can be transported and drone dropped!

          • dmoy 2 days ago

            Thanks, that was really detailed and simple to understand, unlike the gravelly rants I've heard.

            Sounds like a stairwalking robot that has 360° cameras would be pretty useful

        • hinkley 3 days ago

          I've heard that the stairs in castles all spiral the same direction so the disadvantage from being higher up on the steps is counterbalanced by having more space to swing your sword arm without blunting it on walls or the steps. Or at least if you're right-handed.

          • dmoy 2 days ago

            They taught us this in fencing as a side discussion (like during a break). Apparently it isn't true, as other commenters pointed out.

            The button side of jackets thing is true though, except usually also told wrong. We're often taught in fencing that men's jackets button left over right so that a sword drawn by a right handed person doesn't fuck up your own clothing. That's also wrong, but close: men's jackets button left over right because you traditionally put your shielded side forward, your left side, and you wanted any armor pieces to overlap so that there's no holes to get caught in if you're poked from the left. Which is a stance backwards from later style one handed fencing. The not messing up clothes on the draw of a sword is just extra bonus from the original reason.

          • Terr_ 2 days ago

            If I recall correctly, that theory is challenged by: (A) there isn't a predominant direction to such staircases and (B) if enemy soldiers are in your staircases, it's all too late anyway.

          • 0xDEADFED5 2 days ago

            this has been debunked in these comments somewhere on here. people love their castle stairs on this site.

  • enragedcacti 3 days ago

    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.

    https://x.com/RiotTuxedo/status/1250637504895541248

    • 10000truths 3 days ago

      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.

  • DSMan195276 3 days ago

    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.

  • Terr_ 2 days ago

    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.

  • alephxyz 3 days ago

    That's why you pre-fire around corners and through doors

andrewmcwatters 3 days ago

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.

allkindsof 2 days ago

Wow, quite an invasive anti cheat?

Had no idea it went this deep on your device.

Also their parent company is Chinese Tencent, which is a major alarm coupled with this type of invasive software.

xyst 2 days ago

If they can only do this without having invasive anti-cheat installed at ring0. They would get a ton more praise from me.

One of these days I’ll find a way to run Valorant in a windows vm

  • slumberlust 2 days ago

    Riot has never been a company to prioritize doing things right when doing things easy is available.

stonethrowaway 3 days ago

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.

Sohcahtoa82 3 days ago

My fun anecdote...

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?

  • legohead 3 days ago

    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.

  • bob1029 3 days ago

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

  • andrewmcwatters 3 days ago

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

  • ncr100 3 days ago

    Ha! "Hax0r!1!@~"

    Did you feel it potentially made the game MORE fun for you, having that high ping? I presume yes?

ess3 2 days ago

I wonder if we’ll ever see a computer assisted style in esports, like what exists within chess. Bring your best cheats.

  • nilsherzig 2 days ago

    There is a HvH (Hack vs Hack) community in csgo. Private servers (mostly) without Anti-Cheat and while there is some skill to it, it's mostly a competition between different cheat programs. I really recommend you to watch some YouTube Videos about it, there are some crazy cheats and even counter measures built into cheat clients to protect against other cheats.

dpratt 3 days ago

Any discussion of the game’s requirement to install kernel-level anticheat hooks that inspect the memory of every process running on the system?

  • Hikikomori 3 days ago

    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.

    • cmxch 3 days ago

      Turning your PC into a $gaming_appliance with a keyboard (in terms of opaque and invasive security posture) isn’t so much of a success.

      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.

      • Hikikomori 2 days ago

        Can also stick to games that use good old dedicated servers with active admins that ban cheaters. Its the new matchmaking type of games that makes anti cheat software a requirement.

    • HideousKojima 3 days ago

      >Basically the only anti cheat that is somewhat successful.

      And yet Valorant and every other game with kernel-level anticheat seems to have been hacked anyways

      • Hikikomori 3 days ago

        Its not bulletproof, but nothing really can be on the PC platform as it is today. Which is why I said somewhat successful, as no other anti cheat comes close.

        • serf 3 days ago

          it's not really a PC problem, its an attestability problem.

          Even with kernel level nonsense a cheat can be made technically undetectable by essentially making a 'player robot' that uses a camera and CV to watch a screen and traditional mouse/keyboard interfaces. It'll only be detectable via player-action/movement heuristics and 'best guesses', and it needs no hooks into software or OS.

          This type of 'bot' is going to explode across consoles and the like soon given the focus on AI with general purpose reasoning; you can already easily implement this style of bot against slow paced games like mahjong or poker inferring against big clunky slow image-inferring LLMs; given how easy most coding LLMs can spit out the code for specialty CNNs when knowing the criteria we're going to see this kind of cheating get a lot more accessible.

          And I mean this practically. Go talk to Claude or ChatGPT about making a bot in this fashion for just about any slower paced deliberate-action game -- it's shockingly good at doing so with very little user input. Provide it with a few screenshots of the interface and it can even automate finding the bounding boxes or whatever other thing-of-interest you need to coordinate purely by description -- the barrier to entry for game cheating is lower than i've ever seen it , and that's one of the things I did for a living for a portion of my youth.

          • Hikikomori 2 days ago

            Its a PC problem because process memory is not protected from other processes or the kernel. Kernel anti cheat completely stops userspace cheats from working at all. It has problems with cheats abusing drivers or DMA based cheats, and of course hardware that only acts on your monitor output and adds input to your mouse. Your argument seems to be that it is not bulletproof therefor we shouldn't use it and allow simple userspace cheats like cheatengine to work again.

          • dpig_ 2 days ago

            I suppose this could be true for some kinds of hacks (e.g. aimbots), but is pretty much useless for things that require information, like wallhacks.

          • eertami 2 days ago

            >barrier to entry for game cheating is lower than i've ever seen it

            Matchmaking rather than finding opponents/matches on IRC and private servers is also a big factor modern cheating.

            People are locked in to the game with you in Valorant or CS, they are penalised for leaving and thus can be held hostage by someone who is blatantly cheating.

            In older times, you would just quit and find another match, or if it was a community public server they will get banned.

            • rglynn 2 days ago

              Community servers will definitely be the answer for this in the long run.

              • HideousKojima 2 days ago

                Community servers were already the answer, but game devs and publishers have gone out of their way to make them a non-option for most games

      • plaguuuuuu 3 days ago

        AFAIK it's hard enough to develop the cheats that you need to pay for subscriptions to use them

        • HideousKojima 2 days ago

          The same is true of games with non-kernel anticheats

  • eddiewithzato 2 days ago

    in a windows PC context any game has the capability to run arbitrary code. You don’t need an AC to do any malicious damage.

devmor 3 days ago

I find it kind of weird that this is framed like a novel solution and discovery process when this has existed since the early 2000’s in other tactical FPS games.

Did the author do no research into the competition/precursors before going down this path?

Did they lie to make it seem more impressive?

Whatever the case, it’s odd.

  • xeonmc 2 days ago

    Riot has a habit of doing this. See their "technical blog" about their reworked League Client where they basically reinvented Electron but worse. The client is still heavily complained for its poor performance and stability by the playerbase years since.

  • mangosteenjuice 3 days ago

    I don't disagree with you, but Valorant is the first and only FPS played by millions of people, so I can see why its presented this way. The vast majority of the audience has no prior art context, so Riot can get away with it :)

    • dpig_ 2 days ago

      > first and only FPS played by millions of people

      I have to assume that what you mean by this is "for millions of people, Valorant will have been their first and only FPS."

      That may well be true! The knee-jerk response you're getting from others is because your statement sounds like you're saying "no other FPS game has ever had a million+ players."

      • mangosteenjuice 2 days ago

        Yes this is what I meant, not sure how others misinterpreted given the context of no prior art to compare to.

    • lightedman 3 days ago

      "Valorant is the first and only FPS played by millions of people"

      DOOM rears its head up from 32 years ago and says "People still make mods for me."

    • riffruff24 3 days ago

      Pretty sure overwatch got millions in its hey day. Not to mention call of duty, counter strike and the many clones of COD/CS. Though I'm not sure if the likes of Free Fire concern itself too much with the purity of competition.

      I wonder if pay to win elements reduce the number of cheaters? Some of these CS clones have equipments you can buy in the lobby that offer smaller hitboxes, higher health, better gun etc. Would that offer enough convenience/highs for these people to not stoop to hacking?

    • fcantournet 3 days ago

      is counter-strike not a fps or ?

ilrwbwrkhv 3 days ago

[flagged]

  • heraldgeezer 3 days ago

    Commenting to agree, even tough you are downvoted.

    Games are really magic, especially on bespoke engines, not slapping Unreal on some assets but making something like God of War 2 or FFXII run on PS2. Or yes online games.

    (yes i know valo in unreal but very custom)