Plugin para Unity: configura las pruebas locales con 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.

Plugin para Unity: configura las pruebas locales con Amazon GameLift Anywhere

En este flujo de trabajo, añades el código de juego de cliente y servidor para las GameLift funciones de Amazon y utilizas el complemento para designar tu estación de trabajo local como host de servidor de juegos de prueba. Cuando haya completado las tareas de integración, utilice el complemento para crear los componentes de cliente y servidor de juegos.

Para iniciar el flujo de trabajo de Amazon GameLift Anywhere:
  • En el menú principal del editor de Unity, elige Amazon GameLift y selecciona Host with Anywhere. Esta acción abre la página del plugin para configurar el juego con una @Anywhere flota. La página muestra un proceso de cinco pasos para integrar, compilar y lanzar los componentes del juego.

Configuración del perfil

Elija el perfil que desee utilizar al seguir este flujo de trabajo. El perfil que seleccione afectará a todos los pasos del flujo de trabajo. Todos los recursos que cree están asociados a la AWS cuenta del perfil y se colocan en la AWS región predeterminada del perfil. Los permisos del usuario del perfil determinan su acceso a AWS los recursos y las acciones.

  1. Seleccione un perfil de la lista desplegable de perfiles disponibles. Si aún no tienes un perfil o quieres crear uno nuevo, ve al GameLift menú de Amazon y selecciona Establecer perfiles de AWS cuenta.

  2. Si el estado del arranque no es “Activo”, seleccione Perfil de arranque y espere a que el estado cambie a “Activo”.

Integra tu juego con Amazon GameLift

nota

Si ha importado el juego de ejemplo, puede omitir este paso. Los activos del juego de ejemplo ya tienen el código de servidor y cliente necesario.

Para este paso del flujo de trabajo, debe actualizar el código del cliente y del servidor en el proyecto del juego.

  • * Los servidores del juego deben poder comunicarse con el GameLift servicio de Amazon para recibir instrucciones para iniciar una sesión de juego, proporcionar información de conexión de la sesión de juego e informar del estado.

  • Los clientes del juego deben poder obtener información sobre las sesiones de juego, iniciar una sesión o unirse a ella y obtener datos de conexión para entrar en una partida.

Integración del código del servidor

Si emplea su propio proyecto de juego con escenas personalizadas, utilice el código de ejemplo proporcionado para añadir el código de servidor necesario al proyecto del juego:

  1. En los archivos del proyecto del juego, abra la carpeta Assets/Scripts/Server. Si el archivo no existe, créelo.

  2. Ve al GitHub repositorio aws/ amazon-gamelift-plugin-unity y abre la ruta. Samples~/SampleGame/Assets/Scripts/Server

  3. Busque el archivo GameLiftServer.cs y cópielo en la carpeta Server del proyecto del juego. Cuando compile un ejecutable de servidor, use este archivo como destino de la compilación.

El código de ejemplo incluye estos elementos mínimos obligatorios, que utilizan el SDK del servidor Amazon GameLift C# (versión 5):

  • Inicializa un cliente de GameLift API de Amazon. La InitSDK() llamada con los parámetros del servidor es obligatoria para una flota de Amazon GameLift Anywhere. Estos ajustes se configuran automáticamente para el uso en el complemento.

  • Implementa las funciones de devolución de llamada necesarias para responder a las solicitudes del GameLift servicio de Amazon, incluidas OnStartGameSessionOnProcessTerminate, yonHealthCheck.

  • Llama ProcessReady() con un puerto designado para notificar al GameLift servicio de Amazon cuando el proceso del servidor está listo para albergar sesiones de juego.

Si desea personalizar el código de servidor de ejemplo, consulte estos recursos:

Integración del código del cliente

Si utiliza su propio proyecto de juego con escenas personalizadas, necesita integrar las funciones básicas en el cliente del juego. También debe añadir elementos de interfaz de usuario para que los jugadores puedan iniciar sesión y unirse a una sesión de juego. Usa el GameLift servicio de Amazon APIs (en el AWS SDK) para obtener información sobre las sesiones de juego, crear nuevas sesiones de juego o unirte a las sesiones de juego existentes,

Al crear un cliente para pruebas locales con una flota de Anywhere, puedes añadir llamadas directas al GameLift servicio de Amazon. Cuando desarrolle su juego para el alojamiento en la nube, o si planea usar Anywhere Fleets para el alojamiento de producción, necesitará crear un servicio de back-end del lado del cliente para gestionar todas las comunicaciones entre los clientes del juego y el servicio de Amazon. GameLift

Para GameLift integrar Amazon en tu código de cliente, utiliza los siguientes recursos como guía.

  • Integre el cliente con la GameLiftCoreApi clase en el GitHub repositorio amazon-gamelift-plugin-unity aws/. Esta clase proporciona controles para la autenticación de los jugadores y para recuperar información de la sesión de juego.

  • Vea ejemplos de integraciones de juegos, disponibles en el repositorio aws/,. GitHub amazon-gamelift-plugin-unity Samples~/SampleGame/Assets/Scripts/Client/GameLiftClient.cs

  • Sigue las instrucciones de Añadir Amazon GameLift a tu cliente de juegos de Unity.

Los clientes de juego que se conecten a una flota de Anywhere necesitan la siguiente información. El complemento actualiza automáticamente el proyecto de juego para que use los recursos que haya creado en el complemento.

  • FleetId - El identificador único de tu flota de Anywhere.

  • FleetLocation - La ubicación personalizada de su flota de Anywhere.

  • AwsRegion - La AWS región en la que está alojada tu flota de Anywhere. esta es la región que ha configurado en el perfil de usuario.

  • ProfileName - Un perfil de AWS credenciales en su máquina local que le permita acceder al AWS SDK de GameLift. El cliente del juego usa estas credenciales para autenticar las solicitudes al GameLift servicio de Amazon.

nota

El perfil con credenciales está generado por el complemento y se guarda en el equipo local. Por lo tanto, debe ejecutar el cliente en el equipo local (o en un equipo con el mismo perfil).

Conexión a una flota de Anywhere

En este paso, tendrá que designar la flota de Anywhere que desee utilizar. Una flota de Anywhere define un conjunto de recursos informáticos, que se pueden ubicar en cualquier lugar para el alojamiento de servidores de juegos.

  • Si la AWS cuenta que utilizas actualmente tiene flotas de Anywhere existentes, abre el campo desplegable del nombre de la flota y elige una flota. Este menú desplegable solo muestra las flotas de Anywhere de la AWS región para el perfil de usuario activo actualmente.

  • Si no hay ninguna flota existente, o si desea crear una nueva, seleccione Create new Anywhere fleet e introduzca un nombre para la flota.

Una vez que hayas elegido una flota de Anywhere para tu proyecto, Amazon GameLift verifica que el estado de la flota esté activo y muestra el identificador de la flota. Puede hacer un seguimiento del progreso de esta solicitud en el registro de salida del editor de Unity.

Registro de un recurso de computación

En este paso, se registrará su estación de trabajo local como recurso informático en la nueva flota de Anywhere.

  1. Especifique un nombre de equipo para la máquina local. Si añade más de un recurso informático a la flota, los nombres deben ser únicos.

  2. Seleccione Register compute. Puede hacer un seguimiento del progreso de esta solicitud en el registro de salida del editor de Unity.

El complemento registra la estación de trabajo local con la dirección IP establecida en localhost (127.0.0.1). Esta configuración da por sentado que ejecutará el cliente y el servidor del juego en el mismo equipo.

En respuesta a esta acción, Amazon GameLift comprueba que puede conectarse al equipo y devuelve información sobre el equipo recién registrado.

Lanzamiento del juego

En este paso, compilará los componentes del juego y los lanzará para poder jugar. Realice los siguientes pasos:

  1. Configure el cliente del juego. En este paso, le pide al complemento que actualice un activo GameLiftClientSettings para el proyecto del juego. El complemento utiliza este recurso para almacenar cierta información que el cliente del juego necesita para conectarse al GameLift servicio de Amazon.

    1. Si no ha importado ni inicializado el juego de ejemplo, cree un nuevo activo GameLiftClientSettings. En el menú principal del editor de Unity, selecciona Activos GameLift, Crear y Configuración del cliente. Si creas varias copias GameLiftClientSettings en tu proyecto, el plugin lo detectará automáticamente y te notificará qué activo actualizará el plugin.

    2. En Launch Game, seleccione Configure Client: Apply Anywhere Settings. Esta acción actualiza la configuración del cliente del juego para que use la flota de Anywhere que acaba de configurar.

  2. Compile y ejecute el cliente del juego.

    1. Compile un ejecutable del cliente mediante el proceso de compilación estándar de Unity. En File, Build Settings, cambie la plataforma a Windows, Mac, Linux. Si ha importado el juego de ejemplo y ha inicializado la configuración, la lista y el destino de la compilación se actualizarán automáticamente.

    2. Lance una o más instancias del ejecutable del cliente de juego recién compilado.

  3. Lance un servidor de juegos en la flota de Anywhere. Seleccione Server: Launch Server en el editor. Esta tarea inicia un servidor activo al que el cliente puede conectarse mientras el editor de Unity permanezca abierto.

  4. Inicie una sesión de juego o únase a una sesión. En las instancias del cliente de juego, use la interfaz de usuario para unir a cada cliente a una sesión de juego. La forma de hacerlo dependerá de cómo haya añadido la funcionalidad en el cliente.

Si utiliza el cliente de juegos de ejemplo, tendrá las siguientes características:

  • Un componente de inicio de sesión para jugadores. Al conectarse a un servidor de juegos en una flota de Anywhere, no hay validación de jugadores. Puede introducir cualquier valor para unirse a la sesión de juego.

  • Una interfaz de usuario sencilla para unirse al juego. Cuando un cliente intenta unirse a una partida, busca automáticamente una sesión de juego activa con espacio disponible para un jugador. Si no hay ninguna sesión de juego disponible, el cliente solicita una nueva sesión de juego. Si hay alguna sesión de juego disponible, el cliente solicita unirse a esta. Al probar el juego con varios clientes simultáneos, el primer cliente inicia la sesión de juego y los demás se unen automáticamente a la sesión de juego existente.

  • Sesiones de juego con espacio para cuatro jugadores. Puede lanzar hasta cuatro instancias de clientes de juego simultáneas: se unirán todas a la misma sesión de juego.

Lanzamiento desde un ejecutable de servidor (opcional)

Puede compilar y lanzar el ejecutable del servidor de juegos para probarlo en una flota de Anywhere.

  1. Compile un ejecutable del servidor mediante el proceso de compilación estándar de Unity. En File, Build Settings, cambie la plataforma a Dedicated Server y haga la compilación.

  2. Obtenga un token de autenticación a corto plazo llamando al comando AWS CLI get-compute-auth-tokencon su ID de flota y AWS región de Anywhere. El ID de flota aparece en Connect to an Anywhere Fleet al crear la flota. La AWS región se muestra en Defina su perfil cuando selecciona su perfil activo.

    aws gamelift get-compute-auth-token --fleet-id [your anywhere fleet ID] --region [your AWS region]
  3. Lance el ejecutable del servidor de juegos recién compilado desde una línea de comandos y pase un token de autenticación válido.

    my_project.exe --authToken [token]