如何在StarkNet上构建链上游戏?
在三月初,Starknet Foundation宣布成立游戏委员会,以推动Starknet游戏生态系统的发展,并专门拨款5000万STRK(价值1.20亿美元)用于资助游戏委员会推荐的提案。现在是时候学习如何在Starknet上制作链上游戏了(Starknet生态系统鼓励更多的链上游戏,而非GameFi游戏)。
区块链游戏未能实现其承诺。规模限制和高成本使大多数链上游戏只能局限于游戏资产的代币化。但借助Starknet提供的廉价和快速交易以及新的Dojo加密游戏引擎,不仅拥有游戏内资产的承诺,还有将游戏逻辑在链上证明的承诺,正在变为现实。
截至2023年,全球游戏市场的估值为2450亿美元,是全球娱乐产业中最大的细分市场之一。而区块链游戏凭借其无限的互操作性承诺,提供了一个比当前情景更令人兴奋的游戏世界的机会。就像多人游戏为游戏生态系统增添了全新的可能性,链上游戏也可以变得更加有趣和相关。
但这一承诺遭遇了区块链的现实——交易成本高且速度慢。这是游戏绝对不能承受的两个问题。因此,成功创建链上游戏几乎是不可能的。
但随着有效性Rollup技术的成熟,链上游戏的承诺终于得以兑现。
在本文中,我们将探讨Starknet所提供的高TPS如何使链上游戏的承诺得以实现。我们还将看看Dojo——第一个社区构建的可验证游戏引擎——如何利用Starknet赋能创作者。最后,我们将展望Dojo的未来,以及它为区块链游戏解锁的潜力。
加密游戏
当我们谈论区块链游戏时,区块链所支持的两个最流行的理念是游戏资产的所有权和互操作性。
游戏资产的所有权意味着游戏资产属于用户拥有的钱包。换句话说,这些资产不属于游戏开发者或存储在中心化服务器上的简单电子邮件账户,游戏开发者可以远程删除这些账户。在区块链游戏中,您创建或获得的资产真正属于您。
一旦这些资产属于您,游戏便可以实现互操作性。通过互操作性,一个游戏中的角色和资产可以转移到另一个游戏或世界。如果您在某个游戏中投入了数百小时,但决定不再玩,您可以将这些辛苦获得的资产带到您选择的新游戏中。
为了实现这两个概念,游戏必须在链上构建。这意味着所有游戏内资产、玩家所采取的所有行动以及任何其他状态变化都必须作为交易发生在区块链上(每个行动单独交易或定期推送的聚合交易)。在一个相对去中心化的区块链上,单个交易可能需要几美分到几百美元(在拥堵时),并且可能需要几分钟或更长时间。显然,这使得在这样的平台上运营大规模游戏基础设施变得极其昂贵、缓慢且不切实际。
Starknet与低成本计算
但随着有效性卷积(validity rollups)如Starknet的出现,所有这一切正在发生变化。
Starknet是一个由StarkWare开发的第二层有效性卷积(通常称为零知识卷积),它使用称为STARKs的加密系统来大幅降低计算和存储成本。(要了解有关Starknet上加密证明的更多信息,请参考这里的入门文章。)
Starknet(以及Starknet的智能合约语言Cairo)允许去中心化应用(dApps)以最低的成本处理高TPS,同时仍能享受以太坊的安全性。这些便宜且快速的交易正是解锁区块链游戏潜力所需的。游戏现在可以完全在链上进行,快速且经济实惠。
但即使具备了链上能力,区块链游戏要想蓬勃发展,还需要第二个关键构建块:可验证的游戏引擎。
什么是游戏引擎
游戏引擎是支持您喜爱的游戏中美丽场景、快速玩家移动和逼真角色行为的软件框架。游戏引擎通常包括库和支持程序,为开发者提供一个框架,这样他们就不必为每个游戏从头开始重建基本系统(如物理、图形和游戏机制)。游戏引擎还可以包括音频和视频处理、3D效果渲染以及人工智能功能。
游戏引擎是构建游戏的舞台。
我们喜爱的许多游戏的存在都归功于世界上最受欢迎的两个游戏引擎:Unity和Unreal Engine。Unreal Engine由Epic Games开发,已被用于《堡垒之夜》、《街头霸王V》和《战争机器》系列等热门作品。Unity,作为游戏引擎行业的另一大参与者,已让《炉石传说》、《奥日与迷失森林》和《精灵宝可梦Go》等游戏变为现实。
由于Starknet解锁了加密游戏的潜力,许多项目开始在Starknet上开发游戏。但目前仍缺少一种加密游戏引擎,能够让开发者在不需要为基本物理、逻辑和游戏机制编写自定义代码的情况下构建游戏,同时保持在链上。
Dojo – 第一个可验证的游戏引擎
Dojo就是这样一种加密游戏引擎。它是一个社区构建的、可验证的游戏引擎和工具链,用于构建链上游戏和自主世界。它将加密游戏的承诺变为现实。
使用Dojo的Starknet上的游戏数量正在快速增长。一些最受欢迎的游戏包括:
Influence – 一款设定在遥远小行星带的宏大战略MMO,拥有玩家主导的开放经济。用户可以购买NFT,允许他们探索和开发小行星。所有小行星都位于同一个世界中,玩家之间可以相互互动。
Realms – 一款策略游戏,拥有8,000个土地地图,每个地图都有特定的名称、形状、大小和地理特征,为用户(这些土地的拥有者)提供链上效用,例如资源生成和可替代住房原件,允许进行经济游戏。
CafeCosmos – 一款基于土地的链上游戏,用户必须高效管理资源。这包括收集资源、耕作、饲养动物、制作家电和家具、交易资产等等。
Dojo组件
Dojo生态系统包含以下组件:
ECS(实体组件系统),采用Cairo编写
Sozu迁移规划工具
Torii网络与索引栈
Katana RPC开发网络
让我们详细了解每个组件。
ECS系统是一种在游戏开发中使用的设计模式,旨在促进更易于维护的代码。ECS系统允许游戏开发者为游戏对象(实体)赋予独特的特征(组件),使整个场景作为一个集成系统工作。
Dojo的ECS框架专为区块链游戏开发而设计,促进模块化、效率和灵活性,这对于管理区块链环境中的独特挑战至关重要。这使得在区块链上创建复杂且动态的游戏成为可能,支持多样的游戏机制和互动,同时利用区块链技术的透明和去中心化的优势。
此外,由于Dojo是用Cairo编写的,它最大化了需要证明的代码的效率。(要了解更多关于Cairo的细节以及我们所说的可证明性,建议阅读这篇文章。)
Sozo是一个专门为构建和迁移规划而调整的工具链。换句话说,Sozo可以用于在Starknet上部署开发的游戏。通过简单的`sozo migrate`命令,可以将游戏“世界”的一个实例部署到链上。Sozo 目前仅作为命令行界面(CLI)工具可用,但图形用户界面(GUI)正在开发中。
Torii 是一个全面的索引和网络层,专为 Dojo 世界设计。由于 Torii 系统建立在 Dojo 之上,它旨在索引在链上部署的游戏世界中的任何事件。它系统性地组织 Dojo 世界的状态,使客户查询数据变得方便高效。考虑到游戏中的许多状态变化——想象每次点击都是一次状态变化——高效的查询系统是 Dojo 堆栈上的一项有用功能。对 Torii 的查询使用 GraphQL 进行。
Katana 是一个极其快速的本地 Starknet 节点,旨在支持 Dojo 的本地开发。Katana 允许开发者在这个“开发网络”上测试他们的应用程序,以实现快速的本地开发。开发者可以使用 Katana 网络测试游戏中发送的交易。Katana 提供便捷的 RPC 方法,可以根据需要更改网络的配置(例如,改变区块时间或允许零费用交易等)。此外,Katana 支持 Starknet JSON-RPC 规范的 v0.3.0 版本(截至 2023 年 6 月的最新版本)。在 Katana 上可以使用原生 Starknet JSON 调用,如 starknet_getTransactionReceipt、starknet_getStorageAt。
Dojo 和加密游戏的未来
Dojo 社区持续进行研究和建设,以推动加密游戏的发展。除了改进现有组件外,主要开发者还在致力于:
L3s 游戏
乐观更新
客户端证明
跨链资产转移
让我们逐一看看每个项目及其对游戏的意义。
L3s 游戏 – Dojo 正在研究将游戏开发为 L3s 在 Starknet 上的可行性。这意味着在 Starknet 之上部署一条独立的链,定期证明其交易的执行并将证明提交给 Starknet(L2)。Starknet 将这个证明与网络上的其他交易进行聚合,并将证明提交给以太坊 L1 进行验证。这个解决方案有可能将游戏的可扩展性提高几倍。(作为额外的步骤,考虑一下每次玩家在游戏中尝试一个关卡时,是否会在游戏层之上构建一个一次性使用的新层。)
乐观更新——我们有多少次静静等待钱包中显示“交易进行中……”的文字变为绿色,并显示交易为“已验证”?很多。如果每个玩家在游戏中进行的每一步都作为单独交易发送,玩家将会浪费大量时间等待交易被接受。
乐观更新——这是Dojo正在为其技术栈增加的一个额外功能——通过在客户端(即浏览器内部)乐观地运行交易,消除了这个问题,让玩家能够继续游戏。如果由于某种原因,交易的结果与在浏览器中运行的结果不同,游戏会进行调整。
客户端证明——除了在客户端运行乐观更新,Dojo还在探索对链上发送的交易部分进行客户端证明的可能性。这将允许在Dojo之上构建的游戏有效地隐藏用户传递的一些输入,因为可以在客户端创建接收这些输入的ZK证明。这个ZK证明随后可以发送到链上给序列器,后者执行交易的其余部分。
利用存储证明——存储证明是一种加密方式,用于存储区块链信息,以便在链间共享。与预言机类似,它们提供信息真实性的证明。但与预言机不同的是,这种证明不需要对第三方的信任——在存储证明中,信任是内置于存储中的。存储证明还允许证明在以太坊之上构建的另一个链或层的状态的有效性。
Dojo正与Herodotus团队合作,在Dojo中实现存储证明,从而使跨链资产转移变得不必要。通过存储证明,可以证明来自不同链的资产的所有权,用户可以在不同链或层上的不同游戏中使用他们的资产。(参见上文关于在Starknet之上构建为独立L3s的游戏部分。)
本文最初来自StarkNet
https://t.co/umwqB9IKpd