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.
Sube una compilación de servidor personalizada a Amazon GameLift
Tras integrar tu servidor de juegos con Amazon GameLift, sube los archivos de compilación a Amazon GameLift. En este tema se explica cómo empaquetar los archivos de compilación del juego, crear un script de instalación de la compilación opcional y, a continuación, cargar los archivos con AWS Command Line Interface
(AWS CLI)
Temas
Empaquetado de los archivos de compilación del juego
Antes de subir tu servidor de juegos configurado a Amazon GameLift, empaqueta los archivos de compilación del juego en un directorio de compilación. Este directorio debe incluir todos los componentes necesarios para ejecutar los servidores de juegos y las sesiones de juego alojadas, entre los que se incluyen los siguientes:
-
Archivos binarios del servidor de juegos: son los archivos binarios necesarios para ejecutar el servidor de juegos. Una compilación puede incluir archivos binarios para varios servidores de juegos diseñados para ejecutarlos en la misma plataforma. Para obtener una lista de plataformas admitidas, consulte Soporte de desarrollo con Amazon GameLift.
-
Dependencias: cualquier archivo dependiente necesario para que los archivos ejecutables del servidor de juegos funcione. Por ejemplo, activos, archivos de configuración y bibliotecas dependientes.
nota
En el caso de las compilaciones de juegos creadas con el GameLift servidor Amazon SDK para C++ (incluidas las creadas con el complemento Unreal), incluye Open SSL DLL para la misma versión de Open SDK con la SSL que creaste el servidor. Consulta el SDK README archivo del servidor para obtener más información.
-
Script de instalación (opcional): un archivo de script para gestionar las tareas de instalación de la compilación del juego en los servidores de GameLift alojamiento de Amazon. Coloque ese archivo en la raíz del directorio de compilación. Amazon GameLift ejecuta el script de instalación como parte de la creación de la flota.
Puedes configurar cualquier aplicación de tu compilación, incluido el script de instalación, para acceder a tus recursos de forma segura desde otros AWS servicios. Para obtener información sobre cómo hacerlo, consulte Comunicación con otros recursos de AWS de sus flotas.
Después de empaquetar los archivos de compilación, asegúrese de que el servidor de juegos pueda ejecutarse en una instalación limpia de su sistema operativo de destino. De esa forma, se asegurará de que se incluyen todas las dependencias necesarias en el paquete y de que el script de instalación es correcto.
Crea una versión de Amazon GameLift
Al crear una compilación y cargar sus archivos, tiene dos opciones:
-
Creación de una compilación a partir de un directorio de archivos. Esta es la opción más sencilla y la que se utiliza habitualmente.
-
Cree una compilación con archivos en Amazon Simple Storage Service (Amazon S3). Con esta opción, puede administrar sus versiones de compilación en Amazon S3.
Con ambos métodos, Amazon GameLift crea un nuevo recurso de compilación con un ID de compilación único y otros metadatos. La compilación comienza con el estado Inicializado. Cuando Amazon GameLift adquiere los archivos del servidor del juego, la compilación pasa al estado Listo.
Cuando la versión esté lista, podrás desplegarla en una nueva GameLift flota de Amazon. Para obtener más información, consulte Crea una flota GameLift gestionada por Amazon .Cuando Amazon GameLift configura la nueva flota, descarga los archivos de compilación en cada instancia de la flota e instala los archivos de compilación.
Creación de una compilación a partir de un directorio de archivos
Para crear una compilación de juego almacenada en cualquier ubicación, incluido un directorio local, usa el upload-build
AWS CLI comando. Este comando crea un nuevo registro de compilación en Amazon GameLift y carga los archivos desde la ubicación que especifiques.
Envíe una solicitud de carga. En una ventana de línea de comandos, especifique el comando upload-build y los parámetros siguientes.
aws gamelift upload-build \ --name
user-defined name of build
\ --operating-systemsupported OS
\ --server-sdk-versionAmazon GameLift server SDK version
\ --build-rootbuild path
\ --build-versionuser-defined build number
\ --regionregion name
-
operating-system: el entorno de tiempo de ejecución de la compilación del servidor de juegos. Debe especificar un valor para el sistema operativo. El valor no podrá actualizarse más tarde.
-
server-sdk-version— La versión del GameLift servidor de Amazon con la SDK que está integrado tu servidor de juegos. Si no indicas un valor, Amazon GameLift utilizará el valor predeterminado
4.0.2
. Si especificas una SDK versión de servidor incorrecta, es posible que la compilación del servidor del juego falleInitSdk
al llamar para establecer una conexión con el GameLift servicio de Amazon. -
build-root: es la ruta del directorio de los archivos de compilación.
-
name: es un nombre descriptivo para la nueva compilación.
-
build-version: los detalles de la versión de los archivos de compilación.
-
region— La AWS región en la que quieres crear tu versión. Cree la compilación en la región en la que tiene previsto implementar las flotas. Si va a implementar el juego en varias regiones, cree una compilación en cada región.
nota
Vea su región predeterminada actual mediante el comando aws configure get region. Utilice el comando aws configure set region
region name
para cambiar la región predeterminada.
Ejemplos
aws gamelift upload-build \ --operating-system AMAZON_LINUX_2023 \ --server-sdk-version "5.0.0" \ --build-root "~/mygame" \ --name "My Game Nightly Build" \ --build-version "build 255" \ --region us-west-2
aws gamelift upload-build \ --operating-system WINDOWS_2016 \ --server-sdk-version "5.0.0" \ --build-root "C:\mygame" \ --name "My Game Nightly Build" \ --build-version "build 255" \ --region us-west-2
En respuesta a tu solicitud de carga, Amazon GameLift proporciona el progreso de la carga. Si la carga se realiza correctamente, Amazon GameLift devuelve el nuevo ID de registro de compilación. El tiempo de carga depende del tamaño de los archivos del juego y de la velocidad de conexión.
Creación de una compilación con archivos en Amazon S3
Puede almacenar sus archivos de compilación en Amazon S3 y subirlos a Amazon GameLift desde allí. Al crear la compilación, debe especificar la ubicación del depósito de S3 y Amazon GameLift recupera los archivos de compilación directamente de Amazon S3.
Para crear un recurso de compilación, realice el siguiente procedimiento:
-
Almacene los archivos de compilación en Amazon S.. Cree un archivo.zip que contenga los archivos de compilación empaquetados y cárguelo en un bucket de S3 que tenga. Cuenta de AWS Toma nota de la etiqueta del depósito y del nombre del archivo, ya que los necesitarás para crear una versión de Amazon GameLift .
-
Da GameLift acceso a Amazon a tus archivos de compilación. Cree un IAM rol siguiendo las instrucciones que se indican enAcceso a un archivo de compilación de un juego en Amazon S3. Una vez que hayas creado el rol, toma nota del nombre de recurso de Amazon del nuevo rol (ARN), que necesitarás al crear una compilación.
-
Cree una compilación. Usa la GameLift consola de Amazon o la AWS CLI para crear un nuevo registro de compilación. Debe tener el permiso
PassRole
, tal y como se describe en Ejemplos de permisos de IAM para Amazon GameLift.
Actualización de los archivos de compilación
Puedes actualizar los metadatos de un recurso de compilación mediante la GameLift consola de Amazon o el update-build
AWS CLI comando.
Una vez que hayas creado una GameLift compilación de Amazon, no podrás actualizar los archivos de compilación asociados a ella. Para cada nuevo conjunto de archivos, crea una nueva versión de Amazon GameLift . Con el upload-build
comando, Amazon crea GameLift automáticamente un nuevo registro de compilación para cada solicitud. Si proporciona archivos de compilación mediante el comando create-build
, cargue un nuevo archivo .zip de compilación con un nombre distinto en Amazon S3 y cree una compilación que haga referencia al nombre de archivo nuevo.
Prueba estos consejos para implementar versiones actualizadas en las flotas GameLift gestionadas por Amazon:
-
Utilice colas e intercambie las flotas según sea necesario. Al configurar tu cliente de juego con Amazon GameLift, especifica una cola en lugar de una flota. Con las colas, puede añadir nuevas flotas con la nueva compilación para la cola y eliminar las flotas antiguas. Para obtener más información, consulte Configuración de colas de Amazon GameLift para la ubicación de las sesiones de juego.
-
Utilice alias para transferir jugadores a una compilación del juego nueva. Al integrar tu cliente de juego con Amazon GameLift, especifica un alias de flota en lugar de un identificador de flota. Para obtener más información, consulte Añadir un alias a una GameLift flota de Amazon.
-
Configure actualizaciones de compilación automatizadas. Para ver ejemplos de scripts e información sobre cómo incorporar GameLift las implementaciones de Amazon a su sistema de compilación, consulte Automating Deployments to Amazon GameLift
en el blog AWS Game Tech.
Herramienta de actualización Fast Build (solo para desarrollo)
Con EC2 las flotas gestionadas, para implementar una actualización de compilación de un servidor de juegos, debes subir cada nueva versión a Amazon GameLift y crear una nueva flota para ella.
La herramienta de actualización Fast Build te permite saltarte estos pasos durante el desarrollo, lo que te permite ahorrar tiempo y agilizar la iteración del desarrollo. Con esta herramienta, puedes actualizar rápidamente los archivos de compilación del juego en todos los ordenadores de una flota existente. La herramienta tiene varias opciones: puedes reemplazar una versión completa del juego o cambiar archivos específicos, y puedes gestionar cómo reiniciar los procesos del servidor del juego tras las actualizaciones. También puedes usarla para actualizar los ordenadores individuales de una flota.
Para obtener la herramienta Fast Build Update Tool y obtener más información sobre cómo usarla, visita el repositorio de Amazon GameLift Toolkit de The Fast Build Update Tool en Github
Agregar un script de instalación de la compilación
Cree un script de instalación para el sistema operativo (SO) de la compilación del juego:
-
Windows: cree un archivo de procesamiento por lotes denominado «
install.bat
». -
Linux: cree un archivo de script de shell denominado “
install.sh
“.
Al crear un script de instalación, tenga en cuenta lo siguiente:
-
El script no puede aceptar ninguna entrada por parte del usuario.
-
Amazon GameLift instala la compilación y vuelve a crear los directorios de archivos del paquete de compilación en un servidor de alojamiento en las siguientes ubicaciones:
-
Flotas de Windows:
C:\game
-
Flotas de Linux:
/local/game
-
-
Durante el proceso de instalación para flotas de Linux, el usuario que realiza la ejecución tiene acceso limitado a la estructura de archivos de la instancia. Dicho usuario dispone de acceso completo al directorio en el que se instalan los archivos de compilación. Si el script de instalación realiza acciones que requieren permisos de administrador, especifique el acceso de administrador mediante sudo. El usuario en ejecución para las flotas de Windows dispone de permisos de administrador de forma predeterminada. Los errores de permisos relacionados con el script de instalación generan un mensaje de evento que indica un problema con el script.
-
En Linux, Amazon GameLift admite lenguajes de interpretación de shell comunes, como bash. Añada un shebang (como
#!/bin/bash
) al principio del script de instalación. Para verificar la compatibilidad con los comandos de shell que prefiera, inicie una sesión remota en una instancia de Linux activa y abra una solicitud del shell. Para obtener más información, consulte Conéctese remotamente a las instancias de GameLift la flota de Amazon. -
El script de instalación no puede basarse en una conexión entre VPC pares. La conexión entre VPC pares no estará disponible hasta que Amazon GameLift instale la versión en las instancias de flota.
ejemplo Archivo bash de instalación de Windows
En este ejemplo, el archivo install.bat
instala los componentes del tiempo de ejecución de Visual C++ necesarios para el servidor de juegos y escribe los resultados en un archivo de registro. El script incluye el archivo de componente en el paquete de compilación en la raíz.
vcredist_x64.exe /install /quiet /norestart /log c:\game\vcredist_2013_x64.log
ejemplo Script de shell de instalación de Linux
Este archivo install.sh
de ejemplo utiliza bash en el script de instalación y escribe los resultados en un archivo de registro.
#!/bin/bash echo 'Hello World' > install.log
Este install.sh
archivo de ejemplo muestra cómo puedes usar el CloudWatch agente de Amazon para recopilar métricas personalizadas y a nivel del sistema y gestionar la rotación de registros. Como Amazon GameLift opera en un servicioVPC, debes conceder GameLift permisos a Amazon para que asuma una función AWS Identity and Access Management (IAM) en tu nombre. Para permitir que Amazon GameLift asuma un rol, crea un rol que incluya la política AWS CloudWatchAgentAdminPolicy
gestionada y utilízalo cuando crees una flota.
sudo yum install -y amazon-cloudwatch-agent sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum install -y collectd cat <<'EOF' > /tmp/config.json { "agent": { "metrics_collection_interval": 60, "run_as_user": "root", "credentials": { "role_arn": "arn:aws:iam::
account#
:role/rolename
" } }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/tmp/log", "log_group_name": "gllog", "log_stream_name": "{instance_id}" } ] } } }, "metrics": { "namespace": "GL_Metric", "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { // Configure metrics you want to collect. // For more information, see Manually create or edit the CloudWatch agent configuration file. } } } EOF sudo mv /tmp/config.json /opt/aws/amazon-cloudwatch-agent/bin/config.json sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json sudo systemctl enable amazon-cloudwatch-agent.service