Back in early 2020, the VALORANT launcher's key art was a stick figure Jett flying and throwing knives at a stick figure Phoenix. Saw it again today and was filled with joy.
Yes! It's a bug, and we can fix it.
Games are built on approximations of the real world for performance reasons. VALORANT doesn't simulate the physics of a real explosion. This bug is a case where our approximation falls short. (1/9)
Today a colleague reminded me of my week long journey to rename “ShooterGame.exe” to “VALORANT.exe” before launch. And friends, let me tell you, it was truly an adventure.
I've been getting a bunch of questions about what "updating the engine" actually means. VALORANT is built on a heavily modified version of Unreal Engine 4. Epic continuously improves UE4 with features, tools and fixes. We leverage their hard work to make our game better. (1/14)
Periodically, we have to update the engine for our game. Due to the nature of these updates, we want to give ourselves plenty of testing time and a stabilization period before shipping it to you. So, there will be no Patch 2.10. The next update will be Patch 2.11, around June 8.
Genuinely curious: Why do players of some shooters dislike skill-based matchmaking? Is it a desire to stomp? Not have sweaty close games? Some other motivation entirely?
Today marks five years I've been working on VALORANT. It's the longest I've ever worked on one product.
I remain super grateful to get to contribute to a game that players enjoy and that I get to work with such a cracked team of game devs. Next five years are going to be wild.
While I am quite fond of R6S, I do not work on it. I am unable to assist with your Siege feature requests. Constructive suggestions and praise for Siege would be better directed to their team.
I know everyone says “we’re just getting started” but it’s really true. I am so hyped for VALORANT’s long term potential, and we have tons of cool stuff we want to build for players. Thank you all for making it possible.
Finished my deep dive into system latency! This was my holiday project, and I finished it right under the wire. 😅
Summary of results threaded below; full details in the video. If you care about latency, definitely check out the video. (1/15)
Been thinking a lot about the robots of VALORANT. I made a tier list.
Alarmbot - S Tier: Dutifully alerts you to the presence of approaching enemies and calls out their exact location. Happily baits for your team; by far the most supportive robot.
I accidentally reproduced a VALORANT bug that had been bothering me on and off for more than 3 years (process hangs around after shutdown) and I think I finally have the diagnostic information needed to fix it. I’m a dork but I am ridiculously excited.
Let's talk about this bug. It should have never reached players, but it does have an interesting root cause and game dev lesson. The defect was live for several hours on Tuesday morning in NA, LATAM, and BR after we patched 1.11. We rolled back to 1.10 to mitigate. (1/21)
We fixed this. Windowed Fullscreen now has latency comparable to Fullscreen in patch 4.02.
Rerunning the display mode experiments over lunch. Will share new numbers tonight or tomorrow morning.
Exclusive Fullscreen makes Alt + Tab slower, but it shaves off nearly 10 ms of system latency on my machine. Thats 7x the latency of turning all Graphics Quality settings from Low to High. It's like going from a 240 Hz monitor to a 60 Hz monitor. Absolutely massive. (13/15)
I'm regularly asked what a typical day looks like for an engine programmer. Sometimes it's six hours of reading code to ultimately click a checkbox. 1/16
Local dad gamer reaches Diamond.
Played 15 games starting from Plat 2 today; went 5-2 solo, 6-2 with friends. More matches today than I've played all month.
The fix here is to either adjust the collision settings on the problematic pallet or to adjust the logic driving the visibility checks to better handle small spaces. (9/9)
Game developers deeply appreciate their players. Why else would developers spend so much of their time and energy making games? Folks suggesting otherwise are full of it.
Players within the outer radius that are outside the inner radius take damage that diminishes as they get further away from the center of the explosion. In this screenshot, the inner/outer radius sizes are visualized by the black/cyan spheres. (3/9)
All explosions in the game have an inner radius and an outer radius that can be tuned by designers. Think of the inner radius as the center of the explosion. Players take full damage from the explosion within the inner radius and no damage outside the outer radius. (2/9)
This approach usually works. In very tight spaces like under the pallet in Mel's video, the visibility check fails and the player does not take damage. The pallet effectively eats the explosion. It's a bit more difficult to see; I've circled the failing visibility checks. (8/9)
Back in early 2020, the VALORANT launcher's key art was a stick figure Jett flying and throwing knives at a stick figure Phoenix. Saw it again today and was filled with joy.
This tweet is doing numbers for reasons that I don't really understand, but I genuinely hope y'all enjoy the crispy one taps that this crosshair makes free.
Turret - S Tier: Good friend that's just a little bit overwhelmed in your high skill disparity game. Focuses on doing their one job to the best of their ability. Rarely gets a kill but really lights up when it happens. Working on confidence to run around corners and entry frag.
Boom Bot - S Tier: Suffers from tunnel vision but sometimes makes absolutely incredible plays. Can't figure out how to walk, but somehow is able to sprint faster than anyone else. 11/10 for hustle and positive vibes.
The first step of computing explosion damage is sweeping the outer radius for any players that could be hit. Players outside the outer radius can be safely ignored as they will always take 0 damage. (4/9)
While it’s true that Windows is case-insensitive and case changes aren’t honored on existing build nodes that already have sync’d files, the real reason for casing changes in the files is that I personally like messing with data miners and manually flip casing each patch.
Owl Drone - S Tier: Somewhat aloof but has fantastic situational awareness and gives good comms. Natural IGL, but could stand to work on their fundamentals. Always seems a bit shaky on moving and shooting. Still, solid teammate.
The visibility check traces a line from a few different starting points inside the inner radius and tries to find an unobstructed path to the player. In this case, it finds a path (the green line), and the player takes full damage. (6/9)
Next, the game checks visibility from the center of the explosion to potential targets. Explosions don't deal damage through walls. If the explosion can't "see" a player, the player doesn't take damage. (5/9)
Sometimes you mess up a merge conflict deep in the guts of your engine's post-processing code and then your crosshair no longer lines up with the game viewport. Pour one out for that curly brace.
But in this case, the explosion is blocked by the crates. It fails to find a path to the player and does no damage. You can see all the attempts the game made to find a path visualized as red lines. Had even one of them reached the player, the player would take damage. (7/9)
Epic releases a new "minor version" of UE4 a few times a year. These updates have all sorts of treats for developers. See UE 4.25's patch notes for concrete examples -- they're 213 pages long. (2/14)
Our goal with an engine update is parity. There will be some fixes that are player-facing (one of our top crashes is resolved!), but for the most part it's behind-the-scenes. We're upgrading the foundation the game is built on to unlock future improvements. (14/14)
There’s a forum post from 2015 about how to rename Unreal C++ projects. Step 1 is renaming the main project folder (which contains all the files for the project). This isn’t an option for a project with a large team… such a rename would be hugely disruptive for all pending work.