Tutorial: Incorporación rápida con el envoltorio Amazon GameLift Servers - Amazon GameLift Servers

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.

Tutorial: Incorporación rápida con el envoltorio Amazon GameLift Servers

Bienvenido al tutorial de incorporación deAmazon GameLift Servers. En este tutorial, implementarás rápidamente tu servidor de juegos para que se aloje en una flota de recursos informáticos basados en la nube. Usa este tutorial para evitar la tarea de integrar el SDK del servidor Amazon GameLift Servers en el código del juego y, en su lugar, despliégalo con la funcionalidad mínima necesaria para comunicarse con el Amazon GameLift Servers servicio y ejecutar sesiones de juego. Configurarás una solución de alojamiento básica y la utilizarás para disfrutar de toda la gama de funciones, como el escalado automático y el emparejamiento. También es una forma estupenda de alojar un prototipo de tu juego como parte de una demostración en directo o para probarlo.

Principales ventajas de este método de incorporación:

  • Implemente rápidamente su servidor de juegos para un alojamiento rápido.

  • No hay cambios en el código del juego ni se requieren modificaciones.

  • Usa este método con cualquier ejecutable de juego, independientemente del motor del juego.

  • Explora todas las herramientas Amazon GameLift Servers de administración, incluida la supervisión de la actividad de las sesiones de juego y el estado del alojamiento.

nota

El envoltorio está diseñado para la evaluación y el uso básico de producción. Las funciones avanzadas, como la gestión detallada de las sesiones de los jugadores, requieren una integración completa del SDK del servidor.

Requisitos previos

Antes de comenzar, asegúrese de que dispone de lo siguiente:

  • Y Cuenta de AWS con los permisos adecuados

  • AWS CLI instalado

  • Go 1.18+

  • Un servidor de juegos multijugador ejecutable

  • Make (Linux/Mac)

  • Git instalado con una cuenta activa

Descripción general

En este tutorial podrás:

  1. Obtenga y construya el envoltorio

  2. Prepara la construcción del juego

  3. Configura el contenedor

  4. Sube la versión del servidor del juego

  5. Crea la EC2 flota gestionada

  6. Crea una sesión de juego y conéctate a ella

  7. Supervisa y administra tus servidores de juegos

  8. Escala tus servidores de juegos

Paso 1: Obtén y crea el contenedor de servidores de juegos

Usa los siguientes comandos para obtener la fuente del contenedor del servidor de juegos y compilarlo. Estos comandos usan SSH, pero también puedes ir directamente al repositorio de Github.

Windows

> git clone git@github.com:amazon-gamelift/amazon-gamelift-servers-game-server-wrapper.git > cd amazon-gamelift-servers-game-server-wrapper > powershell -file .\build.ps1

Mac y Linux

$ git clone git@github.com:amazon-gamelift/amazon-gamelift-servers-game-server-wrapper.git $ cd amazon-gamelift-servers-game-server-wrapper $ make

Si la compilación se realiza correctamente, se añade un directorio «out» aamazon-gamelift-servers-game-server-wrapper. En este directorio hay tres carpetas, una para cada opción de flota de alojamiento compatible, que contienen un conjunto de artefactos de compilación. Para este tutorial, va a realizar la implementación en EC2 flotas gestionadas, por lo que utilizará la carpetagamelift-servers-managed-ec2.

Paso 2: Prepara la versión de tu servidor de juegos

En este paso, preparas los archivos de compilación de tu servidor de juegos para cargarlos enAmazon GameLift Servers.

Crea el directorio del juego

Ahora, prepara un directorio de juegos en tu máquina local. Este directorio debe contener todos los archivos que necesitas para ejecutar tu servidor de juegosAmazon GameLift Servers. Esto incluye el contenedor del servidor de juegos, la versión de tu servidor de juegos y el archivo config.yaml que hace que el contenedor funcione con tu servidor de juegos.

Utilice los siguientes pasos:

  1. Flota gestionada. EC2 En la carpeta de salida del contenedor del servidor del juego, busca el artefacto de construcción para desplegarlo en una flota gestionada EC2 . La compilación se escribirá en un directorio de salida como se indica aquí:. out\linux\amd64\gamelift-servers-managed-ec2

  2. Copie el ejecutable de su servidor de juegos y todos los archivos asociados que necesite para ejecutarse en la gamelift-servers-managed-ec2 carpeta. Puedes tener directorios anidados según sea necesario.

Un ejemplo de estructura de directorios se verá así:

gamelift-servers-managed-ec2 │-- config.yaml │-- amazon-gamelift-servers-game-server-wrapper │-- MyGame │ │-- server-executable.exe │ │-- my-game-settings │ │ ......

Paso 3: Configure el contenedor para su flota

Amazon GameLift Serversgestiona el ciclo de vida de las instancias informáticas de una flota, activando nuevas instancias con la versión de servidor instalada y reciclando las instancias según sea necesario. El servicio gestiona el ciclo de vida de los procesos del servidor de juegos que se ejecuta en cada instancia. Una EC2 flota gestionada puede tener instancias en varias ubicaciones para ayudar a los jugadores estén donde estén.

Edite el archivo config.yaml para configurar el contenedor para el registro, la configuración de los puertos y la inicialización del servidor.

  1. Configure los ajustes de registro. El contenedor del servidor de juegos genera mensajes de registro para cada proceso del servidor de juegos. De forma predeterminada, el nivel de registro está configurado para depurar para obtener la máxima verbosidad. Esto resulta muy útil durante la configuración y la solución de problemas y determina el nivel de detalle de los mensajes de registro (en este caso, los más detallados). Las opciones incluyen depuración, información, advertencia y error (las menos detalladas).

  2. Especifica la ruta al directorio de registro del servidor del juego. La ruta por defecto para los registros del servidor de juegos es./game-server-logs. Este directorio contiene todos los registros generados por el servidor de juegos y cada instancia los contiene. Los registros se cargan automáticamente en el Amazon GameLift Servers lugar donde se accede a ellos desde la pestaña Eventos. Consulta la sección de solución de problemas para obtener más información.

  3. Defina la configuración del puerto de red. Configura el puerto del juego como prefieras. Para este tutorial, especifica un solo puerto, ya que crearás una flota que ejecutará solo un proceso de servidor de juegos simultáneo por instancia. Si decides ejecutar varios procesos a la vez, tendrás que configurar suficientes puertos para cada proceso simultáneo. El valor predeterminado es 37016, como se muestra en el archivo de configuración, pero en general, para las flotas que utilizan compilaciones de Linux, utilice los puertos 22 y 1026-60000. Para las flotas que utilizan compilaciones de Windows, utilice los puertos 1026-60000.

  4. Configura la ruta al ejecutable del servidor del juego. Para ./MyGame/my-server-executable.exe personalizar la ruta al ejecutable de su servidor de juegos con su nombre y ubicación reales. Este es el punto de entrada para lanzar tu servidor de juegos.

  5. Configura los argumentos del servidor del juego. Como mínimo, especifica un argumento -port y usa el mismo valor de puerto de juego que definiste anteriormente. El valor «pos» 0 indica que este es el primer argumento. Añada otros argumentos según sea necesario. Estos argumentos se pasan al servidor de juegos cuando se lanza, lo que te permite configurar su comportamiento en tiempo de ejecución.

    1. Argumento: "--port"

    2. Valor: "{{.port number here}}"

    3. Posición: 0 (Primer argumento de la lista)

Ejemplo de configuración:

log-config: wrapper-log-level: debug game-server-logs-dir: ./game-server-logs ports: gamePort: 37016 game-server-details: executable-file-path: ./MyGame/my-server-executable game-server-args: - arg: "--port" val: "{{.gameport}}" pos: 0

Paso 4: Sube la versión del servidor del juego

Ya has completado todos los elementos necesarios de la compilación del servidor de juegos (el contenedor del servidor de juegos, config.yaml y los archivos del servidor de juegos) y estás listo para cargar la compilación de tu juego para alojarla. Amazon GameLift Servers La forma más rápida de cargar la versión del juego es mediante el AWS CLI comando que se muestra en el upload-build siguiente ejemplo.

Cargar una versión de juego con Windows:

aws gamelift upload-build \ --name gamelift-test-2025-03-11-1 \ --build-version gamelift-test-2025-03-11-1 \ --build-root out/windows/amd64/gamelift-servers-managed-ec2 \ --operating-system WINDOWS_2016 \ --server-sdk-version 5.3.0 \ --region us-west-2
nota

Para compilaciones de Mac y Linux, usa --operating-system AMAZON_LINUX_2023

Al crear la compilación, registre el ID de compilación de la respuesta de la API para usarlo en la creación de la flota.

Paso 5: Crea la EC2 flota gestionada

Los siguientes pasos describen una configuración mínima de la flota, para que pueda empezar a funcionar lo antes posible.

Para crear tu flota:

  1. Inicie sesión en AWS Management Console y navegue hastaAmazon GameLift Servers.

  2. En la barra de menús situada en la parte superior de la ventana de la consola, comprueba en qué región se encuentra tu compilación. Apúntalo porque tu flota debe estar en la misma región o no podrás encontrar ni elegir tu construcción.

  3. En el panel de navegación de la EC2 sección Gestionado, selecciona Construir.

  4. Seleccione la compilación que cargó anteriormente para mostrar la página de detalles de la compilación.

  5. En la sección Flotas, selecciona Crear flota, que mostrará la página de detalles de Definir la EC2 flota gestionada, desde la que podrás realizar un seguimiento del estado de tu flota y ver los eventos de creación de la flota en la pestaña Eventos.

  6. Rellene el nombre y la descripción y seleccione Siguiente.

  7. En la página Definir detalles de la instancia, se muestra la región de la compilación de forma predeterminada. Elige las regiones adicionales que quieras añadir.

  8. Para el tipo de flota, selecciona On-Demand.

  9. En Tipos de instancia, elija c5.large y elija Siguiente.

  10. En Configuración de tiempo de ejecución, dado que la compilación del juego que has subido utiliza el contenedor, debes apuntar al ejecutable del contenedor en su lugar. Para los servidores de juegos de Windows, esto es. C:\game\amazon-gamelift-servers-game-server-wrapper.exe Para los servidores de juegos Linux, esto es/local/game/amazon-gamelift-servers-game-server-wrapper.

    Por ejemplo: LaunchPath": "/local/game/amazon-gamelift-servers-game-server-wrapper", "ConcurrentExecutions": 1, "Parameters": "—port 37016

    Además, configura los valores de los puertos del juego con un rango que tenga en cuenta el puerto que se estableció en los config.yaml parámetros de inicio de la configuración del tiempo de ejecución. config.yamlNo es necesario que el puerto de entrada coincida con el especificado en la configuración de tiempo de ejecución de la flota, pero durante el tiempo de ejecución, si la configuración especifica un puerto diferente, ese valor anula el config.yaml que hay en. Los parámetros de lanzamiento introducidos en la configuración del tiempo de ejecución también anulan los que hay en. config.yaml

  11. En la página Revisar y crear, comprueba todas las configuraciones y, a continuación, selecciona Enviar para crear tu flota. El estado de la flota cambiará a medida que aumente su capacidad para alojar el servidor del juego y, muy pronto, aparecerá como Activa. Una vez completada la activación y desplegada la flota, el servicio lanza el contenedor, que está listo para recibir una solicitud de sesión de juego.

Paso 6: Crea una sesión de juego y conéctate a ella

Si el estado de tu flota es Activa, significa que los servidores del juego están listos para albergar una sesión de juego. Para iniciar una sesión de juego, realiza una solicitud de sesión de juego al Amazon GameLift Servers servicio. Aquí, utilizarás el AWS CLI para realizar esta solicitud.

nota

Ten en cuenta que crear una sesión de juego con el AWS CLI es útil para probar y familiarizarte con el proceso. En algún momento, añadirás llamadas programáticas al AWS SDK al servicio de backend del juego como parte del sistema de asignación de partidas o ubicación de las sesiones de juego.

Usa lo siguiente para crear una sesión de juego:

aws gamelift create-game-session \ --fleet-id <FLEET_ID> \ --game-properties '[{"Key": "exampleProperty", "Value": "exampleValue"}]' \ --maximum-player-session-count 3 \ --region us-west-2

También puedes pasar las propiedades personalizadas del juego al ejecutable de tu servidor. Consulta los argumentos del servidor de juegos en el archivo README para obtener más información. Cuando reciba la create-game-session llamada, dígale Amazon GameLift Servers al contenedor que inicie el ejecutable del servidor de juegos e inicie una sesión de juego. Lo que hay en él config.yaml afecta a la configuración del servidor del juego, y los parámetros de inicio establecidos en la consola determinan la configuración de la sesión de juego en sí.

Ejemplo de formato para añadir propiedades del juego:

defaultArgs: - arg: "--port" val: "{{.GamePort}}" pos: 0 - arg: "--ipAddress" val: "{{.IpAddress}}" pos: 1 - arg: "--gameSessionId" val: "{{.GameSessionId}}" pos: 2

Paso 7: Gestiona y monitorea tu flota

Ahora que tu flota de servidores de juegos está configurada y ha empezado una sesión de juego, puedes gestionarla y monitorizarla desde la Amazon GameLift Servers consola. La mejor forma de hacerlo es desde la página de detalles de la flota, donde puedes editar los detalles de la flota o cambiar la escala y la capacidad de la flota en la pestaña Escalamiento. Consulta la siguiente sección sobre cómo escalar los servidores de tus juegos.

Selecciona la pestaña Métricas para ver los gráficos que muestran la supervisión de las métricas de actividad y hardware. Para obtener más información sobre los gráficos de métricas, selecciona el enlace Información situado junto al identificador de tu flota. Además, aunque puedes supervisar de cerca tus servidores de juegos desde la pestaña Métricas, también puedes añadir alarmas a estas métricas en el CloudWatch panel de control.

Para navegar hasta el CloudWatch panel de control desde la consola, sigue estos pasos:

  1. Escribe "CloudWatch" en la barra de búsqueda y selecciónalo en la lista de resultados de la búsqueda para ver la CloudWatch descripción general.

  2. Desplázate hacia abajo y selecciona Ver GameLift panel para ver los gráficos basados en las métricas clave de tus flotas y sesiones de juego.

Paso 8: Escala tus servidores de juegos

Para el siguiente paso, debe configurar el escalado automático. Con el escalado automático, escala dinámicamente la capacidad de su flota en respuesta a la actividad del servidor del juego. A medida que los jugadores llegan e inician las sesiones de juego, el escalado automático agrega más instancias y, a medida que disminuye la demanda de los jugadores, el escalado automático libera las instancias no utilizadas. Esta es una forma eficaz de minimizar los recursos y los costes de alojamiento y, al mismo tiempo, ofrecer una experiencia de juego rápida y fluida.

Mientras te preparas para el lanzamiento del juego, querrás configurar el escalado automático para tus flotas. Se recomienda el escalado automático como una forma eficaz de minimizar los recursos y los costes de alojamiento y, al mismo tiempo, ofrecer una experiencia de juego rápida y fluida.

Para configurar manualmente la capacidad de la flota

Para configurar manualmente la capacidad de la flota

  1. Ve a la pestaña Escalamiento en la página de detalles de tu flota.

  2. Seleccione una ubicación y elija Editar.

  3. Cambie el valor de las instancias deseadas y cambie la configuración de tamaño mínimo y máximo para escalar más allá de sus valores actuales.

nota

Utilice la configuración del número máximo de instancias como medida provisional para evitar un escalado y unos costes excesivos.

  1. Elija Confirmar.

Para usar el escalado automático basado en objetivos

Para usar el escalado automático basado en objetivos

El escalado automático basado en objetivos (seguimiento de objetivos) vincula el escalado de la flota con el porcentaje de sesiones de juego disponibles. A medida que los jugadores se lanzan a jugar a tu juego y disminuyen las sesiones de juego disponibles, la aplicación responde añadiendo automáticamente más instancias a la flota.

  1. En Política de escalado automático basada en objetivos, selecciona Añadir política y establece la capacidad de la flota para que cambie automáticamente cuando alcance el límite del porcentaje de sesiones de juego disponibles que hayas establecido. Un búfer más grande puede gestionar mejor las oleadas de jugadores, haciendo que los nuevos jugadores se metan rápidamente en las partidas, pero también puede suponer un aumento de los costes de alojamiento.

  2. Selecciona Confirmar para aceptar los cambios.

El escalado automático basado en reglas le brinda un control más detallado, como la capacidad de vincular el escalado con otras métricas de la flota y establecer umbrales personalizados y respuestas de escalado. Ofrece opciones potentes, pero también requiere el uso de la CLI y pruebas importantes para comprender cómo se comportan las reglas personalizadas en acción. Este tutorial se centra primero en configurar el enfoque basado en objetivos.

Solución de problemas comunes

Los siguientes son problemas comunes que pueden surgir al ejecutar los servidores y las sesiones de juego. Si el servidor o la sesión de juego no funcionan correctamente, el primer paso consiste en comprobar los registros, ya que pueden revelar alguno de los problemas que se describen a continuación en relación con nuevas implementaciones o juegos en producción.

En los registros suele aparecer lo siguiente:

  • El proceso del servidor del juego no se puede iniciar. Puede que se deba a un error en la configuración del contenedor. Compruebe que el archivo tenga la ruta de inicio correcta y que los parámetros y argumentos de lanzamiento sean correctos.

  • La compilación del servidor de juegos no se puede ejecutar. Es probable que se trate de un error en el código del juego.

  • Los jugadores no pueden conectarse a las sesiones de juego. Es probable que se trate de un error de configuración del puerto.

  • Conexiones retrasadas o lentas. Revise las políticas y los umbrales de escalado.

  • Sin conexión. Verifique las reglas y la configuración de los puertos de su flota.

Para ver los registros de eventos de su Amazon GameLift Servers flota

Para ver los registros de eventos de su Amazon GameLift Servers flota

  1. Abra la consola de Amazon GameLift Servers.

  2. En la página de detalles de la flota, selecciona la pestaña Eventos y descarga el registro. También puedes monitorizar las métricas de actividad y hardware para comprobar el estado del servidor de juegos y las activaciones de las sesiones de juego desde la pestaña Métricas.

Para ver los registros de las sesiones de juego

Para ver los registros de las sesiones del juego

  1. Desde la consola, abre tu flota y abre la pestaña Sesiones de juego.

  2. Elige un identificador de sesión de juego de la lista para que aparezca la página de resumen de la sesión.

  3. Selecciona Descargar registros para descargar un archivo de registro de forma local.

Para ver los registros de las sesiones del juego con la CLI, usa la GetGameSessionLogURL API. Amazon GameLift Serversalmacena automáticamente los registros durante 14 días.

También puedes configurar CloudWatch los registros de Amazon para tu flota. Esto proporciona capacidades de registro adicionales e integración con otros servicios AWS de monitoreo.

Para acceder a los registros en tiempo real o prolongar los períodos de retención mediante CloudWatch:

  1. En la parte superior del panel de control de la Amazon GameLift Servers consola, escribe CloudWatch "" en la barra de búsqueda y selecciónalo en el menú desplegable de resultados.

  2. Ve a los grupos de CloudWatch registro y busca sesiones específicas. El método más sencillo es hacer clic en Buscar todo y filtrar mediante gameSessionId o ClientID.

Pasos a seguir a continuación