Attualmente nel mio gioco, il client non è altro che un renderer. Quando lo stato dell'input viene modificato, il client invia un pacchetto al server e sposta il lettore come se stesse elaborando l'input, ma il server ha l'ultima parola sulla posizione.
Questo generalmente funziona davvero bene, tranne per un grosso problema: cadere dai bordi. Fondamentalmente, se un giocatore sta camminando verso un limite, dì una scogliera e si ferma proprio prima di scendere dal limite, a volte un secondo dopo, verrà teletrasportato fuori dal limite. Questo perché il pacchetto "Ho smesso di premere W" viene inviato dopo che il server ha elaborato le informazioni.
Ecco un diagramma di ritardo per aiutarti a capire cosa intendo: http://i.imgur.com/Prr8K.png
Potrei semplicemente inviare un pacchetto "W Pressed" a ciascun frame per l'elaborazione del server, ma sembrerebbe una soluzione costosa in termini di larghezza di banda.
Qualsiasi aiuto è apprezzato!