Bitget App
交易“智”变
行情交易合约跟单策略理财Web3
解读MOPN:如何设计一款NFT放置挖矿全链游戏?

解读MOPN:如何设计一款NFT放置挖矿全链游戏?

MarsBitMarsBit2024/06/12 12:04
作者:极客Web3

本文以MOPN游戏为例,介绍了全链游戏的设计思路和实现路径。MOPN是一款NFT放置挖矿游戏,玩家可以在地图上放置NFT来赚取收益。游戏设计者需要考虑多种因素,如销毁Token、反女巫机制和数学公式。MOPN的规则简单,玩家放置NFT后要分一部分收益给地主,并保证周围没有非同类NFT。游戏为每个参与放置挖矿的NFT创建了ERC-6551抽象账户,让NFT拥有更多权利。通过特定机制获取NFT市场价格等场外信息,构建了以MT Token为核心的经济系统。MOPN是一个易懂的全链游戏经济模型设计案例,值得深入学习。

摘要:可能每个人都有自己设计一款游戏的冲动,闲暇时的各种脑洞如果组合到一起,能否促成一款游戏的诞生?如果让你自己设计一款全链游戏,你会怎么做?可能想着容易做起来难,如果你真的下场设计一款全链游戏,需要考虑的问题其实比想象的更多更复杂。本文以一款名为MOPN的NFT放置挖矿游戏为例,其主要玩法是在有限的公共土地上放置NFT来赚取收益,即放置挖矿。在设计这款游戏时,游戏设计者不但要考虑为其原生Token制造销毁/通缩场景,还要思考怎么反女巫、为关键的数据指标构造合适的数学公式,以及解决全链游戏对预言机等第三方组件的依赖。下文中,我们将从MOPN的机制设计和经济模型等多角度展开解析,帮助更多人理解Web3游戏的设计思路和全链游戏的实现路径。

MOPN游戏规则简述作为一款Token本位的放置游戏,MOPN的核心玩法很简单:该游戏创建了一个包含近100万个地块的开放地图,玩家在开放地图上放置NFT以获取奖励。MOPN中包含4种资产:1. MOPN的原生Token——MT(MOPN Token),2. 用于放置NFT的地块——MOPN Land3. 玩家放置在地块上的NFT4. 炸掉地块上已有NFT时使用的炸弹Bomb其中,MT Token是游戏内的核心资产,所有经济活动都与MT相关,玩家把NFT放置于某个地块后,可以根据NFT的积分权重和放置时间获得MT奖励。NFT放置挖矿产出的MT,90%会被该NFT的主人获得,5%的挖矿产出被地块的主人获得,相当于地租,5%进入该NFT所属IP的金库(比如BAYC有自己的游戏内金库)——Collection Vault中,相当于税收。

在MOPN的设计方案中,地块隶属于名为MOPN Land的NFT。MOPN LAND总供应量为10981个,每个Land覆盖地图上的91个地块,所有Land合起来覆盖了地图中全部近100万个地块。Land的获得途径包括铸造和拍卖。玩家获取Land后,可以将其放置在地图上,激活那些处于休眠状态的地块,被Land覆盖后激活的地块才可以放置NFT。任何玩家都可以把NFT放置在某个Land下辖的地块上,但要把5%的收益分给地主(Land的所有者)。

MOPN游戏规则中比较有趣的是, 你可以用“炸弹”把你周围的异类NFT清理掉。游戏规定,以你放置NFT的地块为中心,两个地块的距离内,不能有其他IP系列的NFT(比如BAYC和胖企鹅就是彼此冲突的IP)。此时,如果你非要在这个地块放置NFT,那就要用炸弹将异类NFT清除。最终达到的效果如下图:每个NFT周围两个地块的距离内,都是同类NFT。

总体概括,游戏的规则比较简单:把自己的NFT放置在某个地块上获取挖矿奖励,你要分一部分挖矿产出给地主,同时你要保证自己周围没有非同类NFT。另外,MOPN为参与放置挖矿的NFT合集配备了特定的Collection Vault金库,由于MOPN是全链游戏,与NFT相关的市场数据不应依赖于预言机,所以MOPN设置了Collection Vault通过特定机制来获取NFT市场价格等场外信息(后面会提到怎么实现)。上述规则构建起了以 MT Token为核心的经济系统,如图所示。下文中,我们将从游戏设计者的视角,对MOPN的实现方式进行简要介绍。

ERC-6551账户解析


MOPN为每个参与放置挖矿的NFT创建了ERC-6551抽象账户,而ERC-6551账户是MOPN游戏系统的核心组件,大量的业务逻辑都依赖于它来实现。

ERC-6551标准源自EIP-6551,旨在为NFT创建专属的AA钱包账户,让NFT可以像普通的以太坊用户一样拥有诸多权利。比如说,你可以为BAYC注册一个ERC-6551账户,利用该账户进行收款及链上操作。当用户转让NFT时,相应ERC-6551 账户的所有权也会被一并转移。

这么做有什么意义呢?在某游戏场景中,假设以太坊地址A拥有一个名为Bob的虚拟游戏角色,而Bob本身是以ERC-721 NFT的形式来实现的,其持有多个道具(如帽子、鞋子、武器等)以及其他资产(如金元宝),这些资产可能借ERC-20、ERC-721等形式来实现。虽然这些道具在游戏的设定中被视为属于Bob,但在底层合约的视角,上述资产关联在地址A名下。

假设地址A的控制者将虚拟角色Bob出售给别人,需将Bob及其持有的游戏资产逐一转移给买家,这在实际操作中比较繁琐且并不合理。EIP-6551的目标在于,直接为游戏中的虚拟角色Bob创建一个专属的钱包账户,用于管理其持有的道具和资产,使得整个交互流程更简洁更合理化。  ERC-6551主要由以下两个模块构成:1.Registry。Registry是一个工厂合约,用户可以把自己的NFT合约地址和tokenId提交过去,Registry将为其生成一个专属的固定地址,在此地址内为用户的NFT部署账户。2.Account Implementation。该模块涵盖了ERC-6551账户的具体实现细节,各个项目方会根据自身需求,采用适合自己的具体实现方案。

MOPN配备了自己的Registry和Account Implementation模块,用户可以输入NFT合约地址以及 tokenId,以确定性的方式为NFT创建一个专属的ERC-6551账户,用于适配游戏操作中的各种需求。NFT放置挖矿的机制设计前面我们曾提到,用户进入游戏后的第一步,便是选择NFT并将其放置于适合的区域,下图展示了目前MOPN的部分地图:

在游戏地图上,我们可以观察到属于不同IP合集的NFT以及不同颜色的地块。每个NFT都会将自己周围1格的地块辐射成特定颜色,只有同类NFT才可以紧挨着放置,非同类NFT之间至少要拉开两个地块的距离。对此,MOPN采用了六边形地块,并建立了坐标系如下图:

显然,地图上的每个地块都有唯一的坐标,整个地图被分为10981个区域,划分为10981个MOPN Land,每个Land有自己专属的LandId。在MOPN的设计中,Land拥有者可以向NFT放置者收取租金,即5%的NFT挖矿收益会流入地块拥有者的ERC-6551账户。每个被放置的NFT,其ERC-6551账户中存在一个titleAccounts字段,表示该NFT所属的集合。当你尝试将NFT放置在某个地块上时,相关合约会读取该地块紧邻的19个地块上的NFT对应的ERC-6551账户,通过检查titleAccounts字段判断是否有异类的NFT被放置在了临近区域。

上面讲到的内容还只是整个MOPN机制设计的冰山一角。站在游戏设计者的角度,你还要考虑很多麻烦的问题。首先,在游戏早期,你要考虑哪些NFT可以参与到MOPN游戏中,如果你不对NFT种类进行限制,一定会有人把大量的垃圾NFT放置在地图中快速获取大量MT Token收益,最终使得Token严重通胀,这本质就是反女巫问题。为了避免此类情况,一定要采取限制措施,仅允许特定类型的NFT参与到游戏中。MOPN在正式启动前,使用以下公式为市场上所有的NFT合集进行评分:

以下是MOPN官方根据最近的快照信息给出的统计表格。

我们可以看到表格内有个名为STAGES的列,代表该NFT所属的IP合集何时能够参与游戏。标记为Stage1的NFT系列在游戏启动之初就可以参与放置挖矿,而Stage2和Stage3则需要等游戏进行到一定阶段时。第二个问题,谁可以放置NFT?答案是任何人都可以,放置NFT的人可以不是NFT的主人,但只有NFT的主人能直接提取放置挖矿的奖励,之后分一部分给替他放置NFT的人。我们将这种不是该NFT的主人,但代其放置NFT的人称为“Agent代理人”。按照MOPN的设计,当NFT持有者提走挖矿奖励,或NFT被移动、炸掉时,Agent可以分得部分挖矿收益,具体数值为:放置挖矿收益的

其中n指该NFT系列已有的Agent数量(比如有n个人做了BAYC NFT放置挖矿的代理人)。显然,作为Agent,越早参与游戏可获得的奖励越多。最后是第三个问题,如何计算NFT的放置奖励?这个问题其实要结合MOPN自身的经济模型来解答。MT的总供应量为10亿,Blast每出一个区块(大概2秒),MOPN就会向NFT矿工释放一定的Token奖励。MT初始时设定为,Blast每出一个块就释放60枚,每过50000个区块(1.2天),MT释放量衰减千分之三。具体的释放曲线如下:

当我们确定每个区块的MT释放量后,就可以计算每个NFT分得的挖矿奖励,因为每个区块中释放的MT会按照权重,分配给参与挖矿的不同NFT。上文提到的MOPN Point,决定了每个NFT的奖励权重

其中,Tile Point根据NFT所在的地块进行分类,分为+1、+5和+15三档,对应地图上不同稀有度的三类地块。Collection Point与NFT所属的IP合集以及质押情况相关,在后文关于NFT金库的部分会详述。最终,每个NFT按照其Point占所有NFT总Point的比例,分取每个区块中释放的MT奖励。Land拍卖和炸弹Bomb在前面我们曾提到,当你在MOPN地图上放置NFT时,必须声明目标地块所在的LandId。LandID代表该地块所属的LAND编号,当NFT放置者提取MT挖矿奖励时,5%的MT将流入地块所属的LAND的地主账户中(每个地主控制不同的LAND)。在MOPN中,Land的功能是管理地块,而地块和NFT的关系就像花朵和花盆。所以,LAND也是游戏中的核心资产之一。

(Land实质是个NFT,左下角标记的(-48,10)代表这块Land的中心点地块在MOPN地图中的坐标)LAND的所有权以NFT的形式来表达,所有LAND NFT都通过两种方式发行:用ETH铸造或通过MT Token参与拍卖铸造。ETH铸造Land的模型比较简单,玩家可以花费一定ETH直接铸造并获得Land。第一个Land 的铸造价格为0.02 ETH,之后每个Land被铸造时,价格比前一个上涨千分之一。

而用MT拍卖铸造Land的过程相对复杂一些,采用荷兰拍模式。每个Land的起拍价为100万MT,每轮拍卖一块土地,起拍价每5轮自动下调1%。一轮拍卖完成后,下一轮将自动启动。所有用于购买/铸造Land的MT将被烧毁,这是在整个MOPN游戏中,MT被销毁的第一种途径。

Bomb 机制放置NFT时,若目标地块周围2个地块的距离内有异类NFT,就要用Bomb把异类NFT炸掉,清空其所在地块。Bomb是一种将异类NFT强制移出地图的方式,需要通过燃烧MT的方式来获得,用过的Bomb即被销毁,这是MOPN中MT的第二个销毁场景。

Bomb 的定价遵循公式:

其中MT Production为目标地块上已挖出的MT产量,titles代表这枚炸弹要清除的地块数量,而bomb production代表过去7200个区块内的Bomb使用量,目标地块上NFT已挖出的MT越多,或过去一段时间内人们使用Bomb的次数越多,炸弹价格越贵。NFT合集金库(NFT Collection Vault)在前面我们曾提到,MOPN按照一个评分系统为放置在地图上的NFT分配奖励,这个评分系统叫MOPN Point,MOPN Point包括Title Point和Collection Point两部分。Title Point按照NFT所处地块的稀有度来定,而Collection Point与该NFT合集(如BAYC)在游戏内专属的金库有关。Collection Point度量的是NFT金库内的MT存量,金库内MT数量越多,该类NFT放置挖矿收益越高,其初始计算公式是

其中,Vault $MT是该NFT金库的MT存量。向金库内添加MT的途径,包括挖矿税收和质押两种,第一种是我们前面提到的,任何NFT放置挖矿,在提取收益时都会自动向金库内提交5%的税收(另外5%是土地租金),另外一种就是自愿形式的质押,你把MOPN质押到某个NFT金库中可以获得APY。MOPN的NFT金库还有其他功能,比如它可以为MOPN提供NFT的市场价格数据。由于整个MOPN游戏都是围绕NFT来运转的,NFT的市场价格是一个重要的数据指标,然而作为一款全链游戏,MOPN不希望依赖于预言机等中心化组件。为此,MOPN自己设置了一个类似于AMM的NFT买卖平台(说白了就是自己搭个池子),玩家可以在这个平台上买入/卖出NFT,各种套利行为会使得该平台上的NFT价格与外部市场的价格保持一致,这样系统可以在不依赖于预言机的情况下,设法获知NFT在外部市场的报价。MOPN的NFT买卖平台采用了类似于Uniswap的模式,本质是点对池,然而,相比于ERC-20的 AMM,NFT的AMM较难实现,一方面因为NFT是非同质化的,任何人对特定NFT都有自己的心理价位,无法直接对一个IP系列直接定价,另一方面NFT本身数量有限,流动性远不如FT,这使得NFT的成交较为困难。针对这个问题,MOPN将拍卖和AMM结合起来,由金库合约直接参与NFT的买卖,直接贡献流动性。NFT金库向玩家收购NFT的过程,遵循自动出价制,起始出价为金库内MT余额的20%,第一次成交后,下一次的初始买入价会设置为金库最后要价的75%,每个区块增加0.05%,最高限额为金库余额的20%。当某NFT持有者认为报价符合自己的预期,可以出售自己的NFT。之后金库会从买入NFT切换为售出NFT的模式,启动荷兰拍,公开出售其刚刚收购的NFT。荷兰拍的起始报价为收购价的125%,每个区块下降0.05,下限为1MT。拍卖完成后,占成交价0.5%的MT将被销毁,这是MT被销毁的第三种途径。完成NFT售出后,金库可以再次转入收购状态,向外界提供NFT报价,如此循环往复。相比于常规的x * y = k模式,基于拍卖机制的广义AMM可以帮助每一个NFT被充分定价,最终使得金库以接近于最优报价成交。若未来MOPN有足够的影响力,大量 NFT可能以这种方式进行交易,NFT的流动性会在一定程度上得到解决。由于上述拍卖机制使得NFT被充分定价,所以我们可以粗略认为,金库中NFT的买卖成交价,就是当前NFT合集的地板价,这代替了预言机的喂价功能。回到MOPN Point这里,由于金库内的MT存量可能不稳定,无论是NFT买入和卖出,金库内的MT库存都会有很大变动,出于公平和稳定,在某NFT的金库卖出NFT后,Point计算公式变为:

其中,vault last ask-accept price是该NFT最后一次被金库售出后,其获得的MT量,而vault $MT是售出NFT前金库内MT的存款。总结从技术实现角度看,MOPN引入了ERC-6551账户,提高了游戏系统的灵活度和可组合性,同时采用基于拍卖的NFT交易平台,提供了一个基于点对池的NFT市场,通过内部市场的报价,解决了全链游戏对预言机的依赖问题。作为一个比较易懂的全链游戏经济模型设计案例,MOPN还是值得我们去深入学习的。游戏2NFT1账户抽象4智能合约3生态研究12游戏 · 目录上一篇

Tabi Chain:如何在技术上为传统游戏开发者创造更好的环境

0

免责声明:文章中的所有内容仅代表作者的观点,与本平台无关。用户不应以本文作为投资决策的参考。

PoolX:锁仓获得新代币空投
不要错过热门新币,且APR 高达 10%+
立即参与!

你也可能喜欢

CETUSUSDT 现已上线合约交易和策略交易

Bitget 已于2024年11月6日(UTC+8)上线 CETUSUSDT 合约交易,最大杠杆为25倍,合约策略交易将同步开放。 欢迎通过我们的官方网站或 Bitget APP 开始合约交易。 CETUS U本位永续合约: 合约参数 详情 上线时间 2024年11月6日 15:00(UTC+8) 合约标的 CETUS 结算资产 USDT 最小变动价位 0.00001 最高杠杆倍数 25x 资金费用结算频率 每八个小时 交易时间 7*24 根据市场风险状况,Bitget可能调整包括最小变动价格、最高杠杆倍数、维持保证金率等重要合约参数; 【合约】 Bitget 的合约包括:U本位合约、币本位

Bitget Announcement2024/11/06 07:05

StarryAI:引领AI与Meme融合创新潮流

用户可以创建定制化AI Meme机器人,参与交易、众筹、赚取收益,探索早期有潜力的AI Meme项目,享受丰富的Meme内容。

BlockBeats2024/11/06 07:00

a16z 政策主管:美国政府应如何抓住 Web3 机遇

这份机构行动清单希望能帮助美国监管机构朝着正确的方向迈出步伐。

ForesightNews 独家2024/11/06 03:59

X帝国:AI化身回归

Bitget2024/11/06 03:23