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.
Carga de una compilación del servidor de juegos personalizada en Amazon GameLift
Después de integrar el servidor de juegos con Amazon GameLift, cargue los archivos de compilación en 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 mediante AWS Command Line Interface (AWS CLI)
Temas
Empaquetado de los archivos de compilación del juego
Antes de cargar el servidor de juegos configurado en Amazon GameLift, empaquete 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 compilaciones de juegos creadas con el SDK del servidor Amazon GameLift para C++ (incluidas las creadas con el complemento Unreal), incluya el DLL de OpenSSL para la misma versión de OpenSSL con la que creó el SDK del servidor. Consulte el archivo README del SDK del servidor para obtener más información.
-
Script de instalación (opcional): archivo de script para administrar las tareas de instalación de la compilación del juego en los servidores de alojamiento de Amazon GameLift. 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.
Puede configurar cualquier aplicación de la compilación, incluido el script de instalación, para obtener acceso seguro a los recursos de otros servicios de AWS. 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.
Creación de una compilació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 de juegos, la compilación pasa al estado Listo.
Cuando la compilación esté lista, podrá implementarla en una nueva flota de Amazon GameLift. Para obtener más información, consulte Creación de una flota administrada por Amazon GameLift .Cuando Amazon GameLift configure la nueva flota, descargará los archivos de compilación en cada instancia de la flota e instalará 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, utilice el comando de la AWS CLI upload-build
. Este comando crea un registro de compilación nuevo en Amazon GameLift y carga archivos desde la ubicación que especifique.
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 SDK del servidor de Amazon GameLift con la que se ha integrado el servidor de juegos. Si no proporciona un valor, Amazon GameLift utiliza el valor predeterminado
4.0.2
. Si especifica una versión incorrecta del SDK del servidor, es posible que la compilación del servidor de juegos falle al llamar aInitSdk
para establecer una conexión con el servicio de Amazon GameLift. -
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 región de AWS en la que desea crear la compilació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
Como respuesta a su 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 cargarlos en Amazon GameLift desde allí. Al crear la compilación, debe especificar la ubicación del bucket de S3 y Amazon GameLift recuperará los archivos de compilación directamente desde 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árguelos en un bucket de S3 en su Cuenta de AWS. Tome nota de la etiqueta del bucket y el nombre de archivo, ya que los necesitará para crear una compilación de Amazon GameLift.
-
Otorgue acceso a Amazon GameLift a los archivos de compilación. Para crear un rol de IAM;, siga las instrucciones en Acceso a un archivo de compilación de un juego en Amazon S3. En cuanto haya creado el rol, tome nota del nombre de recurso de Amazon (ARN) del nuevo rol, ya que lo necesitará para crear una compilación.
-
Cree una compilación. Utilice la consola de Amazon GameLift 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
Puede actualizar los metadatos de un recurso de compilación mediante la consola de Amazon GameLift o el comando update-build
AWS CLI.
Una vez que haya creado una compilación de Amazon GameLift, no podrá actualizar los archivos de compilación asociados a ella. Para cada nuevo conjunto de archivos, cree una nueva compilación de Amazon GameLift. Con el comando upload-build
, Amazon GameLift creará 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.
Tenga en cuenta estos consejos a la hora de implementar compilaciones actualizadas:
-
Utilice colas e intercambie las flotas según sea necesario. Al configurar el cliente del juego con Amazon GameLift, especifique 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 el cliente de juegos con Amazon GameLift, especifique un alias de flota en lugar de un ID de la flota. Para obtener más información, consulte Adición de un alias a una flota de Amazon GameLift.
-
Configure actualizaciones de compilación automatizadas. Para ver ejemplos de scripts e información sobre cómo incorporar las implementaciones de Amazon GameLift a su sistema de compilación, consulte Automatización de las implementaciones en Amazon GameLift
en el blog de tecnología de juegos de AWS
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 comunes de intérprete de shell, 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 confiar en una conexión de emparejamiento de VPC. La conexión de emparejamiento de VPC no estará disponible hasta que Amazon GameLift instale la compilación en las instancias de la 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 archivo install.sh
de ejemplo muestra cómo puede utilizar el agente de Amazon CloudWatch para recopilar métricas personalizadas y de nivel del sistema, y gestionar la rotación de registros. Puesto que Amazon GameLift se ejecuta en una VPC de servicio, debe conceder permisos a Amazon GameLift para que asuma un rol AWS Identity and Access Management (IAM) en su nombre. Para permitir que Amazon GameLift asuma un rol, cree un rol que incluya la política administrada de AWS y utilice ese rol cuando cree 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