Why Don't My Shots/bites Register?
CommunistWithAGun
Local Propaganda Guy Join Date: 2003-04-30 Member: 15953Members
From a day to day basis I struggle with finding the perfect rates. I used to be able to kill a skulk in about 15 bullets and avoid being bitten, and now I have to unload the entire clip and pray it kills, and no amount of circle strafing can save me, on alien its typical for me to have to ambush a marine, the first 1-2 bites usually dont register, no blood, nothing, then the rest do. my rates are cl_cmdrate 50 cl_updaterate 101 rate 20000
ex_interp is default so is entrapmax. A year ago I never had problems getting attacks to land, sometime between now and then something happend.
I'd like to think its my aim but I am tracking a skulk near perfectly from a not so far distance. Today nothing registers, about a week ago I was able to kill a skulk in nearly 11 bullets from an LMG. It fluctuates alot. I am getting zero choke, zero loss, and for the most part a sub 100 ping. I'd put this in technical support but I know nobody would read it.
ex_interp is default so is entrapmax. A year ago I never had problems getting attacks to land, sometime between now and then something happend.
I'd like to think its my aim but I am tracking a skulk near perfectly from a not so far distance. Today nothing registers, about a week ago I was able to kill a skulk in nearly 11 bullets from an LMG. It fluctuates alot. I am getting zero choke, zero loss, and for the most part a sub 100 ping. I'd put this in technical support but I know nobody would read it.
Comments
Depends on you connection a lot though, my dsl isn't that fast so these work for me, if u have a faster connection try raising the stuff up a little. good luck.
Nothing I do seems to fix it, no loss....no choke, other games are fine :\
It does not depend on the rates of the person you are shooting. The server draws the charecter model on your screen based on the info sent by the players. If a player sends too little info the server will make approximations of where he really is. If the player shoots at a player he sees on the screen, then the HL code will register a hit no matter what so that a players rates won't matter.
That is how HL is setup.
Other times I'll be a skulk running away, the lmg'er firing is scoring the "hit" sound effect, but I don't take any damage. You'd probably say to aim behind, but I'm running away with my back to him, wouldn't he hit me anyway? Attacks on either side just constantly seem to transcend into an alternate dimension or something.
Nothing new to anyone I know (and isn't just a recent thing like CWAG's problem), but I just wish it would finally get fixed.
</rant>
That is how HL is setup. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Thats how it would work in a perfect world, sadly what happens is:
You fire a shot, you client predicts where is should go, for decals, and hit sprites etc.
The server then takes the information from your client, and sends it to all the others.
My shot on my client hit the window, breaking it, I only fired one shot, mr joe low-rates beside me, came round the corner just as I fired, he hears the window break, however sees my bullet decal a few feet to the right on the wall.
Another example:
I fire my shot, at a model, it hits on my client, my client tells the server "A shot hit" the server queries the other clients possision, his client tells the server, "No I wasn't there yet"
Its all very odd, sometimes it works perfectly, you get people who will see you draw your pistol, then die by your LMG, thats when your client is taking preference, I don't fully understand why its getting worse, netcode is at its best unpredicted, then all shots register, assuming they hit, regardless.
<!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
Your commandrate really should be as high as possible- i.e. without choke or loss.
My settings, on a 512kb connection, are:
rate 15000
cl_cmdrate 99
cl_updaterate 30 (lol Spaniard sherpa)
if the update rate is at 30, as is typical, it mean that amything more than 30, will hurt more than help.
also if the "sv_maxrate" is capped, put it to that, while most usually on NS servers i see 20000, 25000, or 0 = unlimited.
cmdrate should = your average fps.
ex_interp should equal 0, that makes for the correct 1/updaterate interp rate.
Try lowering your updaterate to something that the server you're playing on can cope with, and adjust ex_interp accordingly.
I ususally vary my updaterate between 30 and 70, and my ex_interp 0.1 - 0.05. Not completely acurately set interp, but it works quite well. My cmdrate is usually around 40, and rate is set to 15000 or lower, depending on how much choke I get -- increase it untill you get no choke in full action in a crowded area.
if the update rate is at 30, as is typical, it mean that amything more than 30, will hurt more than help.
also if the "sv_maxrate" is capped, put it to that, while most usually on NS servers i see 20000, 25000, or 0 = unlimited.
cmdrate should = your average fps.
ex_interp should equal 0, that makes for the correct 1/updaterate interp rate. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
Holy. This is the most useful rate response ever. Someone have this guy make a rate sticky in the tech forum.
Other times I'll be a skulk running away, the lmg'er firing is scoring the "hit" sound effect, but I don't take any damage. You'd probably say to aim behind, but I'm running away with my back to him, wouldn't he hit me anyway? Attacks on either side just constantly seem to transcend into an alternate dimension or something.
Nothing new to anyone I know (and isn't just a recent thing like CWAG's problem), but I just wish it would finally get fixed.
</rant> <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Steve, my son, you should have come to daddy about this problem.
I've tried implementing most of the rate theories posted on these forums, and the best config for me is fps_max 60 (Im always on laptop), cl_updaterate 60, cl_cmdrate 60.
Obviously it updates my location to the server more.....so it could in theory make it easier to kill ME, but I seem to be able to kill more efficiently.
edit: <i>I wouldn't recommend fps_max 60 to anybody besides those on laptops with low refresh rates.</i>
if the update rate is at 30, as is typical, it mean that amything more than 30, will hurt more than help.
also if the "sv_maxrate" is capped, put it to that, while most usually on NS servers i see 20000, 25000, or 0 = unlimited.
cmdrate should = your average fps.
ex_interp should equal 0, that makes for the correct 1/updaterate interp rate. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
QFT
I just figured this out last night thanks to CWAG
Like Flounder said
<!--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--> Holy. This is the most useful rate response ever. Someone have this guy make a rate sticky in the tech forum.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
ex_interp is default so is entrapmax. A year ago I never had problems getting attacks to land, sometime between now and then something happend.
I'd like to think its my aim but I am tracking a skulk near perfectly from a not so far distance. Today nothing registers, about a week ago I was able to kill a skulk in nearly 11 bullets from an LMG. It fluctuates alot. I am getting zero choke, zero loss, and for the most part a sub 100 ping. I'd put this in technical support but I know nobody would read it. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
You shouldnt even touch your rates, that does more harm then good....just leave it at the defaults.
People say 'raise you rates,' I say lower them. Put your rates rather low at first, then start raising your cmdrate, in increments of5. Then do the same for your updrate. The updrate, I've noticed, causes more loss when not at a good position, and a cmd rate causes more choke when bad.
Because I spec you.
Because I spec you. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
Not valid anymore! <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html/emoticons/biggrin-fix.gif' border='0' style='vertical-align:middle' alt='biggrin-fix.gif' /><!--endemo-->
Because I spec you. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
That made me so paranoid when I first read that thread. Consistently asking "who are you speccing?" I'd imagine gets a little suspicious, but it was something else driving me nuts. Then I was assured that it was 3.05 only <!--emo&::nerdy::--><img src='http://www.unknownworlds.com/forums/html/emoticons/nerd-fix.gif' border='0' style='vertical-align:middle' alt='nerd-fix.gif' /><!--endemo-->
<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
This isn't accurate, or rather it's incomplete.
Simplisitcly, ex_interp determines how far in the past you play the game. Think of ex_interp like MediaPLayer or RealMedia streaming video. The server has a snapshot of the calculated world for each timeframe but knows that you'll never receive the information in real time. The server takes your model delay (ex_interp) and your latency into account when calculating your likely perceived view of the world. Ex_interp is for buffering to account for you latency to the server. As you can see, anything over 100 milliseconds (the max and default for ex_interp) can never be accounted for and drifts into the world of extrapilation (aka guessing) instead of interpolation (calculations between known points). As you may guess, spiking or inconsistant latency by any party means the server will have a harder time accurately calculating your perceived view of the world.
There's no ammount of cvar or aim adjusting you can do if the server itself is lagging, has poor settings, or other players have inconsistant latencies or mal-adjusted rates. On servers with poor framerates, you'll notice a lot of lmg "hit" sounds on aliens, but won't see any alien blood unless you point somewhere behind the alien model. The best you can do most times is to start behind the alien and move your aim infront of where the alien is going - this accounts for lag in your brain from reaction time as well lag from the server or other players. You can also spray your fire left-and-right over the model when all else fails praying for registration.
Also, people with too low an ex_interp setting are their own worst enemy. That is to say, they run out of data from the server and have to start guessing where stuff is placed (ex_extrapmax). Half-life tries its best to display the user a smooth perception of the world and has no qualms about lying to the player to do so. So, just like buffering smooths our streaming video, it has the same effect half-life net code - all for the "benifit" of seeing the other teams position 50 milliseconds earlier.
This is wrong. This is the minimal amount of interpolation you need under <b>perfect</b> circumstances. (See my post above about too low and ex_interp setting)
I assume the playermodels would be jumping about like a slide show?
<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
This isn't accurate, or rather it's incomplete.
Simplisitcly, ex_interp determines how far in the past you play the game. Think of ex_interp like MediaPLayer or RealMedia streaming video. The server has a snapshot of the calculated world for each timeframe but knows that you'll never receive the information in real time. The server takes your model delay (ex_interp) and your latency into account when calculating your likely perceived view of the world. Ex_interp is for buffering to account for you latency to the server. As you can see, anything over 100 milliseconds (the max and default for ex_interp) can never be accounted for and drifts into the world of extrapilation (aka guessing) instead of interpolation (calculations between known points). As you may guess, spiking or inconsistant latency by any party means the server will have a harder time accurately calculating your perceived view of the world. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Ok, I do not have access to the code that does this, so I can only speculate based on what I know of mathematics and what I have read of this engine. And I beleive you are a bit off track.
ex_interp stands, as you point out, for interpolation. It does however not define how far "into the future" the game caches data. The interpolation process, which is in fact a smoothing process where it calculates where something will be between time A and B, needs to account for how often it will have reliable data. ex_interp defines the interval (in seconds) between expected data, and the interpolation process uses this to calculate the curve between A and B.
If you provide more data than expected, the predicted curve might fluctuate such that it will become an inacurate and more compelx representation of the server's data (thing might skip around). The samme happens if you provide less data than expected: It will become a much "simpler" representation of what really happens on the server.
This explains the relation between ex_interp and cl_updaterate, as updaterate defines the maximal amount of packages that the client will accept.
EDIT: Never mind, it occured to me that we are describing the same thing, but using two different perspectives.
extrapmax, or in otherwords, maximum extrapolation, determines the maximum amount of seconds of packet loss the game will attempt to extrapolate over. Thus if an alien on screen is moving in a straight line towards you, and you start to lose packets, your client will attempt to predict or extrapolate the motion of that alien (in all likelyhood, it will show it still coming towards you). If your client is right, you get a smooth transition despite packet loss, if your client is wrong, you see a "teleport". Thus setting extrapmax to a high value has the potential to negotiate longer losses of packets, but is only beneficiary if the client has extrapolated correctly. Lower settings of extrapmax produces choppier results (as the client assumes less motion and waits for the next server packet), but may be more accurate when dealing with non-linear moving players and/or objects.
Seriously. Also, it helps you adjust your aim, if you see that there's a pattern to your bad aiming. If that made sense.