原文作者: Solaire, YBB Capital

一級標題
一級標題
一級標題
全鏈遊戲的起源與發展
全鏈遊戲的歷史可以追溯到10 年之前,Mikhail Sindeyev 分叉Namecoin 並構建了世界上第一個區塊鏈遊戲《Huntercoin》。 《Huntercoin》於2013 年作為一個實驗原型開始,並迅速發展了一批在線狂熱追隨者,得到了許多著名的bitcointalk.org 成員的支持。憑藉科技愛好者對視頻遊戲的熱愛,最受歡迎的Huntercoin 帖子獲得了超過380, 000 次的瀏覽。然而遺憾的是Mikhail Sindeyev 在2014 年2 月中風去世了,《Huntercoin》的開發也陷入困境,代幣HUC 在2015 年幾乎歸零,雖然全鏈遊戲的第一次嘗試並沒有成功,但慶幸的是全鏈遊戲的故事仍在繼續。

2020 年Gubsheep(Brian Gu)、Alan Luo、SCOTT SUNARTO ,受到小說《三體:黑暗森林》的啟發,開發了一款同名MMORTS 太空征服遊戲《Dark Forest》。遊戲建立在以太坊之上,並將所有規則、邏輯寫入到智能合約,即每一步動作都是一筆鏈上交易的全鏈遊戲。遊戲內容的核心部分則利用了ZK-Snarks(零知識證明)技術去製作戰爭迷霧以復現三體小說中黑暗森林法則的定義(一旦某個宇宙文明被發現,就必然遭到其他宇宙文明的打擊)。
比如當玩家想要採取行動時,受到黑暗森林的法則影響,玩家不能暴露自己的坐標,卻要從A Odaily 移動到B Odaily ,他們需要提交A 跟B 的坐標以證明這是有效的,但以太坊的區塊信息是完全透明的,《Dark Forest》則通過以下方式去實現信息隱藏。玩家選擇要離開的Odaily 和目的地Odaily ,這兩個Odaily 的位置是玩家的私有信息。計算要離開的Odaily 和目的地Odaily 的位置的哈希值,然後將這兩個哈希值提交到區塊鏈。在這個階段,玩家會提交一個承諾(Commit 階段),由於哈希函數的單向性,這些提交的哈希值不能用來確定玩家的實際行星位置。而下一個階段是驗證(Reveal 階段),在此階段,玩家生成並提交一個零知識證明,證明他們的行動是有效的。這個證明可以被任何人驗證,但不會透露任何關於玩家Odaily 位置的信息。
如此,第一個在信息透明的以太坊上做到隱藏信息的全鏈遊戲就誕生了,這個瘋狂又極富想法的實驗,很快在整個Crypto 圈子裡引起了轟動,Vtalik(以太坊創始人)甚至在Twitter 直接轉發並稱讚了這個遊戲。
一級標題
一級標題
Autonomous Worlds
一級標題
基於0 x PARC 加密遊戲論文合集《Autonomous Worlds》中的觀點,全鏈遊戲至少需要遵循五個標準:l 數據來源於區塊鏈:"區塊鏈不僅僅是數據的輔助存儲,也不僅僅是存儲在專有服務器中數據的"鏡像
。所有有意義的數據都可以在區塊鏈上訪問,而不僅僅是資產所有權等數據。這樣,遊戲就能充分利用可編程區塊鏈的優勢——透明的數據存儲,可無權限互操作;l 邏輯和規則通過智能合約實現:
例如,遊戲中的戰鬥,而不僅僅是所有權,都是在鏈上進行的;l 遊戲的開發遵循開放生態原則:
遊戲合約和可訪問的遊戲客戶端都是開源的。第三方開發者可以通過插件、第三方客戶端、互操作智能合約,實現完全重新部署,定制甚至分叉自己的遊戲體驗。這反過來又使遊戲開發者能夠利用整個(激勵一致)社區的創造性產出;l 遊戲永久存於鏈上:
這一點與上述三點密切相關,因為檢驗一款遊戲是否是加密原生遊戲的試金石是:如果明天核心開發者提供的客戶端消失了,遊戲還能玩嗎?答案往往是肯定的,如果(也只有當)遊戲數據存儲是無權限的,如果遊戲邏輯可以無權限執行,如果社區可以與核心智能合約交互而不依賴於核心團隊提供的接口;l 遊戲可與我們認為有價值的事物互通:"區塊鍊為價值概念本身提供了一個本地應用程序接口,數字資產默認情況下可與我們關心的其他資產互操作。這既反映了遊戲的深度和意義,也有助於提升遊戲的深度和意義,並將遊戲世界與"真實
世界聯繫起來。
基於這個標準下構建的全鏈遊戲也可將其看為基於區塊鍊為低層的世界,或者說Autonomous Worlds(自主世界)。
那麼何謂世界?世界並非只能指代現實世界,世界的載體可以是小說、電影、遊戲、詩歌甚至法律體系。但在這些世界裡都是由中心(作者、開發者或者群體)制定框架與規則再傳達給我們。這些世界裡自主性的程度也是不一樣的,比如開放世界遊戲裡非常知名的《Minecraft》(《我的世界》),玩家擁有極高的自主性,通過對不同方塊的搭建,以及規則修改,玩家可以創造只屬於他們的世界。而自主性較低的世界可能是小說世界,比如《Harry·Potter》,我們看到的這個魔法世界都是基於JK 羅琳所創造的規則和框架。
如果把區塊鏈作為世界的基底,區塊鏈毫不含糊地保存了其狀態下所有節點實體的集合。此外,它們還用計算機代碼正式定義了引入規則。擁有區塊鏈底層的世界可以讓其居民參與共識。它們運行一個計算機網絡,在每次引入新的實體時達成一致。
從世界的角度來看,有兩個區塊鏈概念需要定義:
l 區塊鏈狀態根:狀態根是對世界中所有實體的壓縮。
有了狀態根,人們就可以確定任何實體是否是虛擬的,相信一個世界的狀態根就等於相信世界本身。 0x411842e02a67ab1ab6d3722949263f06bca-20c62e03a99812bcd15dce6daf26e 是2022 年7 月21 日07: 30: 10 PM UTC 時的以太坊——一個擁有區塊鏈底層的世界的狀態根。在計算這個狀態根時,以太坊世界的所有實體都被考慮在內。它代表了該世界在該特定時間內的全部內容;
它可以被視為一個明確的引入規則。它定義了"世界"一級標題
一級標題
一級標題
創造的困境
在早期探索全鏈遊戲的新設計過程中,開發者多次受到傳統DApp 架構和用於構建DeFi 應用的庫的局限性的影響。 《Dark Forest》和其他早期的全鏈遊戲構建在當時不得不遵循用於構建DeFi 應用的架構和庫,這些架構成為了當時構建全鏈遊戲的默認選擇。
早期在創造全鏈遊戲方面的模式可總結為四點:l 當不同合約觸及相同狀態:
多個智能合約可能會修改同一個數據或狀態,這可能會導致數據不一致或其他問題。有時使用Diamond Pattern 去解決(鑽石模式是一種解決Solidity 智能合約中多重繼承問題的方法);l 編寫多種數據結構:
每種實體(如游戲中的士兵、行星等)都有其自己的數據結構和類型;l 編寫Getters 函數:
此為數據結構返回批量元素的函數,用於從鏈上獲取初始狀態或數據。例如,getPlanets()函數可能會返回所有行星的列表;二級標題
二級標題
二級標題

世界的創造者——MUD 引擎
MUD 引擎的誕生來自於開放者們對過去以及現有問題的思考,MUD 是一個構建複雜應用的以太坊應用程序的框架。 MUD 提供了一些組織數據和邏輯的約定,並抽象了低級複雜性,使開發者可以專注於應用程序的功能。它標準化了鏈上數據的存儲方式。有了這種標準數據模型,MUD 可以提供所有網絡代碼來同步合約和客戶端狀態。
MUD 最新版本目前配備了五個組件:
l Store:一個鏈上數據庫;
l World:一個入口點框架,帶來標準化的訪問控制、升級和模塊;
二級標題
二級標題
二級標題
二級標題
二級標題
核心思想
核心思想
MUD 作為一套為鏈上複雜應用設計的高度協同的庫和工具,其核心思想圍繞三點:
l 所有鏈上狀態均保存在MUD 鏈上數據庫Store 中:Store 是一個嵌入式EVM 數據庫,類似於SQLite 數據庫,它具有表、列和行的概念。使用Store 可以更加結構化地管理數據,並且不需要依賴Solidity 編譯器提供的存儲方法。並且,它支持在運行時創建表,並允許註冊掛鉤以自動創建索引視圖,從而帶來更多靈活性;"World"l 邏輯是無狀態的,並且通過自定義權限跨不同合約進行分區:"Store"充當一個入口點,協調不同的智能合約對
二級標題"MODE"二級標題
二級標題
突破枷鎖
l 當不同合約觸及相同狀態:通過使用"World"和"Store"和"World"結構來集中管理鏈上狀態。所有的智能合約(在MUD 中稱為“系統”)都通過"Store"來訪問和修改
中的數據。這確保了所有的狀態修改都經過一個集中的入口點,從而減少了數據不一致或衝突的風險。通過命名空間和路徑,MUD 提供了對數據的細粒度訪問控制。不同的“系統”可以有不同的權限,從而確保只有授權的“系統”可以修改特定的數據或狀態;"Store"l 數據結構:與傳統的Solidity 存儲方法不同,MUD 的
提供了類似於SQLite 的表、列和行的概念,從而可以更加結構化地存儲和管理數據。每種實體(如游戲中的士兵、行星等)都可以有其自己的表,每個表可以有多個列來存儲該實體的不同屬性;"Store"l Getters 函數:由於MUD 的
一級標題
一級標題
一級標題
二級標題
二級標題
二級標題
全鏈遊戲需要怎樣的Rollup
l 高吞吐量與高TPS:更快的交易處理,更低的延遲,更好的可擴展性;
l 擴展讀寫:大多數Layer 2 為了高並發處理,都設計成進行大量寫入,但遊戲需要讀取以獲得玩家位置,所以讀與寫同樣重要;
二級標題
二級標題
二級標題
為了實現上述目標,團隊回顧了21 世紀初和20 世紀90 年代末並受到啟發,像MMOs 這樣的在線遊戲剛剛興起的情況。早期的在線遊戲在服務器和網絡技術相對有限的情況下,需要找到一種方式來支持大量玩家的互動。"分片"分片
就是其中一種解決方案,它的核心思想是將玩家分佈到不同的服務器或“分片”上,每個分片可以獨立地託管一部分玩家、遊戲地圖和數據。
例如,Ultima Online 是一個早期的MMORPG,它在服務器上實現了分片概念。遊戲中的不同分片代表了不同的虛擬世界,每個分片可以容納一定數量的玩家。這樣做的好處包括:
l 擴展性:通過將玩家分佈到不同的分片,遊戲可以更輕鬆地擴展以適應更多玩家的加入;
l 減少負載:分片可以減少單個服務器上的玩家數量和數據量,從而降低服務器的負載,提高性能;
l 避免擁堵:分片可以減少玩家在同一區域的擁堵情況,提供更流暢的遊戲體驗;
l 地理位置優化:通過將玩家分配到就近的分片,可以減少網絡延遲,提高遊戲響應速度。"World Engine"那麼如何把這個概念帶入World Engine?與過去的許多分片排序器不同,"Tick rate"的設計更適合特定的需求。它的優化方向包括吞吐量和運行時間。為了確保高效的
(即每秒更新頻率)和區塊時間,它默認是同步的。設計的目標是確保交易被迅速處理,以保持高效的遊戲體驗或系統性能。在排序方式上採用的是部分排序的方式,而不是強制要求對所有交易進行總排序。這意味著並不要求每個交易都必須在所有其他交易之後發生。這可以減少排序的負擔,從而更好地滿足高吞吐量和快速區塊時間的需求。
一級標題
一級標題
一級標題
結語:對全鏈遊戲的思考
參考文獻
參考文獻
參考文獻
參考文獻Modular Summit Day 1 (Galois Stage)1. 原文:相關閱讀
3.相關閱讀
相關閱讀
1.相關閱讀
4.The future of on-chain gaming: 'The promise of MUD ECS engine'


