The big Valorant tech interview: Riot on developing the next big competitive FPS
Next-gen consoles, agent design, weird bugs and more.
Riot Games' five-on-five tactical shooter Valorant recently launched on PC, where it seems set for inevitable success after a recording daily player counts of three million during its much-hyped closed beta period. Now that the game's out in the wild, I took the opportunity to speak to several members of the Valorant development team at Riot Games, including the title's game director Joe Ziegler and tech director Dave Heironymus.
The interview below touches on a wide range of tech topics, including the game's custom forward renderer, the challenge of meeting their 128-tick processing target and which hardware plays the game best. Some game design questions snuck in too, including those passed on by Redditors in this thread - like tweaking the strength of the game's tagging mechanic, designing new characters and implementing fan-requested features like left-handed view models and retake servers.
In total, eight (!) members of the Valorant dev team took time to answer questions, so let's break down the full squad participating today. In alphabetical order, they are:
- Paul Chamberlain, anti-cheat lead
- Dave Heironymus, tech director
- Brent Randall, staff engineer
- Marcus Reid, principal engineer
- Felipe Romero, principal engineer
- David Straily, game tech lead
- Chase Swanson, senior QA manager
- Joe Ziegler, game director
There's plenty of fascinating stuff here, so enjoy!
What are the major differences between how Valorant is architected compared to other Unreal Engine games? Did you need to take any novel approaches to attain your high performance targets?
Marcus Reid: Wherever possible we try to follow Unreal Engine best practices and minimise deviation from the stock engine as every customisation incurs an ongoing maintenance cost. With that framing, we have made substantial modifications to parts of the engine to hit our performance goals.
For example, we built a custom forward renderer (originally based on Unreal's mobile rendering path) with our own render passes and highly optimised shaders that only support the minimal set of features required by Valorant's art style. It's much faster than what we were able to achieve with the more fully featured renderer shipped with the stock engine.
The recent Unreal Engine 5 demo was an exciting one for fans of PC tech. What did the Valorant development team think about the reveal, and is there anything of note in the demo that could make sense for Valorant?
Marcus Reid: We loved the UE5 demo and will carefully evaluate what makes sense for our game as more details become available. We regularly update to the latest version of Unreal for new engine and workflow improvements, but we also ensure that any new capability we use doesn't degrade competitive integrity on older hardware that we still support.
Ensuring the game runs well on a wide range of PC hardware seems to have been a big focus, so what's the lowest-end hardware that is able to hit a relatively stable 60fps? What performance targets did you have during development?
Brent Randall: It was always a goal to allow as many players to enjoy Valorant as possible. We recommend an Intel Core i3-4150 CPU paired with a NVIDIA GT 630 GPU and 8GB of dual-channel RAM for 60fps. Honestly, you might be able to get by on less if you're willing to tweak your setup. During development we had targeted the Intel HD 3000 at 30fps as our minimum spec GPU but UE4 deprecated Shader Model 4.0 support, forcing our hand to drop support [also]. That brought us to the Intel HD 4000 which we support today; targeting the 3000 helped us out because now the 4000 can get upwards of 40fps and we're comfortably within performance budgets.
Our devs ran a bunch of lab tests with high-skill players using a 1000fps camera to measure reaction times and peeker's advantage.
Despite sustained interest from the CSGO community, Valve has so far declined to upgrade its matchmaking servers from 64 to 128 ticks, citing the performance impact this would have on lower-end PCs. When did the Valorant team decide on 128-tick as standard, and were there any issues with this tick-rate on low-end PCs you had to overcome?
David Straily: We decided on 128-tick servers early on in development. Our devs ran a bunch of lab tests with high-skill players using a 1000fps camera. We measured reaction times and peeker's advantage, and looked for the best implementation cost/player value compromise.
While you can never get rid of the peeker's advantage (the "defender's advantage" pipedream!), you can mitigate it. The most sensitive situations are with high lethality guns (like the Operator, which in most situations, is one-shot-one-kill). With time to kill being so low, every millisecond counts. 128-tick really was the sweet spot for us.
As to the impact on low-end PCs - it is correct that if your PC's frame-rate is <128, the benefit of 128-tick servers is reduced. However, performance impact can be mitigated (eg through move combining, & downsampling the send to clients with low frame-rate). A significant amount of our players have client frame-rates above 128, and we want to provide our premiere experience to as many players as possible.
We recently reported about Valorant being prototyped on console. With 120Hz televisions becoming more standard and next-gen consoles more likely to support higher frame-rates thanks to HDMI 2.1 and much faster CPUs, some traditional barriers that have kept PC shooters away from consoles are being eroded. What remaining challenges exist?
"Getting Valorant running at [4K] 120Hz on next-gen consoles is an achievable goal."
Felipe Romero: The big challenge of taking Valorant to console is being able to replicate the core game experience using a gamepad controller. Valorant is a game that requires precise aiming, responsive movement, recoil control and being able to execute abilities in a limited amount of time. Is it possible to effectively execute a clutch play in Valorant using a controller? How much aiming and movement assistance can we provide without sacrificing the overall competitive environment? Valorant was designed to be played and experienced in a particular way. We want to make sure playing with a controller remains true to that core vision.
In terms of performance, we believe getting Valorant running at 120Hz on next-gen consoles is an achievable goal. This is mostly thanks to the aggressive performance targets that Valorant initially set. During development, we put emphasis hitting high frame-rates at commonly used resolutions. Being able to push a 4K resolution at 120Hz comes with its own set of challenges. Even with an optimised renderer and low instruction count pixel shaders, rendering a large amount of pixels takes a significant amount of time. Technologies like variable rate shading could help us reach these targets and we will be evaluating them for higher end hardware and next-gen consoles in the near future.
High refresh rate monitors are a natural fit for Valorant - I've been playing on a 240Hz model and it feels super crisp. Are there any gameplay or technical elements that require special attention when you know many players will be playing at 120Hz or higher?
Marcus Reid: 240Hz is wonderful. Pushing performance high enough to hit high frame-rates is the largest challenge. We've been playing on 120Hz and higher monitors for much of Valorant's development, and the game is now fast enough that many machines can hit 120/144fps. Only very powerful machines are currently capable of hitting a solid 240fps in all gameplay scenarios. We're still making improvements to high-end performance that will increase the range of computers that can fully utilise these screens.
As 360Hz or 480Hz monitors become available over the next few years, will the game require any changes to take full advantage of these higher refresh rates?
Marcus Reid: To hit 360fps we need to process each frame in 2.78ms. To hit 480fps the target shrinks to just 2.08ms. That's not much time to update the game simulation and draw the scene, even on very powerful hardware. We have more than 2ms of CPU work to do every frame, so we'll need to increase parallelisation across available CPU cores in order to hit these numbers. We'll also have to make sure our rendering remains blazing fast.
It's likely we will support Vulkan or DX12 in the future.
Any plans for a version of the game client that supports Vulkan or DX12 in the future? What reasons made DX11 the best choice?
Marcus Reid: It's likely we will support Vulkan or DX12 in the future. Early in the development cycle we targeted hardware that couldn't run DX12 and engine support was less mature than it is today. We've done some initial evaluation of DX12 but need to do additional work to ship it as a supported mode. Valorant's performance bottleneck on high end machines tends to be the game simulation rather than rendering, and we haven't gotten big performance wins from DX12 in our early tests. If this changes as we continue to improve performance, DX12 becomes more attractive.
How much tech were you able to borrow from other Riot titles?
Dave Heironymus: In terms of core game engine tech, we didn't borrow anything directly. A number of our engineers worked on League of Legends, and so that experience influenced some tech on Valorant. Ultimately the early decision to use Unreal, along with Valorant being a completely different genre from League, meant that the core game tech differs significantly from other Riot titles.
We do make extensive use of shared infrastructure and account tech owned by central teams. A lot of that tech evolved from League's early years and it's one of the key ways we benefit from the scale of Riot.
Were there any abilities that were especially troublesome to implement during development? Were any planned abilities scrapped due to technical limitations?
For every ability you see in the game, there were dozens before it that we tried and ultimately scrapped.
David Straily: Valorant by its nature is a very analogue/sandbox style of game. With there being great technical flexibility, there also needs to be a really mature development process around creating and harnessing abilities in a very sharp way.
I remember when we added Powered Ascenders (ropes) to the game - so many of our abilities broke because we hadn't set proper constraints around the new game mechanic.
I imagine a future where we have many characters, all uniquely fantastical. To not make ourselves go insane, we'll need to keep the bar high for how we implement game-systems - and make sure that we never get to a point where there is so much tech-debt, it's impossible to expand the surface area of our sandbox.
(For every ability you see in the game, there were dozens before it that we tried and ultimately scrapped. I'm excited to bring some of the more zany abilities back in the future, but we first want to ship a well-defined founding cast of characters.)
At Digital Foundry, we're always looking to add new games to our benchmark suite, but this requires consistent, repeatable scenes. Are there any plans to add in-client demo recording/playback or a built-in benchmark? What's the best way to ensure any tests we run in Valorant are representative of real gameplay?
Marcus Reid: We don't currently have a benchmark mode or replay support. These are features that we're interested in, but we don't currently have a firm plan or timeline for their delivery.
Games that run at high frame-rates tend to suffer from CPU bottlenecks, especially at low resolutions like 1080p. Presumably this is also true of Valorant? If so, what CPU characteristics provide the best performance - high core/thread count? High clock speeds/IPC? If a Valorant fan wanted the best experience in-game, what CPU would you recommend for 1080p at the highest possible frame-rates?
Marcus Reid: Yes; Valorant has low rendering requirements and is CPU-bottlenecked on machines with modern GPUs. Valorant makes heavy use of three to four cores and moderate use of remaining available cores. Over time we're working to better utilise additional cores on machines with higher core counts. Currently, higher clock speeds/IPC will yield the largest direct performance benefits. Additionally, use of high-speed RAM can make sure you keep the CPU fed with enough data to avoid losing any CPU cycles.
One of the most common criticisms of Valorant I've heard, particularly from a non-CSGO audience, is that the game looks bland - in a Eurogamer live stream, some viewers compared it to a mobile game. There are competitive reasons to ensure player characters are always visually distinct from their environment, but it does seem to turn some people off from the game. How did you balance these two concerns during development, and do you think that you've come close to maximising the game's visual appeal without sacrificing competitive play?
David Straily, Game Tech Lead on Valorant: We are an unapologetically competitive game - and in order to maintain that focus, we have to make compromises on in-game visual fidelity.
We as Rioters often talk about our "black liquorice" culture. We target a certain type of game experience, for a certain type of player - we never intend to be a jack-of-all-trades experience; we know the game doesn't appeal to everyone, and that's OK. We deliver where it counts.
That being said, if we can hit our readability and performance targets - yet still level up the visual fidelity, we will do so. You've seen some of this on the transition from closed beta to worldwide launch (3D character select, spawn barrier VFX, orb VFX, etc). Expect continual improvements over time, we are a live service and always want to make the experience better.
Will players be able to restrict their matchmaking games to certain servers or set a maximum ping? Could matchmaking take player language into account, eg preferring to create teams who speak a common language? Players in the European and OCE regions seem particularly interested in these issues.
Joe Ziegler: We're definitely looking into options that provide players, especially in custom games to specify what server would be best suited to handle their game, especially for teams where players are coming from mixed locations. In regards to general matchmaking, we are always investigating options that would allow players to control more options around their matchmaking, while still maintaining the quality of the matchmaking quality and speed to match of games. Every option we add has the potential to increase queue times for all players and make matches even more volatile, so we will be judicious with things that we do add, to ensure we still have a smooth matchmaking process.
One of the famous game design "wins" from Team Fortress 2 was the fact that each character had a unique silhouette, making them easy to identify at a glance. As Valorant's roster grows, how do you keep different heroes visually (and otherwise) distinct?
Joe Ziegler: A lot of the work that we do in driving characters' visuals is in creating distinct shapes, colour palettes, and colour zones that allow for better identification of characters from a glance. Additionally when planning their abilities we also utilise unique sounds and VO cues to ensure that when a character is doing a high impact ability, let's say from behind a wall, you'll be able to identify that character before you may even see them in your view. With these methods and philosophies in play, we feel we can continue to create future characters with the same identifiable clarity we have delivered upon so far.
One of the most noticeable changes moving from CSGO to Valorant is how much you slow down when you start to take damage ("tagging"). This effect seems much stronger in Valorant, making peeking in and out of cover more risky. Are you happy with tagging in its current state?
Joe Ziegler: We're currently happy with the effect it creates, which is to push engagement and prevent combat from becoming "too slippery" in the sense that players default to pulling away instead of engaging. Additionally we're also happy with the level of consequence it pushes for players advancing into an open area without using abilities to mask their advance or push back their enemies. We'll always be looking into individual cases and tuning and tweaking based on what we see, but for now we feel like the interactions the tagging system is creating are strongly aligned with our gameplay values.
Incidentally, tagging was made less severe in patch 1.02, after these questions were sent in.
So far, we have several characters that can essentially throw flashbangs of various types, several that throw smokes, several that can self-heal. In terms of designing agent abilities, how will you ensure each role's kit offers tactical diversity?
With our upcoming agents we're looking to allow for the creation of new strategies, new types of plays.
Joe Ziegler: Our framework for the starting eleven agents in our roster was to cover the basics of the functions of the known tactical space in creative and interesting ways while also adding a few new elements here and there to challenge the notion of what is possible in the space. A lot of these basics are what you've described here, vision blocking, breaching, flushing and distracting, so a lot of our tools for our initial characters focused on filling those purposes. With our upcoming agents we're looking to broaden a bit on that and challenge some new areas of the tactical space and allow for the creation of new strategies, new types of plays. I won't give any spoilers here, but I look forward to seeing how the gameplay evolves with these additions.
The recent improvements to Vanguard - most notably, the tray icon that allows you to disable Vanguard until your next reboot - make a lot of sense. Is Vanguard now in a state where you're happy with it, or are there any other community-requested changes you're considering?
Paul Chamberlain: We're always going to be looking for improvements that we can make to Vanguard and our anti-cheat efforts in general. One requested feature we have coming soon is that we will start giving feedback to players when a person they report gets banned for cheating. As we hear more requests for features from players we'll try and see if we can bring them into Vanguard, since at the end of the day the anti-cheat system is here to serve the player community.
How large is the Valorant development team compared to that of League of Legends?
Joe Ziegler: Valorant's dev team is about 150 people, which is smaller than League's team.
Can Valorant support left-handed view models ("cl_righthand 0" in CSGO)?
We definitely hear the community on [left-handed view models]... expect to hear more on this in the future.
Dave Heironymus: We definitely hear the community on this one, and we've done some light investigation internally to understand how much work is involved. No committed timeline yet, but expect to hear more on this in the future.
Certain maps seem to appear a lot more frequently than others when playing ranked or unranked matches online. For example, I was in a game last night where another player said that they had never played on Split after seventy hours in-game. Is this a bug, or are the chances each map appears adjusted by the development team, eg in order to get feedback on new maps?
Dave Heironymus: We did actually reduce Split's selection rate at launch because it's a little less beginner friendly, but now all maps are equally weighted. We don't do anything special to force map variety based on recent games, so with four maps and a 75 per cent chance to not get a particular map (eg Split). I can believe there are players out there who are unlucky (or lucky?) enough to not play on Split for long periods of time.
Recently a clip was posted on Reddit that seems to show that any wall can be penetrated - but only if you hit the enemy player in the hand. What were the most unusual bugs or issues reported by Riot playtesters in alpha or earlier?
Chase Swanson: Our test strategy for Valorant has involved Rioters from every discipline, inside and outside of our development team testing with purpose from even the very early stages of development. As you increase the variety of your gameplay (through features, characters, abilities, maps etc) you subsequently increase the amount of permutations where these features interact and potentially behave in unexpected ways. As this risk grows, our testing coverage must grow along with it. An example of this is a critical server crash we discovered when using Sage and Omen ultimates on the same frame in a match.
The hardest system to test for was probably Fog of War, as the intent of the feature is to explicitly obfuscate information from the client's perspective. Bugs in this feature could result in the client seeing things that are not actually there, like ghost players taking sniper shots, or fake bombs on the minimap. Our QA Engineer on the game systems team had to build a unique test methodology to identify, isolate and reproduce these rare bugs. We've also had our fair share of fun ones, like players being able to ride character abilities like Gary the robot, or flying through the air on Sova's dart.
However, our favourite bug of all time has to be the one where Cypher's camera can equip a gun. I don't think we would have found this issue even if we took another year to develop. Thank you to our players for finding and reporting this. You have taught us a lot about how to better prioritise what we can and should test before release.
Desynchronisation issues are some of the most challenging to solve, as the effects are subtle and objective testing is problematic. How have you tackled this issue, and are any desync bugs still known to exist?
David Straily: We place big priority on creating "knowable systems." Debug tooling, automation, telemetry, are all used to great effect to ensure we are creating stable systems.
One internal cheat we have is an overlay to detect "dropped shots" - every time you land a shot on your client, but the server registers it as a miss - we print out the (client and server) hitbox outlines and full debug data. QA and playtesters video record, we capture footage of the instance, and then fixes are prioritised as necessary on the dev team.
Competitive integrity is a core pillar for our game. When we discover desyncs, we fix them ASAP (above other features). A big benefit of us operating as a live service is that you can have confidence as a player that Valorant fixes are fast and frequent.
Spike Rush is an interesting new mode, and one that's sparked interest amongst the community as to what other modes could exist in the future. Normally, game modding and scripting are key to seeing a wide range of new modes appear, but Blizzard has shown with Overwatch that building these tools into the game while retaining control of game files can also work well. Is this something that the Valorant team is interested in exploring in the future?
Joe Ziegler: We've definitely considered it, but I think ultimately we find it difficult to focus our efforts on delivering a streamlined experience while also supporting and helping to curate community created content. This may change in the future, but for the time being, given how much we are focused on bringing the gameplay forward, filling out our content, and pushing improvements to our out of game experiences, our developers already have a full plate.
Could Valorant technically support, for example, tens or hundreds of players in a single match, or a game mode with a much larger map?
David Straily: Not without some compromise on our 128-tick servers and client performance targets. If we ever were to do something at this scale, we would run a thorough investigation to find the best solve which maximises player value. In the ideal we would do something with dynamic tick rates, where you keep a high frame rate when it matters most in gameplay, and then scale it down in situations where competitive integrity is a less critical need.
Retake servers are popular amongst CSGO enthusiasts, as they allow teams and individuals to practice the most crucial part of a round - retaking or defending a bombsite - with realistic positions, smokes and other abilities already in play. Could Valorant support this in future?
Joe Ziegler: Definitely a thought we've had in the past, especially as an alternate mode. It's possible we may introduce something similar to this concept as part of our efforts to add more practice modes, or alternate modes in the future as we evolve the game.
How are match servers allocated when pre-made teams are split across multiple geographical regions? Are there any regions where the development team is looking to increase the number of available servers?
Dave Heironymus: Geographically dispersed pre-made [teams] are a tough problem, particularly in a game that prioritises minimising latency. The key metric for determining where to put a pre-made is "ping delta from best game server" and we try to minimise this value at all times. Right now we're looking to fill out a few locations in North America and Europe, but we're always looking at latency values across the world to understand where we need to invest more.
There was a point where frame-time on the server was ~32ms. We knew we had to eventually land on <3ms to be ship-ready.
What were the biggest technical challenges during development?
David Straily: 128-tick servers at scale. There was a low point in development where frame-time on the server was ~32 milliseconds. We knew we had to eventually land on <3 milliseconds to be ship-ready.
It is quite a daunting thought to know we'd have to achieve more than ten times the performance in just one to two years' time. But somehow, we did it. I'm very proud of our engineering team and what we accomplished.
What advice would you give to an indie studio looking to create a game with a similar competitive focus?
Dave Heironymus: Deeply understanding the intended audience was critical to knowing what to prioritise for Valorant. We knew that players who love tactical shooters really wanted crisp gunplay, high fps and solid anti-cheat. Keeping those as our pillars helped us determine the right constraints for our art, design and tech teams to work within. Similarly, I think an indie studio would really need to hone in on what audience they want to serve and then really nail that audience's core needs while keeping overall scope under control.
Thanks to the Riot Games team for their time spent answering these questions, and to the Redditors who contributed topics they'd like to see answered - including Nhirak, Raiid_CS, DoctorWho2015, TheWinterLord, BmpBlast, LittleLunia, Arkiece and LuxSolisPax who suggested particularly interesting questions.