我们很高兴看到每一层的发展过程,新游戏的发布和新引擎的出现。
作者:Ishanee,IOSG Ventures
原用标题:IOSG Weekly Brief | Web3 游戏引擎的网络效应 #181
封面:Photo by Ahmed Atef on Unsplash
Web3 游戏引擎的网络效应
本文为 IOSG 原创内容,仅做行业学习交流之用,文中所提及的项目与 IOSG 无利益关系,不做任何投资建议,请读者在阅读本文时保持客观,仔细甄别信息,DYOR。若读者需转载及引用本文内容,请联系 IOSG 团队获取授权及转载须知。感谢 IOSG Ventures 投研和投后团队的辛苦协作!
前提摘要:我们在 FOG 系列的第一部分中对链上游戏和游戏引擎进行了概述,感谢 Sylve, Tarrence, Andy, Alvirus, Kevin & Iain 对本文的支持。
链上游戏和引擎还处于早期阶段。像 MUD 和 Dojo 这样的游戏引擎虽然已经能够用于产品研发,生态系统中已经有开发者正在在使用,但还有很长的路要走。游戏引擎通常会经历巨大的网络效应,因为许多游戏都基于它们的框架并向框架添加功能。
在链上游戏生态中,最大的网络效应来自于游戏的可组合性和可扩展性,以及游戏资产与其他基于相同生态系统和引擎的游戏的结合。随着开源库允许开发人员在社区的帮助下解决技术问题,引擎的粘性也呈指数级增长。
如果我们想象游戏引擎生态系统的进化,它们的网络效应和价值累积层可能如图所示。模块/验证器市场很容易被类似于 Gnosis Safe 模块的引擎层吞没。默认情况下,AW 层是可组合的,但这取决于游戏开发者和玩家对可组合性级别的选择。许多公司正试图在这个堆栈中捕获 2 层或更多的层。
至此,让我们深入探讨在线游戏开发的主要挑战以及游戏引擎如何解决这些问题。区块链游戏引擎所面临的问题:
网络拥堵
Crypto Kitties, Axie Infinity, Loot Realms 发布时,无一不造成了整个网络的拥堵。他们是如何解决的?他们分别创建了自己的链,即 Flow、Ronin 和 Loot Chain。链上游戏需要更多的计算资源,而所有游戏都将争夺区块空间。因此,有资金支持的商业化团队自然而然会选择建立自己的应用特定的 L2 扩展层。他们与 Caldera、Conduit、Eclipse、Alt Layer 等 RaaS(Rollup as a Service)提供商合作。目前流行的 L2 框架似乎是 OP Stack,我们预计随着 Arbitrum Orbit、Starkware L3 和 ZkSync Hyperchains 等技术的成熟和可供生产使用,这种情况将发生变化。
Argus 还介绍了他们的新产品——插入数据可用层的 EVM 第 2 层。这是基本分片(base shard)。我们不知道更多关于它的细节,但它让我们想起了 Len 的 Momoka。EVM 基础层将使其他游戏开发者能够为他们的游戏构建高度可定制的执行层 game Shards,并且 base Shard 将成为为整个 Argus L2 带来可组合性的层。
区块链的低速
在区块链上,只有等交易确认后,合约状态才会发生改变。如果你想让 f(a) 触发 f(b),这个过程只能等待。因此,游戏中的延迟似乎是不可避免的。在以太坊上,这将是 15 秒,直到区块被解决,以及另外 30-45 秒以克服重组风险。
通过使用 ticks, 游戏中的状态可以在不用等待交易完成的状态下自动改变。Tick 频率可以理解为更新的频率。竞争性 MMO 游戏的 tick 率通常为 20-30 秒,RTS 游戏的 tick 率可能高达 60 秒。现在大多数游戏开发者都在制作 MMO 游戏,所以 20 秒的 tick 频率是比较理想的。Rollups 上平均的区块时间为 1-2 秒(Momoka 连接 Polygon PoS 的时间为每 2 秒),Argus 的新解决方案拥有 20 个 tick/秒的 tick 频率,是目前行业中最快的。
0xCurio 团队是第一个使用自定义 L2s(通过 Caldera) 来优化更快 tick 率的商业团队。他们已经在 OP Stack 上创建了第一个 tick 链应用,并可能与他们的游戏 (如 treaty.earth) 一起发布。
开发者体验仍需提高
MUD 背后的故事是,Lattice 团队一直在尝试创建新的链上游戏,并遇到了同样的后端问题。所以他们决定创建一个可以被普遍采用的链上游戏开发框架。除了可组合性外,还有两个关键挑战:合约和玩家客户端之间的更快状态同步和易于升级 (修改/更新内容) 而无需在每次升级时重写索引器 (自动索引器)。
在本文中,我们将假设在同一游戏引擎框架上构建的所有应用程序都具有可组合性。
游戏引擎介绍
本文将介绍四个项目,它们都在争夺最大区块链游戏引擎标准的地位。其中两个是公共产品,另外两个是由过去筹集资金的商业团队建造的。让我们深入了解一些更高级的问题以及团队如何解决它们。
MUD v2:
MUD 是最受欢迎的游戏引擎,为 EVM 上 95% 以上的在线游戏提供游戏引擎。Lattice 的游戏引擎引入了 Store,它可以用类似于关系数据库的方式表示链上数据。使用 Store 而不是编译器驱动的存储的好处是合约数据的可升级性和大规模的 gas 成本。
状态更新也会自动发出事件,因此自动索引器无需自定义配置即可索引整个状态。与 Solidity 的静态数据相比,新数据 (表) 可以在运行时添加,从而实现可升级性。存储成本与为每个状态手动发出事件相当,但 MUD 比原生 Solidity 更有效地打包数据,因此从长远来看更便宜。
Store: 是使用 solid 的编译器驱动存储的另一种方案。在合约中存储数据是消耗 Gas 的,并且在 Solidity 中是静态/不可检视的,这意味着接口/应用程序必须假设它们所进行的调用是正确的。通过 Store 的链上数据库,应用程序的合约存储现在可以被链下索引器、前端或另一个合约进行索引。使用 Store 的好处是合约数据的可升级性和大规模 gas 成本的考虑。
Mode: 这是一个链下索引器,使用 PostgresDB。它可以索引 EVM 上的任何 MUD 应用程序,主要用于与 MUD 客户端进行更快的状态同步。
World: 是一个框架,包括使用存储、系统、无权限创建、访问控制、模块等。综上所述,World 合约是一个具有集中状态和合约逻辑的单一合约。它可以在链上插件和一套改进的开发者工具的帮助下扩展。引入 MUD 的每个新插件都会为下一个加入的开发人员增加框架和引擎的价值。
一些例子:
- Endless Quest: 可在 AW 生成一致叙事,metadata 和艺术
- MUDVRF:游戏中生成链上随机数的 MUD 模块
- DeFi Wonderland:通过 burner client 来使用钱包的账户管理模块
- MUD Scan:MUD 游戏的排行榜看板
Dojo Engine:
Dojo Engine 是由 Starknet 开发者开发的公共游戏引擎。这是唯一可验证的游戏引擎,并且其验证是为游戏引擎的架构和工具而生。
在这种情况下,可证明性意味着相同的游戏循环可以在 rollup 的序列器或本地客户端 (如浏览器) 上得到证明。使用 dojo,用户可以编写证明逻辑来执行客户端,并且只在链上进行验证,成本很低。这也使反作弊和乐观更新等功能成为可能,即使顺序器仍在验证玩家的交易,逻辑也会在玩家的浏览器上实现。
他们的数据存储方案类似于 MUD 的 Store,但针对可证明性和有效性证明的特性进行了定制。他们使用 Torii 提供自动可验证的索引。索引使用存储差异完成,提供 O(1) 索引,并使用存储证明支持世界状态的客户端可验证性。Dojo 支持部署到 Starknet 以及高性能的第 3 层序列器,如 Katana 和 Madara。Dojo 提供了 Katana(一个本地开发网络)、Sozo(一个用于部署、更新和与游戏交互的命令行接口) 和 Torii(一个可验证的索引器)。Dojo 提供了一个 rust sdk,可以为浏览器编译成 WASM,在基于 rust 的游戏中使用 (即使用 Bevy),并为 Unity 和 Unreal(正在开发中) 提供绑定。
游戏开发者被鼓励用 Cairo 编写应用程序。Cairo 是一种类似 rust 的语言,用于为一般计算创建可证明的程序。在 Dojo 上构建的一个优点是,您可以引入使用 zkps 原生的战争迷雾机制,而不必在 Solidity 上的 Circom 中编写代码。
Argus Labs:
Argus Labs 由 Scott 创立, Scott 是 Dark Forest 的联合创始人之一,最近发布了他们最新(也是唯一的)的更新。这是一个雄心勃勃的项目,想要成为创建游戏 (工作室)、游戏引擎以及供其他开发者扩展和部署的基础设施。它目前是一个闭源项目,但他们的博客承诺它将在发布时开放源代码。
如之前分享的内容所描述,它是一个定制的 L2,具有基本分片和个人可定制的游戏分片。配合 World Engine(专有游戏引擎),游戏开发者可以使用自定义参数 (如更高的 tick 率、带有 gas 自定义的本地 AA、ECS 数据库以及与 Unity、虚幻、JS 等客户端的兼容性) 创建独特的执行环境。他们还提供类似于其他游戏引擎的自动索引器。他们优化了 L2 & world 引擎,使用 Solidity 编写的内容变得抽象,鼓励用 Go 进行游戏开发。在传统游戏开发中,虽然 Go 是一种完美的编程语言,但它并不是首选语言,因为大多数引擎和库都支持 C、c++和 c++。
Scott 在他最近的演讲中暗示了一个独特的价值主张,即基于位置的分片 (比如 “亚洲服务器”,“欧洲服务器”),这可以进一步改善游戏的延迟。举个例子来说,大多数序列器都位于美国,而亚洲玩家通常面临至少 300 毫秒的延迟,这在游戏中是很长的时间。整个结构由共享序列器支持,该序列器是为优化延迟而定制的,而不是同步可组合性和原子捆绑。它没有阻塞运行时的锁——支持多个分片,并且不会被彼此阻塞,也不会强制执行总排序。
Cardinal Shard 是该公司首次实现的游戏 Shard,每秒 20 次 tick,与传统游戏相当。
Keystone:
Curio 团队是第一个尝试使用自定义 L2 的商业团队,并最终与 Caldera 合作实现他们的自定义 OP Stack。他们将 ECS 结构嵌入到他们的 tick 链中,并将提供类似自动索引,Unity 的客户端支持等功能。这是一个研发项目,是他们努力建立 Treaty.earth 的结果。更多内容或许会在团队准备更充足时与公众分享。
其他尝试:
虽然这四个是 EVM /以太坊生态系统中最前沿和最知名的,但还有其他几个自定义游戏引擎正在由 Playmint 和 Solana (Arc by Jump Crypto) 等团队构建。Topology 是另一家处于在线游戏前沿的探索者,并在 Starknet 上推出了基于其专有游戏引擎的 Isaac,他们的最新游戏 Shoshin 也即将推出。
结论:
如今的各家引擎的都在想方设法提升 tick rate,扩容网络,旨在让区块链能承载更加复杂的游戏交互——这让我想起了早些年 vr 游戏设备的竞争格局,新的技术出现,各家围绕着 vr 头显的传输带宽打了好一会仗,硬件厂家号召下,开发者蜂拥而上试图让各种品类的游戏都做一个 vr/ar 版本,然而随着市场的检验,人们发现只有某几种固定的品类适合做成 vr,而头衔的带宽问题也并不至关重要。同样的,全链引擎各家决胜的过程会是一个复杂系统博弈的结果,但可以预见的是,先找到 pmf(在引擎之上内容侧有全链爆款输出的)的会有较大的竞争优势。
我们很高兴看到每一层的发展过程,新游戏的发布和新引擎的出现。除了 MUD v2 和 Dojo,其他的都还没有经过实战测试,在我们弄清楚谁是链上世界的 unreal 和 unity 之前,我们还有很长的路要走。