在全鏈遊戲突然成為市場焦點之際,基於以太坊的 Dark Forest 元老級區塊鏈遊戲也引發用戶的關注,下文為讀者說明該遊戲如何在全鏈環境中運行?
(前情提要:GameFi救星?ERC-6551創辦人:或能改變鏈遊的命運 )
(背景補充:觀點》GameFi幾乎死光了!原因:商業邏輯都是資金盤 )
Dark Forest 是一個基於以太坊區塊鏈的去中心化策略遊戲,玩家可以在遊戲中採集資源、建造基地、發展科技、收集武器,與其他玩家進行戰鬥並爭奪資源。
在 Dark Forest 中,每個玩家都掌握著自己的星球,並需要在星球上採集資源,建造基地和發展科技來提高自己的戰鬥能力。玩家可以使用資源生產建築、科技研究和武器製造設施,以便在戰鬥中獲得優勢。
當玩家在星際空間中飛行時,他們需要通過不斷的偵察和探索來發現其他星球和資源。當兩個玩家同時發現同一顆星球時,他們可以選擇對該星球發起進攻或者選擇逃離。在進攻時,玩家需要使用自己的武器來攻擊對方的基地,並奪取對方的資源。
Dark Forest 的特點在於遊戲完全基於區塊鏈技術,每個玩家的星球和資源都儲存在區塊鏈上,無法被篡改或者刪除。此外,Dark Forest 也是一個去中心化遊戲(DeGame),沒有中央伺服器控製遊戲程式,而是由所有玩家共同維護和決策。
Dark Forest 如何在全鏈環境中實現
Dark Forest 也是首次在全鏈去中心化遊戲中引入戰爭迷霧系統的遊戲,得到了 V 神的肯定。我們將在本文深度拆解,來探討這樣一個即時策略遊戲如何在全鏈環境中實現。不定時 @DfArchon 會舉辦「Community Round」,感興趣的同學也可以參加測試一下。我們從遊戲型別說起,先對 MMORPG 和 MMORTS 遊戲做對比:
- MMO -RPG 遊戲:多人線上角色扮演,開放世界,遊戲有始無終,遊戲的樂趣在於身臨其境體驗故事性和元宇宙遊戲世界。比如,魔獸世界。
- MMO-RTS 遊戲:多人線上策略對抗,相對小的封閉世界,遊戲一輪有始有終,遊戲的樂趣在於在故事背景下的多人對抗,需要用到策略來獲得資源發展然後消滅敵人。典型代表,星際爭霸,魔獸爭霸,一局在 20-40 分鐘。
- DF 是 MMORTS 遊戲,因為可以同時參與的人多(可達上千人),區塊鏈 TPS 有限制,所以一輪(round)持續時間在 10 天左右,勝負以天梯得分排名為準,得分主要來自於遊戲中獲取的資源(PVE 的自由獲取和 PVP 的掠奪)。 遊戲暫停期間,使用者不可與遊戲合約互動。
實盤操作
最早只有官方舉行 Official Round 的時候,需要邀請碼(key)登入來參與,現在有了 lobby 功能,任何人都可以建立自己的 round,所以就有了所謂的 communityround(類似於社群舉辦的一場比賽)。進入主頁 https://zkga.me/ ,點選 「Create Lobby」,會進入 Lobby 設定頁面,如下圖
- Game settings:通過更改能量 / 銀幣的恢復速度以及航行速度可以修改遊戲速度。
- World Size:通過修改宇宙半徑來改變地圖的大小。
- Space Type & Biome: 選擇遊戲地圖。
- Planets:設定行星的基礎引數。
- Player spawn:生成玩家的引數設定。
- Space junk:該遊戲道具的引數設定 。
- Capture zones:佔領區引數設定。
- Artifacts:該遊戲道具的引數設定 。
- Admin permissions:設定是否開啟白名單玩家。
- Advanced Snarks:戰爭迷霧引數設定。
關於 Lobby 更多的使用技巧,請參考這篇官方的解答:
https://blog.zkga.me/introducing-dark-forest-lobbies
Dark Forest 表面上看起來很複雜,但其實它的基本遊戲規則很簡單:行星有能量值,此能量值會隨著距離的延展而衰減,行星間的跳躍就是互相攻擊,攻擊的勝負是以衰減後的能量值大小來判定。當然了,也已經有很多文章和影片來講述如何玩遊戲,這裡不做更細致的分享。
開發者文件分析
開發者文件 對遊戲的開發架構做了一些框架性的解釋,分別針對外掛開發者,網頁客戶端開發者,遊戲合約開發者和 ZK 電路開發者。
Connect to the Blockchain
遊戲執行在 xDai 的 layer2 上面,也就是現在的 Gnosis Chain,因為遊戲在執行中需要和合約有大量互動,所以內建 RPC 節點。Gnosis 團隊甚至為這個遊戲開通了一個遊戲專用節點。
Plugins
黑暗森林允許玩家通過外掛系統自定義預設的網頁客戶端。 外掛是玩家可以編寫的程式碼片段,用於生成遊戲資料的替代檢視、自動化常見的遊戲流程,甚至重新設計遊戲面板。 從本質上講,Dark Forest 允許玩家以他們喜歡的任何方式與網路客戶端進行程式設計互動。
Mining
黑暗森林的關鍵機制是它的密碼戰爭迷霧。 當第一次加入遊戲時,您不知道其他玩家所在的位置。玩家必須計算hash 值才能發現宇宙中的興趣點,例如行星和其他玩家的位置。 這些 hash 值儲存在瀏覽器的本地儲存中,並被視為祕密資料。
預設情況下,Dark Forest 預設 Web 客戶端使用單執行緒 Javascript 礦工來探索宇宙,但您可以採取多種措施來提高hash率,比如改變挖掘按鈕旁邊的 CPU 核心。 如果您嘗試將核心數設定為大於您電腦的實際核心數,您的礦機效能將趨於平穩。
當玩家的礦工發現宇宙區域地圖時,網頁客戶端會將與這些未發現區域相關的資訊儲存到瀏覽器的本地儲存中。黑暗森林將資料儲存到 IndexedDB。 玩家也可以通過執行一臺遠端伺服器來充當探索位置地圖的礦工。
Snarking
黑暗森林由 ZK-Snark 技術提供支援,ZK-Snark 技術是一種密碼技術,可用於在不洩露函式的輸入或邏輯的情況下證明函式的正確性。
黑暗森林使用這種技術來驗證遊戲中的移動是否有效,而不會向在鏈上窺探的人們透露行星的位置。 這種技術(Zk-snark Proof Generation)在計算上非常昂貴! 所以該 ZK-Proof 將計算移到瀏覽器之外,需要本地執行一個 Node.JS。當然了,遊戲也允許使用一臺遠端伺服器來執行這個服務。
總結
作為一個有著極強創新性的全鏈遊戲,Dark Forest 的發展確顯得緩慢。一個可能的原因是,這是一個社群推動的專案,雖然可以保證去中心化,但也因此影響了開發效率。
上次 official round 是在 2022 年 2 月。Webclient 更新是在 2020 年 10 月,第三方(社群)外掛更新還稍微活躍一些,包括 2022 年 7 月的 nightmarket(匿名交易行星坐標),2022 年 3 月的 lobby。