以更远大的视角看,随着基建设施的提升,不仅仅是游戏而是各种复杂想法的构建与实现都会通过 MUD 进行,并在更复杂的 Rollup 方案上融合交互,区块链的新范式也许会从全链游戏开始。
撰文:Solaire,YBB Capital
过去由于区块链链表结构的限制,在链上构建一个实用的 DApp 一直不是件简单的事情。但即便受此限制,探索者们也从未停下过前进的步伐,随着「x * y = k」这段著名的恒定乘积池公式诞生于世,短短数百行代码的 Uniswap 引领 DeFi 彻底改变了 Crypto 的叙事。简单的 DApp 在开发者的巧思下尚能达到如此高度,那么复杂的 DApp 应用呢?比如把游戏或者社交平台完全搭建在链上?这在过去可能是一个疯狂的想法,但在 Rollups 打开可扩展性的今天,这种可能性开始变得微妙。
DeFi 曾给 Crypto 带来了数千亿美元的 TVL,复杂性倍增的 DApp 如何实现?会引领 Crypto 再次走上一个新的高度吗?或许处在发展初期的全链游戏能给我们答案。本文的内容将从全链游戏的历史、全链游戏目前的定义、全链游戏创造与运行的实现方式以及全链游戏对 Crypto 未来的意义,这四个部分对全链游戏进行一次剖析。
全链游戏的历史可以追溯到 10 年之前,Mikhail Sindeyev 分叉 Namecoin 并构建了世界上第一个区块链游戏《Huntercoin》。《Huntercoin》于 2013 年作为一个实验原型开始,并迅速发展了一批在线狂热追随者,得到了许多著名的 bitcointalk.org 成员的支持。凭借科技爱好者对视频游戏的热爱,最受欢迎的 Huntercoin 帖子获得了超过 380,000 次的浏览。然而遗憾的是 Mikhail Sindeyev 在 2014 年 2 月中风去世了,《Huntercoin》的开发也陷入困境,代币 HUC 在 2015 年几乎归零,虽然全链游戏的第一次尝试并没有成功,但庆幸的是全链游戏的故事仍在继续。
2020 年 Gubsheep(Brian Gu)、Alan Luo、SCOTT SUNARTO ,受到小说《三体:黑暗森林》的启发,开发了一款同名 MMORTS 太空征服游戏《Dark Forest》。游戏建立在以太坊之上,并将所有规则、逻辑写入到智能合约,即每一步动作都是一笔链上交易的全链游戏。游戏内容的核心部分则利用了 ZK-Snarks(零知识证明)技术去制作战争迷雾以复现三体小说中黑暗森林法则的定义(一旦某个宇宙文明被发现,就必然遭到其他宇宙文明的打击)。
比如当玩家想要采取行动时,受到黑暗森林的法则影响,玩家不能暴露自己的坐标,却要从 A 星球移动到 B 星球,他们需要提交 A 跟 B 的坐标以证明这是有效的,但以太坊的区块信息是完全透明的,《Dark Forest》则通过以下方式去实现信息隐藏。玩家选择要离开的星球和目的地星球,这两个星球的位置是玩家的私有信息。计算要离开的星球和目的地星球的位置的哈希值,然后将这两个哈希值提交到区块链。在这个阶段,玩家会提交一个承诺(Commit 阶段),由于哈希函数的单向性,这些提交的哈希值不能用来确定玩家的实际行星位置。而下一个阶段是验证(Reveal 阶段),在此阶段,玩家生成并提交一个零知识证明,证明他们的行动是有效的。这个证明可以被任何人验证,但不会透露任何关于玩家星球位置的信息。
如此,第一个在信息透明的以太坊上做到隐藏信息的全链游戏就诞生了,这个疯狂又极富想法的实验,很快在整个 Crypto 圈子里引起了轰动,Vtalik(以太坊创始人)甚至在 Twitter 直接转发并称赞了这个游戏。
但《Dark Forest》首发后随着超过 10000 名玩家的涌入,困境也开始显现,以太坊的性能不足以支撑这种复杂应用的运行。游戏上线当天直接堵爆了整个区块链,数万亿的 Gas 被花费。并且由于游戏是基于 DeFi 应用的库和架构设计的,后期再进行优化也只是减缓痛苦并不解决问题。
受到这场实验对 ZK-Snarks 前景的启发以及对全链游戏困境的思考,游戏创始人 Brian Gu 创建了 0xPARC 作为 ZK-Snarks 的研究院,以推动零知识证明的发展,而 0xPARC 的另外一个分支 Lattice 则负责设计维护全链游戏引擎 MUD。另一位创始人 SCOTT SUNARTO 则开始研发全链游戏运行专用的分片 Rollup 框架——World Engine。
零知识证明在今天已经开始了广泛运用,并被各位所熟知,我们接下来讨论的主要是后两者,MUD 引擎与 World Engine,即创造与运行。但在此之前我们需要了解驱动者(0xPARC)对全链游戏的定义与新的认知方式。
基于 0xPARC 加密游戏论文合集《Autonomous Worlds》中的观点,全链游戏至少需要遵循五个标准:
基于这个标准下构建的全链游戏也可将其看为基于区块链为低层的世界,或者说 Autonomous Worlds(自主世界)。
那么何谓世界?世界并非只能指代现实世界,世界的载体可以是小说、电影、游戏、诗歌甚至法律体系。但在这些世界里都是由中心(作者、开发者或者群体)制定框架与规则再传达给我们。这些世界里自主性的程度也是不一样的,比如开放世界游戏里非常知名的《Minecraft》(《我的世界》),玩家拥有极高的自主性,通过对不同方块的搭建,以及规则修改,玩家可以创造只属于他们的世界。而自主性较低的世界可能是小说世界,比如《Harry·Potter》,我们看到的这个魔法世界都是基于 JK 罗琳所创造的规则和框架。
如果把区块链作为世界的基底,区块链毫不含糊地保存了其状态下所有节点实体的集合。此外,它们还用计算机代码正式定义了引入规则。拥有区块链底层的世界可以让其居民参与共识。它们运行一个计算机网络,在每次引入新的实体时达成一致。
从世界的角度来看,有两个区块链概念需要定义:
所以把全链游戏看作以区块链为底层的世界,则这个去中心化世界拥有无限大的自主性,也可以称之为自主世界。
在早期探索全链游戏的新设计过程中,开发者多次受到传统 DApp 架构和用于构建 DeFi 应用的库的局限性的影响。《Dark Forest》和其他早期的全链游戏构建在当时不得不遵循用于构建 DeFi 应用的架构和库,这些架构成为了当时构建全链游戏的默认选择。
早期在创造全链游戏方面的模式可总结为四点:
通过这种模式构建全链游戏非常痛苦,虽然可以不断进行优化以减缓痛苦,但我们都明白这种构建方式还是与使用真正的通用引擎构建相差甚远。
MUD 引擎的诞生来自于开放者们对过去以及现有问题的思考,MUD 是一个构建复杂应用的以太坊应用程序的框架。MUD 提供了一些组织数据和逻辑的约定,并抽象了低级复杂性,使开发者可以专注于应用程序的功能。它标准化了链上数据的存储方式。有了这种标准数据模型,MUD 可以提供所有网络代码来同步合约和客户端状态。
MUD 最新版本目前配备了五个组件:
MUD 的通用性并不止于以太坊主网,只要语言支持,MUD 可以无缝地运作在任何 EVM 兼容的链上,无论是 Polygon、Arbitrum、Optimism 还是 Gnosis Chain。
此外,尽管 MUD 在 Autonomous Worlds(自主世界)和链上游戏社区中是首选框架,但它的应用远不止于此。与此同时,MUD 提供了极大的自由度,不强迫开发者受限于特定的数据模型。简而言之,任何可以通过 Solidity 映射和数组实现的功能,都可以轻松地在 MUD 中完成。而在数据可用性上,无论是在主网还是 Rollups 上部署的 MUD 应用,它们都可以与 ENS 和 Uniswap 等传统以太坊应用程序相媲美。
MUD 作为一套为链上复杂应用设计的高度协同的库和工具,其核心思想围绕三点:
通过三点核心思想我们再以过去的困境为例,看看 MUD 是如何打破复杂应用的枷锁的。
以上是对 MUD 基本构建块,组件的部分使用方式说明,MUD 还可以构建更复杂的场景与应用。
全链游戏的运行对于以太坊来说一直是个巨大的挑战,随着 Rollups 的快速发展,以及坎昆升级的临近,成本大幅下降,速度大幅提高的将来。全链游戏已经蓄势待发,但目前的主流 Rollups 基本是为交易设计的,并没有真正为全链游戏所量身打造的 Rollup。
而 Argus 旗下的核心产品 World Engine 则是真正为了全链游戏所打造的分片架构 Rollup,由于目前还没有公开测试,我们将从项目的博客与演讲中分析 World Engine。
为了实现上述目标,团队回顾了 21 世纪初和 20 世纪 90 年代末并受到启发,像 MMOs 这样的在线游戏刚刚兴起的情况。早期的在线游戏在服务器和网络技术相对有限的情况下,需要找到一种方式来支持大量玩家的互动。「分片」就是其中一种解决方案,它的核心思想是将玩家分布到不同的服务器或「分片」上,每个分片可以独立地托管一部分玩家、游戏地图和数据。
例如,Ultima Online 是一个早期的 MMORPG,它在服务器上实现了分片概念。游戏中的不同分片代表了不同的虚拟世界,每个分片可以容纳一定数量的玩家。这样做的好处包括:
那么如何把这个概念带入 World Engine?与过去的许多分片排序器不同,「World Engine」的设计更适合特定的需求。它的优化方向包括吞吐量和运行时间。为了确保高效的「Tick rate」(即每秒更新频率)和区块时间,它默认是同步的。设计的目标是确保交易被迅速处理,以保持高效的游戏体验或系统性能。在排序方式上采用的是部分排序的方式,而不是强制要求对所有交易进行总排序。这意味着并不要求每个交易都必须在所有其他交易之后发生。这可以减少排序的负担,从而更好地满足高吞吐量和快速区块时间的需求。
这里有两个关键组成部分,EVM Base Shard(EVM 分片)与一个 Game Shard(游戏分片),EVM 分片就是存粹的 EVM 链。而真正的秘密武器是游戏分片,它本质上是一个设计成高性能游戏服务器的迷你区块链。World Engine 具有一个 bring-your-own-implementation 接口,这样我们可以根据我们的喜好定制这个分片。构建的分片,注入到基础分片中。只需要实现一套标准的接口,就像我们熟悉的 Cosmos,Cosmos 有一个 IBC 接口。我们基本上可以将这个整合成一个类似的规范,将自己的分片带到 World Engine 堆栈中。
Cardinal 是 World Engine 的第一个游戏分片实现。它使用 Entity-Component-System (ECS) 游戏架构,一个具有面向数据的架构。这允许并行化游戏,并提高游戏计算的吞吐量。它有一个可配置的「Tick rate」,最高可达每秒 20 次 Tick。对于这里的区块链来说,那就是每秒 20 个区块。另外它还是自我索引的,无需外部索引器。
并且分片还可以通过地理定位,以减少延迟。比如,游戏可能有在美国的排序器,然后亚洲玩家必须等待 300 毫秒的延迟,才能让 transaction 到达排序器。这在游戏中是一个巨大的问题,因为 300 毫秒是很长的时间。如果试图玩一个有 200 毫秒延迟的 FPS 游戏,那基本上就是,在玩 PPT 了。
全链游戏一直是亚洲加密圈内较为冷门的方向,但随着 Starknet 的游戏引擎 Dojo 的推出,以及基于 OP Stack 概念验证型滴答链的开发演示,关于全链游戏的讨论逐渐开始火热。而本文讨论的范围是《Dark Forest》所衍生出的生态,也是目前全链游戏最强大的生态。
通过对其历史和技术上的探究,我们可以发现 Rollup 以及 DApp 还具备极高的上限,以更远大的视角看,随着基建设施的提升,不仅仅是游戏而是各种复杂想法的构建与实现都会通过 MUD 进行,并在更复杂的 Rollup 方案上融合交互,区块链的新范式也许会从全链游戏开始。
关于全链游戏还有许多可扩展的内容,比如从 Loot 衍生出的全链游戏生态推动了 Starknet 发展,又或者是状态同步的实现,ESC 架构的运用。我已将相关阅读链接放在下表,感兴趣的朋友可以阅读了解。
参考文献
1. 原文:Modular Summit Day 1 (Galois Stage) 译文:World Engine:专为全链游戏设计的分片 Rollup 框架
2.Lattice History
3.MUD 开发文档
4.AUTONOMOUS WORLDS
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。