Un amigo y yo estábamos teniendo una discusión sobre cómo un servidor FPS actualiza los clientes conectados a él. Vimos un video de un tipo infiel en Battlefield: Bad Company 2 y vimos cómo resaltaba la posición de los enemigos en la pantalla y nos hizo pensar.¿Cuáles son las estrategias generales para el servidor de un juego de multijugador FPS para actualizar a sus clientes?
Su argumento fue que el servidor solo actualiza al cliente con información que es inmediatamente relevante para el cliente. Es decir. el servidor no enviará información sobre jugadores enemigos si están demasiado lejos del cliente o fuera de la línea de visión del cliente por razones de eficiencia. Sin embargo, no estaba seguro, sacó el ejemplo de alguien que se esconde detrás de una roca y no puede ver a nadie. Si el jugador repentinamente apareciera donde tenía tres jugadores en su línea de visión, habría una demora de 50ms antes de que se renderizaran en su pantalla mientras el servidor transmitía la información necesaria.
Mi argumento era el opuesto: que el servidor envía al cliente toda la información sobre cada jugador y le permite al cliente ordenar lo que está permitido y lo que no. Pensé que en realidad sería menos costoso computacionalmente para el servidor simplemente enviar todo al cliente y dejar que el cliente haga el trabajo pesado, por así decirlo. También pensé que así es como funcionan los programas de trampas: interceptan los paquetes del servidor, obtienen la ubicación de los enemigos y luego los muestran en la vista del cliente.
Entonces, la pregunta: ¿Cuáles son algunas políticas generales o estrategias que emplea un moderno servidor de disparos en primera persona para mantener a sus clientes actualizados?
¿Tiene algún recurso en línea en el que pueda obtener más información al respecto? –
Agregué algunos enlaces a la respuesta. Aprendo mucho leyendo el foro de Gamedev.net en particular. – Kylotan
Excelentes recursos; especialmente redes multijugador de código fuente. Iba a responder con eso. +1 – Leftium