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.
Hoja de ruta de desarrollo para el alojamiento con Amazon Anywhere GameLift
Esta hoja de ruta le guía sobre cómo desarrollar una solución de alojamiento para su juego multijugador y utilizarla con sus propios recursos (hardware local o máquinas virtuales). Amazon GameLift ofrece varias opciones de alojamiento de juegos; para obtener más información sobre estas opciones, consulta GameLift Soluciones de Amazon.
Con el alojamiento Amazon GameLift Anywhere, su servidor de juegos se aloja en los recursos informáticos que usted suministra y administra. Puede crear una flota de Anywhere con las configuraciones que necesite y con una ubicación geográfica donde quiera que estén sus jugadores. Amazon GameLift ofrece las siguientes funciones para una flota de Anywhere:
-
Se encarga por ti del proceso de ubicación de las sesiones de juego en función de tu configuración, lo que incluye:
-
Realiza un seguimiento de la disponibilidad de los servidores de juegos en todas tus flotas de Anywhere.
-
Procesar las solicitudes de juego de tu servicio de atención al cliente de juegos y hacer coincidir las solicitudes de juego con los servidores disponibles.
-
Pedir a los servidores de juegos de las flotas de Anywhere que inicien las sesiones de juego.
-
Comunicar los detalles de la conexión a los clientes del juego.
-
-
Recopila las métricas de rendimiento para el proceso de ubicación de las sesiones y las métricas de uso para las sesiones de juego y los jugadores.
-
Es compatible con el conjunto completo de funciones de FlexMatch emparejamiento, por lo que puedes crear un emparejador e integrarlo con el sistema de ubicación de las sesiones del juego.
-
Ofrece Amazon GameLift Agent para gestionar tareas clave de gestión de hosts en una flota de Anywhere.
-
Soporta la combinación con las flotas GameLift gestionadas por Amazon para obtener una solución híbrida flexible.
Una solución de Amazon GameLift Anywhere se compone de los siguientes componentes:
-
Una o más flotas de Amazon GameLift Anywhere con sus recursos de alojamiento locales u otros recursos de alojamiento, gestionados con las herramientas de implementación y administración de la configuración existentes. (Opcionalmente, puede utilizar el.) AWS Systems Manager
-
Una versión de servidor de juegos, integrada con el GameLift servidor de AmazonSDK, para desplegarla en todas las flotas.
-
Un cliente de juego y un servicio de backend, integrados con el AWS SDK, para interactuar con el GameLift servicio de Amazon y solicitar sesiones de juego.
-
Una GameLift cola de Amazon para colocar nuevas sesiones de juego con los servidores de juegos disponibles en todas las flotas.
-
(Opcional) Un FlexMatch emparejador para crear partidas multijugador y configurar sesiones de juego para ellas.
Esta hoja de ruta presenta una ruta simplificada para que tu juego multijugador funcione correctamente con el alojamiento Amazon GameLift Anywhere. Una vez que tengas los componentes necesarios, puedes continuar con el desarrollo del juego y personalizar tu solución de alojamiento. A medida que se acerque el lanzamiento, consulta estas páginas Preparando tu juego para su lanzamiento con Amazon GameLift Hosting para ayudarte a preparar tu solución de alojamiento para su uso a nivel de producción.
Empieza con el GameLift plugin de Amazon
Si estás desarrollando proyectos con Unreal Engine o Unity, comienza a configurar tu juego para su alojamiento con el GameLift complemento Amazon. Con el complemento, puedes añadir Amazon GameLift SDKs a tu proyecto de juego y utilizar los flujos de trabajo guiados para crear una versión funcional sencilla de una solución de alojamiento con Amazon GameLift Anywhere. Luego, puedes usar estos aspectos básicos para desarrollar y personalizar según sea necesario.
Añade funcionalidad a tu servidor de juegos para que pueda comunicarse con el GameLift servicio de Amazon cuando se despliegue como alojamiento.
-
Obtén el GameLift servidor Amazon SDK (versión 5.x) para tu proyecto de juego. El servidor SDK está disponible en C++, C# y Go. Descarga un GameLift servidor de Amazon SDK
. -
Modifica el código del servidor de juegos para añadir la SDK funcionalidad del servidor. Para obtener instrucciones, consulte Integración de juegos con servidores de juegos personalizados. Como mínimo, haz lo siguiente:
-
Agrega un código para inicializar Amazon GameLift SDK y establecer una WebSocket conexión con el GameLift servicio de Amazon. Usa la SDK acción del servidor
InitSdk()
e incluye los parámetros del servidor, que son necesarios para una flota de Anywhere. -
Agrega código para informar al GameLift servicio de Amazon cuando el proceso del servidor esté listo para albergar sesiones de juego. Usa la SDK acción del servidor
ProcessReady()
. -
Implemente las funciones de devolución de llamada requeridas
OnRefreshConnection()
OnProcessTerminate()
, yOnStartGameSession()
. Con estas funciones, los procesos del servidor de juegos pueden mantener una conexión con el GameLift servicio de Amazon, iniciar una sesión de juego cuando Amazon GameLift lo solicite y responder a una solicitud para finalizar el proceso del servidor de juegos. -
Agrega código para informar al GameLift servicio de Amazon cuando el proceso del servidor finalice una sesión de juego. Usa la SDK acción del servidor
ProcessEnding()
.
-
-
Package la versión de su servidor de juegos. Crea un script de instalación con tus archivos de compilación, tus dependencias y el software de soporte. Consulte Empaquetado de los archivos de compilación del juego. Te recomendamos que utilices un depósito de Amazon Simple Storage Service (Amazon S3) para almacenar las versiones de la versión de tu juego.
-
Pon a prueba la integración de tu servidor de juegos. Para esta tarea, te recomendamos configurar un Amazon GameLift Anywhere flota para una estación de trabajo local, tal y como se describe enConfigura las pruebas locales con Amazon GameLift Anywhere. Para este paso, instala manualmente la versión de servidor de juegos en el dispositivo de prueba e inicia un proceso de servidor. Utilízala AWS CLI para solicitar una nueva sesión de juego y comprueba que el GameLift servicio de Amazon solicita correctamente al proceso del servidor que inicie una sesión de juego.
Crea una forma para que tu cliente de juego solicite unirse a una sesión de juego, obtenga información de conexión y, a continuación, se conecte directamente a una sesión de juego alojada. El enfoque más común consiste en configurar una funcionalidad de servicio de back-end que sirva de intermediario entre el cliente del juego y el servicio de Amazon. GameLift Este enfoque protege tus recursos de alojamiento y te da un mayor control sobre la forma en que los jugadores participan en las sesiones de juego.
-
Desarrolle una funcionalidad de servicio de back-end para el alojamiento. El servicio de backend se comunica con el GameLift servicio de Amazon y entrega la información de conexión a un cliente del juego. Esta funcionalidad incluye iniciar sesiones de juego, colocar a los jugadores en ellas y recuperar la información de las sesiones de juego. Para obtener instrucciones, consulte Integración de juegos con servidores de juegos personalizados. Como mínimo, haz lo siguiente:
-
Obtenga el AWS SDK para Amazon GameLift y agréguelo a su proyecto de servicio de back-end. Consulta los GameLift SDKrecursos de Amazon para obtener información sobre los servicios al cliente.
-
Agrega código para inicializar un GameLift cliente de Amazon y almacenar la configuración clave. Consulte Configura Amazon GameLift en un servicio de back-end.
-
Añade funciones para convocar la AWS SDK acción
CreateGameSession()
y proporcionar información de conexión de la sesión de juego a un cliente de juego. Consulta Crear una sesión de juego en una flota específica.Llamar
CreateGameSession()
es un práctico punto de partida para solicitar nuevas sesiones de juego. Cuando dispongas de un sistema de ubicación de las sesiones de juego (consulta el paso 3), sustituirás este código por una llamada aStartGameSessionPlacement()
(oStartMatchmaking()
si lo estás utilizando FlexMatch).Para obtener orientación sobre el diseño de su servicio de back-end, consulteDiseño del servicio de cliente de juegos.
-
-
Añade una funcionalidad a tu cliente de juego que permita a los jugadores unirse a una sesión de juego alojada. El cliente del juego realiza solicitudes a tu servicio de backend, no directamente a Amazon GameLift. Una vez que el servicio de back-end proporciona la información de conexión de la sesión de juego, el cliente del juego se conecta directamente con la sesión de juego para jugarlo.
-
Pon a prueba la integración del cliente del juego. Puedes usar el mismo Amazon GameLift Anywhere flota con estaciones de trabajo locales para realizar pruebas.
Personaliza la forma en que quieres que Amazon GameLift procese las solicitudes de nuevas sesiones de juego y localiza los servidores de juegos disponibles para alojarlas. Amazon rastrea GameLift automáticamente la disponibilidad de todos los servidores de juegos en todas las flotas. Cuando un cliente de juego envía una solicitud para unirse a una sesión de juego, Amazon GameLift busca la «mejor ubicación posible» en función de un conjunto de prioridades definidas, como la latencia mínima, el coste y la disponibilidad.
-
Crea una cola de sesiones de juego para colocar una nueva sesión de juego en los servidores de juego disponibles. Las colas son el mecanismo principal para ubicar las sesiones de juego. Para obtener instrucciones, consulte Creación de una cola de sesión de juego.
-
Como mínimo, añade tus flotas de Anywhere como destinos de la cola. Todos los demás ajustes son opcionales.
-
-
En tu código de servicio de backend, convierte la llamada en
CreateGameSession()
.StartGameSessionPlacement()
Consulta Crear una sesión de juego en una cola de varias ubicaciones. -
Crea un mecanismo para avisar al cliente del juego cuando una sesión de juego esté lista para unirse. Durante el desarrollo, puedes sondear el estado de la sesión de juego mediante una llamada a DescribeGameSessionPlacement. Sin embargo, antes de utilizar una cola para procesar grandes volúmenes, tendrás que activar las notificaciones de eventos. Consulte Configuración de la notificación de eventos para la ubicación de sesiones de juego..
-
(Opcional) Añade componentes de FlexMatch emparejamiento. Para obtener orientación, consulta la guía para GameLift FlexMatch desarrolladores de Amazon.
Hasta este momento, has estado trabajando con dispositivos locales (registrados como Anywhere fleet computa) para probar e iterar los componentes del juego. El siguiente paso es configurar el tipo de flota que necesitarás para un sistema de producción. En el caso de estos recursos, utilice Amazon GameLift Agent para gestionar algunas tareas clave de administración de hosts informáticos. Para obtener más información, consulte Trabaja con el GameLift agente de Amazon.
-
Obtén el Amazon GameLift Agent y agrégalo al paquete de instalación de tu servidor de juegos. Obtenga y cree el código fuente del agente, disponible en el repositorio Github de Amazon GameLift Agent
. Coloca el JAR archivo ejecutable resultante en el mismo directorio que el ejecutable de la compilación del juego. -
Modifique el script de inicio del agente según sea necesario. Asegúrese de que el ejecutable del agente se inicie tan pronto como el equipo comience a ejecutarse. Consulte el archivo readme del repositorio del agente si necesita ayuda para instalar y ejecutar el agente en sus ordenadores de alojamiento. El comando de lanzamiento debe incluir opciones para especificar, como mínimo, el identificador de flota de Anywhere Región de AWS, una ubicación personalizada y un nombre de procesamiento.
El agente se encarga automáticamente de las siguientes tareas por usted, por lo que si ha estado gestionando estas tareas con scripts, puede eliminarlas:
-
Hace llamadas
RegisterCompute()
para añadir el cómputo a una flota de Anywhere. -
Llamadas
GetComputeAuthToken()
para autenticar los servidores de juegos cuando se conectan al GameLift servicio de Amazon. El agente se encarga de obtener y actualizar el token de autenticación, que pueden utilizar todos los procesos del servidor de juegos que se ejecutan en el ordenador. -
Inicia nuevos procesos de servidor en el equipo en función de un conjunto de instrucciones de tiempo de ejecución.
-
-
Cree una configuración de tiempo de ejecución para los ordenadores de su flota de Anywhere. Puedes usar la GameLift consola de Amazon o la AWS CLI para crear o modificar las instrucciones de tiempo de ejecución de la flota. El agente sigue estas instrucciones y solicita periódicamente actualizaciones al GameLift servicio de Amazon.
-
Configura o modifica la cola de sesiones de juego según sea necesario. Crea una nueva cola (o actualiza una existente) para usar las flotas de Anywhere que se despliegan con Amazon GameLift Agent.
-
Pruebe la integración del agente con sus flotas de Anywhere. Compruebe que el agente esté iniciando correctamente los procesos del servidor en función de la configuración del tiempo de ejecución.
Mientras te preparas para el lanzamiento del juego, tendrás que ajustar tus recursos de alojamiento gestionado. Algunas de las decisiones a tener en cuenta incluyen:
-
Automatice el proceso de iniciar y cerrar los ordenadores según sea necesario, incluida la instalación y ejecución del software del servidor de juegos. Reciclar los ordenadores es útil para garantizar que se actualicen periódicamente, y cerrar los ordenadores puede ahorrar costes cuando no se necesitan.
-
Si tu servidor de juegos necesita comunicar otros AWS recursos, configura IAM funciones para administrar el acceso. Consulte Comuníquese con otros AWS recursos de sus flotas.
-
Determina la ubicación geográfica en la que deseas colocar los servidores de juegos. Añada ubicaciones remotas a sus flotas gestionadas. Consulte Guía de diseño para flotas gestionadas.
-
Optimice el rendimiento de la flota seleccionando las configuraciones de los recursos informáticos y, a continuación, configure las instrucciones de tiempo de ejecución para ejecutar un número óptimo de procesos de servidor por proceso.
-
Experimenta con las opciones de ubicación de las sesiones de juego para las flotas gestionadas, incluida la personalización de los ajustes de priorización. Consulte Diseño de colas de sesiones de juego.
-
Crea mecanismos para gestionar la ampliación de la capacidad manual o automática a fin de satisfacer la demanda prevista de los jugadores. Considera qué factores deberían hacer que el sistema aumente o disminuya la cantidad de ordenadores disponibles para albergar sesiones de juego.
-
Diseñe e implemente la conmutación por error a otros recursos si es necesario.
-
Configure las herramientas de observabilidad del alojamiento, incluidos los análisis y el registro. Consulte Supervisión de Amazon GameLift.