Tengo los fundamentos de los sockets TCP, la comunicación UDP, etc., pero no puedo encontrar mucho sobre cómo aplicarlos a un entorno de juego en tiempo real.
Tengo un clon de Pong, con 4 jugadores, y necesito sincronizar las posiciones de pádel entre los tres clientes y el servidor (el servidor es el cuarto jugador). Actualmente uso UDP para enviar actualizaciones en tiempo real (movimientos de paleta) y TCP para configurar el lobby del juego, etc.
¿Es MALO enviar spam a grandes cantidades de tráfico UDP? ¿Debería buscar algo como DCCP por sus características de congestión? ¿O no es realmente un problema con un proyecto a pequeña escala como este?
¿Cuándo se deben enviar los mensajes de sincronización entre cliente / servidor? Actualmente, el servidor está enviando paquetes UDP con el estado actual del juego tan rápido como puede administrar, y los clientes están enviando su posición de paleta al servidor lo más rápido que pueden. ¿Es esta la mejor manera de hacerlo? ¿Hay algún tipo de retraso que deba agregar para que los mensajes se envíen una vez cada X milisegundos, o solo debería enviar mensajes a medida que ocurren los eventos? (por ejemplo, la velocidad de la paleta cambió debido a la entrada del usuario)
¿Sería mejor hacer que los clientes comuniquen sus posiciones de remo entre pares?
Estoy haciendo estas preguntas dentro del contexto de Pong, pero también estoy interesado en cómo se superarían estos problemas en otros juegos o soluciones generalizadas.