解讀MOPN:如何設計一款NFT放置挖礦全鏈遊戲?

2024-06-12 14:56 極客 Web3


作者:Shew Wang & 白丁,極客web3

摘要:

可能每個人都有自己設計一款遊戲的衝動,闲暇時的各種腦洞如果組合到一起,能否促成一款遊戲的誕生?如果讓你自己設計一款全鏈遊戲,你會怎么做?可能想着容易做起來難,如果你真的下場設計一款全鏈遊戲,需要考慮的問題其實比想象的更多更復雜。

本文以一款名爲MOPN的NFT放置挖礦遊戲爲例,其主要玩法是在有限的公共土地上放置NFT來賺取收益,即放置挖礦。在設計這款遊戲時,遊戲設計者不但要考慮爲其原生Token制造銷毀/通縮場景,還要思考怎么反女巫、爲關鍵的數據指標構造合適的數學公式,以及解決全鏈遊戲對預言機等第三方組件的依賴

下文中,我們將從MOPN的機制設計和經濟模型等多角度展开解析,幫助更多人理解Web3遊戲的設計思路和全鏈遊戲的實現路徑。

MOPN遊戲規則簡述

作爲一款Token本位的放置遊戲,MOPN的核心玩法很簡單:該遊戲創建了一個包含近100萬個地塊的开放地圖,玩家在开放地圖上放置NFT以獲取獎勵。MOPN中包含4種資產:

1. MOPN的原生Token——MT(MOPN Token),

2. 用於放置NFT的地塊——MOPN Land

3. 玩家放置在地塊上的NFT

4. 炸掉地塊上已有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還是值得我們去深入學習的。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

標題:解讀MOPN:如何設計一款NFT放置挖礦全鏈遊戲?

地址:https://www.sgitmedia.com/article/32116.html

相關閱讀: