Quote:
Original post by sharkyx
Why is it necessary to completely eliminate the client side prediction? As in most cases, you still have some possibilities between using and not using csp. Lots of players influencing a stack of boxes is an extreme example, IMHO. In games, how often does it happen that two players directly influence the same object at the same time? You can always use client-side prediction, but instead of just predicting the player itself, you predict the whole world. If another player is moving in the clients direction, it knows that they will collide, unless the collision is caused (or avoided) by simultaneous user input on both sides. So it does (and will) depend largely on the type of game if csp can be performed.
You could even go one step further and use csp on an object while it is under direct control of the client (think HL2's gravity gun) and as soon as the object is released, you turn it off, smooth the object into a non-predicted state. If you incorporate all the game's knowledge into the network system, you can minimize the snapping by just using prediction where it is safe, and waiting for the roundtrip where it is not safe (e.g. when the game knows already that two players are influencing the same object). The only problem I see here are the possible side-effects of turning csp on and off all the time, which will result in little snaps in itself.
RFC, I have never tested anything like this.
Regards
client side prediction is the fundamental cause of the snapping, remember, its the error in your prediction being snapped back by the server. yes if you could maintain locks on the objects perfectly somehow an only predict when you had the lock then it would be ok, but if you are predicting ahead and other clients *can* acquire the same object (as it my stack of blocks with multiple players), then eventually two players will aquire the lock while predicting ahead then get snapped back.
i'm just talking a severe case here, but just think if every player affected each other player then client side prediction cant be used. if running around on a static level very occasionally bumping into other players is your game, then client side prediction works very well -- eg. fps which is the technique i describe in my talk
cheers