作者:Ishanee @IOSG Ventures

前提摘要:

我们在FOG系列的第一部分中对链上游戏和游戏引擎进行了概述,感谢Sylve, Tarrence, Andy, Alvirus, Kevin & Iain对本文的支持。

链上游戏和引擎还处于早期阶段。像MUD和Dojo这样的游戏引擎虽然已经能够用于产品研发,生态系统中已经有开发者正在在使用,但还有很长的路要走。游戏引擎通常会经历巨大的网络效应,因为许多游戏都基于它们的框架并向框架添加功能。

在链上游戏生态中,最大的网络效应来自于游戏的可组合性和可扩展性,以及游戏资产与其他基于相同生态系统和引擎的游戏的结合。随着开源库允许开发人员在社区的帮助下解决技术问题,引擎的粘性也呈指数级增长。

详解Web3游戏引擎:赛道缘起、发展现状及网络效应

如果我们想象游戏引擎生态系统的进化,它们的网络效应和价值累积层可能如图所示。模块/验证器市场很容易被类似于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等技术的成熟和可供生产使用,这种情况将发生变化。

详解Web3游戏引擎:赛道缘起、发展现状及网络效应

12月CryptoKitties发行时造成网络拥堵的请求数

Argus还介绍了他们的新产品——插入数据可用层的EVM第2层。这是基本分片(base shard)。我们不知道更多关于它的细节,但它让我们想起了Len的Momoka。EVM基础层将使其他游戏开发者能够为他们的游戏构建高度可定制的执行层game Shards,并且base Shard将成为为整个Argus L2带来可组合性的层。

详解Web3游戏引擎:赛道缘起、发展现状及网络效应

区块链的低速

在区块链上,只有等交易确认后,合约状态才会发生改变。如果你想让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)一起发布。

详解Web3游戏引擎:赛道缘起、发展现状及网络效应

网络上对游戏平均tick频率的讨论

开发者体验仍需提高

MUD背后的故事是,Lattice团队一直在尝试创建新的链上游戏,并遇到了同样的后端问题。所以他们决定创建一个可以被普遍采用的链上游戏开发框架。除了可组合性外,还有两个关键挑战:合约和玩家客户端之间的更快状态同步和易于升级(修改/更新内容)而无需在每次升级时重写索引器(自动索引器)。

在本文中,我们将假设在同一游戏引擎框架上构建的所有应用程序都具有可组合性。

游戏引擎介绍

本文将介绍四个项目,它们都在争夺最大区块链游戏引擎标准的地位。其中两个是公共产品,另外两个是由过去筹集资金的商业团队建造的。让我们深入了解一些更高级的问题以及团队如何解决它们。

详解Web3游戏引擎:赛道缘起、发展现状及网络效应

详解Web3游戏引擎:赛道缘起、发展现状及网络效应

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之前,我们还有很长的路要走。