- Joined: 12/2/2007
- Location: Maine [EVGA Affiliate Code : 88LSZ0E7HK]
- Ribbons: 22
- Folding: 1,180,918
BF3 Optimization Maximization Intensification... part 1
Monday, March 12, 2012 5:37 AM
As of late i have been hanging out with =ADK= and played a fair amount of PUB play with a extremely talented teamwork based competitive team
called -pA "Passive Aggressor
" .They have been posting articles with Tips ,This is the first one .Some may know this but it was well written and i thought i would share (with permission granted)the first such post they have made with EVGA.Please take a moment to read and maybe follow this teams competitive journey.
The Original post and Comments can be found here
,please feel free to join the conversation.
For lack of a better title, this article will be the first installment of some undefined number of hardware/software/game optimizations (aka cheatz). If you're anything like me then you want to play with every (legal) advantage you can get. When it comes to high level competitive play it is absolutely critical that my opponent is not exercising some advantage I'm not aware of. For years I've scrounged the Internet, and picked the brains of the best players I've come across, and I want to make these pro optimizations available for ADK, and the greater ADK community.
I will address network optimization as simply as possible in this article. I'm going to take you on a little journey through the original source game net-codes (CS:S and DOD:S), and bring you back to battlefield.
If you’ve ever run behind cover in Battlefield 3, and seemingly died a half second later you will want to keep reading, and hopefully in doing so, learn why this happens, and how to reduce these incidents dramatically.
I started playing day of defeat: source competitively the third season of CAL. At that time I came across a console command called cl_interpolate 0 (default 1). Anyone with a little understanding of binary can see that this command turns off something called "interpolation." Now what is "interpolation" you ask? Great question. Through observation I noticed that (with interpolation disabled) player models moved shakily across the screen. I also noticed that I could see people come around corners quicker, and get a significant reaction jump on them. Ironically I quickly adapted to the shaky player models, and I found them easier to hit than the normal smooth models. I had some problems getting kicked from servers (for supposed cheating) before I found this command, but afterwards it became a struggle to find servers I wasn't banned from.
If you don't know where this is going or if you haven't heard of interpolation before, I'm sure your salivating. if you know what interpolation is, and how to tweak it in your games, you can check back for my next article.
Before you get ahead of me and boot up your TF2, I have some bad news, cl_interpolate is no longer an accessible console variable since the Orange box update and the release of TF2. But their is light at the end of the tunnel... let me get back to interpolation.
When you are playing your games online you probably already know your Internet connection is sending and receiving many packets of information every second. Every move you make is sent to the server, and the server is sending you updated player locations, so you can see where your teammates, and enemies are moving, and what they are doing. What you may not realize, is the work your game is doing to give you a smooth, and visually pleasing experience. When you receive an update of player models, your game does not display or reflect these changes immediately, but instead it waits for additional model updates. This way it can draw frames in between, and you see your teammates, and enemies run smoothly across your screen. Now you know what interpolation is whether you realized it or not. This is why I could see people faster, and why they skipped on my screen when interpolation was disabled. With interpolation disabled I saw player models updated as soon as my computer received them, which also translates to perfectly accurate hit boxes. If you're confused just keep reading, because you don't need to understand it to benefit from it.
Though Interpolation is on whether you like it or not in both source games and Battlefield 3... But it can still be adjusted.
You may have heard of LERP or noticed it if you have net graph enabled (cvar- net_graph 1) in TF2. LERP stands for Linear Interpolation, and it is quite literally the buffer (in milliseconds) of time allowed for interpolation anomalies. What i mean by anomalies is mess ups in either your Internet connection, the servers Internet connection, or the server itself not being able to handle the player load (choke/loss). Lets say your game is used to receiving a model update every 50 ms. Your game by default allows an additional 100 ms in case their is network lag or the server chokes, this way if that 50 ms packet arrives up to 100 ms late you won't notice the difference. 100 ms is the default LERP in CSS, DODS, and TF2, which would be a setting appropriate for someone in Bosnia with 56k modem (maybe not that extreme, but you get the idea). My ping doesn't fluctuate by 100 ms very often (something is really wrong if yours is), and I usually play on low ping/lag servers. So for most of us LERP needs to be optimized.
In Battlefield 3 you'll see (since a patch in December) a slider called Network Smoothing in your multi-player game settings. This slider changes the equivalent of LERP on the frostbite 2 engine. It has been speculated (never said by dice), and I agree, that the slider scale is most likely a 0 ms buffer (left) to a 100 ms buffer (right).
Let me recap this quickly. Interpolation is on... This means your game will not display a packet update until it has another update to draw a fluid movement with interpreted frames in between (interpret = interpolation). If interpolation were off, your game would update player movements (on your screen) as they are received from the server, and everyone would skip around the screen, but you would see people come around corners faster (50 ms ahead of time). LERP being the additional time buffer for interpolation can be optimized for your network settings and preferences. By default we said your game allows 100 ms for network variations (this is in addition to the 50 ms between packet updates which can’t be removed with interpolation on). If you move your Network Slider to the left (or type cl_interp 0, cl_interp_ratio 0 in your console for TF2, CSS, or DODS) you will remove the buffer by setting it to 0. This means you now see things 100ms sooner than you did previously (assuming your slider was all the way to the right which is default).
I play with my slider all the way to the left, and never change it. As a competitive player I’m willing ditch the LERP buffer, and sacrifice a little bit of smoothness, to see people come around corners milliseconds faster. You may find you like to keep your slider at 25% to maintain smoothness. Ultimately, as I said before, it is up to personal preference and a persons network restrictions. Try it to the left and see if you can get used to it, it won’t seem perfectly smooth because the Internet and servers are a bit finicky. The higher your ping the greater likely hood of network variations, so you may need to move the slider more to the right.
One word of warning, in Battlefield 3 the knife and ladder climb animations will appear extremely jittery with the network slider to the left, but that won’t effect game-play.
One last word to clarify an often confused point, and so you understand the application of this. By setting LERP to 0 ms you will see people come around corners faster (by 100 ms compared to default), but if you peak around a corner you don’t see enemies any faster than usual. The reason why you don’t see any faster by peaking someone is because LERP only effects player model updates (player locations as you see them), and not your client update to the server. If your opponent is moving around a corner, and so are you, you still retain the advantage (assuming they have not adjusted their network slider).
I hope you enjoyed this article, and learned something about net-code. I could have simply skipped the article and told you all to put your network slider to the left, but I like to explain what’s going on behind the scenes. If my explanation simply hasn’t satisfied your nerd brain and you want to read a more in depth explanation of the source net code, you can find that here
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking (still applies to most online games like Battlefield).
If you want to keep up with ADK-pA you can find us on the TWL 4v4 Rush League page, and here at adkgamers.com. I just added 3 rounds of match play (two of me sniping in yesterdays playoff match) to my youtube. Remember, the videos are from my perspective, only what i hear is recorded, so none of my microphone comms can be heard. Let me know if you have question or add me on battlelog if you want to frag sometime (Elegy-pA).
Till next time,
Sam "Elegy" Wright from team Passive Aggressor signing off.