paint-brush
玩赚游戏有什么用经过@systerr
8,750 讀數
8,750 讀數

玩赚游戏有什么用

经过 Andrey Logunov17m2024/04/27
Read on Terminal Reader

太長; 讀書

深入研究区块链 (EVM)、NFT、NFT 元数据标准、游戏经济、授权以及如何将 NFT 融入游戏 无代码,简要技术概述。
featured image - 玩赚游戏有什么用
Andrey Logunov HackerNoon profile picture
0-item


大家好!让我们来探索一下边玩边赚的游戏。我们将讨论如何创建一个游戏并将 NFT 纳入其中。本文将仅关注区块链机制,不会深入探讨游戏开发。我将用简单的语言解释所有内容,并解释所有必要的部分。那么,让我们开始吧!


为什么是该主题(游戏演变和状态)

我从 2018 年开始投身区块链开发,在此期间,我看到很多人在玩“边玩边赚”(p2e)游戏,却不知道它是如何运作的。有很多糟糕的项目,许多人试图制作自己的 p2e 游戏,却不了解“庞氏骗局”的概念或技术实现。


本文的想法最初诞生于 2022 年中期,当时我参加了一场加密货币活动的线下演讲。随后,我在不同国家不同活动上的演讲中多次修改了本文的内容。此外,我还尝试通过创建该领域的一家科技初创公司来解决所有这些问题。在此过程中,我见证了人们对该主题的浓厚兴趣以及对基础知识的许多误解。


互联网最初是 web1,用户主要消费信息(阅读)。后来,它演化为 web2,用户也开始在互联网上写作(社交网络)。现在,我们正在展望 web3,用户除了消费和创作内容外,还可以在互联网上真正拥有一些东西。


从 20 世纪 60 年代简单的电脑游戏诞生以来,游戏发展迅速。它们最初是独立游戏,现在我们看到许多在线游戏,玩家“拥有”一些游戏物品或角色。还有游戏物品市场,其中一些提供点对点 (p2p) 物品交易。然而,在大多数情况下,这些物品并不真正属于游戏玩家;它们属于游戏。未来的发展将把物品所有权从游戏转移到游戏玩家,有些游戏已经这样做了,但这一功能的普及率仍然有限。


加密游戏热潮始于 2021 年。截至 2024 年,市场仍属于独立工作室,大型供应商几乎不存在。大多数游戏仍在兼容 EVM 的区块链上,但有一种趋势是从通用区块链迁移到专为游戏目的而构建的区块链。


2023 年,许多加密游戏关闭,玩家也因加密市场低迷而感到沮丧,导致玩家损失时间和金钱。然而,技术仍然存在,我预计越来越多的开发人员会寻找对他们和玩家来说都是新的东西(web3)。我希望我的文章能帮助他们从技术角度了解它的基本工作原理。


本文将仅介绍 EVM 区块链,因为它们仍然是最流行的链。但是,您应该知道,还有许多其他类型的链可以解决下面描述的一些问题。


区块链基础知识

区块链的概念非常简单——我们有一些包含一些交易的区块。新区块依赖于前一个区块,因此不可能替换已经存在的区块。


很简单,不是吗?但实际上,我们可能会遇到多个问题,这些问题会引导我们认识到区块链的一些重要特征:

  1. 区块创建时间
  2. 最终确定时间
  3. 手续费


不同的区块链类型有不同的方法,但我们将重点关注最常见的 EVM 类型区块链(以太坊、Polygon、BNB Chain 等)。


通常,区块的生成时间是固定的(以太坊是 12 秒,BNB Chain 是 3 秒,等等)。这是我们区块链的第一个基本属性。


在现实世界中,区块链分布在多个通过互联网连接相互链接的节点(服务器)上。在极少数情况下,可能会有多个基于同一父级的区块,从而导致“分叉”。


区块链分叉


区块链就是为此类情况而设计的,它将解决这种情况。但作为交易在红色区块(孤立区块)中的最终用户,您并不高兴,因为您的交易可能会变得无效。这就是“最终性”发挥作用的地方。最终性是指交易无法逆转的时间。对我们来说,这是区块链的第二个基本属性。


任何对区块链的写入操作都会对您或您的用户产生一定成本。区块链有自己的内部经济模型,维护和运行大量不同的节点以实现去中心化需要大量资源。在大多数情况下,这种资源是向最终用户收取的交易费。区块链有自己的每秒交易限制,动态交易费是一种避免区块链受到 DDoS 攻击的内部机制。


大多数情况下,交易发起者应该以本国货币支付费用,而不是用游戏代币或 NFT 支付。


交易费用对我们来说是区块链的第三个基本属性。


为什么这三个指标对我们很重要?这主要是因为终端用户体验。玩家希望专注于游戏玩法,而不是技术障碍。作为游戏开发者,你的工作就是通过优先考虑直观的 UI/UX 设计和简单的入门来简化这一过程


让我们想象一个简单的国际象棋游戏,其中每一步棋都存储在区块链上。玩家应该为每一步支付少量交易费,并且玩家应该等到区块最终确定(玩家每次移动之间可能需要几分钟)。这看起来不太好,不是吗?用户会用用户体验来换取区块链的使用权吗?大多数玩家会更喜欢像现在这样玩游戏,而不是忍受在那里使用区块链的痛苦。


但希望还在!目前有几种解决方案可以弥合区块链游戏和传统游戏之间的差距。


代币,那是什么

区块链的核心功能有限,在大多数情况下,这还不够。第一代区块链(如比特币)的定制能力有限。第二代区块链(以太坊)引入了编写自定义程序(应用程序)并将其放在区块链上自己的空间(称为智能合约)的能力。然后用户可以与此智能合约交互以执行某些操作,并且智能合约可以与其他智能合约交互。智能合约在称为以太坊虚拟机(EVM)的特殊环境中执行。目前,市场上有不同的虚拟机,但 EVM 仍然是最受欢迎的。


一个简单的比喻——手机的进化。旧手机只能打电话和发短信。现代手机仍然具有打电话和发短信的功能,但您可以安装其他软件来添加新功能。


智能合约开启了创建自己的货币(代币)的能力。为了使这些代币与任何钱包软件兼容,有多种代币标准。最受欢迎的是 ERC20、ERC721 和 ERC1155。


标准只是解释了智能合约的外部接口,但了解其实现方式可以有所不同,也可以包含一些附加功能,这一点非常重要。


代币有两种类型:同质化代币 (FT) 和非同质化代币 (NFT)。FT 代币就像真钱一样 - 您可以拥有同一种代币的多个副本。NFT 是独一无二的,就像一幅画或一个特定的游戏物品或角色一样。


ERC20标准对FT进行了描述,其接口如下:

 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)


重要的是要明白,代币不会在物理上离开智能合约。智能合约只是跟踪用户代币。当你转移代币时,它只会更新内部记录(如表格)中的金额。这就是为什么在某些情况下,你需要将智能合约地址添加到你的钱包软件中。


ERC20 内部原理


NFT 标准本身是相同的,但我们还有其他方法:

 function ownerOf(address _owner) public view returns (uint256 balance) function tokenURI(uint256 _tokenId) external view returns (string )


每个 NFT 代币都有一个唯一的标识符 (ID),并且始终由某人拥有。这反映在代币存储实现中,它通常使用一个表来记录代币 ID 及其当前所有者。


ERC721 内部原理


令牌元数据

但是你可能会问,代币的图片在哪里?这里我们有“代币元数据”的概念。与核心 NFT 标准不同,代币元数据是单独存储的,并使用不同的规范。事实上,一些 NFT 甚至可能没有任何与之关联的元数据!


智能合约方法tokenURI可以返回此元数据 URI(位置)。有多种方式可以存储代币元数据 - 链上和链下。

  • 链上:在此,数据被转换为特殊代码格式(base64 编码)并直接存储在区块链本身中。虽然安全,但由于存储空间有限,这可能会很昂贵。
  • 链下:这提供了更大的灵活性和更低的成本。在这里,数据存储在外部。


链下存储主要可以分为两类:

  • 不可变存储:这确保数据不能被更改,如 IPFS(星际文件系统)或 Arweave。
  • 中央存储:由单一实体控制,例如游戏开发商的服务器或 Amazon S3 存储。


Token 元数据通常采用 JSON 文件格式,但理论上可以是任何格式。以下是典型元数据结构的示例


{ "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" }, .... ] }


重要的是要明白,可变元数据(可编辑数据)可能会破坏真正的 Web3 所有权。使用可变元数据,您实际上拥有的是代币 ID,而不是它所代表的内容。


假设您在游戏中购买了“能量为 5 的魔法物品” NFT。如果包含此信息的元数据存储在游戏开发者的服务器(集中存储)上,游戏开发者稍后可能会决定重新平衡游戏并将您的物品的能量更改为 3。虽然从技术上讲您仍然拥有该代币,但它代表的是不同的物品。这种情况凸显了可变、集中元数据的潜在缺点。


相比之下,Web3 依靠不可变元数据(不可更改的数据)蓬勃发展。这可确保与 NFT 相关的信息保持永久且可验证。


很好的文档,描述了市场如何使用元数据https://docs.opensea.io/docs/metadata-standards

真实元数据

让我们探索流行的边玩边赚 (P2E) 游戏 STEPN 的真实元数据。这款游戏不久前很流行,你很可能听说过有人花很多钱买运动鞋。


我们知道代币 ID 是 ' 105026695079 ',智能合约地址是 ' 0x69d60ad11feb699fe5feeeb16ac691df090bfd50 ',并且它建立在BNB 链上。但是我们如何访问元数据呢?


主要有两种方法:

  • 低级区块链调用:这需要技术专长。
  • 区块链浏览器:这些是用户友好的网站,可以索引区块链数据以便于访问。


让我们使用 BSCScan 浏览器来探索智能合约。导航到“读取”选项卡 ( https://bscscan.com/address/0x69d60ad11feb699fe5feeeb16ac691df090bfd50#readContract ) 并找到tokenURI函数。输入 token ID 并点击“查询”。浏览器将检索 token URI,在本例中为: https://api.stepn.com/run/nftjson/104/105026695079


仔细查看此元数据。您会注意到 STEPN 拥有它并可能对其进行修改。此外,耐久性和等级等某些属性似乎会随时间而变化。在构建我们自己的 P2E 游戏时,我们将更深入地探讨这一概念。


区块链账户

我们已经介绍了一些关键的区块链概念,现在让我们重新回顾一个大家都熟悉的概念:授权。没有授权,你就无法在区块链上执行操作。那么,问题仍然存在:我们如何获得授权?


区块链采用非对称加密系统,其中存在两对密钥:私钥和公钥。你可以从私钥生成公钥,但不能反过来(这是单向数学运算)。


EMV 区块链上有两种主要类型的账户:外部拥有账户(EOA)和智能合约账户。


外部拥有的账户由私钥控制。私钥是一段 32 字节的数据,通常用一长串十六进制字符(64 个字符)表示。这种格式对最终用户来说不太方便,也很难记住。


为了解决记忆性问题,引入了“助记词”的概念。助记词是 12、24 个或更多常用词的列表,可作为私钥的人类可读表示。重要的是,它不是实际的私钥本身,而是一种安全生成私钥的方法。

您可以免费为自己生成无限数量的私钥。


与 EOA 不同,智能合约账户不需要私钥进行交互,因为它们已经驻留在区块链上。这为创建具有高级功能的可编程钱包打开了大门。


最终用户不会使用私钥直接与区块链交互。相反,我们依赖加密钱包 - 可以安全存储私钥并使用私钥代表您签署交易的软件应用程序。


钱包主要有两种模式——托管钱包和非托管钱包


托管意味着有人为您保管私钥。虽然方便,但由于您依赖托管人的安全措施,因此会引入中心故障点。


对于非托管钱包,您可以完全控制您的私钥,因为您有责任保证它们的安全。在提供更高的安全性和控制力的同时,它也将保管的责任完全放在用户身上。


在区块链领域,你的私钥至关重要。它授予你访问加密货币资产的权限。丢失私钥就意味着丢失资金,因为没有内置机制可以恢复或转移资金。


与传统账户不同,区块链账户不提供电子邮件或社交登录选项。虽然一些钱包正在探索用于身份验证的高级加密方法,但这种方法仍处于早期阶段。其他钱包通过提供托管解决方案来优先考虑用户体验,这些解决方案更易于使用,但偏离了强调用户控制的 Web3 的核心原则。


区块链钱包有多种类型,其中浏览器扩展和移动钱包是最受欢迎的选择。移动钱包通常可以与浏览器无缝连接,以增加便利性。


典型的非托管钱包会将您的私钥安全地存储在内部,绝不会通过 API 暴露它(因此不存在被泄露的风险)。钱包提供两个外部组件:一个用于与您的加密货币交互的用户界面 (UI) 和一个供开发人员与钱包功能集成的外部 API。


典型的非托管钱包


打造我们的边玩边赚游戏 (P2E)

现在我们已经探索了区块链的基础知识,我们准备进行下一步:设计我们自己的游戏!别担心,我们现在还不会深入编码。相反,让我们利用新获得的知识来想象一个游戏概念,并从高层概述开始,逐步分解它。


为了打下坚实的基础,让我们从《超级马里奥兄弟》这样的经典游戏中汲取灵感,并将其与令人兴奋的 P2E 元素融合在一起。


马里奥游戏


游戏经济

我们的马里奥游戏的一个关键方面是建立可持续的经济模式。这意味着要避免许多边玩边赚 (P2E) 游戏中普遍存在的“庞氏骗局”。在可持续的模型中,用户收入将与游戏的整体收入流保持平衡。这种对长期健康的关注至关重要,因为与容易创建但最终不可持续的庞氏骗局不同,建立蓬勃发展的 P2E 经济需要精心设计和规划。


用户如何在我们的游戏中赚钱?假设任何收集的游戏币(Mario Coin - MC)都可以兑换成加密货币(FT)。


为了防止“无中生有”,我们将为玩家推出各种方式来让他们将 MC 花费在有意义的游戏内物品和提升上,例如:

  • 独特角色皮肤(NFT):玩家可以在市场上购买这些皮肤,以实现个性化和潜在的价值升值。
  • 使用 MC 补充体力可让玩家继续游戏。
  • 使用 MC 的可选级别跳过(考虑这是否会破坏平衡)为玩家提供了便利。
  • 使用 MC 铸造新角色可以激励专注的玩家并延长游戏时间。


我们的马里奥游戏可以通过以下几种方式产生除用户支出以外的收入:

  • 战略性广告投放,特别是针对像 Pokemon Go 这样的基于位置的游戏。
  • 二级 NFT 市场费用(版税)为游戏提供了持续收入。
  • “战斗竞技场”。这些功能可以产生费用,帮助管理游戏代币通胀。
  • NFT 租赁。为玩家(通过租赁费)和游戏创造收入来源。


为了控制代币总供应量并减少汇率压力,您可以集成质押选项等附加功能。这些功能可激励用户持有代币,从而减少流通量和通货膨胀。


在开发之前彻底规划游戏的经济至关重要。Google Sheets 等工具可以帮助模拟不同的场景,以确保系统的平衡性和可持续性。


区块链选择

现在我们已经准备好继续前进,下一个关键步骤是选择区块链来托管我们的马里奥游戏。这个决定非常重要,因为有很多选择:以太坊虚拟机 (EVM) 和非 EVM 区块链。我们甚至可以探索创建一个根据我们游戏需求量身定制的区块链。此外,同时使用多个区块链的可能性值得考虑。


虽然以后在区块链之间迁移在技术上是可行的,但这是一个复杂的过程。


与多链实现相比,单链解决方案提供了一种更简单的方法。有些游戏将多链选项本质上作为独立游戏(具有不关联的代币价值)呈现,最终转化为同一游戏的多个实例。真正的多链体验需要确保跨链的代币价格一致,并能够无缝链接游戏中各个链的 NFT。


在选择区块链时,您的目标是在确保强大的安全措施的同时,尽量缩短“最终确定”时间和费用。此外,所选链具有足够的流动性也至关重要。


必须认识到,直接读取智能合约中的数据并不总是有效的,而且实施起来可能很耗时。相反,建议利用以适当格式提供元数据的外部软件和服务。


用户希望能够无缝地交易代币和 NFT。因此,区块链应该为此类交易提供必要的基础设施。否则,您需要独立实现它。


选择正确的区块链对于成功推出 Mario 游戏至关重要。这涉及确保所选区块链具有我们计划使用的所有必要基础设施。此外,强大的测试网络环境对于在整个开发过程中彻底测试我们的游戏功能至关重要。这使我们能够尽早发现并解决任何潜在问题。


用户入职

在这个阶段,我们选择了区块链并提示用户登录游戏。虽然用户应该有一个钱包才能访问游戏,但大多数人没有钱包,并且希望在不预先了解新复杂性的情况下玩游戏。


如果你在游戏开始时就要求用户创建钱包,转化率会很低。你可以提供很多关于如何以最佳方式创建新钱包的说明,但大多数用户仍然会感到不舒服。


一个好的解决方案是允许用户使用 web2 选项登录,并且仅当用户希望直接与区块链交互时才请求用户钱包。


您可以选择以托管方式自行管理用户的钱包。但是,这种方法对您和用户来说可能不是最安全或最理想的。


另外,市场上还有非托管解决方案,例如 web3auth 和 magicklink,它们允许您为用户管理钱包。但是,它们对区块链的支持目前有限,您需要将这些服务集成到您的平台中。


原生代币支付问题

仅拥有游戏的原生代币不足以让用户进行游戏内区块链交易。这是用户入门的一大障碍,许多玩家都遇到了这个问题。


例如,用户可能持有我们的“Mario Token”并希望转让。但是,他们缺乏底层的原生区块链代币,而这对于启动转让至关重要。要在区块链上进行交易,用户需要获取此原生代币。


用户如何获取原生代币?虽然存在外部购买选项,但对于不熟悉 web3 的新玩家来说,它们可能是一个障碍。


理想情况下,游戏开发者应该解决这个问题,并简化用户的流程。通过尽量减少这些障碍,玩家可以专注于享受游戏。


游戏开发者可以实现内部兑换系统,或者在钱包服务中实现低级代理合约。但这些解决方案实现起来很复杂。


一种名为“账户抽象”的新技术或许最终能解决这个问题。不过,现在还为时过早,现在下结论还为时过早。


对于开发人员来说,一个更简单的解决方案是在新钱包注册时向用户钱包注入少量原生代币


NFT 链接

虽然用户可能拥有 NFT,但对于大多数游戏来说,直接从区块链读取这些数据效率低下。区块链作为外部服务运行,其中的事件可能会影响您的游戏。随时了解这些事件至关重要。


幸运的是,智能合约可以生成事件,让开发人员可以监控它们并触发实时响应。想象一下这样一个场景:用户进入一个带有皮肤 NFT 的关卡。如果在游戏过程中皮肤被转让给另一个玩家,游戏应该做出反应,阻止同时使用皮肤。


一些 Web 项目(attarius、moralis、covalent、alchemy 等)提供了 NFT API 来简化流程。这些 API 可处理读取和跟踪元数据以及代币所有权等任务。这大大缩短了开发时间,使开发人员可以专注于核心游戏机制,而不是低级区块链集成。


NFT 到游戏


然而,元数据的可变性也带来了另一个挑战。一些 NFT 的用途有限,比如皮肤只能使用 100 次,之后就会被“烧毁”(销毁)。跟踪这种使用情况是一个关键问题。


仅依赖游戏内跟踪可能会让诈骗者有机会针对外部市场。这些市场仅依赖于来自令牌 URI 的数据,无法访问游戏的内部跟踪系统。


服务器端存储(例如 STEPN 使用的方法)提供了便利,但由于可能存在元数据操纵的问题,因此引发了安全问题。


链上存储通过将元数据存储在区块链上来提供不变性。然而,这需要在链上跟踪每次使用情况,从而产生交易费用。


营销

我们的马里奥游戏的区块链集成即将完成。现在,让我们探索 NFT 如何吸引用户。


有些游戏在早期阶段通过出售优质 NFT 来筹集开发资金。这种方法可以确保资金安全,并建立起一批热切期待游戏发布的忠实玩家群。


可以使用“吸血鬼营销”。这种独特的营销策略包括允许用户将其他游戏中的 NFT 集成到您的马里奥游戏中。想象一下让玩家在您的游戏中使用 STEPN 运动鞋!这种方法针对不同游戏的用户,但面临挑战。


NFT 标准各不相同,因此无缝集成非常困难。此外,在某些情况下,跟踪元数据更改可能很复杂。尽管存在这些障碍,但跨游戏 NFT 集成是一种传统 Web2 游戏中无法实现的全新营销方法。


“吸血鬼营销”在针对未充分利用 NFT 的用户时尤其有效。通过允许他们将这些 NFT 集成到您的马里奥游戏中,您可以激活这些用户并可能将他们转化为活跃玩家。


未来的挑战

虽然区块链技术集成已经完成,但我们的马里奥游戏面临着几个挑战:


围绕区块链技术的法律部分仍然很复杂。


吸引熟悉区块链及其优势的用户需要额外的资源进行用户教育。


许多游戏市场对基于区块链的游戏有所限制,限制了发布选项。


与传统的游戏内物品不同,即使玩家停止玩游戏,NFT 仍归用户所有。这带来了通货膨胀的新挑战。当玩家离开游戏时,他们可能会尝试以折扣价出售他们的 NFT 以收回一些价值。这可能导致打折的 NFT 不断涌入游戏,导致游戏内 NFT 物品的整体价值下降。为了应对这种通货膨胀,我们需要不断开发新功能和内容,以激励玩家保留他们的 NFT 并继续玩我们的马里奥游戏。


结论

以下是我们对马里奥游戏结构的概述:


P2E游戏方案



每个主题都有很多信息,可以花上几个小时。我试图压缩这些信息,只提供要点。希望这对你有用