Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - w0rthy

Pages: [1]
1
Dodgeball Hell / Increasing Performance, and Decreasing Input Lag
« on: July 31, 2014, 11:42:16 am »
In a perfect world, you have 0ms latency, and 0ms combined input lag and monitor response time. Of course this is out of reach but that doesn't mean there isn't something you can do to at least get it closer.

Although there is little you can do to lower these in game besides lowering your lerp, most graphics card manufacturers provide tools that can force certain settings. But first of course you want to do all you can to lower these values in game. Voidy's networking post in this forum along with pretty much every guide in existence goes over these.

I also use these launch options:
-threads 4 -high -novid -heapsize 4194304 -refresh 144 -noforcemaccel -noforcemparms -noforcemspd
Would warrant changing heapsize parameter if you have < 8 GB of RAM
Change -refresh to your monitor's refresh rate

Now, after attending QuakeCon this year and seeing NVidia's booth I realized how similar the effects of Triple-Buffered V-Sync and their new G-Sync monitor chip are. Up to this time I had v-sync disabled and was just using fps_max at a multiple of my refresh rate. However, this is not optimal. There are a few settings you can set on your graphics card's options to further lower input lag.



These settings are Triple-Buffering and Max Pre-Rendered Frames.
For NVidia cards this can be done in both NVidia Inspector and the NVidia Control Panel.
NVidia Inspector on the left, NVidia Control Panel on the right


If you have an AMD card, you will have to search around the control panel for the settings, they should be in a relatively similar place.
Now once triple-buffering is enabled, you can enable v-sync in game which will lower your input lag to about as low as it can get.

But why is this better?

The problem with just limiting your framerate to no matter what value is the drawn frames will get sent to the monitor in random intervals and aren't guaranteed to get displayed. Not only are you wasting processing power drawing those 300 frames you don't use, the frames aren't going to be synchronous. The solution to this problem is Vertical Sync. However, this imposes more problems than it is worth using traditional double buffering. The problem?, in double buffering you have 2 buffers that the graphics card draws images to, switching to the next after finishing with one. The problem that vertical sync presents is when the graphics card is done drawing a frame it can't switch and begin drawing the next one until the monitor is done with the frame that was drawn on the other buffer. This creates input lag. The solution? Triple buffering. In triple buffering you have an additional buffer on top of the 2 from double buffering this allows the graphics card to copy the finished frame to the new buffer allowing it to begin drawing the next frame.

2
General Discussion / Re: Sound suggestions
« on: July 04, 2013, 05:18:09 pm »
dl.dropboxusercontent.com/u/112855161/misc/gayyy.wav

3
Dodgeball Hell / Lerp, A Study
« on: June 13, 2013, 04:15:35 pm »
***************************
Linear Interpolation*************
***************************


What is lerp and what does it effect?

From what I've found so far, Lerp is the amount of time after recieving an update from the server that a linear interpolation will be made. This is basically added lag after you go above the threshold which will be mentioned later.
For the effects I will use different lerps as an example of its behaivor:

   At 0 lerp : there is no interpolation and you are seeing just the positions sent from the server. This is equal to having cl_predict set to 0.

   At 10 lerp : on a 100 tick server, this gives you maximum efficiency as you are predicting with fresh data exactly on every tick which is when you receive packets. Rockets no longer make quick, sharp curves from prediction errors and airblasting is now consistant as you are in sync with the server.

   At 100 lerp(default) : you will have to airblast farther away as your interpolations are 90ms behind the server's updates. Your ping of linearaly interpolated objects is now excessively high.

   At 500 lerp : the separation between the color of the rocket glow which isn't interpolated and the rocket which is, is now very evident. Your ping is now 490 if you are playing on the hosted server and you should give up on life.



How do I find the optimal lerp?

The optimal lerp is the default minimum of the cl_interp client variable. This is your cl_interp_ratio / server's cmdrate or tickrate. On 100 tick servers this is 0.01 which is 10 lerp.
But wait, Dodgeball Hell and Voogru aren't 100 tick servers. They are actually 66 tick but have the settings of a 100 tick server allowing 100 cmdrate and updaterate. Even though your cmdrate says 100 you are not actually getting 100.
The actual cmdrate of these servers is 66. This brings the optimal lerp to about 15. and also makes people running at 100 cmdrate and updaterate have more prediction errors. This is because the server has to send 100 packets in a second

while only thinking 66 times a second. This may cause multiple packets to be sent in one tick causing prediction errors and un smooth movement.

However, there are advantages to lowering lerp below 10.
The closer to 0 your lerp is the closer the rocket can get to you to hit it and the less the gap between faster rockets and slower ones.
Here is distances required to hit in meters for 50 mph and 200 mph rockets and varying lerps. These are calculated with 0 ms ping.

Lerp          50 MPH          200 MPH          Difference
0               0                    0                     0
2.5            .125               0.5                  .375
3.3            .165               .66                  .495
5               .25                 .1                    .75
7.5            .375               1.5                  1.125
10             .5                    2.0                 1.5
100(default) 5              20                 15(ewww)

Although 0 lerp comes out on top, 0 lerp also experiences extreme "rocket lag" where projectiles will glitch around and make sudden turns and motions.
10 Lerp has none of this as it is running with the server, so it will be extremely smooth.

Due to this you can either choose the unsmooth but consistent 0 lerp, the more inconsistent distance but smooth 10 lerp or one in between. Throughout the years my favorite lerps were 2.5 and 3.3. I did use 0 from time to time and did fairly well with it. 2.5 and 3.3 had some smoothness which helped the most and the distance wasn't anywhere close to unbearable. Another popular lerp is 7.5 which is smoother but more distance inconsistency than lower ones. In the end the choice is yours, whichever is more comfortable is the one you should use.



What commands do I use to set my lerp?

cl_interp_ratio 1
cl_interp "whatever lerp you want / 1000"

***********
Smooth******
***********


cl_smooth is a client variable that enables smoothing after prediction errors. This is your choice as after finding the frequency of prediction errors it is usually seen with multiple turns between packets like when orbitting. !!!!!This should be off if your lerp is below 10!!!!!!
cl_smoothtime should be your lerp or if that is not reachable the lowest obtainable on the server, which happens to also be cl_interp_ratio / server updaterate.

*********************
Other Settings***********
*********************


Other settings I use and believe benefit my performance will be listed below with their description.

"mem_max_heapsize" increases the amount of memory available to hl2.exe's heap.

"datacachesize" increased cpu data cache used which in turn made tf2 run faster but seems to have broken after an update.

"fps_max" this should be set to your updaterate/cmdrate so you draw every time you receive packets.

"rate" this changes the amount of bandwith hl2.exe will use. Set this to your updaterate*100

"cl_pred_optimize" effects the way prediction errors are handled, most set it to 2.

"mem_compact" performs garbage collection on the memory freeing up more space and making tf2 run faster every time it is called. I have this bound to a key that I smash a couple times every now and then.

********************
My Configs*************
********************


Carnifex 2011

w0rthy 2012 1

w0rthy 2012 2 (prime)

w0rthy 2013 (current)

4
Dodgeball Hell / Re: Map Rotation / Map Suggestions
« on: June 06, 2013, 02:59:02 pm »
Gallifrey crashes the server currently, if you didn't know already.

5
Dodgeball Hell / Fastest Legit Rocket of All Seasons
« on: January 07, 2013, 12:44:20 pm »


Legit being achieved without glitches like the damageless rockets in dbs_select lobby and nukes that get destroyed when spawned. Just good ol' dodgeball.

Done on spacedout.

6
Dodgeball Hell / Stats reseting
« on: July 06, 2012, 11:27:55 pm »
Every time I set a personal high then go back to the same map it resets and says 0.  :'(

Pages: [1]