View a markdown version of this page

GAMESEC03-BP03Usa el servicio de backend de tu juego para validar las solicitudes de los jugadores para unirse a una partida multijugador - Lente de la industria del juego

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

GAMESEC03-BP03Usa el servicio de backend de tu juego para validar las solicitudes de los jugadores para unirse a una partida multijugador

Normalmente, en los juegos multijugador, un jugador se une a una sesión de juego seleccionando una opción directamente de una lista de sesiones disponibles, o bien envía una solicitud para encontrar una partida. Este último enfoque impone al desarrollador del juego la responsabilidad de localizar una sesión de juego que cumpla los requisitos y proporcionar la información de conexión (normalmente una dirección IP y un número de puerto) al cliente de juego del jugador. La implementación puede variar según el género de juego que estés desarrollando, pero en cualquier caso, se recomienda realizar una validación desde el servidor de la solicitud de un jugador para unirse a un juego.

Nivel de riesgo expuesto si no se establece esta práctica recomendada: medio

Guía para la implementación

Por ejemplo, en un juego multijugador basado en sesiones, el software del servidor del juego debe validar la solicitud de un jugador para unirse a una sesión de juego con el servicio de búsqueda de partidas del backend del juego antes de autorizar su conexión al servidor. Cuando un jugador solicita unirse a una sesión de juego, el servidor del juego debe comprobar la solicitud para obtener un identificador único, como un identificador de sesión de jugador y un ticket generado por el servidor, que el servicio de emparejamiento del backend del juego proporcionó previamente al cliente del juego.

Al iniciar la conexión con el servidor del juego, el software del servidor puede usar esta información para verificar con el servicio de emparejamiento que la solicitud de conexión del jugador es válida y verificar que el jugador no se une a un lugar previamente reservado en la sesión de juego para otro jugador. 

Para los juegos alojados en Amazon GameLift, consulta client/server Interacciones entre juegos con GameLift servidores de Amazon para ver un ejemplo de cómo se puede implementar este tipo de validación desde el servidor.

Ejemplo de cliente

Durante el lanzamiento inicial AnyCompany de la versión beta de los juegos, descubrieron que los jugadores se saltaban el sistema de emparejamiento al conectarse directamente a los servidores del juego, lo que provocaba graves problemas de integridad competitiva. Cuando los jugadores mejor clasificados se dieron cuenta de que podían compartir las direcciones IP de sus servidores con sus amigos, empezaron a eludir el sistema de emparejamiento basado en habilidades, por lo que los jugadores más experimentados se unieron a las partidas de novatos y crearon una experiencia frustrante para los jugadores nuevos. AnyCompany Los juegos respondieron implementando un sistema de validación en el servidor que generaba tickets de sesión únicos para cada solicitud de emparejamiento. El sistema requería tanto los identificadores de los jugadores como los tickets de solicitud de emparejamiento y los intentos de conexión verificados con su servicio de emparejamiento interno.

Pasos para la implementación

  • Valida las solicitudes de incorporación de jugadores desde el servidor mediante identificadores únicos, como los identificadores de sesión de los jugadores y los tickets generados por el servidor.

  • Confirma la validez de las solicitudes de conexión con el servicio de emparejamiento para bloquear el acceso no autorizado.

  • Durante el proceso de validación, comprueba que jugadores no autorizados no accedan a las plazas reservadas en las sesiones de juego.