Introducción a Cropout - Guía de juego en Unreal Engine

Cropout es un juego casual RTS de vista superior desarrollado con Unreal Engine. En esta guía mostraremos cómo integrar funciones de Embedded Wallet usando el SDK de Unreal de Sequence.

Con esta integración, los jugadores podrán acceder a funciones como smart contract wallets, propiedad de activos dentro del juego y gestión de transacciones, todo sin ventanas emergentes molestas ni necesidad de pagar tarifas de gas.

Consulte el boilerplate para esta guía. Aprenda más sobre Embedded Wallets.

1. Configuración

Descargue el juego de ejemplo

Si ya tiene Unreal Engine instalado, vaya directamente a la página de Cropout en Unreal..

Si no, comience instalando Epic Games Launcher:

  1. Descargue e instale el launcher desde el sitio web de Epic Games..

  2. Inicie sesión: Ingrese o cree una cuenta de Epic Games.

  3. Encuentre el proyecto: Vaya a la pestaña de Unreal Engine, luego a la sección Learn, y busque “Cropout Sample Project”.

  4. Descargar: Haga clic en Add to Library y luego en Install para descargar los archivos del proyecto.

Descargue el SDK de Unreal Engine de Sequence

Para comenzar, descargue la última versión del SDK de Sequence y coloque la carpeta SequencePlugin en la carpeta Plugin de su proyecto Unreal.

Como alternativa, descargue el SDK desde Epic Games Marketplace.

Configure su proyecto

  1. Inicie sesión en el Builder Console de Sequence.

  2. Cree un proyecto para su juego en el Builder Console.

  3. Configure una Embedded Wallet en el Builder Console.

  4. En su archivo SequenceConfig.ini, agregue su WaaS Config Key y su Builder API Key desde el Builder Console en Settings > API Access Keys.

  5. No olvide agregar sus IDs de cliente Oauth preferidos, que debe configurar en el Builder en Onboard > Embedded Wallet > Configuration.

Inicie sesión usando la interfaz integrada

En el blueprint del nivel del menú principal, generaremos nuestro Actor Sequence Connector, que iniciará y mostrará el panel de inicio de sesión.

Recomendamos usar la Interfaz de Usuario incorporada para fines de desarrollo. Aquí tiene una explicación más detallada. Para mayor personalización, aprenda cómo crear su propia interfaz.

2. Configuración del Network Id y la cadena

Para comenzar nuestra interacción con el SDK de Sequence, abra el Sequence Connector blueprint, localice el evento Auth Success en Event Graph > Begin Play, y llamaremos a Api Update Network Id desde el Subsystem SequenceWalletBP para configurar el wallet en la red seleccionada de su proyecto en Builder. En el mismo evento, también llamaremos a Set Chain desde el Subsystem Sequence Indexer para poder obtener correctamente los assets.

3. Obtener dirección del Wallet

Para mostrar la dirección del wallet, primero obtenemos nuevamente la referencia del wallet del usuario usando SequenceWalletBP y la utilizamos para obtener y mostrar la dirección del wallet en la red seleccionada usando Api GetWallet Address del Subsystem SequenceWalletBP. Mostraremos la dirección del usuario en UI_Layer_Menu.

4. Configure sus NFTs

En nuestro caso, comenzamos con un contrato ERC-1155, para nuestros Resource Bundle packs y Farming Boosts. Para crear los NFTs vaya a Builder Console > Deploy > Contracts y seleccione Web3 Game Item.

Una vez que hayamos creado nuestros ítems, ahora crearemos sus respectivos contratos de venta desplegando un nuevo contrato y seleccionando Web 3 Game Item(Sale).

Agregaremos a nuestros Web 3 Game items sus recompensas correspondientes y la dirección de su contrato de venta como una propiedad.

Obteniendo nuestros NFTs

Para obtener nuestros NFTs recién creados, usaremos el subsistema Indexer para llamar a Get Token Supply, lo que nos devolverá la información y los metadatos para la dirección del contrato indicada. Esto lo encontrará en el blueprint CUI_Purchase.

Comprar un NFT

Para permitir que el jugador compre un NFT, usaremos el subsistema SequenceSDK para crear y enviar una transacción PrimaryPurchase al Web 3 Game Item(Sale) deseado y utilizaremos la propiedad “Sale” del contrato para referenciar nuestro Web 3 Game Item(Sale). Esto lo encontrará en el blueprint CUI_PurchaseItem.

Obtener los NFTs del jugador

Para obtener los NFTs del jugador, usaremos el Subsystem Indexer para llamar a Get Token Balances, lo que nos devolverá todos los balances de contratos para la dirección del wallet indicada. Una vez que se devuelvan, llamaremos nuevamente a Get Token Balances, pero esta vez para cada contrato específico, lo que nos devolverá el balance más la información y metadatos para ese contrato. Esto lo encontrará en el blueprint CUI_Vault.

Quemar los NFTs del jugador

Para dar al jugador las recompensas por usar uno de nuestros NFTs, usaremos el subsistema SequenceSDK para crear y enviar una transacción Burn del Web 3 Game Item deseado, lo que nos devolverá el estado de la transacción y la dirección del contrato, para verificar el éxito del quemado del ítem. Si es exitoso, usaremos las propiedades del contrato para dar al jugador su recompensa. Esto lo encontrará en el blueprint CUI_VaultItem.

Para una explicación más detallada, vaya a las secciones de Leer desde Blockchain y Escribir en Blockchain.

5. Cerrar sesión del jugador

Para cerrar la sesión del jugador y terminar su sesión, llamaremos a Clear Session del Sequence Sessions Subsystem, de esta manera eliminaremos sus credenciales almacenadas y el usuario deberá iniciar sesión nuevamente cuando regrese. Llamaremos a este método en el UI_Layer_Menu.