译者序:“本文编译自Primodium两位创始人的推特长文,系统介绍了Primodium团队在开发游戏过程中如何降低gas消耗、存储玩家游戏中的资源。以及为什么金融化对全链游戏同样不可或缺。”
01.Primodium是如何进行Lazy Update的
作者:EmersonHsieh
原文链接:https://twitter.com/intemerson/status/1740787479203004559
一个全链上的游戏必然会消耗大量的gas,因此我们必须找到方法以减少玩家签署交易的数量。引入lazy update后,我们只在玩家执行操作时计算所需的游戏资源。
在 Primodium 的第一个版本中,玩家必须先在节点旁边放置矿机,然后才能放置传送带将资源运输到主基地。
当玩家从他们的主基地申领资源时,我们必须弄清楚以下问题:
如何跟踪每个玩家所拥有的矿机;
让这些矿机连接到正确的加工厂;
我们的首个方案是在玩家提取资源时,从其主基地出发进行深度优先搜索。玩家可以在每个块旁边最多放置四个矿机。
当我们引入从矿机获取资源的工厂时,玩家开始构建更复杂的结构以优化资源产出。例如,玩家@CincauHangus就创造了下面这样的工厂设计:
在@AlirezaN95加入了我们团队后,他对我们基于MUD开发的资源组件进行了重设计。在 v0.6.0 版本中,我们为每个玩家提供了一个全局资源生产速率,每当在资源上建造一个矿机,该生产率就会增加。
这使得更新变得原子化,玩家每执行一次操作,我们都可以通过其生产率快速计算资源总量。而当他们建造工厂并消耗资源生产物品时,便会从全局生产率中简单地扣除消耗资源的部分。
在后续的版本中,我们发现玩家在建造矿机后的参与度有所下降,这可能是因为矿物传送带的建设机制让一些玩家感到困惑。
通过设定全局资源生产率,我们可以完全去除矿物传送带和传送节点,从而实现今天Primodium中更复杂的游戏玩法。
在我们的最新版本中,我们重新设计了在智能合约中存储并计算资源生产率的方式,为即将推出的激动人心的新功能奠定了基础。
02.Primodium如何储存玩家资源
作者:Emerson Hsieh
原文链接:https://twitter.com/intemerson/status/1742214023809306953
在 Primodium 中,你将出生在一个资源丰富的小行星上。通过建造矿机采集资源,并用这些资源来强化建筑、训练军队并攻击其他玩家。
上图可见Miner和可挖掘资源
在使用 Lattice 的 MUD V1 版引擎构建的 Primodium 最初版本中,所有智能合约都围绕实体组件系统(ECS)架构开发。
一开始,我为每一种资源设计了一个独立的新合约。这种做法使得客户端可以单独追踪每种资源的数量,但随着游戏复杂性的提高,他产生了难以处理的开销。
例如,Primodium v0.0(十一个版本前!)中,仅存储玩家物品就需要63个合约。@l_udens提出了一个有效的解决方案:使用资源名和玩家地址的哈希值作为一个统一的组件键,以将所有内容简化为一个组件。
在接下来的几个月中,我们不断地增加游戏的内容与复杂性。更多的资源物品丰富了玩家的体验,进而提高了玩家的留存率。
下图展示了在当前测试版本的Primodium中,一位热情的玩家建造的复杂基地!
我们还将游戏引擎升级到了 MUD V2版本,这意味着我们必须重构我们资源的合约架构。
@0xhank 重新设计了合约,使用了以实体(entity)和资源(resource)作为key schema的表,避免了额外的哈希计算步骤。
玩家在建造工厂或矿机时,相关资源的生产率会增加。例如,建造铁矿可以提高铁的生产率。同样,建造使用铁的工厂(比如铁板工厂)则会增加铁的消耗率。
通过 @AlirezaN95 构建的store hooks系统,游戏能够实时更新生产率和消耗率,进而改变玩家的资源数量。玩家每次行动时,资源计数都会更新。
在玩家执行交易前,客户端会提前在@0xNAB5设计的面板上显示预测的资源数值。在Primodium的未来版本中,我们计划进行更深入的技术探索,并开放我们的合约以方便社区探索新的游戏玩法。
03.为什么金融化对全链游戏同样不可或缺
作者:Tax cuts
原文链接:https://twitter.com/tax_cuts/status/1740453166875877768
由于Play to Earn游戏过去带来了太多灾难性的后果,开发者们纷纷转向全链游戏,寻求以不同的方式将Crypto融入游戏之中。对全链游戏的主要观点是其增加了游戏的可组合性(Composability)和永久性(Permanence),而金融化的部分往往被强烈抵制。
但我认为金融化仍然非常重要:
金融化是加密货币作为底层架构存在的根本原因。想象一下,如果我在我的个人电脑上运行比特币协议,他可以显示你有1 BTC,我有5 BTC,没有人会赋予缺乏去中心化共识的比特币真实价值。因为我可以随便篡改后台数据,说我其实有50个BTC。
可见,在中心化服务器上运行比特币协议依赖于对中心化服务器的信任。而在crypto的世界里,去中心化共识让谁持有1 BTC这件事需要通过一定数量节点的验证,从某种角度来说,去中心化构成了赋予加密货币现实价值的基础。在去中心化共识的保护下,人们愿意赋予加密货币价值。
而至于这个价值究竟是1美元还是4万美元,这并不是我们今天讨论的重点。关键在于,区块空间的限制和去中心化共识使得被记录在链上的事物具有了稀缺性,这种稀缺性赋予了其真正的价值。这在其他行业是闻所未闻的,他们无法凭空创造出真正有价值的事物。
你可能会说,在没有加密货币的游戏中,游戏公司也能创造出价值十亿美元的物品。是的,但这些公司拥有着玩家多年的信任所凝聚成的共识。而对于创业公司来说,实现这一点将更加艰难。这与美元法币与加密货币获得价值的方式是类似的。
对于全链上游戏来说,想象一下,如果不仅仅是部分资产,而是整个游戏都被放在链上 —— 那么每一件物品、每一个单位、决策、建筑都会获得真正的价值,因为他们都是去中心化共识守护下的稀缺资源。
而提供这样的稀缺资源正是primodium的诸多目标之一。基于这种价值赋予过程,你可以建立真正的经济体,这是一件令人兴奋的事(我将会在另一个thread中解释为什么 web2.5 游戏行不通,其中的主要原因是他们需要面对非常多的监管和合规问题。)
你可能会反驳:但是 tax cuts先生,金融化意味着每个人都试图从系统中提取利益并赚钱,所以这个系统终将崩溃!
但我的观点是,在BTC 挖矿的过程中,每一个参与者也都在努力赚钱,只要这个系统拥有外部价值,他就能持续下去。而显而易见的是,维持下去的关键在于平衡,所以这个游戏会提供足够趣味性,以保证他对于大多数人来说是能达到期望值的。
Primodium V0.9 中推出的游戏内资源交易市场正是朝着这个方向迈出的一步,但我们未来要做的工作还有很多很多。