我們很高興看到每一層的發展過程,新遊戲的發佈和新引擎的出現。

作者: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 等技术的成熟和可供生产使用,这种情况将发生变化。

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

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) 一起发布。

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

开发者体验仍需提高

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 之前,我們還有很長的路要走。

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。