Lumberyard
Guía del usuario (Version 1.21)

Creación de una gema en la nube

Lumberyard incluye algunas gemas en la nube, como, por ejemplo, marcadores y distribución de contenido dinámico, que proporcionan servicios con todas las características. Puede utilizar estas gemas en sus juegos con un mínimo esfuerzo. Dado que todo el código fuente completo para estas gemas en la nube está incluido en Lumberyard, puede personalizarlo o utilizarlo como ejemplo para desarrollar sus propias gemas en la nube.

Puede desarrollar sus propias gemas en la nube para crear paquetes discretos de funcionalidad conectada en la nube para mejorar el juego. Las gemas en la nube aprovechan la potencia de AWS, se benefician del modelo de seguridad de AWS y Lumberyard y pueden comunicarse entre sí para crear una experiencia de juego sin interrupciones.

Podrá crear fácilmente su propia gema en la nube con el comando lmbr_aws cloud-gem create.

Requisitos previos

  1. Asegúrese de que la gema Cloud Gem Framework esté habilitada para su proyecto. Aplique alguna de las siguientes acciones:

    • Utilice Habilitación de gemas para habilitar la gema Cloud Gem Framework.

      O BIEN

    • Escriba el siguiente comando desde el directorio \dev\Tools\LmbrSetup\Win. Sustituya <projectname> por el nombre de su proyecto.

      lmbr gems enable <projectname> CloudGemFramework
  2. Asegúrese de que los recursos de Cloud Gem Framework de su proyecto correspondan a la última versión de la gema Cloud Gem Framework. Escriba el siguiente comando en el directorio \dev desde una ventana de símbolo del sistema:

    lmbr_aws project update-framework-version
  3. Si la gema en la nube va a utilizar la API de servicio de Cloud Gem Framework, realice una de las siguientes operaciones:

    • En Ejecución de Lumberyard Setup Assistant, elija Compile the game code (Compilar el código de juego).

      O BIEN

    • Escriba el siguiente comando en el directorio \dev\Tools\LmbrSetup\Win desde una ventana de símbolo del sistema:

      lmbr capabilities enable compilegame

Para crear una gema en la nube

  • Desde el directorio \dev, escriba el comando lmbr_aws cloud-gem create. Utilice la siguiente sintaxis:

    lmbr_aws cloud-gem create --gem {gem-name} --initial-content {content-option} --enable

    Las opciones de sintaxis son las siguientes.

    • --gem {gem-name}: especifica el nombre de la gema en la nube.

    • --initial-content {content-option}: especifica el contenido inicial de la gema en la nube. Para ver una lista de opciones de contenido, consulte cloud-gem create.

    • --enable: habilita la gema en la nube en su proyecto.

    Ejemplo

    El siguiente ejemplo de comando crea una gema en la nube llamada MyCloudGem que está habilitada en el proyecto actual y que tiene recursos de funciones de Amazon API Gateway y AWS Lambda.

    lmbr_aws cloud-gem create --gem MyCloudGem --initial-content api-lambda --enable

    Resultados del comando

    En función del parámetro que elija para la opción --initial-content, el comando cloud-gem create puede hacer por usted la mayor parte del trabajo de código inicial de la gema en la nube. Por ejemplo, si elige el parámetro api-lambda se crean localmente los siguientes recursos:

    • Un archivo \dev\Gems\{gem-name}\vN\ gem.json que declara una dependencia en Cloud Gem Framework.

    • Un directorio \dev\Gems\{gem-name}\vN\AWS que incluye los siguientes elementos:

      • Un directorio cgp-resource-code que contiene el código de recursos de esqueleto de su Cloud Gem Portal.

      • Un directorio lambda-code que contiene código de API ServiceLambda del esqueleto. ServiceLambda es una función AWS Lambda que implementa su funcionalidad de gema en la nube.

      • Un archivo swagger.json que describe la API para la gema en la nube. Para obtener más información acerca del archivo swagger.json, consulte API de servicio de Cloud Gem Framework.

      • Un archivo resource-template.json que define los recursos iniciales para la gema en la nube. En el ejemplo api-lambda, el archivo resource-template.json especifica lo siguiente:

        • Los recursos ServiceApi, ServiceLambda y ServiceLambdaConfiguration.

        • Una salida para la URL de la API de servicio.

        • Un recurso AccessControl configurado como se describe en Control del acceso a los recursos.

    • Un directorio \dev\Gems\{gem-name}\vN\Code\ con código de esqueleto generado automáticamente desde el archivo swagger.json. El directorio Code contiene los archivos Con el sistema de compilación Waf generados y los siguientes subdirectorios:

      • \AWS\ServiceAPI\: contiene los archivos {gem-name}ClientComponent.h y {gem-name}ClientComponent.cpp. Utilice el código de esqueleto en estos archivos para implementar un componente de Lumberyard que puede utilizar para invocar a las operaciones de la API de servicio de la gema en la nube desde C++ o Lua.

      • \Include\{gem-name}\: contiene un archivo {gem-name}Bus.h EBus .

      • \Source\: contiene el componente de esqueleto, el módulo de gema y los archivos de componentes del sistema.

      • \Tests\: contiene un archivo de esqueleto {gem-name}Test.cpp.

Desarrollo de la gema en la nube

Después de utilizar el comando lmbr_aws cloud-gem create, puede seguir desarrollando la gema en la nube haciendo lo siguiente:

  • Añada definiciones de recursos que requiera la gema en la nube al archivo resource-template.json. En Resource Manager (Administrador de recursos) de Cloud Canvas, haga clic en Upload all resources (Cargar todos los recursos) para crear e implementar los recursos de AWS que están definidos en el archivo resource-template.json.

  • Implemente la funcionalidad de la gema en la nube añadiendo código al directorio lambda-code.

  • Añada rutas y operaciones al archivo swagger.json que expongan la funcionalidad de su gema en la nube. Para obtener más información, consulte API de servicio de Cloud Gem Framework.

  • Utilice componentes de Lumberyard, EBuses y otras características para implementar la funcionalidad de cliente de juego para la gema. Coloque el código en el directorio de la gema en la nube \dev\Gems\<gem-name>\vN\Code. Puede utilizar el cliente de la API de servicio generado para obtener acceso a la funcionalidad en la función Lambda ServiceLambda de la gema en la nube.