Creación de una gema en la nube - Guía del usuario de Lumberyard

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.

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 el código fuente completo de 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 de la nube aprovechan el poder deAWS, se benefician del modelo de seguridad deAWSy Lumberyard, y pueden comunicarse entre sí para crear una experiencia de videojuego sin interrupciones.

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

Prerequisites

  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 del asistente de configuración de Lumberyard, 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.

    Example

    En el siguiente ejemplo de comando se crea una gema en la nube llamadaMyCloudGemque está habilitada en el proyecto actual y que tiene Amazon API Gateway yAWS LambdaRecursos de función.

    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 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 de .

      nota

      Algunas gemas tienen uncgp-resource-code.

    • 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 Uso del sistema de compilación de Waf generados y los siguientes subdirectorios:

      • \AWS\ServiceAPI\— Contiene{gem-name}ClientComponent.hy{gem-name}ClientComponent.cpparchivos. 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{gem-name}Bus.h EBusfile.

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

      • \Tests\— Contiene un esqueleto{gem-name}Test.cppfile

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 Cloud CanvasAdministrador de recursos, haga clic enUpload all resources (Cargar todos los recursos)Para crear e implementar laAWSque se definen en suresource-template.jsonfile.

  • 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,EBusy 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 usar el cliente de API de servicio generado para obtener acceso a la funcionalidad en laServiceLambdaUna función Lambda.