Actualmente en mi juego, el cliente no es más que un renderizador. Cuando se cambia el estado de entrada, el cliente envía un paquete al servidor y mueve al jugador como si estuviera procesando la entrada, pero el servidor tiene la última palabra sobre la posición.
Esto generalmente funciona muy bien, excepto por un gran problema: caerse de los bordes. Básicamente, si un jugador camina hacia un borde, digamos un acantilado, y se detiene justo antes de salir del borde, a veces un segundo después, será teletransportado fuera del borde. Esto se debe a que el paquete "Dejé de presionar W" se envía después de que el servidor procesa la información.
Aquí hay un diagrama de retraso para ayudarlo a comprender lo que quiero decir: http://i.imgur.com/Prr8K.png
Podría enviar un paquete "W Presionado" a cada trama para que el servidor lo procese, pero eso parece ser una solución costosa para el ancho de banda.
Cualquier ayuda es apreciada!