作者: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枚,每過50,000個區塊(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還是值得我們深入學習的。