Configuración de pruebas locales con Amazon GameLift Servers Anywhere - Amazon GameLift Servers

Configuración de pruebas locales con Amazon GameLift Servers Anywhere

nota

En este se cubren únicamente las pruebas de juegos integrados en la versión 5.x del SDK del servidor de Amazon GameLift Servers. Si el juego usa la versión 4.x o anterior del SDK del servidor, consulte Prueba de la integración con Amazon GameLift Servers local.

Utilice una flota de Amazon GameLift Servers Anywhere y su propio hardware para compilar y probar de forma iterativa los componentes de un juego en un entorno de alojamiento simulado. Configure una flota de Anywhere y registre un dispositivo local para establecer una conexión con el servicio Amazon GameLift Servers. Instale la compilación del servidor de juegos en el dispositivo, inicie un proceso de servidor de juegos y pruebe la funcionalidad del juego según sea necesario. Puede actualizar la versión de la compilación del servidor de juegos tantas veces como sea necesario para probar las nuevas iteraciones de la compilación.

Con una flota de Anywhere, puede realizar pruebas con la CLI de AWS o con scripts de prueba. Si ha integrado un cliente de juegos en Amazon GameLift Servers, puede ejecutar el cliente en el mismo dispositivo local o en un dispositivo diferente.

Las pruebas locales con una flota de Anywhere son especialmente útiles para probar la integración del servidor de juegos con Amazon GameLift Servers. Dispone de visibilidad total sobre toda la actividad de alojamiento en el equipo local, así como sobre los datos de registro y eventos.

nota

¿Utiliza el complemento de Amazon GameLift Servers para Unreal Engine o Unity? Estas herramientas incluyen flujos de trabajo guiados para configurar las pruebas locales con una flota de Anywhere. Siga la documentación para Complemento para Unity: configuración de pruebas locales con Amazon GameLift Servers Anywhere o Plugin para Unreal: alojamiento local del juego con Amazon GameLift Servers Anywhere.

Configuración de una flota de Anywhere local

Siga estos pasos para crear una flota de Anywhere en su estación de trabajo local. Para obtener instrucciones detalladas sobre el uso de la CLI de AWS o de la Consola de administración de AWS de Amazon GameLift Servers, consulte Creación de una flota de Amazon GameLift Servers Anywhere.

Creación de la flota de Anywhere
  1. Cree una ubicación personalizada para la estación de trabajo local (CLI de AWS o consola). Una ubicación personalizada no es más que una etiqueta para el recurso de computación que planea incluir en la flota de Anywhere. Los nombres de ubicaciones personalizadas deben empezar por custom-. Por ejemplo: custom-my_laptop. Consulte Creación de una ubicación personalizada.

  2. Cree una flota de Anywhere (consola o CLI de AWS). En este paso, cree el recurso de flota con la ubicación personalizada para la estación de trabajo local. Consulte Creación de una flota de Anywhere.

    Anote el valor de ID o ARN de la nueva flota. Lo necesitará para el siguiente paso.

  3. Registre la estación de trabajo local como recurso de computación de la flota (solo CLI de AWS). Una flota de Anywhere debe tener, al menos, un recurso de computación para alojar servidores de juegos. Consulte Añadir un recurso de computación a la flota. Para añadir un recurso de computación a la flota, necesita la siguiente información:

    • Un nombre de recurso de computación. Todos los recursos de computación de una flota deben tener un nombre exclusivo.

    • El identificador de la flota de Anywhere. Puede usar el FleetID o el FleetArn.

    • Los datos de conexión del recurso de computación. Especifique un IpAddress o DnsName. Así es como Amazon GameLift Servers y los clientes de juego se conectarán a los servidores del juego.

    • Una ubicación personalizada en la flota de Anywhere.

    Anote el valor de retorno de GameLiftServiceSdkEndpoint. Necesitará este valor cuando actualice el servidor del juego para que se ejecute en una flota de Anywhere.

Actualización e instalación del servidor de juegos

En esta tarea, se presupone que ya ha integrado una compilación del servidor de juegos en el SDK 5.x del servidor de Amazon GameLift Servers. El proceso de integración implica añadir un código al servidor de juegos para que pueda interactuar con el servicio Amazon GameLift Servers a fin de iniciar y administrar las sesiones de juego.

En el caso de una flota de Anywhere, debe configurar manualmente algunos ajustes del servidor de juegos. En una flota administrada por Amazon GameLift Servers, estos ajustes se configuran automáticamente.

Preparación del servidor de juegos para una flota de Anywhere
  1. Obtener un token de autenticación. El servidor de juegos debe incluir un token de autenticación en todas las comunicaciones con el servicio Amazon GameLift Servers. Los tokens de autenticación de Amazon GameLift Servers son de corta duración y deben actualizarse regularmente.

    Una práctica recomendada es crear un script para completar las siguientes tareas:

    • Llamar a la acción get-compute-auth-token de la CLI de AWS.

    • Guardar el valor del token devuelto en un lugar en el que los procesos del servidor del juego lo puedan recuperar; por ejemplo, en una variable de entorno del recurso de computación local.

    Instale el script con el servidor de juegos en el recurso de computación. Configure el script para que se ejecute antes de que se inicie el primer proceso del servidor de juegos. Mientras los procesos del servidor de juegos estén activos, ejecute el script regularmente para seguir teniendo un token de autenticación válido. Todos los procesos del servidor de juegos del recurso de computación pueden usar el mismo token de autenticación.

  2. Actualice el código del servidor de juegos de Amazon GameLift Servers. Al integrar el código del servidor de juegos en el SDK del servidor de Amazon GameLift Servers, ha añadido una llamada a la acción InitSdk(). Cuando el servidor de juegos se ejecuta en una flota de Anywhere, esta llamada requiere parámetros de servidor adicionales. Para obtener más información, consulte los artículos Inicialización del proceso del servidor y SDK 5.x del servidor de Amazon GameLift Servers correspondientes para su lenguaje de desarrollo. A continuación, tiene una lista con los parámetros del servidor.

    • webSocketUrl: en este parámetro, ponga el valor GameLiftServiceSdkEndpoint que se devuelve al registrar un recurso de computación en la flota.

    • hostId: en este parámetro, ponga el nombre del recurso de computación que especifique al registrar un recurso de computación en la flota de Anywhere.

    • fleetId: en este parámetro, ponga el ID de la flota de Anywhere.

    • authToken: en este parámetro, ponga el token devuelto en respuesta a una solicitud de recuperación de token de autenticación para un recurso de computación.

    • processId: ponga este parámetro de modo que identifique a un proceso del servidor de juegos que se esté ejecutando en el recurso de computación local; cada proceso simultáneo del servidor de juegos debe tener un ID de proceso único.

    Los valores de los parámetros del servidor empleados por cada proceso del servidor de juegos deben ser específicos para el recurso de computación de la flota de Anywhere en la que se esté ejecutando el proceso. Para obtener información detallada sobre cómo obtener los valores adecuados para un recurso de computación, consulte Añadir un recurso de computación a la flota. Como práctica recomendada, defina webSocketUrl, hostId, fleetId y authToken como variables de entorno en el recurso de computación local. Todos los procesos del servidor que se ejecuten en el recurso de computación utilizarán estos valores.

  3. Instale la compilación del servidor de juegos en el recurso de computación local. Incluya todas las dependencias necesarias para ejecutar el servidor de juegos.

  4. Inicie uno o más de los procesos de servidor de juegos ejecutados en el recurso de computación local. Cuando el proceso del servidor de juegos llame a la acción ProcessReady() del SDK del servidor, el proceso estará listo para alojar una sesión de juego.

Pruebas en la actividad de la sesión de juego

Para probar la integración del servidor de juegos, trabaje con las sesiones de juego. Si no tiene un cliente de juego integrado con la funcionalidad de Amazon GameLift Servers, puede usar la CLI de AWS para iniciar sesiones de juego. Pruebe los siguientes escenarios:

  • Cree una sesión de juego. Llame al comando create-game-session (o la operación de API CreateGameSession). Especifique la ubicación personalizada y el ID de la flota de Anywhere. Esta llamada devuelve un identificador único para la nueva sesión de juego.

  • Comprobar el estado de la sesión de juego.Llame al comando describe-game-sessions (o a la acción de API DescribeGameSessions). Especifique el ID de la sesión de juego. Esta llamada devuelve información detallada de la sesión de juego, lo que incluye el estado de la sesión de juego. Las sesiones de juego en estado activo están listas para que los jugadores se conecten. Para obtener una lista de todas las sesiones de juego de la flota, llame al comando list-game-sessions (o a la acción de API ListGameSessions).

  • Conectarse a la sesión de juego. Si el cliente de juego puede unirse a una sesión de juego, use los datos de conexión incluidos en la información de la sesión de juego.

Iteración en el servidor de juegos

Puede usar el mismo recurso de computación y la misma flota de Anywhere para probar otras versiones de la compilación del servidor de juegos.

  1. Limpiar la GameSession existente. Si el proceso del servidor de juegos se bloquea o no llama a ProcessEnding(), Amazon GameLift Servers limpiará la GameSession cuando el servidor de juegos deje de enviar comprobaciones de estado.

  2. Generar una nueva compilación del servidor de juegos. Haga cambios en el servidor de juegos y empaquete una compilación revisada.

  3. Actualizar la compilación del servidor de juegos en el recurso de computación local. Su flota de Anywhere anterior sigue activa y su portátil sigue registrado como recurso informático en la flota.

  4. Obtener un token de autorización actualizado. Llame al comando get-compute-auth-token de la CLI y guarde el token en el recurso de computación local.

  5. Iniciar uno o más de los procesos de servidor de juegos ejecutados en el recurso de computación local. Cuando el proceso del servidor de juegos llame a ProcessReady(), estará listo para el uso en las pruebas.

Transición de un juego a las flotas administradas por Amazon GameLift Servers

Cuando haya completado las pruebas de desarrollo y esté listo para preparar el lanzamiento, es un buen momento para cambiar a las flotas administradas por Amazon GameLift Servers. Utilice las flotas administradas para afinar y probar los recursos de alojamiento de juegos. Implemente la solución de ubicación de las sesiones de juego (colas y emparejadores), seleccione las mejores ubicaciones y el mejor hardware de alojamiento (lo que incluye las flotas de spot) posible y elija una estrategia para escalar la capacidad. También es recomendable que empiece a usar AWS CloudFormation a fin de administrar de forma más eficiente los ciclos de vida de todos los recursos de alojamiento de juegos, lo que incluye las flotas, las colas y los emparejadores.

Para pasar de una flota de prueba local de Anywhere a una flota administrada por Amazon GameLift Servers, debe hacer una serie de pequeños cambios. Puede volver a utilizar las mismas colas y los mismos emparejadores. Haga lo siguiente:

  • Cambie la llamada del código del servidor de juegos a InitSdk(). Elimine los parámetros del servidor. En el caso de una flota administrada, Amazon GameLift Servers hace un seguimiento automático de esta información.

  • Creación de un recurso de compilación de Amazon GameLift Servers. Con una flota de prueba de Anywhere, tendrá que implementar manualmente la compilación y las dependencias del servidor de juegos en cada uno de los recursos de computación de la flota. Con una flota administrada, usted crea y carga el paquete de compilación del juego en Amazon GameLift Servers, y este lo implementa automáticamente en todos los recursos de computación de la flota. Consulte Creación de una compilación de servidor de juegos para Amazon GameLift Servers para obtener más información sobre cómo empaquetar los archivos de compilación del juego y cómo crear un recurso de compilación con archivos en un bucket de Amazon S3. No incluya scripts que registren un recurso de computación y obtengan un token de autenticación, ya que, para flotas administradas, Amazon GameLift Servers gestiona automáticamente estas tareas.

  • Cree una flota administrada. Cree una flota mediante la consola o la CLI de AWS, y especifique que se trata de una flota de EC2 administrada. Este tipo de flotas requiere ajustes de configuración adicionales; por ejemplo, debe especificar cuáles son los tipos de instancia y recursos de compilación. Debe establecer una configuración de tiempo de ejecución para administrar el ciclo de vida de los servidores de juegos en todos los recursos de computación de la flota. Consulte Creación de una flota de EC2 administrada por Amazon GameLift Servers para obtener más información sobre la creación de una flota administrada.

  • Redireccione los alias de la flota (opcional). Si ha configurado alias para usarlos en las flotas de Anywhere, puede reutilizar los mismos alias para las flotas administradas. Consulte Creación de un alias de Amazon GameLift Servers para obtener más información sobre cómo crear o actualizar un alias.