撰文:Starknet
翻译及校对:Starknet 中文社区
概要
- Starknet 使复杂创新的全链上游戏成为可能
- 目前两款游戏即将发布:Loot Survivor 和 Influence
- 这两款游戏都使用了街机账户、乐观客户端渲染、自主世界这类 Starknet 独有的功能,开启了真正的链上游戏新纪元
- Starknet 会推动复杂全链上游戏的发展
在之前关于 Starknet 链上游戏现状的文章中,我们介绍了正在以太坊 L2 Starknet 上开发的最具创新性的游戏项目 — Realms:Eternum、Loot Survivor 和 Influence。文中,我们还讨论了基于 STARK 证明、受 Rust 启发,用于在 Starknet 上编写智能合约的语言 — Cario,以及 Cario 如何支持首批真正的链上游戏。
本文分享 Loot Survivor 和 Influence 这两款游戏的开发者在正式发布前的最新进展。我们会详细介绍他们所开发的独特功能,以及开发团队如何利用 Starknet 的技术优势,打造出在其他平台上难以实现的去中心化链上游戏。
Loot Survivor
Loot Survivor 是一款单局付费的策略游戏。玩家在每局游戏中只有一条生命。玩家的游戏任务是寻找并强化武器、与野兽战斗,并获得奖励。玩家要与七十多多只野兽、六十个障碍和数十种武器互动。
这种单次生命游戏的优点在于,如果玩家的英雄死亡,玩家可以轻松地开始新一局游戏,而不会损失大量的 NFT 投入。

玩家可以连接他们的 Argent 或 Braavos 钱包,或者使用电子邮件地址登录来开始游戏。此外,仅使用电子邮件地址登录(由 Argent 提供支持)还能在后台自动创建一个钱包。
尽管上述的登录方式看似简单直接,但自 web3 问世以来,web3 游戏领域一直缺乏这样便捷的登录方式,但这正是 web3 的迫切需求,Starknet 上的账户抽象使这种便利性成为可能。
玩家可以在登录之后可以选择武器,游戏之旅就这样开始了。
游戏错综复杂的剧情和众多可能性的背后,隐藏着复杂的游戏架构。让我们探讨一下 Loot Survivor 背后的团队采用了哪些新思路和新概念来打造这首款真正自治的链上游戏。
街机账户
当玩家开始游戏时,系统会提示他们为游戏创建一个类似于「一次性」账户的街机帐户。这种「即用即扔」账户的创建得益于 Cario 语言的账户抽象(Account abstraction)特殊功能(详见本文)。
街机账户的优势在于,用户可以直接在链上发送某些类型的交易,而无需每次执行操作时都要签名。虽然每次进行链上操作时,在钱包点击「签名」和「发送」是一项重要的安全措施,但对于游戏玩家而言,由于游戏会话中需要执行众多操作,这种操作不切实际。在 Starknet 上,避开重复签名步骤的举措,提供了许多便利,也不会带来安全风险。
乐观客户端渲染
链上游戏的另一个主要问题是,用户发送交易后,必须等待网络接受交易后才能继续进行游戏。这会拖慢游戏速度,使游戏无法进行。但正如前文提到的,现在玩家可以在游戏里选择跳过这一步,从而带来更好的用户体验。
这正是 Loot Survivor 通过在客户端实施乐观更新所实现的。当用户完成一项操作时,交易会在本地客户端模拟执行,如果交易没有失败,游戏就会乐观地继续进行。
单次存储合约
Loot Survivor 游戏是完全链上游戏的一个新兴范例 — 游戏状态的任何部分都不会存储在链下。在 Loot Survivor 中,与玩家相关的完整状态(例如生命值、经验值、武器和配件)都存储在一个 252 字节的 Cario felt 中。任何更改玩家状态的操作或操作组都会造成单次存储更新,这意味着多个状态更改也会聚合到单次存储更新中。由于独立的存储更新的数量决定了交易费用,因此游戏内操作相关的 gas 费用也会大幅降低。
基于熵的机器人抵抗力
链上游戏通常会提供经济激励,让玩家赢得奖励(大多数情况下以代币作为激励)。但这种经济激励也将鼓励用户去利用系统。为了应对这个问题,Loot Survivor 使用全局游戏熵结合玩家的单独熵的方式来决定游戏情节。
全局熵是一个变量,任何人都可以通过调用名为 rotate_game_entropy() 的外部公共函数来进行调整。假定游戏社区会运行定期调用 rotate_game_entropy() 函数的机器人,来不断更改变量,确保没有人能利用对变量的了解来欺骗系统。
此外,每位玩家在开始游戏时都会获得一个独立的熵。这就保证了尽管游戏熵相同,玩家的游戏结果也会各不相同。每次执行操作时,全局熵都会与玩家熵相结合,从而在每局游戏中产生不同的结果。

Loot Survivor 已在测试网发布,随时可以开始游戏。除了有机会成为首款完全链上游戏之一的早期测试者,您还能赚取代币!投入到 Loot Survivor 街机的代币中,将有一部分会作为奖励分配给全球排行榜前三名的玩家。