Original Post
I''ve been reading a lot about client side prediction and dead reckoning, since it appears in essentially every single network coding article in existence. So I''m just laying out the ideas for how to actually go about implementing it.
Now, the first problem is exactly where prediction is supposed to be done. Obviously it happens on the client, but who is responsible deciding where players "probably are"? Should that be handled in the networking code? Or should it be part of the main game engine?
Second, what criteria will I be using to predict? A calculated velocity vector that just keeps going forward (think FPS here)? And when the next network update comes in, do I just snap the players back? Also, what should prediction actually be used for? Just rendering, or something else?
Do I collision detect predictions, or not? (and a related question, do I collision detect on the client at all?)
In short, should the client simply take whatever velocities it last had and continue to apply them until it gets a message from the server to change? And should that be done in the network code or the master game engine?