Creando e integrando funciones de juegos Web3 con el SDK de Unreal Engine de Sequence
Integre la wallet de Sequence, obtenga los activos de los jugadores, firme mensajes, envíe transacciones y más usando el SDK de Unreal de Sequence.
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:
-
Descargue e instale el launcher desde el sitio web de Epic Games..
-
Inicie sesión: Ingrese o cree una cuenta de Epic Games.
-
Encuentre el proyecto: Vaya a la pestaña de Unreal Engine, luego a la sección Learn, y busque “Cropout Sample Project”.
-
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
-
Configure una Embedded Wallet en el Builder Console.
-
En su archivo
SequenceConfig.ini
, agregue suWaaS Config Key
y su Builder API Key desde el Builder Console enSettings > API Access Keys
. -
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.