Dark Seas游戏介绍:欢迎来到黑暗之海!

原文作者:0xhank

原文标题:《Avast! Welcome to Dark Seas!》

今天我要向大家隆重介绍Dark Seas,一个受经典回合制战斗游戏启发,并完全构建在区块链中的游戏。在Dark Seas中,你是一个来自帆船时代的强大舰队的船长。你需要指挥你的舰队向敌舰开火,同时躲避他们的攻击。

整个Dark Seas的逻辑和状态都存储于区块链之上。每当你的船只移动或火炮开火时,都会向链上提交一笔交易。这样便可以在快节奏的PvP动作游戏中,增加DApps的可互操作性和可组合性。

Dark Seas的推出,证明我们可以在保持游戏简单、好玩的前提下,还能充分利用区块链的优势,并达到一种两全其美的效果。

01.创造这个项目的动机

自从我投身自主世界(全链上游戏)以来,我一直想在其上实现一种我最喜欢的游戏类型:动作策略游戏。例如文明和XCOM,这种游戏让优秀的玩家通过比拼策略和技巧来取得胜利。

同时我还对区块链的优势感到兴奋,因为他可以增强玩家的所有权、可定制性和探索性。我想培养一个社区,开发新的功能、游戏模式和激励结构。

为了实现这些目标,我开始开发一个简单的回合制游戏,玩家可以移动船只然后执行动作。这种设计足够复杂,每轮都有新颖的游戏玩法,但也足够灵活,他将允许:

  1. 由社交和经济层驱动,可以实现无限轮次的游戏;

  2. 游戏规则可以简单的被玩家或建设者修改;

  3. 对胜利者进行代币化激励;

  4. 可定制的船只和皮肤,并可在玩家之间进行交易;

  5. 由游戏世界底层逻辑强制执行的社会契约;

02.设计一款有趣的全链游戏

在区块链上开发一款动作游戏并不容易,难点可以概括为以下几点:

如何在有限的交易量限制下,让玩家做出快节奏、具有挑战性的决策?如何在公开的区块链账本上,实现战争迷雾?如何在没有游戏节拍(game tick)的前提下,让整个游戏世界尽可能生动?

下面是我们采取的解决方案。

03.将多个操作打包进同一笔交易

第一个问题是在尽可能少的区块链交易前提下,最大化玩家可执行的操作数量。为了解决这个问题,我想出了一个简单的动作批处理方案。如果玩家策划了多个动作,然后将它们作为单个交易提交怎么样?

在Dark Seas中,你可以在提交之前设定船只的所有动作
在Dark Seas中,你可以在提交之前设定船只的所有动作

在Dark Seas中,每个玩家将控制多艘可以进行多个动作设置的船只。一旦玩家决定了他们所有船只的所有动作,就会向链上提交一笔执行所有动作的交易。这意味着Dark Seas可以在避免造成区块链的堵塞的前提下,实现每分钟进行多个动作的目标。

04.战争迷雾

由于区块链是完全公开的,玩家可以了解游戏的整个状态。制作战争迷雾机制非常具有挑战性,这在其他游戏媒介中也会出现。目前,其他依赖于区块链的游戏使用复杂的零知识证明来解决这个问题。而另一个更简单的选择是使用提交/揭示协议(commit reveal protocol)。这是我的解决方案。

在Dark Seas中,提前了解另一个玩家的下一步动作将会使你获得显著优势,因为你可以利用他来为攻击定位。提交/揭示方案强制玩家同时选择他们的动作,这样便没有人会获得不公平的优势。

在游戏回合中,玩家在提交阶段为每艘船选择一个移动方式。为了确认他们的决定,他们将向链上提交这些数据的哈希。然后,在揭示阶段,玩家提交他们实际行动。智能合约验证移动的哈希与先前提交上链的哈希一致,这时这些移动才会被实行。

这段Solidity代码确保玩家先前的承诺与其移动哈希一致(Move System的参数)
这段Solidity代码确保玩家先前的承诺与其移动哈希一致(Move System的参数)

05.让游戏变得更加生动

区块链上并没有统一的游戏节拍(game ticks)。游戏世界中的实体不会自动每秒进行多次更新,唯一能推进游戏世界状态前进的方法便是向链上提交交易。这使得创建一个生机勃勃而又随着时间而变化的游戏世界变得困难。

我想设计一个纯粹的PvP游戏。由于为游戏构建NPC几乎不可能完成,因此世界上唯一的敌人就是其他玩家。随着越来越多的玩家做出越来越有趣的决策,令人兴奋的传说便会自然出现,玩家可以在游戏世界中观察到之前战斗留下的痕迹。

一个简单的例子是,Dark Seas 使用了可以不断缩小的地图机制。每一回合,地图都会变得更小,这可能导致你的船被困在界外。每当一艘船移动时,游戏会根据交易中的时间戳,检查其位置是否在地图边界内。

06.项目状态

Dark Seas 的一个早期版本已经可以进行试玩。目前他正在测试网络上运行,Small Brain Games 的社区成员之前已经参与过多次测试。快来加入吧!

目前游戏已经比较稳定,我的重点是完善上述新奇的游戏功能。首先,我将简化核心游戏循环(game loop),以便将其应用于各种游戏模式。然后,我将添加工具,方便其他人参与贡献。我的目标是构建一个开放的游戏协议,可以通过它创建有趣和独特的世界。

特别感谢 Will Robinson 在游戏设计上提供的帮助。感谢 Lethe 和 Biscaryn 对我的工作进行检查。感谢 Small Brain Games discord 的成员参与试玩并提供有见地的反馈。

欢迎关注FunBlocks Twitter账号:https://twitter.com/FunBlocksFun

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.