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 GameLift gestionado de Amazon
Esta hoja de ruta te guía sobre cómo desarrollar una solución de alojamiento GameLift gestionado por Amazon para tu juego multijugador. 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 GameLift gestionado por Amazon, tu servidor de juegos se aloja en recursos Nube de AWS informáticos virtuales que Amazon GameLift posee y gestiona en función de tu configuración. Obtendrá la seguridad, la fiabilidad y la disponibilidad global de las instancias de Amazon Elastic Compute Cloud (AmazonEC2), que están aún más optimizadas para su uso con el alojamiento de juegos multijugador. Amazon GameLift optimiza la administración del alojamiento con herramientas como las implementaciones automáticas de servidores, la gestión del ciclo de vida y el autoscalamiento de la capacidad.
Una solución GameLift gestionada por Amazon se compone de los siguientes componentes:
-
Una o más flotas GameLift gestionadas por Amazon, que utilizan instancias de Amazon Elastic Compute Cloud (AmazonEC2) optimizadas para el alojamiento de juegos multijugador.
-
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 GameLift gestionado por Amazon. 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 GameLift gestionado por Amazon. 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()
-
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 sobre la 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 una estación de trabajo local para realizar pruebas.
Para un desarrollo iterativo rápido o cuando se trabaja con equipos de varias personas, le recomendamos que configure un entorno de pruebas basado en la nube. Esta solución de Amazon GameLift Toolkit imita el comportamiento de una flota GameLift gestionada por Amazon, pero te permite actualizar las versiones de los servidores de juegos con un tiempo de respuesta mínimo.
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 personalizaciones opcionales.
-
-
En el código de tu servicio de backend, convierte la
CreateGameSession()
llamada en.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 punto, ha trabajado con sistemas autogestionados Anywhere flotas para probar e iterar los componentes del juego y has ajustado la ubicación de las sesiones de juego. La última parte de la solución consiste en configurar el tipo de recursos de alojamiento que necesitarás para un sistema de producción. Para empezar a planificar y configurar la producción, debes pasar a trabajar con una flota GameLift gestionada por Amazon.
-
Package la compilación de su servidor de juegos y cárguela en Amazon GameLift. Crea un script de instalación con tus archivos de compilación, tus dependencias y el software de soporte. Consulte Implemente una compilación de servidor personalizada para Amazon GameLift Hosting. Puedes subir tu compilación a Amazon GameLift mediante la consola o el AWS CLI.
Antes de subir tu versión, decide en qué Región de AWS quieres crear una flota. Debes subir la versión a la misma región. Para obtener más información sobre cómo elegir la ubicación de una flota, consulteUbicación de la flota.
-
Cree una EC2 flota gestionada. Cuando creas una flota, Amazon comienza GameLift inmediatamente a implementar tu versión de servidor de juegos como alojamiento. Puedes configurar muchos aspectos de una flota gestionada. Para obtener instrucciones, consulte Crea una EC2 flota GameLift gestionada por Amazon. Como mínimo, haga lo siguiente:
-
Dé un nombre a la flota y especifique qué versión del juego cargada desea desplegar.
-
Elige instancias bajo demanda para tu flota y selecciona un tipo de instancia que esté disponible en la ubicación de tu flota. Las flotas puntuales son una opción valiosa, pero requieren un diseño y una configuración adicionales.
-
Cree una configuración de tiempo de ejecución para la flota. Como mínimo, especifica la ruta de inicio del ejecutable del servidor de juegos.
-
Especifica la configuración de los puertos para permitir que el tráfico entrante acceda a tus servidores de juegos.
-
-
Añade las flotas gestionadas a tu cola. En la cola de sesiones de juego, sustituye las flotas de Anywhere por las de « tus flotas gestionadas».
-
Prueba el alojamiento de juegos con tus flotas gestionadas. En este punto, deberías poder probar todo el ciclo de alojamiento, con un cliente de juego que solicite una sesión de juego, obtenga la información de conexión y se conecte correctamente a una sesión de juego.
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:
Considere la posibilidad de añadir flotas Spot para ahorrar costes. Consulte Tutorial: Cree una GameLift cola de Amazon con Spot Instances.
-
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 un tipo y tamaño de instancia y configurando el tiempo de ejecución para ejecutar varios procesos de servidor. Consulte Administración de la forma en que Amazon GameLift lanza los servidores de juegos.
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.
-
Configura un escalado automático de la capacidad para satisfacer la demanda prevista de los jugadores. Consulte Ampliar la capacidad de alojamiento de juegos con Amazon GameLift.
-
Configure flotas en espera en otras Regiones de AWS y modifique las colas y el escalado automático para gestionar las conmutaciones por error si es necesario.
-
Configure las herramientas de observabilidad del alojamiento, incluidos los análisis y el registro. Consulte Supervisión de Amazon GameLift.
-
Automatice su implementación mediante la infraestructura como código (IaC). Consulte Administrar los recursos GameLift de alojamiento de Amazon mediante AWS CloudFormation.
Amazon GameLift admite el uso de AWS CloudFormation plantillas para cualquier configuración específica de la implementación. También puedes usar el AWS Cloud Development Kit (AWS CDK) para definir tus GameLift recursos de Amazon. Para obtener más información sobre el AWS CDK, consulte la Guía para AWS Cloud Development Kit (AWS CDK) desarrolladores.
Para gestionar el despliegue de sus AWS CloudFormation pilas, le recomendamos que utilice herramientas y servicios de integración y entrega continuas (CI/CD), como: AWS CodePipeline Estas herramientas te ayudan a implementarlas automáticamente o con aprobación cada vez que crees un servidor de juegos binario. Con una herramienta o un servicio de CI/CD, el despliegue de recursos para una nueva versión del servidor de juegos puede tener el siguiente aspecto:
-
Construye y prueba el binario de tu servidor de juegos.
-
Sube el archivo binario a Amazon GameLift.
-
Implemente nuevas flotas con la nueva versión.
-
Añade las nuevas flotas a tu lista de sesiones de juego y elimina las flotas de la versión de compilación anterior.
-
Cuando las flotas de la versión anterior ya no alberguen sesiones de juego activas, elimina las AWS CloudFormation pilas de esas flotas.
-