Skip to main content

Asignación de sesiones multijugador

Con los servidores multijugador 2.0 de PlayFab, puede asignar instancias de su aplicación de servidor multijugador mediante la API RequestMultiplayerServer. Normalmente, esta API se llama desde sus propios servicios (quizás un servicio de emparejamiento o un servicio de sala), mediante una clave secreta de desarrollador de PlayFab configurada para el título específico. Para obtener más información sobre las claves secretas, consulte Administración de claves secretas. Un patrón típico para reunir a los jugadores y asignar servidores:
  1. Los clientes recopilan información de QoS de red.
  2. Los clientes interactúan con un servicio de emparejamiento personalizado, o se reúnen mediante invitaciones sociales.
  3. Un servicio de emparejamiento personalizado asigna una sesión para el grupo, mediante una lista priorizada de regiones.
RequestMultiplayerServer tiene varios parámetros clave:
  • BuildID: la compilación de servidor específica que se va a asignar.
  • SessionID: un identificador para la sesión. Se trata de una cadena GUID generada por el autor de la llamada. Los reintentos de esta API para la misma sesión lógica deben reutilizar el mismo identificador. Esto mitiga la posibilidad de que el comportamiento de reintento del autor de la llamada cree servidores innecesarios.
  • SessionCookie: datos arbitrarios que se comunicarán mediante el SDK del servidor de juegos a la sesión asignada en el momento de la activación. Un uso típico de este campo es comunicar una clave compartida que los servidores de juegos usan para autenticar a los clientes. Los datos deben ocupar menos de 4 kilobytes.
  • PreferredRegions: una lista ordenada de regiones usada para asignar servidores. Se recomienda usar las mediciones de QoS de red recopiladas de los dispositivos cliente como factor principal para clasificar las regiones.
Una asignación correcta devolverá la siguiente información:
Puede usar MpsAllocatorSample (disponible aquí) como una forma sencilla de asignar servidores de juegos durante el desarrollo de su juego

Asignación desde el cliente

Los servidores multijugador son costosos y eficaces. De forma predeterminada, solo puede solicitar un servidor multijugador desde su propio servicio de confianza mediante una clave secreta de desarrollador de PlayFab. Sin embargo, asignar servidores directamente desde los dispositivos de los jugadores puede ahorrarle el costo de implementar llamadas de servicio a servicio y resultar útil en algunas circunstancias. Para habilitar la asignación desde el cliente:
  • Seleccione Settings en el menú de la izquierda.
  • Seleccione la pestaña API Features.
  • A continuación, active la opción Allow Client to start games.
Game Manager - Settings - API Features - Allow Client to start games Cuando esta opción está activada, puede llamar a RequestMultiplayerServer mediante el token de entidad de cualquier jugador asociado al título.

Depuración de un servidor multijugador implementado

Es posible que desee depurar de forma remota un servidor de juegos mientras está implementado en Azure. Con Visual Studio, actualmente esto requiere instalar y configurar las herramientas de depuración remota de Visual Studio en el contenedor.
El procedimiento siguiente habilitará la depuración no segura y sin autenticación.
El procedimiento siguiente solo debe aplicarse a compilaciones de servidor destinadas a desarrollo y pruebas, y evitarse en general en un entorno orientado a los jugadores.
  1. Obtenga las herramientas de depuración remota de VS2017:
  1. Incluya estas herramientas en el paquete de recursos de su servidor de juegos.
  2. Como parte de la creación de la compilación de servidor en Game Manager o con la Entity API, configure el puerto TCP 4022 como puerto de depuración.
  3. Deberá ejecutar msvsmon dentro del contenedor para habilitar la depuración remota. Un patrón común es especificar un script CMD como comando de inicio del juego, y usar un argumento de línea de comandos para iniciar msvsmon además del ejecutable de su servidor de juegos.
  4. Ejecute msvsmon una vez con:
  1. Ejecute msvsmon con los marcadores (que se muestran a continuación).
Se recomienda indicar específicamente el puerto para que su programa pueda controlar el código de salida del proceso si el puerto ya está en uso, en lugar de enlazarse a un puerto aleatorio que no esté abierto.
  1. Asigne su servidor de juegos.
  2. Intente depurar mediante VS, usando el puerto de depuración externo devuelto por la llamada de asignación.
Última modificación el 28 de agosto de 2026