I also found that the Unreal Engine replication system was eventually consistent, so once information became relevant, the state of enemy players would catch up. I found that Unreal Engine has a concept of network relevancy that can be used to limit network updates and even despawn non-relevant actors.
It was time to dive into the guts of Unreal Engine.Ī week of reading documentation and engine source code fueled by the soundtrack to the (second) best hacking movie of all time yielded a few promising leads. To start with, I took stock of what we’d need to make this work:Ī way to decide which information is necessary for each playerĪ way of preventing players from receiving unnecessary informationĪ way of catching a player up when unnecessary information becomes necessary. Our Fog of War system would be based on League’s, except in a new engine, operating over a more complicated 3D environment, and it would have to fit into VALORANT’s very strict performance constraints.
I was new to the project, which was my first unreleased game project, using an engine I was unfamiliar with and a technique inspired by a completely different type of game. If we could pull it off, this seemed like the ideal solution - but we had no idea whether this would be feasible in Unreal Engine. If an opponent was behind a wall, we wouldn’t send their location to enemy players, keeping them hidden until they decided to peek the angle. I knew if I could implement something like this for VALORANT we could solve the problem of wallhacks because there would be nothing for the wallhack to see. League’s Fog of War system works because the game server withholds information about the positions of enemies until a client needs to display it. In other words… I’m on it!” The Skeleton of Our Solution He asked if it would be possible to implement something similar in VALORANT, and my answer was “Well, maybe, but it would be tricky. I explained League’s Fog of War system - if you’d like to learn more about this, check out this article about Fog of War in League, and this one about net visibility. At the beginning of development, when we were talking about security goals for the project, the two things that came up over and over again were wallhacks and aimbots.ĭuring one of these planning sessions I was asked by a producer why League of Legends doesn’t have a problem with wallhacks. The VALORANT team (including me) are all longtime fans of the tactical FPS genre, and we’ve all had more than one match ruined by cheats in other games. Without Fog of War: Wallhacks give a player massive gameplay advantages. We really wanted to prevent that sense of doubt which lingers with players, poisoning their experiences long after the match. or maybe they’ve just figured out that you rush B every round. Wallhacks are especially insidious because they give an advantage that isn’t always obvious - your enemies could be using wallhacks. In a tactical shooter like VALORANT, this gives them huge advantages when it comes to individual combat encounters as well as strategic decisions for the round as a whole. What’s In A Wallhack?Ĭheaters use wallhacks to see opponents through walls. This is one of VALORANT’s key security systems, which focuses on combating cheats that take advantage of a game client’s access to information, like wallhacks. In this article, I’ll walk you through one of these anti-cheat systems - Fog of War. To learn more about VALORANT security, check out our anti-cheat kernel post, and to read about League of Legends security tech, check out our anti-cheat Tech Blog post.įrom the very beginning of VALORANT development, we made it a priority to build out cheating resistance to ensure competitive integrity.
I’m part of VALORANT’s game engineering team, and I’m one of many people at Riot working on game security. Hi, I’m Paul “Arkem” Chamberlain, the anti-cheat lead for VALORANT, Riot’s new tactical FPS.