Network buffering, inconsistent netcode, Valorant

Everything about latency. Tips, testing methods, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
13n47
Posts: 17
Joined: 07 Sep 2022, 05:42

Network buffering, inconsistent netcode, Valorant

Post by 13n47 » 07 Sep 2022, 06:11

Hello.
I'm someone who used to play a lot of Valorant, but the fact that the gunfights feel very different from one match to the next has made me enjoy the game less and play a lot less more. I peaked at Immortal 3 and I could tell something was wrong in this game. Sadly, these posts are heavily regulated on Reddit so I thought might as well post here.

For me, the gameplay feels vastly different every time I play. Some matches enemies peek really fast and counter-strafe at godspeed, other times it feels like player models move at proper speed but then hit reg feels really off and sluggish. Note that I have had this problem ever since it came out of beta and many other people feel the same.

I've been trying to find a fix forever and I think I have pinpointed to problem down to the game's network buffering(it might also be somewhat related to ping). I think this post from the developers themselves was really insightful https://playvalorant.com/en-gb/news/gam ... -update-2/

Some important sentences from the post:
1) Providing the correct amount of buffering is an important balancing act.
2) If we get the balance just right, VALORANT feels both smooth and responsive.
3) Too little buffering and you get lots of Server-predicted moves and client corrections, too much buffering and you get high latency and are more susceptible to things like peeker’s advantage.

I have done some testing with clumsy. I have tried increasing my jitter by throttling packets at different levels. I have also done testing by changing receive and transmit buffers in my network adapter. Turning them to the lowest or even to 0(you can do this in Regedit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0001) the game feels wildly different. Inputs are registered much faster, hit reg feels really fast BUT enemies move really fast and it's really hard to track that shit.

The reason I stumbled upon this is because Valorant has a network buffering setting that you can change to minimum, moderate or maximum. It basically changes the buffer length. In some matches, I have to turn the buffer to maximum to feel like I have a fighting chance, but in others minimum or moderate receives the best results. I have also used clumsy to increase my ping in some matches and for whatever reason, at 60/80ms ping my shots started to register faster than they were at 35ms. It's wild. Note that my default internet connection is perfectly stable, no packet loss and very minimal jitter.

I think that the game's optimal buffers that are calculated by the netcode are in fact not optimal. I was able to directly change the feel of the game's responsiveness/smoothness in some deathmatches by adding slight jitter to my latency, which slightly increased network round trip + buffer latency. Everything suddenly turned snappy, bullets were snapping to enemy heads whereas before I would get ferrari peeked and enemy would eat bullets like sponge. But I can not use the same settings every single match and I think that's because the calculation behind the netcode can't get the optimal buffer levels right.

Here's some thoughts about the third sentence from the dev post I mentioned earlier. There are times when enemy positions are corrected way too often, making them counter strafe and peek corners way too fast, hit reg is actually fast and correct then but its so hard to shoot them(low buffers). Then there are times where enemies move smooth and are easy to track, but it feels like they're eating bullets like sponges(high buffers). Then the rarest for me is a combination where the player models move very smooth and hit reg is beautiful(correct buffers).

At this point I am out of ideas what I can do on my end. I am pretty confident I have nailed the problem down, but I don't know how to manipulate the buffers in my favor so I can actually properly shoot these kids again. Are developers the only ones that can properly solve this problem?

I'm also afraid that since buffering is also needed in VALORANT'S eSports LAN scenario(they don't play on lan, you can see pro players having around 1-7ms of ping), it can heavily fuck with teams' consistency. If that's the case then it's very very bad and needs a fix ASAP. If this problem affects pro players, then the game truly is a RNG simulator(who gets the optimal buffers for best gameplay).

I am looking forward to your ideas and thoughts on this topic. Anyone that knows more than me about buffers, ping, ping disparity and netcode are welcome to join in this conversation.

Update 17.10.2022

I'm pasting here a comment I added recently for convenience.
It's a problem with the netcode. I found out there's an optimal ping for each lobby(i'm honestly not sure if it's related to network buffering at this point but I know for a fact there's an optimal ping after thoroughly testing). Anything below or above that "random" ping causes slight issues with hit registry and timings when someone peeks or counter strafes. It's best to already have a low ping to a server and then use a third party tool(like clumsy) or a vpn(i don't recommend) to slightly keep increasing ping in increments of 5ms to find out the sweet spot. This is a tedious process, requires you to feel out the round and is time consuming. So it's honestly not worth it.

The reason I don't recommend vpn is because this seems to be mostly related to outbound latency. When you use clumsy, you can use it to only increase your outbound latency. The latency from server to game client has no effect, all it does it handicap you with late information. What matters is latency from game client to server.

I think the netcode somewhere is acting up like when it was with League of Legends when they introduced artificial latency for remote competitors. This post explains it really well and is worth reading.

It's up to the developers to fix, they're the only ones who can figure out what's really happening behind their netcode. As for us, we can only guess and hope they find the problem.
Update 12.08.2023
The main reason for these issues is either too little or too much lag compensation on the server side(atleast on Valorant).

When lag compensation is set too high, the server tries to predict player movements based on outdated information, leading to exaggerated and fast movements on the client's side. This can make players seem to teleport or move erratically, especially when they perform quick actions like peeking around corners or strafing. Players with higher latencies may benefit from this excessive compensation, as their actions might be interpreted as even faster on the server side than they actually are, giving them an unintended advantage. On the other hand, players with lower latencies might have difficulty predicting and aiming at these fast-moving targets. This will make you feel like you have desync.

When lag compensation is too low, it means that the game server is not compensating enough for the latency between players' actions and the server's response. Players will experience noticeable delays between their actions (such as firing a weapon, moving, or using abilities) and the game's response. This will make you feel like you have input lag.

More often than not, for me the lag compensation is too high. More people need to report this to Riot, maybe they will do something about it(but probably not, it's been 3 years since the game has been out :/). It's not related to buffering as I initially thought, it's all about the good ol' lag comp.

This is why at times I have been able to fix the smoothness of my game by manipulating with latency or changing the network buffering setting.

The lag compensation algo is out of player control, besides manipulating with ping. Good luck brothers and sisters.
Last edited by 13n47 on 12 Aug 2023, 14:23, edited 2 times in total.

User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

Re: Network buffering, inconsistent netcode, Valorant

Post by jorimt » 07 Sep 2022, 08:46

13n47 wrote:
07 Sep 2022, 06:11
Any issues not directly related to the individual player's ISP and/or local computer are entirely dependent on the dev team of the given online game to address, so you're better off sharing your findings and concerns directly with them.

Messing with user-side network settings (game and/or OS-level) will only get you so far; only the devs can ultimately mitigate the netcode issues on their own engine, and going by your link to that dev post, it seems they're already investigating and addressing what they can. Perhaps you can be more proactive in reporting on their support channel, as they suggested directly in their post?

We also have to remember that online gaming is a two-way street; the tone of these post always suggests that the OP is the only one experiencing issues in their match, but for every kill you think you don't get because of netcode, another player in that same match at some point is thinking the same thing on their side.

The point is, if you're experiencing issues in a match, you can be sure almost everyone else is to a varying degree as well, and even if you did have some way to magically fix netcode issues on your side, how would that level the playing field for the majority of other players that are most certainly playing at stock settings? It would just be another form of imbalance.

The only "balance" in online multiplayer is imbalance due to the randomized nature of dropping a whole bunch of players with varying degrees of computer, ISP, and internet infrastructure quality (across an entire country and/or world) into a single remote server that must then attempt to sync up all their local inputs with itself on a delay (and a variable one at that).

That's netcode, and it's inherently imperfect. I'm honestly surprised any of it works at all.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

13n47
Posts: 17
Joined: 07 Sep 2022, 05:42

Re: Network buffering, inconsistent netcode, Valorant

Post by 13n47 » 07 Sep 2022, 09:06

jorimt wrote:
07 Sep 2022, 08:46
Any issues not directly related to the individual player's ISP and/or local computer are entirely dependent on the dev team of the given online game to address, so you're better off sharing your findings and concerns directly with them.
Done that. Sadly all their support does is basic troubleshooting. I'm gonna try again soon explaining a bit more clearly but don't have much hope.
jorimt wrote:
07 Sep 2022, 08:46
The point is, if you're experiencing issues in a match, you can be sure almost everyone else is to a varying degree as well, and even if you did have some way to magically fix netcode issues on your side, how would that level the playing field for the majority of other players that are most certainly playing at stock settings? It would just be another form of imbalance.
I agree with you here. I shouldn't have said I want to fix the netcode just for myself, I'd rather they fix the netcode entirely.

The fact is that every player in a lobby doesn't get an equal playing field when the buffers are different for every player. Some players will be el diablos on the server, because game is responsive and smooth while others either get hard to track models, sluggish hit reg or owned by peeker's advantage that is caused by bad buffering.

When a game talks big about "competitive integrity", "fair playing field" and "eSports ready", this needs to be a top priority issue and I don't understand why 2 years after launch it's still such a minor topic. Especially when you have a decade old game called CS:GO that doesn't experience this level of rng in gunfights(although they've had time to improve the netcode throughout the years) and you have a growing eSports scene.
If a player wants to improve their performance they can get a better PC or internet, but they can never become consistent if there's a major bug in the netcode that is working against them at times. If this could affect eSports scene that is supposedly played on LAN, does this game have any competitive integrity at all?(besides anticheat, that part they got right)

For testing purposes, does anyone know if is it possible to somehow change network adapter's receive and transmit buffers on the fly with a script or something? Because rn the only way to change requires the adapter to restart.

User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

Re: Network buffering, inconsistent netcode, Valorant

Post by jorimt » 07 Sep 2022, 09:41

13n47 wrote:
07 Sep 2022, 09:06
Done that. Sadly all their support does is basic troubleshooting. I'm gonna try again soon explaining a bit more clearly but don't have much hope.
I was referring specifically to the below in their post, but if you've already tried it, I'll take your word for it as to its effectiveness.
https://playvalorant.com/en-gb/news/gam ... -update-2/
Please continue to send us reports along with videos, if possible, through our Player Support channel with what you’re seeing.
--------
13n47 wrote:
07 Sep 2022, 09:06
I agree with you here. I shouldn't have said I want to fix the netcode just for myself, I'd rather they fix the netcode entirely.

The fact is that every player in a lobby doesn't get an equal playing field when the buffers are different for every player. Some players will be el diablos on the server, because game is responsive and smooth while others either get hard to track models, sluggish hit reg or owned by peeker's advantage that is caused by bad buffering.
Where online gaming is concerned, the devs of any comp game can only balance so much due to differences in available ISP quality and internet infrastructure across the world; they have to pick a middle ground on what connections they prioritize and how from moment-to-moment based on a number of (sometimes entirely conflicting) metrics, and it rarely ends up being fair to all.

Again though, anything the Valorant devs can do to address their netcode won't be heard by them in forums like these, and they're ultimately the only party that can make any meaningful improvements.

What we can logically assume is Valorant's netcode is the very best the devs can achieve now. I.E. if they could make it any better, I can't imagine why they wouldn't, seeing as it's their bread-and-butter as a company.
13n47 wrote:
07 Sep 2022, 09:06
When a game talks big about "competitive integrity", "fair playing field" and "eSports ready", this needs to be a top priority issue and I don't understand why 2 years after launch it's still such a minor topic. Especially when you have a decade old game called CS:GO that doesn't experience this level of rng in gunfights(although they've had time to improve the netcode throughout the years) and you have a growing eSports scene.
There's just as many complaints on CS:GO netcode on this and other forums in my experience, along with Apex, etc.
13n47 wrote:
07 Sep 2022, 09:06
If a player wants to improve their performance they can get a better PC or internet, but they can never become consistent if there's a major bug in the netcode that is working against them at times. If this could affect eSports scene that is supposedly played on LAN, does this game have any competitive integrity at all?(besides anticheat, that part they got right)
If Valorant's netcode is truly affecting LAN play, that is certainly unusual and should be addressed by the devs for sure.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

Bobo
Posts: 83
Joined: 05 Jun 2018, 11:44

Re: Network buffering, inconsistent netcode, Valorant

Post by Bobo » 07 Sep 2022, 10:55

what exactly did you modify in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0001 ???

13n47
Posts: 17
Joined: 07 Sep 2022, 05:42

Re: Network buffering, inconsistent netcode, Valorant

Post by 13n47 » 07 Sep 2022, 11:04

Bobo wrote:
07 Sep 2022, 10:55
what exactly did you modify in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0001 ???
I used that to actually remove the minimum limit on buffers, because for me it didn't let it go lower than 32. That doesn't actually matter as much, as the difference between 0 and 32 is minimal.
Attachments
adapter.png
adapter.png (31.33 KiB) Viewed 13340 times
regedit.png
regedit.png (35.28 KiB) Viewed 13340 times

DPRTMELR
Posts: 165
Joined: 12 Apr 2022, 13:42

Re: Network buffering, inconsistent netcode, Valorant

Post by DPRTMELR » 07 Sep 2022, 11:49

13n47 wrote:
07 Sep 2022, 06:11
the game feels wildly different. Inputs are registered much faster, hit reg feels really fast BUT enemies move really fast and it's really hard to track that shit.
At this point I am out of ideas what I can do on my end. I am pretty confident I have nailed the problem down, but I don't know how to manipulate the buffers in my favor so I can actually properly shoot these kids again.
You can't really do what you think you can do because you have no idea how much differences in time they can compensate for. (it's barely below the cut off line for are we even playing the same game) It's not just your ping to the server you have to worry about because other people lagging on their own (think wifi players..) will also effect your experience.

Enemies moving that fast means someone managed to land a shot somewhere (either you or the enemy shooting you) and corrected the enemies position because your game was being buffered by that much time of movement between I guess your server's clock? go run up the googles.
jorimt wrote:
07 Sep 2022, 09:41
The point is, if you're experiencing issues in a match, you can be sure almost everyone else is to a varying degree as well, and even if you did have some way to magically fix netcode issues on your side, how would that level the playing field for the majority of other players that are most certainly playing at stock settings? It would just be another form of imbalance.


Reminders to not go afk during the warmup phase of the game.
Most adults need 7-8 hours of sleep each night. - US FDA

Bobo
Posts: 83
Joined: 05 Jun 2018, 11:44

Re: Network buffering, inconsistent netcode, Valorant

Post by Bobo » 07 Sep 2022, 12:30

you could also up the numberr of rssqueues to 4

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0000\Ndi\Params\*NumRssQueues\Enum

add new string, rename it to 4, open it and in "value data" type 4 Queues

Grossof
Posts: 1
Joined: 07 Sep 2022, 13:07

Re: Network buffering, inconsistent netcode, Valorant

Post by Grossof » 07 Sep 2022, 13:08

What’s your clumsy settings for Valorant?

kokkatc
Posts: 108
Joined: 23 Mar 2017, 13:49

Re: Network buffering, inconsistent netcode, Valorant

Post by kokkatc » 07 Sep 2022, 15:08

13n47 wrote:
07 Sep 2022, 11:04
Bobo wrote:
07 Sep 2022, 10:55
I used that to actually remove the minimum limit on buffers, because for me it didn't let it go lower than 32. That doesn't actually matter as much, as the difference between 0 and 32 is minimal.
I truly hope you still don't do this and it's not clear you fully understand how receive/transmit buffers work. Receive/transmit buffers create allotted buffer sizes in system memory to be used specifically for receiving/transmitting packets. Setting transmit or receive buffers below 128 will likely result in massive packet loss and cripple your connection. You actually want to RAISE these buffers for improved performance/latency so there's enough memory allotted for sending/receiving packets. The general rule is to have your transmit buffer size 2x your receive buffer. For example, if your receive buffer is 512, you want your transmit buffer to be 1024. Typically, the higher you set these, the faster your connection is going to be. You just have to be sure you have enough system memory. 16GB+ should be plenty.

Setting your receive buffer to 32 damn near guarantees you're going to have a bad time in any online game.

Post Reply