Seems like a pretty small (low latency) model. Would be interesting to hook up to mouse input (x and y) and see how well it predicts where I’m gonna move the mouse (maybe with and without seeing the predicted path)
Game developers are constantly trying to minimize lag. I have no idea if computers are so fast these days that it is a "solved" problem, but I knew a game developer ages ago who used a predictive mouse model to reduce the apparent lag by guessing where the mouse would be at the time the frame was displayed (considering it took 30 ms or whatever to render the frame).
Quake internet play only became acceptable when client side prediction was implemented, I'm sure it would be better to have real prediction instead of simple interpolation.
What an amazing look into one of the greatest minds in programming!
Thank you for this treasure.
The relevant bits:
> I am now allowing the client to guess at the results of the users movement until the authoritative response from the server comes through. This is a biiiig architectural change. The client now needs to know about solidity of objects, friction, gravity, etc. I am sad to see the elegent client-as-terminal setup go away, but I am practical above idealistic.
> The server is still the final word, so the client is allways repredicting it's movement based off of the last known good message from the server.
Competitive online games commonly predict the player's movement. Network latencies have improved and are now usually <16ms (useful milestone since at 60fps you render a frame every 16.6ms), but players expect to still be able to smoothly play when joining from the other side of the continent to play with their friends. You usually want every client to agree where everyone is, and predicting movement leads to less disagreement than what you would get from using "outdated" state because of speed-of-light delays.
If you want to predict not just position but also orientation in a shooter game, that's basically predicting the mouse movements.
There's a fun game idea in there! Imagine having to outmaneuver a constantly learning model. Not to mention the possibilities of using this in genres like bullet hell...