by Mannon
(Editors Note: This is a rebuttal to a previous viewer submitted article, called Netcode. It is advised that you read that article first. There are also quite a few responses to the Netcode article from other viewers.)
Well this email is in response to your netcode rant. In fact it's kind of a rant itself. Don't worry; I'm not going to go off cussing and flaming. I was going to write before, but I figured it would just get ignored. Since you have posted some of the responses I thought perhaps it wouldn't be ignored after all, so here I am. *smile*
First of all, being an entertainment website dedicated to gaming, people are going to assume a certain leve l of technical expertise. Unfortunately I found Mr. Zehner to be rather uninformed. In fact there were many technical errors in his article, as well as a few not so technical ones. Well, let me start off by stating that I personally have had a lot of experience playing Half-Life and Team Fortress Classic (to use the now "classic" name) over both 28 and 56 K modem connections. At one time I was actually a capable sniper in TFC on the 56K connection. Not an impossible fete, but admittedly a difficult one. (I might add that the only thing which allowed me to achieve passable sniping of moving targets was the implementation of the notorious "lag dot". Which turns out was a brilliant method of providing user feedback on the in game latency.) I currently have a DSL connection. (A somewhat slow one at 144K, but... when it's the ONLY thing other than a modem...) My experiences with the game and the patch have obviously varied. To that extent I cannot make any comment.
If Low Ping game play has truly suffered as much as the article states then it is sad. However, this is not the source of my criticisms. What I am criticizing is the article itself and some of the technical issues involved. The argument presented by the article may indeed be valid.
Essentially, I think this article was a true rant, in that it is composed of the complaints of a single individual who feels justified in publicly complaining about their own personal frustrations, while simultaneously misunderstanding most of the underlying issues. This type of thing belongs on a forum, or in a usenet thread where the credibility and reputation of only a single individual will be affected. One last word in general before I tackle the issues. I am not personally attacking Mr. Zehner. I don't even know the guy. I've never heard of him or the website before a link to this article popped up on www.Halflife.net.
First off the article makes several somewhat inflammatory remarks, presumably a s a means to cat ch the reader's attention. However, this tone continues throughout the article in a rather Valve bashing way. Journalists should at least attempt to sound reasonably objective and open-minded, IMHO. The tone of this article does not encourage Valve to release any kind of exclusive rebuttal of any kind. The article is bordering on hostile towards Valve, and I personally would not wish to aid the organization responsible were I at the company. But perhaps this is all stylistic. Perhaps it's all a gimmick to stir up controversy, which is usually quite a crowd pleaser. More likely it is just the writer’s frustration finding a voice, I think.
So, this brings us to the beginning of the real meat of the article, and the first (and probably biggest) glaring technical error. I'm sure other readers have mentioned it, but I'll cover it anyway just to be thorough. The statement, "The player with the higher ping can now play a smoother game because their local prediction of other players is used and is valid for h its," is just blatantly wrong. The rest of the article leans upon this assumption like a crutch for almost every technical explanation, and thus the entire thing falls in upon itself like a card house. Although it may seem to be a true statement to anyone simply playing the game, the actuality is quite different. The new netcode uses Lag Compensation. Lag Compensation (not "control") is not client side prediction of hits. Hits and kills are not awarded this way. The server still retains authority. (Thus the references to Diablo are also erroneous.) What happens is that the sound effects, weapon animation, ammo depletion, bullet hole decals, ect... are handled by the client. Blood can also be switched to client side prediction, but defaults to server control. All of these are essentially cosmetic. As are all the other client side implementations. Those are all just sideshows compared to the main event, though... Lag Compensation.
So what IS Lag Compensation? Is it client side hit prediction? No, it is n't. In fact if it were then at any point when you fired at a player if your crosshairs were aimed at the player model you would get a hit whether you were an LPB (Low Ping Bastard) or an HPB (High Ping Bastard). I'm not saying it would be a good thing, (it wouldn't), but it would have different effects than are described in the article. Lag Compensation is actually very simple. The server monitors the latency of each player's connection. When a player pulls the trigger the server gets the packet a few moments later. This used to mean that by the time your packet got to the server a moving target would no longer be where you were aiming, thus you registered a miss. Now, however the server keeps track of your latency and then checks to see what targets would have been hit at the time you actually fired the weapon.
So, the HPB's hit may get lagged, and thus their target may not take damage for a moment after the shot actually took place, but the HPB still had to hit the actual location of the target, not a predicted one. The point is really hit home with these statements: "*High Ping players may hit the predicted positions of their Low Ping Player targets. *Conversely, Low ping players can only hit the REAL position of their High Ping Player targets BUT can only SEE the predicted positions!" Actually both High and Low Ping players must hit the "REAL" position of their targets, yet can only view predicted positions. The netcode does not make this false distinction between HPB's and LPB's. Now we get to some specific effects...
"When retreating around a corner, a Low Ping Player may be well out of the line of fire, but yet die a second later because the High Ping Client still has the old position which can be hit."
This effect is very real, however the explanation of it is completely incorrect. What happens is that as you are about to retreat around the corner a HPB lines up a shot and "caps your ass." Unfortunately their latency ensures that the packet telling the server they sho t their weapon does not arrive until after you have made it around the corner, or nearly so. The server then uses Lag Compensation to determine if you were in the line of fire when the shot occurred. If you were, you are retroactively issued your death. Essentially this means your death gets lagged because of the HPB's connection. But it's a fairer solution than their aim being lagged. So you lived a moment longer than you should have. And you think this is unfair to YOU? In that moment you could have thrown a grenade or finished defusing a bomb. You could have even shot them, after you should have been dead! This could be resolved a number of ways by the server. The server would receive the LPB’s action first and register a hit on the HPB. Then, the lagged action from the HPB get’s to the server. Lag Compensation tells the server that the HPB should have hit and killed the LPB. Exactly what the server does at this point I do not know, but I can think of a few possibilities:
The server may simply acce pt both actions. The LPB would see the HPB die from their shot, but then would mysteriously die as well after the HPB had already died. The HPB would shoot the LPB and then have to wait for the LPB death to come back to them from the server, which means they would receive both deaths simultaneously. The net result of this is that the LPB thinks the HPB cheated and feels like the netcode screwed them, when in actuality the HPB got screwed by their lag, because they should not have died at all.
Or, the server may actually ignore the HPB’s action since it didn’t get to the server until after they died. This one really screws the HPB, because they die, and their target does not, when all along they pulled the trigger first.
Then, there is a final possibility. The server at receiving the HPB’s action may determine it happened before the LPB’s and retroactively set things right. In other words the LPB may witness an HPB appear to die or withstand an attack, then themselves die, and the HPB go on the ir merry way. In this case the code has actually preserved events the way the should have been, the LPB’s actions that occurred after the point at which they should have died are ignored. It appears to the LPB as a total cheat, though. “I unloaded a whole clip into his chest then I died!” I wouldn’t think the code would work this way, but considering the complaints I’ve heard, perhaps it does. It doesn’t give the HPB an advantage, but it looks that way to the LPB.
The HPB still gets the short end of the stick though since all of their kills happen a moment after they SHOULD have. All I have to say about this particular one is, "tough". It's been a problem for HPB's forever. It's somewhat annoying to think you got away for a second, but it's hardly unfair. I've died many times from snipers when I thought I was already safe as a HPB. You learn to accept it, because you know they actually shot you in the open, you just didn't get your death packet from the server fast enough. So now the lag can be on the back end of the shot as well as the front end. That just helps make the game fair.
"Additionally, A Low Ping player approaching a corner may stop short of making the turn, but his predicted motion takes him past the threshold, which is a valid target for a High Ping Player!"
Again, this statement is just blatantly wrong. Personally I've never seen a player's predicted position take such a drastic move without extreme lag. But, that's not what I'm arguing. Predicted positions are irrelevant. A predicted position is NOT a valid target. If you died before going past the threshold then there was some other valid reason. Perhaps they plugged you through the wall with a rifle in CS. Perhaps you got lagged and your client position got out of sync with the server's. (The server retaining authority.) Or perhaps you died from something or someone else all together. The situation described above is false.
The article goes on to say that sniping is now just wonderful for HPB's but "nearly impossible" for LPB's. It describes targets skipping and "blinking". While this might make an HPB a harder target to snipe imagine their difficulty in controlling themselves accurately. If they are undergoing that much lag, then in all likelihood they will have a very difficult time aiming and fighting. Furthermore if they are skipping around like this then in all likelihood you have either disabled player prediction or have turned it too low. Tweak your own prediction settings. Player prediction is not evil, it is meant to make up for gaps in communication. The server can only get updates from the client at a certain rate. To some extent player position will become erratic even on the server for a high ping player. Slow and erratic updates from the client cause this, but cannot be completely eliminated or compensated for. Essentially, if you are faced with a difficult target then just keep in mind the disadvantages and burdens the HPB must face. Also consider that the LPB has a similar advantage over the HPB sniper. By moving erratically you can change your position faster than the server can send them updates, which will cause similar effects on their end, and will force them to rely upon prediction between server refreshes in order to attempt hitting you.
However, the LPB does not have any of the additional disadvantages of the HPB, so you are still better off. Basically, lag makes sniping difficult on both ends of the modem, despite Lag Compensation. The article then states that all weapons are now less accurate and have a wider spread. I'm unclear about what was specifically being referred to here. Was it HL-DM or Team? Was it TFC or possibly CS? I'm not sure. I know that I've played TFC and I didn't notice any particular greater inaccuracy or wider spread. I haven't played multiplayer HL in a while, but not all that many people do, most preferring the MOD's to pure HL multiplayer anyway. As for CS... Well, that's not even Valve! Goosman and team released CS beta version 6.5 just after the Valve patc h. The new beta updated CS to be compatible with the new patch as well as further making additions and tweaks to the game. If the weapons in CS are less accurate this does not... cannot... have anything to do with Valve! Valve did not code the CS weapons and did not modify the CS weapon code in any way with the patch. So, I'm really unsure what modified inaccuracy and weapon spread (if any) is actually referred to.
"Now nobody gets a completely realistic experience, High and Low Pingers alike. High Pingers may disagree, but to me, 'Two Wrongs do not make a Right.' "
Nobody ever got, or gets this mythical completely realistic experience. Even on a LAN games develop issues. I am not currently a "High pinger" myself. In fact I often enjoy CS with a sub 100 ping, and have played a few times with sub 60 pings. Gamespy3D largely to thank for my low pings, but so is my DSL connection also, as well as the new netcode. (I did play TFC on the DSL previous to receiving the new netcode and I did in deed notice an improvement in both gameplay and ping.)
I have to agree that, "Two wrongs do not make a right." But, I do not view the new netcode features and balancing as a wrong. The netcode cannot remove the effects of lag entirely, but it can help to ensure that the HPB and LPB enjoy more similar gameplay than was possible in the past. A few odd effects are a small price to pay for enhancing the playability of the game. Even LPB's enjoy a benefit from Lag Compensation. As for anyone having difficulty adjusting to the new netcode I would highly recommend tweaking the game settings especially the new settings. A very good source was the tweak guide made available at www.tweak3d.com. For instance the guide mentioned that predicting bullet decals helps to give immediate feedback, but that some of the randomizing of the aim due to normal weapon inaccuracy and recoil had to be done on the server, and thus the decal positions may not correlate with the randomizations done on the server. Thus the decals for shots that contained a random element would be in the wrong place. The guide recommended switching this to server control if it seemed like an issue, which is just another cvar setting like so many, and can be modified by any client for their own system. This and other tweaks may aid players having difficulty with hitting targets under the new code.
I would like to apologize for the verbose nature of this response. I tend to be wordy in emails and such. But I did think these things should be pointed out. Let me state again that I hold no ill will towards Mr. Zehner. I simply feel that his article was a bit inflammatory, misleading, uninformed, and poorly researched. He seems to have taken great passion writing about something about which he had little understanding of. Which really isn't that bad a thing to do after all. I also want to state again that I am not refuting his argument itself. Perhaps he does have a point. Many people seemed to agree, so that would lend credence to the notion that gameplay for LPB's has suffered.
I (unfortunately) was not an LPB soon enough to be able to make this distinction, so I will politely bow out of that actual argument. Personally I believe this could have been a much more compelling article had the author known a bit more about the actual technical issues, and had it been less of a rant, and more of a sharing of information and a plea for improvements. Let me also say that we all know this is netcode intended for TF2, but we also all should know that Valve is bringing TF2 technology to us early. This stuff is prebeta. In fact, Valve is in the unique position of being able to beta test many new technologies for TF2 with the single largest FPS player base available, and simultaneously provide ongoing improvements for all of us to benefit from. Sure, hear and there it's going to be a bumpy ride.
Some MOD teams have had difficulty making their MOD's compliant with the new patch, and there are other issues. But, ove rall, the benefits far outweigh the harm. So, really, it's a win/win situation. I think we should all give Valve the benefit of the doubt. Valve may be a little tight lipped most of the time, but honestly, how many game developers support the community half as much as Valve? Half-Life is almost two years old, yet we are still getting patches and continuing support, as well as new features. Most game developers have gone bankrupt before their first title has been out for two years!
p -Mannon
( Editors note: This editorial was actually sent to our mailbag feature, but I'm pretty sure no one will disagree that this deserved a special place on the site. Thanks to Mannon for agreeing to this. I should mention a couple of things as well. The original Netcode article was a viewer submission as well, and not written by a GameSurge staff member. Mannon didn't know this, because I forgot to mention it in the original post I made. Oops...
So, after talking to him a couple of times, I &quo t;edited out" references to this site, to save us both embarrassment, (especially ours) and to make it a little clearer.
As well, I had some trouble editing this, as I have *cough* never played the game *cough*, so I just left it as is rather than make some horrendous mistake that will make me the bane of the Half-life world. On a small personal note, I also have to comment on the sheer amount of replies to the Netcode article. I'm a member of several "game communities", but I have never seen so many people with such passion for a game. When you get replies of the highest quality, like this one, it really makes a strong statement about the game and the people who play it. Thanks to all who wrote, and I encourage everyone to continue writing. )
Second Editor's note: As a CS player, with both Modem and Cable experience my personal opinion of the netcode is that it has made the game experience better for HPBs, but at the expense of LPBs. It was made to improve the HPB experience, but as a side effect has caused downfalls on the LPB end. No LPB has said that they are better off than before due to the effects of the new netcode, but rather HPBs have been advantaged by the lag compensation. Additionally, I don't see how lag compensation will benefit a LPB, as stated by Mannon, as LPBs enjoyed the benefit of a seemingly lagless game to begin with. His other points such as that a LPB sniper will be better of than a HPB still are not justified.
On a side note, whether the new weapon inacuracy is due to an act of the netcode, or by a totally seperate decision by the CS team, it has definately caused the dropuot of many old school and hardcore gamers. Even a neutral review of B6.5 (With no previous experience of pre-6.5) by FiringSquad has stated that the game is not of pure skill, unlike Quake for example. The weapon inaccuracy benefits unskilled players by at least giving the chance of a fluke hit, but severly hampers skilled players whose well aimed head shots no longer hit due to inaccurate weapon spray.