Ex_interp "0"

falloutx2falloutx2 Join Date: 2003-05-01 Member: 15979Members, Constellation
<div class="IPBDescription">Is the 1/updaterate formula correct?</div> I was messing with various net settings today in an effort to get them to be optimum. I decided to let the game set my ex_interp by using "0" and it came up with .016 ms because my cl_updaterate was "60"

I ended up with the following settings:

cl_cmdbackup "81"
cl_cmdrate "101"
cl_updaterate "60"
ex_interp "0.05"
ex_extrapmax "6"

My concern is that if I allow the game to set ex_interp on it own, the .016 value is very far from correct. I had significant teleporting of players as caused by incorrect ex_interp when using this setting, so I reset to .05 and had much smoother results.

Its not a bug perse, but it seems the default ex_interp setting for ex_interp "0" should get closer to an accurate setting than it currently is.

I don't think this is anything new as I've seen it discussed before. I am considering opening a bug report on this once I get some data as to whether it performs better for users with higher cl_updaterates by default and its just a matter of my personal settings.

It would be could if ex_interp "0" caused a more useable value than it currently does.

It would aid me greatly if people would post the relevant portion of their config (i.e. ex_interp setting and cl_updaterate setting) so I can get a feel for the depth of discrepancy between what ex_interp value is generated and what ex_interp value is actually function.

Comments

  • SariselSarisel .::&#39; ( O ) &#39;;:-. .-.:;&#39; ( O ) &#39;::. Join Date: 2003-07-30 Member: 18557Members, Constellation
    The function of ex_interp defines its optimal value at 1/cl_updaterate, since then you'll be getting all the correct frames that you can handle. What I'm not sure about is your ex_extrapmax setting of 6. That seems a bit odd. Perhaps you could explain why you set it that high, because last time I checked it seems to cause jerkiness if it is set to an incorrect value.
  • falloutx2falloutx2 Join Date: 2003-05-01 Member: 15979Members, Constellation
    I previously had it much lower, but I was running into "hit registration" problems and someone recommended I try that to correct it.

    Prior to using ex_extrapmax "6" I had still had problems with "jerky models" using ex_interp "0"
  • CreepieCreepie Join Date: 2003-02-19 Member: 13734Members
    What does ex_extrapmax do ?
  • YumosisYumosis Join Date: 2003-01-12 Member: 12222Banned
    ex_interp 0 looks choppy because most servers have sv_maxrate 30(cal config allows 100), meaning dispite your "cl_updaterate 60" you are really only using 30. So, we end up using the ex_interp that should make 60 look smooth for gameplay(1/60), but the server only allows for 30 max, leaving us with choppy gameplay.
  • ForlornForlorn Join Date: 2002-11-01 Member: 2634Banned
    Wasn't extrapmax disabled?
  • SinSpawnSinSpawn Harbinger of Suffering Join Date: 2002-11-12 Member: 8359Members
    <!--QuoteBegin-Forlorn+Sep 22 2004, 03:23 PM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Forlorn @ Sep 22 2004, 03:23 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> Wasn't extrapmax disabled? <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
    I thought ex_interp was too :/
  • Raza.Raza. Join Date: 2004-01-24 Member: 25663Members, Constellation
    edited September 2004
    I don't know much about the netcode, but I found this formula a while ago and I'm using it since then.

    <!--c1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->(<current ping> + 10) / 1000 = ex_interp<!--c2--></td></tr></table><div class='postcolor'><!--ec2-->

    Is this completely wrong?

    I mean ex_interp is afaik for lag compensation. And how should it work without considering your ping?
  • k1ndredk1ndred Join Date: 2003-11-30 Member: 23790Members
    is this code really accurate?

    if it is, would be very nice if next versions of natural selection used this formula to auto-adjust the ex_interp
  • semipsychoticsemipsychotic Join Date: 2003-07-09 Member: 18061Members
    edited September 2004
    Ripley: it's kind of a lag compensation. I'm not sure where that formula came from, however. Here's a explanation of how ex_interp works:

    Ex_interp is a variable the determines how long the prediction engine is in control of the model placement and all of the other fun stuff. The server is not able to give you the position updates 100 times every second, so the Half-life engine on your client has to predict where the models are. So, the optimum ex_interp at 1/cl_updaterate (that's a fraction with cl_updaterate as the denominator), because that is how long it takes between server updates.

    While nothing beats an accurate update packet from the server, you don't want models changing position at 30 FPS with your video card rendering the animations on them as well as everything else at 100 FPS, do you? The prediction engine does a very good job of filling in the gaps.

    By the way, ex_interp was LOCKED in B4A, but UNLOCKED in B5. If you haven't done so already, I would highly reccommend setting your ex_interp to 0, because Half-life will then automatically set it to 1/cl_updaterate.

    I'm not sure about ex_extrapmax; I've never heard of it before.

    As for the original post, I think Yumosis hit it dead on. If you change your cl_updaterate to 30 and make sure that ex_interp resets itself correctly, you should be back in business.
  • falloutx2falloutx2 Join Date: 2003-05-01 Member: 15979Members, Constellation
    It would be nice then if the game upon seeing ex_interp "0" would query the server's max allowed cl_cmdrate and set it according to the lowest setting between the client and server instead of trying to use whatever value the client uses, since the end user cannot predict the servers value.
  • YumosisYumosis Join Date: 2003-01-12 Member: 12222Banned
    edited September 2004
    Yeah, I agree, I've always wondered why Valve made some of the things they did so backwards <!--emo&???--><img src='http://www.unknownworlds.com/forums/html//emoticons/confused-fix.gif' border='0' style='vertical-align:middle' alt='confused-fix.gif' /><!--endemo-->

    Just like how the minimum required updaterate/rate works, it checks the server sv_minupdaterate/rate, I have no idea why Valve just doesn't do this for sv_maxupdaterate and sv_maxrate <!--emo&:(--><img src='http://www.unknownworlds.com/forums/html//emoticons/sad-fix.gif' border='0' style='vertical-align:middle' alt='sad-fix.gif' /><!--endemo-->
  • TrayderTrayder Join Date: 2003-10-30 Member: 22127Members, Constellation
    <!--QuoteBegin-_Creep_+Sep 22 2004, 01:51 AM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (_Creep_ @ Sep 22 2004, 01:51 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> What does ex_extrapmax do ? <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
    Good point, anyone care to enlighten? Just a basic description if what it does and how it affects your gameplay should suffice, aswell as optimal values? <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile-fix.gif' border='0' style='vertical-align:middle' alt='smile-fix.gif' /><!--endemo-->
  • YumosisYumosis Join Date: 2003-01-12 Member: 12222Banned
    <!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> EX_EXTRAPMAX: When you change the EX_INTERP value it causes mismatches with client renders, EX_EXTRAPMAX one can to some extent adjust for this. This value computes the intermediate steps, that of EX_INTERP precalculated values. In addition it shift model position. The default value is 1.2. If one reduces EX_INTERP, then one should raise EX_EXTRAPMAX. A value to 5 is normally sufficient. If one advances the value extremely, then the rendered player models is shifted very far "into the future". Therefore one should be careful with this value. The value "2" is optimal with EX_INTERP at default.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->

    taken from <a href='http://www.foom.net/fortressfiles/netcode.htm' target='_blank'>http://www.foom.net/fortressfiles/netcode.htm</a>
Sign In or Register to comment.