大型 MMORPG 遊戲可以運行在鏈上嗎?#
我們都渴望一個沒有腐敗、惡意和輕蔑的自主世界;一個持久、永恆和自主的世界。
我們怎樣才能實現這一點?就像在區塊鏈不可能三角中,這些努力總需要某種程度的妥協。
自主世界(AWs)面臨著同樣的不可能三角問題。AWs 需要能夠擴展到數百萬並發玩家,這是一個難以解決的問題。
Rollups 通過將三難問題部分轉化為二難問題來解決它,這得益於繼承了結算層的安全性 —— 只要有第一層(L1)原生資產和無需許可的退出機制。
使用樂觀 rollup,你需要在可擴展性和安全性之間做出選擇,這就是為什麼一些 rollup 方法通過使用替代數據可用性(alt DA)或 plasma DA 來實現可擴展性時會在安全性上妥協。然而,使用 ZK Rollup,你可以在最小信任假設下證明狀態的完整性,旨在解決所有三個挑戰:可擴展性、安全性和去中心化。ZK 是最終解決方案。
什麼是可驗證化遊戲(Provable Games)?#
鏈上遊戲承諾給我們自由表達和對我們信息的主權。它們之所以具有這些屬性,是因為它們運行在通過共識驗證的區塊鏈上。使用 zk 證明的可驗證化遊戲(Provable Games),允許在沒有大型共識方案的情況下驗證遊戲狀態和計算。用 Cairo、Noir 等語言編寫或運行 RISC-Zero 的這些遊戲,可以在類似瀏覽器的獨立 zkVM 上獨立運行,可驗證的輸出確保了真實的執行。這擴大了我們在鏈上遊戲行業的可能性。
一個具有代表性的例子是像大金剛(Donkey Kong,類似於瑪利歐兄弟的遊戲)這樣的遊戲。目前,要想在排行榜上認證你的高分,你必須在認證的機器上玩遊戲以防止作弊,同時記錄你的遊戲過程。然而,如果大金剛是一個可驗證化遊戲,玩家就可以在隔離環境中競爭。取得高分只需向遊戲提交一個證明進行驗證。這種方法允許玩家在家的舒適環境中確立自己作為大金剛之王的地位,無需錄製遊戲過程!
在獨立的 zkVM 中運行完整遊戲目前還面臨挑戰。為了解決這一問題,Dojo 生態系統正在努力簡化過程,以減少複雜性。像 Tonk 這樣的團隊在可驗證化遊戲領域取得了進展,他們的一個顯著成就是在 zkVM 上運行了《毀滅戰士》(Doom)。隨著證明成本的降低和新的證明者,如 Stwo 的出現,設計可驗證化遊戲和應用的潛力在不斷擴大。
我們不必在一個孤立的 zkVM 中運行我們的可驗證化遊戲。相反,我們可以在帶有最少參與者的 mini-StarkNet 網絡上運行我們的遊戲,仍然能夠保證安全性。
值得注意的是,這種方法並不是非此即彼的。例如,你可以在一個 EVM 上運行一個鏈上遊戲,然後在其上層疊加一個基於 Cairo 的遊戲,增強核心遊戲的同時擴展其功能。
為什麼要做可驗證化遊戲?#
想像一下,如果《RuneScape》(一個 MMORPG 開放世界遊戲)的世界突然關閉了,永久地抹去了每個人的遊戲數據。那會有一些非常憤怒的玩家。這種情況遲早會發生,當開發者決定關閉伺服器的時候。我們能做得更好嗎?我們能創造一個像《RuneScape》那樣豐富、多樣並且強烈的世界,而不讓這種情況發生嗎?
這個挑戰正是整個鏈上遊戲場景目前正在努力解決的問題:創建一個永久存在、永恆不變和自主的世界。許多團隊正在探索各種方法,這正是所需要的創新和實驗的類型。
許多創新正被投入到鏈上遊戲中,但我們的焦點在於使用 Cairo 和 Starknet VM 探索可驗證化遊戲技術樹。這篇文章旨在將一些可驗證化遊戲概念翻譯成一個實際的例子,靈感來自於傳奇遊戲《RuneScape》。
(在傳奇的 Skystrife chad Kooshoba 在以太坊伊斯坦布爾大會上的演講後受到啟發而寫下這篇文章)
可驗證化的 “哥布林”#
讓我們構建一個有哥布林(goblins)存在的世界,並以 RuneScape 為例,我們將專注於遊戲的初始區域,盧姆布里奇及其周邊環境來探索:
-
卢姆布里奇城堡
-
茂密的森林
-
哥布林
-
庫存物品
對於可驗證化的哥布林,我們需要: -
模擬哥布林和生物的動態移動,為遊戲世界帶來生機。
-
當玩家撿起物品時,實時更新庫存。
-
全球追蹤並保存玩家的進度,以保持一致的遊戲體驗。
-
設計機制防止利用,確保遊戲的完整性。
-
支持數百萬並發玩家的可擴展性。
Web2 遊戲的擴展方式#
傳統遊戲開發依賴於中央伺服器來進行核心功能,如進度管理、NPC 行為、玩家狀態管理、物品控制和規則執行。為了擴展,會增加更多伺服器,並將遊戲狀態分割(分片),允許不同玩家群體的遊戲區域有不同的實例。雖然這是一個有效的擴展解決方案,但這種中心化意味著開發者擁有最終控制權,包括關閉伺服器的能力。這就是為什麼鏈上遊戲產業被創造出來 - 以便能夠擁有一個無需信任的 RuneScape...
傳統區塊鏈方式#
在嘗試使用傳統區塊鏈方法複製中央伺服器的功能時,雖然理論上是可行的,但由於幾個限制,實際上變得不切實際並且幾乎不可能擴展到幾千個並發用戶以上:
交易的驗證
交易或玩家行為必須由網絡中的多個節點驗證和處理。雖然這種方法通過複製處理過程並使用共識來使系統更難被破壞從而確保安全性,但它也在交易處理速度上引入了一個重大瓶頸 —— 即 TPS。當然,這可以通過使用單一的中心序列器(就像幾乎所有的第二層技術那樣)來規避,但這需要更多的信任假設。
每秒交易數
區塊鏈 VM 上的 TPS 限制影響遊戲處理玩家行動的能力。隨著玩家數量及其行為超過區塊鏈的 TPS 容量,會形成積壓,導致費用激增和玩家體驗惡化。這實際上限制了單個區塊鏈序列器能夠管理的並發玩家數量。為了克服這些限制,以太坊專注於以 rollup 為中心的路線圖,將執行移至 rollup 層。
在 rollup 上運行遊戲世界可以顯著提高可擴展性,但如果沒有 zk 證明,我們仍然依賴於大型共識機制或廣泛可能不穩定的信任假設,這引入了風險。因此,儘管 zk 被認為是擴展的終極解決方案,但它尚未完全實現。
(相較於 OP 層,ZK 層的信任假設。ZK 假設在低參與度下仍然保持強大,允許存在 mini zk rollups)
一種可驗證化的方式 - 使用遞歸證明和多層架構#
任何區塊鏈的目標是讓用戶對他們的行為擁有絕對的信任。這一原則在行業中常被遺忘;如果我們的目標不是創建無需信任的系統,那我們努力的意義何在?我們不妨依賴中心伺服器,它們在其功能方面表現卓越。
在我們的 RuneScape 世界中,我們將專注於使用 STARKs 開創的遞歸擴展。Tarrence 就這個話題寫了一篇深入的文章,強調了遞歸證明在保持第二層、第三層的最小信任假設方面的重要性。
在我們的世界中,我們可以利用遞歸證明來擴展和分片世界,同時確保任何人擊敗的哥布林確實是哥布林。
一個簡單的圖示:
架構分析#
L1 以太坊
我們在這裡確定最終狀態,所以任何人如果選擇的話,都能重構 L2。這是每一個真正的 rollup 所做的。
L2 Starknet
我們在這裡確定 L3 的狀態,所以任何人如果選擇的話,都能重構 L3。這是我們維持整個世界狀態的地方。
L3 Realms World 或其他 L3
這是一個支持玩家全球狀態的高性能執行層。我們在這裡保存 Lumbridge 分片的最終狀態。這允許在需要時快速創建新的分片,恢復玩家的餘額。
短暫的 Lumbridge 分片
“短暫” 意味著臨時的,強調高效和安全管理每個玩家遊戲狀態的重要性 —— 這對所有玩家來說是最重要的關注點。通過採用鏈分片,將每個分片限制在最多 30 個玩家 —— 這是一個理論上的數字,可能更高,但作為一個可管理的示例 —— 我們反映了傳統伺服器的結構,但有一個關鍵的增強:使用 zk 證明來確保狀態變更的完整性。這允許我們水平擴展到成千上萬的碎片,而不犧牲玩家的任何性能。
將這種方法應用於 RuneScape
就像傳統遊戲伺服器中的水平擴展概念一樣,我們在這裡採用了類似的策略。通過將遊戲世界分成許多更小的碎片,我們使系統能夠有效地擴展並容納數百萬並發用戶。
傳統遊戲伺服器與這種方法之間的關鍵區別是,玩家對自己的遊戲狀態擁有完全的控制,確保了更大的自主權和安全性。每一點狀態都可以重構!
一個例子#
當玩家到達 Lumbridge 時,他們被分配到一個有容量的短暫鏈,允許他們與多達 29 名其他玩家進行互動,同時通過快速和低成本的交易確保高性能。現在我們深入探討:
森林,有諸如木材之類的資源
有了這個短暫鏈,可以跟蹤玩家移動到森林的情況,執行一定級別的移動物理學,我們利用這個分片提供的廉價計算能力來實現這一點。然後他們可以繼續砍木頭,將其添加到他們的餘額並推進他們的玩家進度。
哥布林和其他低級怪物
哥布林可以通過序列器上的內置遊戲時鐘有效地模擬。當遊戲時鐘滴答作響時,序列器推進狀態和它們的位置,直到有用戶來並將它們殺死。如果我們選擇,我們可以在這上面使用相當多的分片帶寬,因為我們限制了玩家數量,我們可以最大化 NPC 的移動。
各種散落或由怪物掉落的物品
物品可以被撿起並存儲在玩家的餘額中。當玩家結束他們的會話時,這些物品將保存到全球狀態中。這些值不是短暫的,而是保存到 L3 中,供下一次會話中使用。
結束遊戲
在遊戲會話結束時,玩家的狀態通過回轉到 L3 來保留在一個全球狀態中,為他們的下一個區域或會話設置舞台。然後在 StarkNet L2 上進行驗證,隨後在 L1 上進行驗證,有效地建立了一個可證明公平的 RuneScape。
Q&A#
我們正在構建的整個堆棧是開源的 - 加入 dojo discord 或直接為核心做出貢獻。
問題 1:那麼在這些層之間的橋接怎麼辦?這對玩家來說不會是一場噩夢嗎?
是的,目前橋接確實存在問題。然而,已經有一個清晰的解決方案正在 Starknet 生態系統中使用,並將很快在其他第二層上可用。這些被稱為存儲證明。是的,我正在嵌入我的推文。第二部分將討論此事。
問題 2:為什麼選擇遞歸證明和短暫鏈而不是其他方法?
澄清一下,這是 Dojo、Cartridge 和 Realms 生態系統採用的方法,以擴展我們想像中的世界。而這不是唯一的方法,探索各種方法是有益的。我認識的一些最聰明的人也在解決這個領域中最具挑戰性的问题,他們的工作絕對值得一看。
Lattice - OP Plasma 與 Redstone 結合,實現非常便宜的交易。
Playmint - 獨特的樂觀引擎,用於快速遊戲玩法。
PoP - 專門的 EVM 分片。
Argus - 定制的 EVM 遊戲分片。
Curio - 修改過的 EVM 伺服器方法。
創建一個能夠支持數百萬並發玩家的自由開放的 RuneScape 絕非易事。然而,鏈上遊戲行業的集體智慧和創造力是強大的力量。因此,預期在未來 12-24 個月內出現像這樣的遊戲是合理的。是時候返回 RuneScape 了,或者更恰當地說,是時候歡迎 RealmScape 的黎明了。
本文由 @lordofafew 原創
由 @hicaptainz 翻譯和編輯
關注我,web3 遊戲不迷路。