View Single Post
  #468  
Old 10-19-2009, 09:21 PM
cRush cRush is offline
Developer
Developer
 
Join Date: Dec 2006
Location: Corpus Christi, TX
Posts: 1,557
Quote:
Originally Posted by nabyroth View Post
While we are all experiencing rubberbanding because of speed hackers it's really smart to allow some "cool enough to be hacker" people to use speed hacking.
This seems to be one of the main misconception floating around.

Let me explain how the speed hack prevention works, and how it is causing rubberbanding occassionally (which if hasn't been noticed, it has improved drastically, and will only continue to improve until it is rarely noticeable).

Speed hacks work by modifying the client's local variable for telling the client how fast a player can move forward. As a player move's forward, his new position is sent to the server so that the server can keep track of where the client is going. Speed hack's simply modify this local variable by editing system memory. By increasing it to some arbitrarily large number, it allows the client to send larger distances covered, than they should be able to cover at the speed the server believes a player should be traversing.

For example:
Player's speed is set to 5 on the server. Player edits memory and sets it to 15. Now when player moves client side, all position updates sent to the server are increased by a factor of 3 greater than what they should be.

The fix:
In order to render speed hacks ineffective, we calculate how far a player should be able to move based on simple physics formulae. The distance traversed is directly proportional to speed and time.

We have begun calculation the max distance the client should be able to travel in this time, and bounce players back if they traverse farther than they should be able to. Hence rubber banding.

Anyone trying to speed hack with this enabled will rubber-band and not be able to speed hack anywhere.

The consequences:
Unfortunately, the equations are too precise, and do not account for lag. This is causing some players who are not speed hacking to just barely trip the detection, rubber banding them back to their last position. The greater the lag, the more frequent this occurs.

The future:
We have already outlined a new algorithm that should hopefully correct for lag, while still keeping speed hacking ineffective. We are testing it internally to make sure it doesn't make the situation worse before pushing it to TC. If it tests well internally, we will move it to TC where we hope it will hold up. If it doesn't, we will reinstate the old protection, and try again.

Why we can't just disable it and ban all speed hackers:
While in a perfect world, we could just ban anyone speed hacking, there are a couple reasons why this is impractical:
1) Lag can cause false positives from player perspective (players may appear to be speed hacking because of lag).
2) CSR's can't be actively monitoring every single player on the server looking for speed hackers.
3) Usually, speed hackers aren't caught until some damage has been done. It is a better method to prevent the damage being done in the first place.

So, please, accept our sincerest apologies of any rubberbanding. I seriously don't think anyone can claim it unplayable/untestable at this moment. I have spent considerable time myself in game, and barely rubberband - this has even led to some miscommunication that it is off. I assure you, it's not off. We are doing the best we can to improve it as quickly as possible, and it is in everyone's best interest that we do so.

It is actually a good thing that we are working to correct this issue now, rather than on SunCrusher when serious damage could have been made to the longevity of the server.

Thanks for understanding! Feel free to ask anymore questions you have concerning it. You can find me on IRC.

Last edited by cRush; 10-19-2009 at 09:29 PM.