Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I find <a href="http://gafferongames.com/game-physics/networked-physics/" rel="nofollow noreferrer">this network physics blog post</a> by Glenn Fiedler, and even more so the response/discussion below it, awesome. It is quite lengthy, but worth-while.</p> <h3>In summary</h3> <p>Server cannot keep up with reiterating simulation whenever client input is received in a modern game physics simulation (i.e. vehicles or rigid body dynamics). Therefore the server orders all clients latency+jitter (time) ahead of server so that all incomming packets come in JIT before the server needs 'em.</p> <p>He also gives an outline of how to handle the type of ownership you are asking for. The slides he showed on GDC are awesome!</p> <h3>On cheating</h3> <p>Mr Fiedler himself (and others) state that this algorithm suffers from not being very cheat-proof. This is not true. This algorithm is no less easy or hard to exploit than traditional client/server prediction (see article regarding traditional client/server prediction in <a href="https://stackoverflow.com/questions/42515/dealing-with-latency-in-networked-games/42549#42549">@CD Sanchez' answer</a>). </p> <p>To be absolutely clear: the server is not easier to cheat simply because it receives network physical positioning just in time (rather than x milliseconds late as in traditional prediction). The clients are not affected at all, since they all receive the positional information of their opponents with the exact same latency as in traditional prediction.</p> <p>No matter which algorithm you pick, you may want to add cheat-protection if you're releasing a major title. If you are, I suggest adding encryption against <a href="http://en.wikipedia.org/wiki/Aimbot#StoogeBot" rel="nofollow noreferrer">stooge bots</a> (for instance <a href="http://en.wikipedia.org/wiki/XOR_cipher" rel="nofollow noreferrer">an XOR stream cipher</a> where the "keystream is generated by a pseudo-random number generator") and simple sanity checks against cracks. Some developers also implement algorithms to check that the binaries are intact (to reduce risk of cracking) or to ensure that the user isn't running a debugger (to reduce risk of a crack being developed), but those are more debatable.</p> <p>If you're just making a smaller indie game, that may only be played by some few thousand players, don't bother implementing any anti-cheat algorithms until 1) you need them; or 2) the user base grows.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload