> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Implementación en la nube del proyecto con GSDK

> Implemente una compilación de servidor Windows con el GSDK de Unreal Engine en la nube de PlayFab Multiplayer Servers (MPS) para pruebas iterativas antes de cambiar a Linux para producción.

# 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](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab) 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](https://visualstudio.microsoft.com/vs/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)](https://docs.unrealengine.com/ProgrammingAndScripting/ProgrammingWithCPP/DownloadingSourceCode/).
* [Proyecto de Unreal completado](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-setup) con el [GSDK de Unreal de PlayFab](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-gsdk-project-setup) instalado y configurado
* Configuración de [servidor de versión](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project) de su proyecto compilada desde Visual Studio o el Development Editor
* Configuración de [cliente](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project) de su proyecto compilada desde Visual Studio o el Development Editor
* MPS está [habilitado para su título](/services/playfab/multiplayer/servers/enable-playfab-multiplayer-servers) y la facturación está configurada
* \[Opcional] Instale [Docker para Windows](https://docs.docker.com/desktop/windows/install/)

## 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}.uproject` de su proyecto
  * Haga clic con el botón derecho en el archivo `{ProjectName}.uproject` en 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](/services/playfab/multiplayer/servers/locally-debugging-game-servers-and-integration-with-playfab)
* Una vez verificado con LocalMultiplayerAgent, consulte la [guía de creación de compilaciones](/services/playfab/multiplayer/servers/deploying-playfab-multiplayer-server-builds)
  * Realizar pruebas en MPS en este punto requerirá una herramienta intermedia de [PlayFab MpsAllocatorSample](https://github.com/PlayFab/MpsSamples/tree/main/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](/services/playfab/multiplayer/servers/allocating-game-servers-and-configuring-vs-debugging-tools).
* 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](/services/playfab/multiplayer/servers/deploying-playfab-multiplayer-server-builds)
* 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](/services/playfab/multiplayer/servers/create-your-first-server) 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](/services/playfab/multiplayer/servers/vm-metrics) 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.exe` o `{ProjectName}Server.exe -log` si 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.exe` para 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.exe` o `{MountPath}\{ProjectName}Server.exe -log` si 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.exe` para acceder a su proyecto con una subruta absoluta
* Seleccione **Add Build**
* Salte a la sección **Configurar regiones** a continuación

## Pasos siguientes

Muchos usuarios querrán probar su servidor [conectando un cliente de juego](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build).

Otros usuarios pueden, opcionalmente, continuar para recompilar y volver a implementar sus servidores usando [contenedores de Linux](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab). Linux reduce los costos de hospedaje de servidores para implementaciones a gran escala.

De lo contrario, puede volver a la guía principal del [complemento GSDK de Unreal](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk).


## Related topics

- [Depuración de proyectos de PC en dispositivos Windows remotos en Visual Studio](/es/tools/tools-pc/visualstudio/gr-vs-debugging-with-visualstudio-remote-windows.md)
- [Configuración del proyecto con GSDK](/es/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-gsdk-project-setup.md)
- [Implementación de un servidor Linux de Unreal en la nube de MPS](/es/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab.md)
- [Pruebas y depuración del proyecto de GSDK](/es/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-local-deployment-and-debugging.md)
- [Conexión a un servidor de Unreal hospedado en la nube](/es/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build.md)
