# 探究Web3的基础设施之什么叫链上游戏（一）

By [Crypto ai世界](https://paragraph.com/@crypto-ai) · 2023-05-11

---

**微信：hexf488888 添加我的VX拉你们进入交流群**

**群内各种大佬交流分享经验，暴富不是梦**

**更有实时更新最新撸毛教学以及币圈最新资讯**

* * *

背景：
---

一直以来，游戏都被视为加密货币潜在的核心应用场景。它围绕着原生数字资产构建，面向全球的受众，因此，游戏在很多方面都非常适合利用可验证的链上证明、所有权以及全球支付通道。然而，同任何新创新一样，第一代产品往往有很多不足之处。可想而知，**最初的一批游戏笨拙难玩、充满噱头，不是一件稀奇的事情，并且由于过度金融化的体验，让很多真正的游戏玩家望而却步。**

但是，正在构建的**下一批链上游戏将利用可验证的证明、所有权和资产可编程性，同时专注于建立真正用户获取和留存的游戏循环，而不是代币投机**；更重要的是，这一批游戏是由经验丰富的游戏开发者制作而成。除了由共享状态的无服务器计算所支持的新型游戏之外，我们还可以看到世界上一些最大的游戏工作室开始进入区块链，他们的游戏 IP 正逐渐上链。

![](https://storage.googleapis.com/papyrus_images/e77eaaa70173c6cc3531c608095bc80231c3e0770e36e86d0b21ab2ddbe5e61a.png)

尽管加密原生用户和游戏玩家对链上游戏仍然保持着一定程度的怀疑态度，但令人兴奋和引人入胜的链上游戏所需的条件已经具备。**最后所需的要素是健全的基础设施，只有健全的基础设施才可能让用户的链上游戏体验，和今天的传统游戏体验一样丝滑流畅。**

链上游戏类型（一）
---------

广义上讲，“链上游戏”一词已被用来描述一系列游戏类型，游戏上链程度可以从每一步的状态更新到一次性可选资产铸造等不同程度范围。以下是对游戏类型的一个粗略概述。 **方法#1：完全上链（Fully on-chain, FOC）**

![](https://storage.googleapis.com/papyrus_images/9ce4fdf66f69f58ac25c3ba876d843f3fa497001ae9a1126986e1f2ad155eaf5.png)

近期关于链上游戏的讨论中，**全链游戏**（Fully on-chain games，又称完全链上游戏）成为了大多数人关注的焦点。在这种方式下，**区块链被用作集中式游戏服务器的替代品，所有玩家在链上共享状态中进行索引和写入数据**。

共享状态不仅捕捉与资产相关的数据，还捕捉与游戏状态相关的所有方面。例如，在一场国际象棋比赛中，链上共享状态将记录每位玩家移动后黑白双方棋子的位置等细节。这种方法使得**游戏具有持久性**（即使原创者不再继续贡献，游戏仍可继续存在）**、抗审查性和社区所有的开发等特点**。

**虽然这种方法可以创建新的游戏类型，但目前仅适用于某些回合制游戏的子集**，因为每一步都必须作为一个交易提交到区块链上，并且必须经过共识并达到最终状态，然后才能进行下一步移动。具体而言，这种方法适用于每个会话中状态更新相对较少的游戏，无论是由于玩家较少还是每个玩家每个会话的移动次数较少。成功采用这种方法的游戏示例包括 Dark Forest 和 0xMonaco。例如 18xx 系列，已经在 AllianceDAO 博客中详细记录，也非常适合这种方法。

随着游戏复杂性的增加，无论是同时进行的游戏还是每个会话中更频繁的状态更新，所需的状态转换可能会扩展到不仅包括玩家的输入（如国际象棋中的移动），还包括一些琐碎的游戏机制（例如角色扮演游戏中的被动恢复生命值）。因此，这些游戏机制所需的持续“crank”（以及相应的 gas 费用）限制了实际的游戏设计空间。考虑到当前的区块链架构状况，这些游戏类型可能更适合采用链上/链下混合的方法。

**方法#2：资产上链（On-chain assets, OCA）**

![](https://storage.googleapis.com/papyrus_images/bc3760da31a027a69531135c91375bda88511292899bc9cbacf60c43425c9d5c.png)

这种模式下，用户资产存储在链上，而游戏循环在链下进行。游戏服务器在会话开始时对链上资产状态进行索引，状态转换在链下的游戏服务器上进行记录。只有在游戏会话结束或游戏循环结果对资产状态产生实质性影响时，游戏服务器才会将状态回传至链上。例如，用户可以选择“保存状态”并支付相关的 gas 费用。**这种方法在速度和性能方面取得了优势，但在可信度方面进行了妥协。**

让我们考虑一个类似《街头霸王》（_Street Fighter_） 的 PvP（Player versus player, 玩家对战）格斗游戏。用户可以在链上拥有自己的游戏角色，并证明他们的所有权以启动一个链下的游戏会话。然而，与第一种方法不同，每一步之后的状态（例如角色在每次移动后损失了多少能量）将仅保留在游戏服务器本地。只有当决出胜者并且对链上资产产生影响时，状态才会在链上更新。例如，如果角色实现了升级，需要更改NFT元数据，或者如果两个玩家参加了一个有奖金的比赛，需要执行智能合约。这种方法更适合功能丰富的游戏，玩家操作较为频繁，如 MMORPG（大型多人在线角色扮演游戏）和 FPS（第一人称视角射击游戏）。

这种方法需要高性能的基础设施，包括快速索引、链上可更新元数据的资产标准、用于将链下状态传递到链上的数据中继基础设施，以及基于中继数据的自动链上执行。\*\*如果没有这些，用户难以操作，开发者的接纳度也会很低。

**方法#3：可选资产铸造（Optional Cosmetic Mints, OCM）**

![](https://storage.googleapis.com/papyrus_images/adb693d9c0c61499fe68122d1f310c05945930553557852753dbb6891e3a9638.png)

采用这种方法的游戏，看起来与现在的游戏没有什么区别，\*\*游戏资产的所有权和状态更新记录在链下游戏数据库中。唯一的不同之处在于，如果他们愿意的话，用户可以选择将当前版本的角色资产铸造为链上 NFT，并进行交易。\*\*此外，游戏可能还有某种忠诚度/赛季通行证，作为链上 NFT 存在，基于所有权在游戏内实现访问控制。在为方法#1和#2构建适当的基础设施的同时，对玩家来说，这种方法可能是最容易接受的，因为它所带来的阻力可能是最小的。

结论
--

上述每种方法解决了不同的问题，例如：

**方法#1**解决了游戏服务器的信任问题。\*\*通过对链上共享状态进行索引和写入，此方法绕过了游戏服务器的需求。这为全链游戏开辟了新的设计空间，并可能非常适合某些回合制游戏的子集。

**方法#2**解决了可验证资产所有权和资产可编程性问题。这种方法将无信任要求限制在资产层面，而不是游戏状态的所有方面。通过在二次销售中引入无信任机制，这种方法可以创建可验证的游戏资产经济体。

**方法#3**解决了用户体验问题。在当前的基础设施状态下，上述两种方法为玩家带来了太多的阻力，因此链上组件应该是可选的且有限的。

我们认为，**有了合适的基础设施，方法#1和#2可以提供与方法#3类似的用户体验，同时还具有将游戏状态的不同部分放在链上的附加优势。这将需要一些标准，使得通信、库存管理和状态转换自动化无缝进行。**

在接下来的文章中，我们将重点介绍一些相关的基础设施，以及一些潜在的设计约束和决策，以使得这种基础设施具有更高的性能。例如，在下一篇文章中，我们将探讨一个名为 ARC（Action Registry Core）的可更新的链上资产框架，\*\*它是建立在传统游戏中 ECS（Entity Component System, 实体组件系统）的架构模式之上的。

* * *

**扫一扫添加我的vx**

**加入交流群，获取更多币圈最新资讯**

![](https://storage.googleapis.com/papyrus_images/869ac59064417e968796d7a442420d26c2acd7f86e0932c23eca810d04711b8f.png)

**Crypto ai 世界 汇聚全球最新 ai，游戏，元宇宙趋势，带你了解那些改变行业的技术。**

---

*Originally published on [Crypto ai世界](https://paragraph.com/@crypto-ai/web3-3)*
