Realización de una prueba de integración con flotas de Amazon GameLift Anywhere - Amazon GameLift

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.

Realización de una prueba de integración con flotas de Amazon GameLift Anywhere

Puede utilizar una flota de Amazon GameLift Anywhere para compilar y probar de forma iterativa la integración de sus juegos con Amazon GameLift. Configure su propio hardware como una flota de Anywhere con una conexión al servicio de Amazon GameLift y, a continuación, instale y ejecute el servidor de juegos en él. Utilice una aplicación de prueba para ejecutar escenarios como iniciar o detener sesiones de juego, realizar un seguimiento de las conexiones de los jugadores y administrar los rellenos de emparejamientos. Con una flota de Anywhere, puede actualizar la compilación del servidor de juegos según sea necesario y tener una visibilidad total de la actividad del alojamiento.

Puede utilizar flotas de Amazon GameLift Anywhere con juegos integrados en la versión 5 o superior del SDK de Amazon GameLift Server.

Desarrollo inicial

Ha desarrollado tu juego y lo está integrando con el SDK del servidor de Amazon GameLift. Para probar la integración, puede subir cada nueva iteración de la compilación del servidor de juegos a Amazon GameLift y crear una flota. Como alternativa, usar una flota de Anywhere con el portátil de desarrollo le proporciona una forma más eficiente de realizar pruebas y desarrollos iterativos.

Utilice los siguientes procedimientos para crear una flota de Anywhere e iniciar una sesión de juego en su portátil mediante la consola de Amazon GameLift o la AWS Command Line Interface (AWS CLI).

Console
  1. Abra la consola de Amazon GameLift.

  2. En el panel de navegación, en Alojamiento, elija Ubicaciones.

  3. Elija Crear ubicación.

  4. En el cuadro de diálogo Crear ubicación, realice lo siguiente:

    1. Especifique el nombre de una ubicación. De esa forma, se etiquetará la ubicación de los recursos informáticos que Amazon GameLift utiliza para ejecutar los juegos en las flotas de Anywhere. Los nombres de ubicación personalizados deben empezar por custom-.

    2. Seleccione Create (Crear).

  5. Para crear una flota de Anywhere, realice el siguiente procedimiento:

    1. En el panel de navegación, en Alojamiento, elija Flotas.

    2. En la página Fleets (Flotas), elija Create fleet (Crear flota).

    3. En el paso Elegir tipo de computación, elija Anywhere y, a continuación, seleccione Siguiente.

    4. En el paso Definir detalles de flota, establezca su nueva flota. Para obtener más información, consulte Creación de una nueva flota de Amazon GameLift .

    5. En el paso Seleccionar ubicaciones, elija la ubicación personalizada creada.

    6. Complete el resto de los pasos de creación de la flota para crear su flota de Anywhere.

  6. Registre el portátil como recurso informático en la flota creada. Utilice el comando register-compute (o la operación de la API RegisterCompute). Incluya el fleet-id creado en el paso anterior y añada un compute-name y la ip-address del portátil.

    aws gamelift register-compute \ --compute-name DevLaptop \ --fleet-id fleet-1234 \ --ip-address 10.1.2.3 \ --location custom-location-1

    Ejemplo de resultados:

    Compute { FleetId = fleet-1234, ComputeName = DevLaptop, Status = ACTIVE, IpAddress = 10.1.2.3, GameLiftServiceSdkEndpoint = wss://12345678.execute-api.amazonaws.com/, Location = custom-location-1 }
  7. Inicie una sesión de depuración del servidor de juegos.

    1. Consiga el token de autorización para el portátil en la flota que ha creado. Utilice el comando get-compute-auth-token (o la operación de la API GetComputeAuthToken).

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      Ejemplo de resultados:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = abcdefg123, ExpirationTime = 1897492857.11 }
    2. Ejecute una instancia de depuración del archivo ejecutable del servidor de juegos. Para ejecutar la instancia de depuración, el servidor de juegos debe llamar a InitSDK(). Cuando el proceso esté listo para alojar una sesión de juego, el servidor de juegos llamará a ProcessReady().

  8. Cree una sesión de juego para probar su primera integración con Amazon GameLift Anywhere. Utilice el comando create-game-session (o la operación de la API CreateGameSession). Especifique la ubicación personalizada de la flota.

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name DebugSession \ --maximum-player-session-count 2 \ --location custom-location-1

    Ejemplo de resultados:

    GameSession { FleetId = fleet-1234, GameSessionId = 1111-1111, Name = DebugSession, IpAddress = 10.1.2.3, Port = 1024, ... }

    Amazon GameLift envía un mensaje onStartGameSession() al proceso de servidor registrado. El mensaje contiene el objeto GameSession del paso anterior con las propiedades del juego, los datos de las sesiones de juego, los datos del emparejador y más información sobre la sesión de juego.

  9. Añada lógica al servidor de juegos para que el proceso del servidor responda al mensaje onStartGameSession() con ActivateGameSession(). La operación envía un acuse de recibo a Amazon GameLift de que su servidor ha recibido y aceptado el mensaje de creación de la sesión de juego. Para obtener más información, consulte, Referencia del SDK del servidor de Amazon GameLift.

Su servidor de juegos ahora está ejecutando una sesión de juego para que la pruebe y la utilice en iteraciones. Para obtener información sobre cómo realizar iteraciones en el servidor de juegos, continúe en la siguiente sección.

AWS CLI
  1. Cree una ubicación personalizada mediante el comando create-location (o la operación de la API CreateLocation). Una ubicación personalizada etiquetará la ubicación del hardware que Amazon GameLift utiliza para ejecutar los juegos en las flotas de Anywhere.

    aws gamelift create-location \ --location-name custom-location-1

    Ejemplo de resultados:

    { Location { LocationName = custom-location-1 } }
  2. Cree una flota de Anywhere con la ubicación personalizada mediante el comando create-fleet (o la operación de la API CreateFleet). Amazon GameLift creará la flota en su región de origen y en las ubicaciones personalizadas que proporcione.

    aws gamelift create-fleet \ --name LaptopFleet \ --compute-type ANYWHERE \ --locations "location=custom-location-1"

    Ejemplo de resultados:

    Fleet { Name = LaptopFleet, ComputeType = ANYWHERE, FleetId = fleet-1234, Status = ACTIVE ... }
  3. Registre el portátil como recurso informático en la flota creada. Utilice el comando register-compute (o la operación de la API RegisterCompute). Incluya el fleet-id creado en el paso anterior y añada un compute-name y la ip-address pública del portátil.

    aws gamelift register-compute \ --compute-name DevLaptop \ --fleet-id fleet-1234 \ --ip-address 10.1.2.3 \ --location custom-location-1

    Ejemplo de resultados:

    Compute { FleetId = fleet-1234, ComputeName = DevLaptop, Status = ACTIVE, IpAddress = 10.1.2.3, GameLiftServiceSdkEndpoint = wss://12345678.execute-api.amazonaws.com/, Location = custom-location-1 }
  4. Inicie una sesión de depuración del servidor de juegos.

    1. Consiga el token de autorización para el portátil en la flota que ha creado. Utilice el comando get-compute-auth-token (o la operación de la API GetComputeAuthToken).

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      Ejemplo de resultados:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = abcdefg123, ExpirationTime = 1897492857.11 }
    2. Ejecute una instancia de depuración del archivo ejecutable del servidor de juegos. Para ejecutar la instancia de depuración, el servidor de juegos debe llamar a InitSDK(). Cuando el proceso esté listo para alojar una sesión de juego, el servidor de juegos llamará a ProcessReady().

  5. Cree una sesión de juego para probar su primera integración con Amazon GameLift Anywhere. Utilice el comando create-game-session (o la operación de la API CreateGameSession).

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name DebugSession \ --maximum-player-session-count 2

    Ejemplo de resultados:

    GameSession { FleetId = fleet-1234, GameSessionId = 1111-1111, Name = DebugSession, IpAddress = 10.1.2.3, Port = 1024, ... }

    Amazon GameLift envía un mensaje onStartGameSession() al proceso de servidor registrado. El mensaje contiene el objeto GameSession del paso anterior con las propiedades del juego, los datos de las sesiones de juego, los datos del emparejador y más información sobre la sesión de juego.

  6. Añada lógica al servidor de juegos para que el proceso del servidor responda al mensaje onStartGameSession() con ActivateGameSession(). La operación envía un acuse de recibo a Amazon GameLift de que su servidor ha recibido y aceptado el mensaje de creación de la sesión de juego. Para obtener más información, consulte, Referencia del SDK del servidor de Amazon GameLift.

Su servidor de juegos ahora está ejecutando una sesión de juego para que la pruebe y la utilice en iteraciones. Para obtener información sobre cómo realizar iteraciones en el servidor de juegos, continúe en la siguiente sección.

Iteración en el servidor de juegos

En este caso de uso, piense en un escenario en el que haya configurado y probado el servidor de juegos y haya detectado un error. Con Amazon GameLift Anywhere, puede iterar el código y evitar la ardua configuración que supone utilizar una flota de Amazon EC2.

  1. Borre la GameSession existente, si es posible. Si el servidor de juegos se bloquea o no llama a ProcessEnding(), Amazon GameLift borrará la GameSession cuando el servidor de juegos deje de enviar comprobaciones de estado.

  2. Realice los cambios de código en el servidor de juegos, realice la compilación y prepárese para la siguiente prueba.

  3. Su flota de Anywhere anterior sigue activa y su portátil sigue registrado como recurso informático en la flota. Para volver a empezar a realizar las pruebas, cree una nueva instancia de depuración.

    1. Recupere el token de autorización para el portátil en la flota que ha creado. Utilice el comando get-compute-auth-token (o la operación de la API GetComputeAuthToken).

      aws gamelift get-compute-auth-token \ --fleet-id fleet-1234 \ --compute-name DevLaptop

      Ejemplo de resultados:

      ComputeAuthToken { FleetId = fleet-1234, ComputeName = DevLaptop, AuthToken = hijklmnop456, ExpirationTime = 1897492857.11 }
    2. Ejecute una instancia de depuración del archivo ejecutable del servidor de juegos. Para ejecutar la instancia de depuración, el servidor de juegos debe llamar a InitSDK(). Cuando el proceso esté listo para alojar una sesión de juego, el servidor de juegos llamará a ProcessReady().

  4. La flota tiene ahora un proceso de servidor disponible. Cree su sesión de juego y realice las próximas pruebas. Utilice el comando create-game-session (o la operación de la API CreateGameSession).

    aws gamelift create-game-session \ --fleet-id fleet-1234 \ --name SecondDebugSession \ --maximum-player-session-count 2

    Amazon GameLift envía un mensaje onStartGameSession() al proceso de servidor registrado. El mensaje contiene el objeto GameSession del paso anterior con las propiedades del juego, los datos de las sesiones de juego, los datos del emparejador y más información sobre la sesión de juego.

  5. Añada lógica al servidor de juegos para que el proceso del servidor responda al mensaje onStartGameSession() con ActivateGameSession(). La operación envía un acuse de recibo a Amazon GameLift de que su servidor ha recibido y aceptado el mensaje de creación de la sesión de juego. Para obtener más información, consulte, Referencia del SDK del servidor de Amazon GameLift.

Cuando termine de probar el servidor de juegos, podrá seguir utilizando Amazon GameLift para la administración de su flota y sus servidores de juegos. Para obtener más información, consulte Creación de una flota de Amazon GameLift Anywhere.