Olá! Vamos explorar um pouco os jogos do tipo "jogue para ganhar". Discutiremos como criar um e incorporar NFTs nele. Este artigo se concentrará apenas na mecânica do blockchain e não se aprofundará no desenvolvimento de jogos . Pretendo explicar tudo em linguagem simples, com explicações de todas as partes essenciais. Então vamos começar!
Estou imerso no desenvolvimento de blockchain desde 2018 e, durante esse tempo, vi muitas pessoas jogando jogos "jogue para ganhar" (p2e) sem a menor ideia de como isso funciona. Existem muitos projetos ruins e muitas pessoas tentam fazer seu próprio jogo P2E sem entender o conceito de um 'esquema Ponzi' ou a implementação técnica.
A ideia deste artigo nasceu inicialmente em meados de 2022, durante minha palestra offline em um evento criptográfico. Então, o conteúdo do artigo evoluiu diversas vezes através de minhas palestras em diferentes eventos em diferentes países. Além disso, tentei resolver todos esses problemas sozinho, criando uma startup de tecnologia nesta esfera. Ao longo do caminho, testemunhei muito interesse pelo tema e muitos mal-entendidos sobre o básico.
A Internet começou como web1, onde você, como usuário, era principalmente um consumidor de informação (leitura). Mais tarde, evoluiu para web2, onde os usuários passaram a escrever também para a internet (redes sociais). Agora, estamos de olho na web3, onde os usuários podem realmente possuir algo na internet além de consumir e criar conteúdo.
Desde a criação de jogos de computador simples na década de 1960, os jogos evoluíram rapidamente. Eles começaram como jogos independentes e agora vemos muitos jogos online em que os jogadores “possuem” alguns itens ou personagens do jogo. Existem também mercados de itens de jogos, alguns dos quais oferecem negociação de itens ponto a ponto (p2p). Contudo, na maioria dos casos, esses itens não pertencem verdadeiramente aos jogadores; eles pertencem aos jogos. A evolução futura irá transferir a propriedade dos itens do jogo para o jogador, e alguns jogos já fazem isso, mas esse recurso ainda tem penetração limitada.
O boom dos jogos criptográficos ocorreu em 2021. Em 2024, o mercado ainda pertencia a estúdios independentes e grandes fornecedores quase não estavam presentes lá. A maioria dos jogos ainda está em blockchains compatíveis com EVM, mas há uma tendência de migração de blockchains gerais para blockchains construídos especificamente para fins de jogos.
Em 2023, muitos jogos criptográficos foram fechados e os jogadores também ficaram deprimidos por causa da crise do mercado criptográfico, fazendo com que os jogadores perdessem tempo e dinheiro. No entanto, a tecnologia ainda está lá, e espero que mais e mais desenvolvedores procurem algo novo para eles (web3), e também para os jogadores. Espero que meu artigo os ajude a compreender os fundamentos de como funciona do ponto de vista técnico.
Este artigo cobrirá apenas blockchains EVM, pois essas ainda são as cadeias mais populares. No entanto, você deve saber que existem muitos outros tipos de cadeias que resolvem alguns dos problemas descritos a seguir.
Blockchain é um conceito muito simples – temos blocos que contêm algumas transações. Um novo bloco depende do bloco anterior e por isso não é possível substituir um bloco já existente.
Simples, não é? Mas, na realidade, podemos ter vários problemas que nos levam a algumas características importantes do blockchain para nós:
Diferentes tipos de blockchain têm abordagens diferentes, mas estaremos focados no blockchain do tipo EVM mais comum (Ethereum, Polygon, BNB Chain, etc.).
Normalmente, os blocos são criados em um período de tempo fixo (12 segundos para Ethereum, 3 segundos para BNB Chain, etc.). Esta é a primeira propriedade fundamental do blockchain para nós.
No mundo real, um blockchain é distribuído por vários nós (servidores) que se conectam entre si por meio de conexões de internet. Em alguns casos raros, é possível ter vários blocos baseados no mesmo pai, resultando em 'forks'.
O Blockchain foi projetado para casos como esse e resolverá essa situação. Mas você, como usuário final com uma transação no bloco vermelho (bloco órfão), não está realmente satisfeito, pois sua transação pode se tornar inválida. E é aí que a “finalidade” entra em jogo. Finalidade é o momento em que uma transação não pode ser revertida. Esta é a segunda propriedade fundamental do blockchain para nós.
Qualquer operação de gravação no blockchain custa algo para você ou seu usuário. Blockchains têm seu próprio modelo econômico interno, e manter e operar vários nós diferentes para descentralização requer muitos recursos. Na maioria dos casos, esse recurso é uma taxa de transação cobrada do usuário final pelo seu uso. As blockchains têm seu próprio limite de transações por segundo, e as taxas de transação dinâmicas são um mecanismo interno para evitar ataques DDoS na blockchain.
Na maioria dos casos, o iniciador da transação deve pagar as taxas na moeda nativa, e não com tokens de jogo ou NFTs.
As taxas de transação são a terceira propriedade fundamental do blockchain para nós.
Por que essas três métricas são importantes para nós? Isso se deve principalmente à experiência do usuário final. Os jogadores querem se concentrar na jogabilidade, não nos obstáculos técnicos. Como desenvolvedor de jogos, é sua função agilizar esse processo, priorizando o design UI/UX intuitivo e a integração direta
Vamos imaginar um jogo de xadrez ingênuo onde cada movimento de xadrez é armazenado no blockchain. Os jogadores devem pagar uma pequena taxa de transação para cada movimento e esperar até que o bloqueio seja finalizado (o que pode levar minutos entre os movimentos dos jogadores). Isso não parece bom, não é? Os usuários trocarão a experiência do usuário pelo uso do blockchain? A maioria dos jogadores preferirá jogar como estão fazendo agora, em vez de ter o incômodo de usar o blockchain lá.
Mas há esperança! Existem várias soluções que podem preencher a lacuna entre os jogos blockchain e os jogos tradicionais.
O Blockchain possui uma quantidade limitada de recursos em seu núcleo e, na maioria dos casos, não é suficiente. Blockchains de primeira geração (como Bitcoin) têm uma capacidade limitada de personalização. Os blockchains de segunda geração (Ethereum) introduziram a capacidade de escrever programas personalizados (aplicativos) e colocá-los no blockchain em seu próprio espaço chamado Contratos Inteligentes. Então o usuário pode interagir com este contrato inteligente para fazer algo, e o contrato inteligente pode interagir com outros contratos inteligentes. Os contratos inteligentes são executados em um ambiente especial chamado Ethereum Virtual Machine (EVM). Por enquanto, o mercado conta com diferentes máquinas virtuais, mas a EVM ainda é a mais popular.
Uma analogia simples – a evolução dos telefones celulares. Os telefones celulares antigos podiam apenas fazer chamadas e enviar sms. Os telefones modernos ainda têm a capacidade de fazer chamadas e enviar SMS, mas você pode instalar software adicional para adicionar novos recursos.
Os contratos inteligentes abrem a capacidade de criar sua própria moeda (token). Para tornar esses tokens compatíveis com qualquer software de carteira, existem vários padrões de token. Os mais populares são ERC20, ERC721 e ERC1155.
Os padrões explicam apenas a interface externa de um contrato inteligente, mas é muito importante saber que a implementação pode ser diferente e também pode conter alguns recursos adicionais.
Existem dois tipos de tokens: Tokens Fungíveis (FT) e Tokens Não Fungíveis (NFT). Os tokens FT são como dinheiro real – você pode ter várias cópias do mesmo token. Os NFTs são únicos, como uma pintura ou um item ou personagem específico do jogo.
O padrão ERC20 descreve FT. Aqui está a interface dele:
function name() public view returns (string) function symbol() public view returns (string) function decimals() public view returns (uint8) function totalSupply() public view returns (uint256) function balanceOf(address _owner) public view returns (uint256 balance) function transfer(address _to, uint256 _value) public returns (bool success) function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) function approve(address _spender, uint256 _value) public returns (bool success) function allowance(address _owner, address _spender) public view returns (uint256 remaining)
É importante entender que os tokens não saem fisicamente dos contratos inteligentes. O contrato inteligente simplesmente monitora os tokens do usuário. Quando você transfere um token, ele apenas atualiza o valor em um registro interno, como uma tabela. É por isso que, em alguns casos, você precisa adicionar o endereço do contrato inteligente ao software da sua carteira.
O padrão NFT em si é o mesmo, mas temos métodos adicionais:
function ownerOf(address _owner) public view returns (uint256 balance) function tokenURI(uint256 _tokenId) external view returns (string )
Cada token NFT possui um identificador exclusivo (ID) e sempre pertence a alguém. Isso se reflete na implementação do armazenamento de tokens, que normalmente usa uma tabela para registrar o ID do token e seu proprietário atual.
Mas onde está a imagem do token, você pode perguntar? E aqui temos a ideia de ‘metadados de token’. Ao contrário do padrão NFT principal, os metadados do token são armazenados separadamente e usam especificações diferentes. Na verdade, alguns NFTs podem nem ter metadados associados a eles!
Um método de contrato inteligente chamado tokenURI
pode retornar esse URI de metadados (localização). Existem várias maneiras de armazenar metadados de token – dentro e fora da rede.
O armazenamento fora da cadeia pode ser dividido em duas categorias principais:
Os metadados do token geralmente são formatados como um arquivo JSON, mas podem, em teoria, ter qualquer formato. Aqui está um exemplo de uma estrutura típica de metadados
{ "description": "Token description", "external_url": "Some external link with more details", "image": "Link to image", "name": "Token name", "attributes": [ // array of attributes { "trait_type": "Attribute type", "value": "Attribute value" }, .... ] }
É importante compreender que metadados mutáveis (dados editáveis) podem prejudicar a verdadeira propriedade da Web3. Com metadados mutáveis, você possui essencialmente o ID do token, não o conteúdo que ele representa.
Imagine que você compra um “item mágico com energia 5” NFT em um jogo. Se os metadados que contêm essas informações forem armazenados nos servidores do desenvolvedor do jogo (armazenamento centralizado), o desenvolvedor do jogo poderá decidir posteriormente reequilibrar o jogo e alterar a energia do seu item para 3. Embora você ainda possua tecnicamente o token, isso representaria um artigo diferente. Este cenário destaca as potenciais desvantagens dos metadados centralizados e mutáveis.
Em contraste, a Web3 prospera com metadados imutáveis (dados imutáveis). Isso garante que as informações associadas ao seu NFT permaneçam permanentes e verificáveis.
Bom documento que descreve como os metadados são usados pelo mercado https://docs.opensea.io/docs/metadata-standards .
Vamos explorar metadados reais de um popular jogo play-to-earn (P2E): STEPN. Este jogo era popular há pouco tempo e provavelmente você já ouviu falar de pessoas que gastam muito dinheiro em tênis.
Sabemos que o ID do token é ' 105026695079 ', o endereço do contrato inteligente é ' 0x69d60ad11feb699fe5feeeb16ac691df090bfd50 ' e é construído na cadeia BNB . Mas como acessamos os metadados?
Existem duas abordagens principais:
Vamos usar o explorador BSCScan para explorar o contrato inteligente. Navegue até a guia 'ler' (tokenURI
. Insira o ID do token e clique em 'Consulta'. O explorador recuperará o URI do token, que neste caso é:
Dê uma olhada mais de perto nesses metadados. Você notará que o STEPN é o proprietário e pode modificá-lo. Além disso, alguns atributos como Durabilidade e Nível parecem mutáveis com o tempo. Iremos nos aprofundar nesse conceito ao construir nosso próprio jogo P2E.
Agora que cobrimos alguns conceitos-chave de blockchain, vamos revisitar um que é familiar a todos: autorização. Você não pode realizar ações no blockchain sem ele. Então, a questão permanece: como podemos ser autorizados?
Blockchain utiliza um sistema de criptografia assimétrica, onde existem dois pares de chaves: chaves privadas e chaves públicas. Você pode gerar uma chave pública a partir da sua chave privada, mas não o contrário (é uma operação matemática unilateral).
Existem dois tipos principais de contas em blockchains EMV: conta de propriedade externa (EOA) e conta de contrato inteligente.
As contas de propriedade externa são controladas por chaves privadas. Uma chave privada é um dado de 32 bytes, geralmente representado por uma longa sequência de caracteres hexadecimais (64 caracteres). Este formato não é muito conveniente para o usuário final e é difícil de memorizar.
Para enfrentar o desafio da memorização, foi introduzido um conceito denominado "frase mnemônica". Um mnemônico é uma lista de 12, 24 ou mais palavras comuns que atuam como uma representação legível de sua chave privada. É importante ressaltar que não é a chave privada em si, mas sim uma forma de gerá-la com segurança.
Você pode gerar um número ilimitado de chaves privadas para si mesmo, gratuitamente.
Ao contrário dos EOAs, as contas de contratos inteligentes não requerem chaves privadas para interação porque já residem na blockchain. Isto abre portas para a criação de carteiras programáveis com funcionalidades avançadas.
Os usuários finais não interagem diretamente com o blockchain usando chaves privadas. Em vez disso, contamos com carteiras criptografadas – aplicativos de software que armazenam chaves privadas com segurança e as utilizam para assinar transações em seu nome.
Existem dois modelos principais de carteira – carteira com custódia e carteira sem custódia
Custódia significa que alguém guarda suas chaves privadas para você. Embora convenientes, eles introduzem um ponto central de falha, pois você depende das práticas de segurança do custodiante.
Para carteiras sem custódia, você tem controle total sobre suas chaves privadas, pois é responsável por mantê-las seguras. Ao mesmo tempo que oferece maior segurança e controle, também atribui a responsabilidade pela guarda inteiramente ao usuário.
No domínio do blockchain, sua chave privada é fundamental. Ele concede acesso aos seus acervos de criptomoedas. Perder sua chave privada significa perder seus fundos, pois não há mecanismo integrado para recuperação ou transferência sem ela.
Ao contrário das contas tradicionais, as contas blockchain não oferecem opções de e-mail ou login social. Embora algumas carteiras estejam explorando métodos criptográficos avançados para autenticação, esta abordagem ainda está em seus estágios iniciais. Outras carteiras priorizam a experiência do usuário, oferecendo soluções de custódia, que são mais fáceis de usar, mas que se afastam dos princípios básicos da Web3 que enfatizam o controle do usuário.
Existem vários tipos de carteiras blockchain, sendo as extensões de navegador e carteiras móveis as escolhas mais populares. Muitas vezes, as carteiras móveis podem se conectar perfeitamente aos navegadores para maior comodidade.
Uma carteira típica sem custódia armazena sua chave privada internamente com segurança, nunca a expondo por meio de uma API (portanto, não há risco de ela ser comprometida). A carteira oferece dois componentes externos: uma interface de usuário (UI) para interagir com sua criptografia e uma API externa para que os desenvolvedores se integrem às funcionalidades da carteira.
Agora que exploramos os fundamentos do blockchain, estamos prontos para dar o próximo passo: projetar nosso próprio jogo! Não se preocupe, não iremos mergulhar na codificação ainda. Em vez disso, vamos usar nosso novo conhecimento para imaginar um conceito de jogo e decompô-lo passo a passo, começando com uma visão geral de alto nível.
Para construir uma base sólida, vamos nos inspirar em um clássico como Super Mario Bros. e infundi-lo com elementos P2E emocionantes.
Um aspecto crítico do nosso jogo Mario é estabelecer um modelo económico sustentável. Isso significa evitar “esquemas Ponzi” que prevalecem em muitos jogos do tipo jogue para ganhar (P2E). Num modelo sustentável, os ganhos dos utilizadores serão equilibrados com o fluxo de receitas global do jogo. Este foco na saúde a longo prazo é essencial porque, ao contrário dos esquemas Ponzi, que são fáceis de criar mas, em última análise, insustentáveis, a construção de uma economia P2E próspera requer uma concepção e planeamento cuidadosos.
Como os usuários podem ganhar dinheiro em nosso jogo? Digamos que quaisquer moedas coletadas no jogo (Mario Coin - MC) possam ser trocadas por uma criptomoeda (FT).
Para evitar “ganhar dinheiro do nada”, apresentaremos várias maneiras para os jogadores gastarem seu MC em itens e melhorias significativas no jogo, como:
Nosso jogo Mario pode gerar receita além dos gastos do usuário por meio de vários métodos:
Para manter o fornecimento geral de tokens sob controle e reduzir a pressão sobre a taxa de câmbio, você pode integrar recursos adicionais, como opções de piquetagem. Isso incentiva os usuários a manter tokens, reduzindo a circulação e a inflação.
O planejamento completo da economia do jogo antes do desenvolvimento é crucial. Ferramentas como o Planilhas Google podem ajudar a modelar diferentes cenários para garantir um sistema equilibrado e sustentável.
Agora que estamos prontos para seguir em frente, o próximo passo crucial é selecionar a blockchain para hospedar nosso jogo Mario. Esta decisão tem um peso significativo, pois existem inúmeras opções: Ethereum Virtual Machine (EVM) e blockchains não-EVM. Poderíamos até explorar a criação de um blockchain personalizado, adaptado às necessidades do nosso jogo. Além disso, a possibilidade de utilizar vários blockchains simultaneamente merece consideração.
Embora a migração posterior entre blockchains seja tecnicamente possível, é um processo complexo.
As soluções de cadeia única oferecem uma abordagem mais simples em comparação com as implementações de cadeia múltipla. Alguns jogos apresentam opções de múltiplas cadeias essencialmente como jogos independentes (com valores de token não vinculados), o que, em última análise, se traduz em múltiplas instâncias do mesmo jogo. Uma verdadeira experiência multi-cadeia requer a garantia de preços de tokens consistentes em todas as cadeias e a capacidade de vincular perfeitamente NFTs de várias cadeias dentro do jogo.
Ao selecionar um blockchain, você pretende minimizar o tempo e as taxas de “finalidade”, garantindo ao mesmo tempo fortes medidas de segurança. Além disso, é fundamental que a rede escolhida tenha liquidez suficiente.
É essencial reconhecer que a leitura direta de dados em um contrato inteligente nem sempre é eficiente e pode ser demorada para ser implementada. Em vez disso, é aconselhável aproveitar software e serviços externos que ofereçam metadados em um formato adequado.
Os usuários esperam a capacidade de negociar tokens e NFTs sem problemas. Portanto, o blockchain deve fornecer a infraestrutura necessária para tais transações. Caso contrário, você precisará implementá-lo de forma independente.
Escolher o blockchain certo é fundamental para o lançamento bem-sucedido do seu jogo Mario. Isso envolve garantir que o blockchain selecionado tenha toda a infraestrutura necessária que planejamos utilizar. Além disso, ambientes de testnet robustos são cruciais para testar exaustivamente as funcionalidades do nosso jogo durante o desenvolvimento. Isso nos permite identificar e resolver possíveis problemas desde o início.
Nesta fase, selecionamos o blockchain e solicitamos que o usuário faça login no jogo. Embora os usuários devam ter uma carteira para acessar o jogo, a maioria não tem carteira e deseja jogar sem aprender novas complexidades antecipadamente.
Se você pedir ao usuário para criar uma carteira no início do jogo, você terá uma conversão ruim. Você pode fornecer muitas instruções sobre como criar uma nova carteira da melhor maneira, mas a maioria dos usuários ainda se sentirá desconfortável.
Uma boa solução é permitir que os usuários façam login usando as opções web2 e solicitem uma carteira de usuário somente quando o usuário desejar interagir diretamente com o blockchain.
Você pode optar por gerenciar a carteira do usuário de forma custodial. No entanto, esta abordagem pode não ser a mais segura ou ideal para você e para o usuário.
Alternativamente, existem soluções sem custódia disponíveis no mercado, como web3auth e magicklink, que permitem gerenciar carteiras para usuários. No entanto, o suporte ao blockchain é atualmente limitado e você precisará integrar esses serviços à sua plataforma.
Simplesmente ter o token nativo de um jogo não é suficiente para que os usuários façam transações blockchain no jogo. Esta é uma grande barreira para a integração do usuário e muitos jogadores enfrentam esse problema.
Por exemplo, um usuário pode possuir nosso “Token Mario” e querer transferi-lo. No entanto, eles não possuem o token blockchain nativo subjacente, que é essencial para iniciar a transferência. Para realizar transações no blockchain, os usuários precisam adquirir esse token nativo.
Como os usuários adquirem o token nativo? Embora existam opções de compra externa, elas podem ser uma barreira para novos jogadores não familiarizados com a web3.
Idealmente, os desenvolvedores de jogos deveriam resolver esse problema e agilizar o processo para os usuários. Ao minimizar esses obstáculos, os jogadores podem se concentrar em aproveitar o jogo.
Os desenvolvedores de jogos podem implementar um sistema de troca interno ou implementar contratos de proxy de baixo nível dentro do serviço de carteira. No entanto, essas soluções são complexas de implementar.
Uma nova tecnologia promissora chamada “abstração de contas” poderá finalmente resolver este problema. No entanto, ainda é cedo e é muito cedo para tirar conclusões definitivas.
Uma solução mais fácil para os desenvolvedores é financiar as carteiras dos usuários com uma pequena quantidade do token nativo após o registro de uma nova carteira.
Embora os usuários possam possuir NFTs, a leitura direta desses dados dos blockchains se mostra ineficiente para a maioria dos jogos. O blockchain opera como um serviço externo e os eventos dentro dele podem impactar o seu jogo. Manter-se informado sobre esses eventos é crucial.
Felizmente, os contratos inteligentes podem gerar eventos, permitindo que os desenvolvedores os monitorem e acionem respostas em tempo real. Imagine um cenário em que um usuário entra em um nível com um skin NFT. Se a skin for transferida para outro jogador durante o jogo, o jogo deverá reagir impedindo seu uso simultâneo.
Vários projetos web (attarius, moralis, covalent, alchemy, etc) oferecem APIs NFT que agilizam o processo. Essas APIs lidam com tarefas como leitura e rastreamento de metadados, bem como propriedade de tokens. Isso reduz significativamente o tempo de desenvolvimento, permitindo que os desenvolvedores se concentrem na mecânica central do jogo, em vez da integração de blockchain de baixo nível.
No entanto, outro desafio surge com a mutabilidade dos metadados. Alguns NFTs têm usos limitados, como uma skin que só pode ser usada 100 vezes antes de ser “queimada” (destruída). Rastrear esse uso apresenta um problema crítico.
Depender apenas do rastreamento no jogo pode capacitar os golpistas que visam mercados externos. Esses mercados dependem exclusivamente dos dados do URI do token e não têm acesso ao sistema de rastreamento interno do jogo.
O armazenamento no lado do servidor, como a abordagem usada pelo STEPN, oferece conveniência, mas levanta preocupações de segurança devido ao potencial de manipulação de metadados.
O armazenamento on-chain oferece imutabilidade ao armazenar metadados no blockchain. No entanto, isso requer o rastreamento de cada uso na rede, o que incorre em taxas de transação.
A integração blockchain do nosso jogo Mario está quase concluída. Agora, vamos explorar como os NFTs podem atrair usuários.
Alguns jogos arrecadam fundos de desenvolvimento com a venda de NFTs premium durante os estágios iniciais. Esta abordagem garante financiamento e constrói uma base de jogadores leais que aguardam ansiosamente o lançamento do jogo.
É possível usar o 'marketing de vampiro'. Esta estratégia de marketing exclusiva envolve permitir que os usuários integrem NFTs de outros jogos ao seu jogo Mario. Imagine permitir que os jogadores utilizem tênis STEPN em seu jogo! Essa abordagem é direcionada a usuários de jogos diferentes, mas apresenta desafios.
Os padrões NFT variam, dificultando a integração perfeita. Além disso, rastrear alterações de metadados pode ser complexo em alguns casos. Apesar desses obstáculos, a integração NFT entre jogos é uma nova abordagem de marketing indisponível em jogos Web2 tradicionais.
O “marketing de vampiros” pode ser particularmente eficaz quando visa usuários com NFTs subutilizados. Ao permitir que integrem esses NFTs ao seu jogo Mario, você pode ativar esses usuários e potencialmente convertê-los em jogadores ativos.
Embora a integração técnica do blockchain esteja completa, nosso jogo Mario enfrenta vários desafios:
A parte legal em torno da tecnologia blockchain permanece complexa.
Atrair usuários familiarizados com o blockchain e seus benefícios requer recursos adicionais para a educação do usuário.
Muitos mercados de jogos têm restrições a jogos baseados em blockchain, limitando as opções de publicação.
Ao contrário dos itens tradicionais do jogo, os NFTs permanecem propriedade do usuário mesmo depois que os jogadores param de jogar. Isto introduz um novo desafio de inflação. Quando os jogadores saem do jogo, eles podem tentar vender seus NFTs com desconto para recuperar algum valor. Isso pode levar a um fluxo constante de NFTs com desconto dentro do jogo, fazendo com que o valor geral dos itens NFT do jogo diminua. Para combater esta inflação, precisaremos desenvolver continuamente novos recursos e conteúdos que incentivem os jogadores a manter seus NFTs e continuar jogando nosso jogo Mario.
Aqui está uma visão geral de alto nível da estrutura do nosso jogo Mario:
São muitas informações sobre cada assunto por horas e horas. Tentei compactar essas informações e fornecer apenas pontos importantes. Espero que tenha sido útil para você