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:- Los clientes recopilan información de QoS de red.
- Los clientes interactúan con un servicio de emparejamiento personalizado, o se reúnen mediante invitaciones sociales.
- Un servicio de emparejamiento personalizado asigna una sesión para el grupo, mediante una lista priorizada de regiones.
- 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.
- La dirección IPv4 del servidor.
- Las asignaciones de puertos TCP/UDP (consulte Conexión de clientes a servidores de juegos).
- La región del servidor.
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.

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.
- Obtenga las herramientas de depuración remota de VS2017:
- Incluya estas herramientas en el paquete de recursos de su servidor de juegos.
- 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.
- Deberá ejecutar
msvsmondentro 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 iniciarmsvsmonademás del ejecutable de su servidor de juegos. - Ejecute
msvsmonuna vez con:
- Ejecute
msvsmoncon 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.
- Asigne su servidor de juegos.
- Intente depurar mediante VS, usando el puerto de depuración externo devuelto por la llamada de asignación.
