AssaultPig, on 27 December 2014 - 04:42 PM, said:
The issue isn't that the MWO servers can't send you data fast enough; the issue is that MWO uses server side hit detection and the server has to reconcile two different clients giving it different information about the locations of mechs. HSR is the server's attempt to register hits in a way that conforms to both clients.
Imagine two players that each have ~100ms ping to the server. Player one sees an enemy mech and fires; 100ms later the server records that shot and looks to see whether it hit based on where player 2's client last told it player 2's mech was, then sends the result to Player 2. 100ms later (200ms after P1 fired) player 2's client receives that info and gets told whether or not they got hit.
This is potentially frustrating for both players; P2 may get 'hit' after they think they've moved behind cover or twisted, and P1 may see what looks like a hit only to have it not register because P2's client is telling the server P2 is in a different spot. This problem gets worse the higher the two players' pings are relative to the server; when people talk about a 'lag shield,' this is what they mean.
Host state rewind is the server's attempt to reconcile these potential client disagreements; the server 'remembers' where players were XYZ amount of time ago, and calculates hits based on that information and the players' ping. It's not totally perfect, but it's better than not having it.
The alternative method of calculating hitreg is just to do everything at the client level (CS:GO, CoD, etc.) Since player clients are deciding whether a hit is made, the server doesn't have to do anything other than report hits back and forth between the clients. This means that your shots will always land if you see them land, but it also means that players being shot at have less opportunity to react (i.e. you can shoot them before they see you come around the corner), and that they may take hits it doesn't appear that they should take (i.e. they duck behind cover, but still get hit because your client reports that you hit them where they were ~200ms ago.)
In a game like MWO where most targets don't move particularly quickly and weapons aren't hitscan, server side is probably the better way to go.
ed: something folks don't realize is that while hits are being calculated by the server, the graphical effects are all done at the client level. This is why sometimes you'll see an AC20 round or whatever hit the target and explode but not do any damage. The client doesn't check with the server to see if there was a hit before playing the animation.
1) Even MORE important than the section I highlighted ... client side hit detection is easily hacked. The client can tell the server that every shot you fire lands perfectly and that the target should be destroyed. Games that used client side hit detection are notorious for having to deal with hacks and cheats. Server side authoritative hit detection avoids a lot of this. However, server side hit detection REQUIRES HSR.
2) Unfortunately, the OP is clueless about the roles performed by HSR and the servers. Even within North America pings can easily be up over 100ms ... overseas is more. Adding servers or increasing server performance will do nothing to improve network latency which is the reason that HSR is required. HSR does best when latency does not vary ... if there are large variations in latency or more specifically packet loss then HSR can't be reliable since the client <-> server data transfer is being constantly interrupted by dropped and then resent packets.
3) HSR is way better than closed beta was without HSR. In closed beta you had to lead a target by an amount proportional to their ping plus your ping times their speed. Since you didn't know the ping values and they could vary ... then the amount you had to lead your target could vary quite a lot. I can remember circle strafing in lights and having to aim 1 1/2 to 2 mech lengths in front of my target to register a hit ... and who knows what part of the mech it would land on ... the best bet was to aim low and try to leg them.