Half-Life 126.96.36.199 / Counter-Strike 6.5b
by Jeffrey Zehner, a.k.a. Crepidus [WT] 6/12/00
Read Valves official response to the netcode questions here:
Valve made a very bold move with their latest implementation of netcode for half-life 188.8.131.52. This is a giant step backwards with respect to technological trends. What a debacle, and here is why:
*I've tested both as a modem and DSL client. The hit scoring and position prediction are weighted towards the highest common denominator of ping, leaving a Low Ping client with a completely unrealistic experience.
In an attempt to reduce lag and even the playing field for Clients with High Pings, Valve simply “Castrated” the playability of Low Ping Clients. Lets face it, we have nearly all experienced lag on our modem systems, and while many people have moved to high speed connections now, many are still left with standard dial-up connections. There are certain physical limitations with Internet games, and latency is the biggest one.
Dial-Up Modem play just got better!
Now players with lag times of 200ms can experience reduced lag with the new implementation of lag control. This is achieved by letting the client do more work and the server less. 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 hits. Prediction of position is used in many games, but its implementation is much different here. To the High Ping player, this patch will completely appear to improve the game play! ..and quite frankly, it does. But there is no such thing as a free lunch….
Since the data is fed back to the server from clients regarding position and hits, the Higher Ping Player gets the benefit of a more “valid” position predictions on their local clients while the Low Ping Player gets a predicted value. “Valid” meaning that the High Ping Player can records Hits locally on the predicted positions of targets that are seen. This works better for the Higher ping modem player, which was Valve's intent. The flip side is that Low Pingers end up shooting at "ghosts" of High Ping Players often not registering hits at all! This is because the Low Pinger’s Hit tally must first check with the server to see if the High Pinger’s position was predicted correctly…and if not, not hits are scored.
This is a bit long winded, but is summarized as follows:
*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!
This has some bizarre effects... and cheats...
A Low Pinger may completely unload 30 AK-47 rounds into a High Pinger's chest only to find out that he really only registered a few hits or none at all. This is because the position prediction and hit tally on the Low Ping client's machine is first checked against the server’s for validation, which may be different, and if so…discounted. Very frustrating indeed. This is best visualized by delayed Death sequences seen when a Low Ping Player Snipes a High Ping Player with the AWP.
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. Again, this is very frustrating. 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!
Sniping is now possible and recommended for the High Ping Player because: WHAT YOU SEE IS WHAT YOU GET! If you can see it, you can hit it! WOW ! …if only we had this years ago !
Don’t throw out your Cable Modems just yet! .....
It Gets Worse...
Sniping for the Low Pinger is now nearly impossible. The position data is only predicted for his targets resulting in unexplainable misses and targets that move in unnatural ways. When the "real" position data from the server updates the Low Pingers client, it often has to correct for displacement resulting in "blinking" of the target, where it appears suddenly and then skips to a slightly different place. High Pingers rejoice again.
There have been some posts that are purported to fix these effects, notably;
Commands that turn off lag compensation:
..but don't be fooled, this does not help Low Pingers, it only removes the compensation if the High Pinger turns it off ! And why would they want to do that?
There are similar commands that turn off lag compensation at the server, which can fix this problem, however, not everyone wants it fixed!
The Cover Up
Weapon Spray: You have all noticed the new inaccuracy of the weapons with wider spread of shots. This was a clever tactic by Valve to distract everyone from the fact that they could no longer always register a hit when their aim was true, and conversely, not to give complete advantage to a High Pinger either! Think about it, blasting away by a Low Ping Player with a wide spread of shots may actually register more hits than actually landing them all in his target’s chest…. Because, the target may NOT actually be where the Low Ping Player is aiming! In other words, borrowing from golf terminology, “It was a good miss!”
Future: More and more people are getting broadband connections, xDSL and Cable, especially gamers. While this is the growing market, Valve chose to make the game playable to the High Ping audience which I believe is a step backwards. Most die-hard HL / CS players have low ping connections and, believe me, it makes it very unplayable if a High Pinger shows up...very unplayable.
Crack: Well it didn't take long before someone exploited the new Netcode. Since Valve moved the position and hit prediction to the client, new cheats have sprung up already taking advantage of this. Dubbed the "stall," "freeze," or “fake-lag” cheat, clients can freeze their local game, kill their opponent, and un-stall resulting in a complete getaway. The caveat is that a victim will know when this happens to them. The victim’s target (cheater) will appear to freeze while the victim feels confident that he has registered enough hits for a kill But then a split second later, the cheater will disappear, reappearing out of the line of fire, unscathed and leaving the victim instantly dead. It is as if you've been shot in the head. The game does not actually freeze on the victim’s client, since others may be running by, but the cheater appears to be frozen while the victim blasts away at his stalled predicted value, and then moments later the victim is dead.
Great job Valve !! Now we have to deal with cheaters again ! Blizzard learned with Diablo....do NOT keep important data on the client side !
Note: as of the writing or this review, Valve reportedly released a fix for the “fake-lag cheat” It does not however fix any of the bizarre effects that Low Ping Players experience.
The new patch may be pretty looking with some weapon improvements, but the Netcode Debacle is reason enough to try another game. Modem players rejoice, this is the salvation you have been waiting for but it only benefits you if there are low ping players on the opposing team! If everyone is a High Pinger... all bets are off ! Valve may have distanced themselves from their most loyal followers. However, they have gained two new allies, High Ping players and Netcode cheaters....
Modem players celebrate with your slightly better 150ms ping....
But don't start crying when a 300ms Sir_Knumskull jumps in and cleans you clock repeatedly....
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.”
- Crepidus [WT]