Implementación y ejecución de un servidor Windows en la nube
En esta guía se explica cómo implementar su compilación de servidor Windows en la nube de PlayFab Multiplayer Server (MPS). Esto es excelente para probar e iterar rápidamente su servidor de juego durante el desarrollo. Muchos usuarios usarán servidores Linux para una versión de producción después de probar con Windows.Objetivos
- Implementar un proyecto en la nube.
- Conectarse a él desde un cliente de juego local
Requisitos
- Descargue Visual Studio. La versión Community es gratuita.
- Cargas de trabajo necesarias: desarrollo de escritorio de .NET y desarrollo para el escritorio con C++
- Descargue el código fuente de Unreal Engine. Para obtener instrucciones, consulte Descarga del código fuente de Unreal Engine (externo).
- Proyecto de Unreal completado con el GSDK de Unreal de PlayFab instalado y configurado
- Configuración de servidor de versión de su proyecto compilada desde Visual Studio o el Development Editor
- Configuración de cliente de su proyecto compilada desde Visual Studio o el Development Editor
- MPS está habilitado para su título y la facturación está configurada
- [Opcional] Instale Docker para Windows
Instrucciones
Empaquetado del servidor de juego
- [OPCIONAL] Esta sección puede realizarse para actualizar los archivos que Unreal compila en su proyecto. Esto resulta útil si ha creado o eliminado archivos recientemente.
- Si no ha compilado recientemente su proyecto en la configuración “development editor”, hágalo ahora
- Cierre Visual Studio
- Vaya al archivo
{ProjectName}.uprojectde su proyecto - Haga clic con el botón derecho en el archivo
{ProjectName}.uprojecten su editor de archivos y seleccione “Generate Visual Studio Project Files” - Vuelva a abrir el archivo {ProjectName}.sln en Visual Studio
- Seleccione la configuración Development Editor
- Ejecute su proyecto
- Observe el editor de Unreal, que debería haber cargado su proyecto
- En la parte superior izquierda del menú del editor de Unreal, seleccione File -> Package -> Build Target -> {ProjectName}Server
- Seleccione File -> Package -> Build Configuration -> Shipping
- Seleccione File -> Package -> Windowsx64
- Seleccione y recuerde una ubicación de salida {ShippingServerFolder}
- Ahora puede usar esta versión empaquetada de su servidor de juego para probar con LocalMultiplayerAgent
- Una vez verificado con LocalMultiplayerAgent, consulte la guía de creación de compilaciones
- Realizar pruebas en MPS en este punto requerirá una herramienta intermedia de PlayFab MpsAllocatorSample
- Esta herramienta omite parte del trabajo del cliente por ahora y nos permite asignar un servidor sin una solicitud directa desde el cliente de juego
- La forma correcta de hacerlo en un cliente es un tema aparte que se trata en la guía de asignación.
- Comprima en un archivo zip su compilación de Shipping Server desde {ShippingServerFolder} anterior
- Su zip debe contener todo lo que hay en {ShippingServerFolder}, opcionalmente en la raíz del archivo zip
- [Opcional] Es decir, la raíz de su zip debería contener {ProjectName}Server.exe (se recomienda que el exe no esté en una subcarpeta como “WindowsServer”. Vuelva a crear el zip si lo desea)
- Familiarícese con la guía del proceso de creación de compilaciones
- Los detalles específicos de cada configuración se describen a continuación:
Configuración de un servidor dedicado Windows en PlayFab
En esta sección se explica cómo crear una compilación en PlayFab MPS, cargar su servidor de juego y conectarse a él por primera vez. También puede seguir la guía de creación de servidores básica de MPS para obtener instrucciones menos específicas de Unreal.- Vaya a Game Manager -> Multiplayer
- Seleccione New Build
- Asigne un nombre a la compilación
- Seleccione una máquina virtual (para los ejemplos descritos en estas guías, la opción recomendada con el menor número de núcleos es suficiente)
- Los servidores por máquina pueden ser aproximadamente de 1 a 10
- Mejorar/aumentar este número depende del rendimiento de su servidor de juego
- Puede usar las métricas de VM para medir el rendimiento de su servidor de juego y optimizarlo para aumentar este número
- Omita Server details por ahora (se trata en el paso siguiente)
- En el bloque Assets, arrastre su archivo zip de la sección anterior al cuadro de carga
- Si está volviendo a lanzar, puede seleccionar Use existing assets
- Espere a que finalice la carga
- Omita Start Command por ahora (se trata en el paso siguiente)
- En el bloque Network, establezca el campo Port Name en
gameport- Es obligatorio definir el puerto que se usará para conectarse a su servidor de juego
- El GSDK de Unreal contiene código para leer este puerto automáticamente e invalidar internamente el puerto de host del servidor de Unreal según este valor
- El nombre de este puerto debe ser obligatoriamente
gameport
- Continúe con el paso siguiente que coincida con los “Server Details” que desee configurar
Opción 1: modo de proceso de Windows
Esta opción ejecuta sus servidores de juego como procesos directamente en la VM. Sus procesos compartirán el acceso a la máquina completa, incluidos puertos, unidades, etc. Esta opción descomprime el recurso cargado y ejecuta el “Start Command” desde la ubicación de los archivos descomprimidos como directorio de trabajo.- En Server Details, seleccione Process y Windows
- En Assets, establezca el comando de inicio en:
{ProjectName}Server.exeo{ProjectName}Server.exe -logsi desea generar archivos de registro- El comando de inicio se ejecuta desde la línea de comandos, usando los archivos de recursos descomprimidos como directorio de trabajo
- Si eligió empaquetar su archivo zip con subcarpetas, puede especificar una ruta relativa como:
WindowsServer/{ProjectName}Server.exepara acceder a su proyecto con una subruta relativa
- Seleccione Add Build
- Salte a la sección Configurar regiones a continuación
Opción 2: modo de contenedor de Windows
Esta opción ejecuta sus servidores de juego en contenedores de Docker, aislándolos entre sí. Cada proceso de servidor tendrá una unidad virtual, puertos de red virtuales, etc. independientes. Esta opción descomprime su recurso en una ruta de montaje que usted definirá y espera que su comando de inicio sea una ruta completa, basada en la ruta de montaje. Requisito previo: configure Docker para ejecutar contenedores de Windows- En Server Details, seleccione Process y Windows
- En Assets
- Establezca el Mount Path para su archivo zip de gameServer en
C:\assets(o algo similar, denominado {MountPath}) - Establezca el comando de inicio en:
{MountPath}\{ProjectName}Server.exeo{MountPath}\{ProjectName}Server.exe -logsi desea generar archivos de registro - El comando de inicio debe representar una ruta completa en el contenedor a su archivo -Server.exe
- Si eligió empaquetar su archivo zip con subcarpetas, puede especificar una ruta absoluta como:
{MountPath}\WindowsServer\{ProjectName}Server.exepara acceder a su proyecto con una subruta absoluta
- Establezca el Mount Path para su archivo zip de gameServer en
- Seleccione Add Build
- Salte a la sección Configurar regiones a continuación
