Curio:介绍全链游戏引擎Keystone

原文标题:Introducing Keystone

原文链接:https://blog.curio.gg/introducing-keystone/

我们很荣幸地宣布 Keystone 的第一个稳定版本已经发布,这是一个为有志向的开发者打造的,可以构建高性能和可组合的全链游戏的优秀工具包。Keystone 是 Curio 团队基于两年的全链游戏开发经验而精心设计的。我们相信 Keystone 将让开发者能够创建真正具有商业价值的全链游戏。

01.一切的起源

在 2021 年末,我们开始痴迷于在链上发布实验性产品。我们首先构建了一个基于链上 ECS 的状态管理系统和高性能索引器。我们很快意识到,我们合约的每笔交易都要消耗数千万 gas,并且需要自己独立的区块空间才能满足扩展需求。因此在 2022 年夏天,我们在自己的专用应用程序链上推出了一个海战主题的 RTS 迷你游戏,这是最早的全链游戏之一,成千上万的玩家参与了我们的游戏互动。

2023 年初,我们推出了 Treaty,这是第一款允许玩家部署智能合约的游戏,该智能合约构成了他们彼此之间的政治和社会契约。我们被我们社区的创造力所震惊,他们提出了各种疯狂的条约的想法。

我们相信社交组合性(social composability)和开放数据(open data)是全链游戏的(能将某个领域效率或效果提升) 100 倍创新,特别是当它们与高风险或高回报相结合时。在我们梦想的未来中,社区部署了数百万个条约、智能合约和插件,催生了我们甚至无法想象的无限有趣的社交动态。复杂的国家在此形成,发展他们的经济,并在链上进行战斗,使用智能合约作为武器和工具。在 Curio,我们致力于构建这个未来。想要了解更多信息,可以参考这篇文章

02.我们有哪些发现

我们第一次尝试开发全链游戏时,就发现了一个问题:数据和计算密集的游戏世界,远远超出了普通区块链和智能合约的承载能力。因此,为了让全链游戏真正发展壮大,我们必须致力于提供与传统游戏相媲美的用户体验。全链游戏玩家应该能够享受如League 和 Starcraft同样的游戏体验。我们应该拥有更好的产品。

我们深入思考后,得出了这样几个结论:

1.全链游戏对系统性能要求很高。单个 EVM 区块链上的游戏无法支持大量用户同时在线,更别说达到百万级的规模。而且,如果在同一个区块链上运行多个大型应用,游戏之间会相互影响,性能会大打折扣。事实上,EVM 并没有针对游戏的特殊需求进行优化,无论是存储方式还是交易处理机制。

2.区块链缺乏游戏开发的关键功能。传统的游戏服务器是基于时间的,有一个高效的游戏循环,可以自动响应玩家的请求。但是,区块链的特点使得这些功能难以实现。开发者只能用延迟更新的方法来模拟,这给开发者带来了不便。

3.开发体验十分孤立。虽然 EVM 的工具已经很成熟,但智能合约语言却不能充分利用现有的游戏工具和生态,从丰富的库到第三方服务(排行榜、身份服务、 matchmaking)都十分匮乏。

03.深入Keystone 内部

Keystone 是一个全链游戏的创新平台。它把区块链和游戏服务器结合在一起,从零开始打造了一个高性能、数据驱动的游戏服务器,同时兼容 EVM 智能合约。

在入门套件中,用户可以直接体验教程游戏

(1)状态管理

Keystone 采用了 ECS 的思想,建立了一个表格化的状态管理系统(table-based state management system)。每个实体都对应一个完整类型支持的 Go 模式结构。客户端,无论是 JavaScript 还是 Unity,都可以订阅状态的自动同步,无需多余的代码。我们还消除了对索引器的依赖,大幅降低了延迟。可以直接从 Keystone 查询和订阅数据流。

(2)执行

游戏逻辑,也就是ESC中的系统,使用 Go 编写,而不是 Solidity,这让开发者可以充分利用现有的库和第三方服务,同时显著提高性能。Keystone 的核心是一个快速的游戏 tick。在每个 tick 中,系统会处理上一个 tick 提交的交易。交易像智能合约一样原子地执行,Keystone 可以每秒轻松处理数万笔交易,每秒数百次 tick。

此外,Keystone 还支持交易回放 — 通过确定性地回放用户交易,开发者可以随时将游戏状态回退到任何时间点 — 这是一个方便的用于调试、分析等工作的工具。

(3)插件

Keystone 支持多种插件,用于数据存储、数据可用性等。我们为 SQLite 和 MySQL 解决方案提供了现成的支持,可以在游戏世界需要保持一致的时候备份数据,方便创建数据管道、分析和日志记录服务。开发者也可以按照标准接口创建自定义插件。

(4)EVM

Keystone EVM 和游戏服务器封装在一个实例中。为此,我们从 Geth 中提取了必要的组件并将其与 Keystone 服务器的其他部分集成在一起,使 EVM 具有超高性能,并专门针对游戏进行了定制。部署在 Keystone 上的智能合约可以通过预编译程序从表格化的表中读取和写入数据。我们将很快发布有关 Keystone EVM 的更多更新。

Keystone 将传统的游戏服务器架构和经过验证的 EVM 融合在一起,为开发者提供了一个高性能的系统,同时保留了智能合约的完整可组合性。我们非常高兴能够与世界分享这一点。

(5)展望未来

不久,Keystone 将包含一套额外的工具,例如允许游戏水平扩展的部署服务,这对于有大厅和会话(session)的游戏很有帮助。

Keystone 简化了构建全链游戏的复杂性,让开发者专注于优质的内容和游戏设计。我们一直在使用 Keystone 开发我们的首款游戏。我们的游戏工作室由来自 miHoYo(原神)、Lillith Games(万国崛起)、Funplus(阿瓦隆之王)等世界级团队领导。我们很期待能够尽快分享更多关于游戏的更新。

要开始使用 Keystone,最好的方法是我们的入门套件文档。要获得直接支持,请加入我们的 Discord 或在 Telegram 上向我们发送私信

我们的 Twitter:https://twitter.com/0xcurio

Subscribe to FunBlocks
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.