【#區(qū)塊鏈# #全鏈游戲新篇章:用 zkWASM 開發(fā)可證明游戲#】
鏈上游戲和可驗(yàn)證游戲的未來開發(fā)者體驗(yàn),將會(huì)是高度模塊化,可插拔式的。
撰文:wangyao、0xbrawler
太長不看版:
2023 年是鏈上游戲(FOCG)/ 自主世界(AW)蓬勃發(fā)展的一年,出現(xiàn)了大量的基礎(chǔ)設(shè)施。這包括 Mud.dev、Dojo、World Engine、Keystone、Paima 等等。此外,Altlayer、Caldera、Conduit 等 Rollup 服務(wù)供應(yīng)商也吸引了眾多全鏈游戲開發(fā)者進(jìn)行開發(fā)。
然而,通過開發(fā)和運(yùn)營我們的第一個(gè)鏈上大逃殺游戲 Loot Royale,并在一個(gè)月內(nèi)達(dá)到了每日活躍用戶 600–800 人的過程中,我們發(fā)現(xiàn)了一個(gè)重要問題:
如果把游戲邏輯全部放在鏈上,那么 EVM 本身的有限計(jì)算能力將會(huì)成為游戲開發(fā)最大的瓶頸。
計(jì)算能力的不足限制了游戲類型(低計(jì)算量、單線程、異步游戲?yàn)橹鳎?,以及用戶體驗(yàn)(大家要等交易打包、RPC hydration 等)。
簡單舉幾個(gè)例子。我們收到了很多反饋,比如「我希望我的交易能及時(shí)被打包,這樣那次攻擊就能命中了」,以及「RPC 數(shù)據(jù)什么時(shí)候才能完成加載」。這必須改變。
玩家們等 RPC hydration 真是急得不行
在嘗試在各種技術(shù)棧上開發(fā)之后,我們相信如果能夠在鏈下證明計(jì)算,那么其可信性效果應(yīng)當(dāng)極度接近于全鏈上的交易 / 計(jì)算。我們通過采用「鏈下執(zhí)行,鏈上驗(yàn)證」的原則來解決 EVM 的有限計(jì)算能力。這有幾個(gè)優(yōu)勢(shì):
我們將首先簡要介紹我們?nèi)绾问褂?zkWASM 開發(fā)可證明的游戲。然后我們將討論我們的 zkwasm-unity 解決方案,這是行業(yè)內(nèi)首個(gè)允許直接從 Unity 開發(fā)可證明游戲的方案。
技術(shù)架構(gòu)這里分成兩部分,第一部分是用 Rust 編寫簡單的 PvE、PvP 塔防游戲,并通過 zkwasm 進(jìn)行驗(yàn)證。
第二部分是我們的路線圖,我們計(jì)劃開發(fā)一個(gè)將 C#編譯成 wasm 的編譯器,并對(duì)現(xiàn)有 zkwasm 架構(gòu)進(jìn)行適當(dāng)修改,從而實(shí)現(xiàn)一個(gè)更加模塊化、彈性化的可證明游戲開發(fā)方案。(zkwasm 由 Delphinus Labs 開發(fā),是一個(gè)運(yùn)行 wasm 代碼并生成其執(zhí)行軌跡的 zkSNARK 證明的 zkVM。)
讓我們從 PvE 示例開始?—?我們用 Rust 和 Bevy Engine 編寫游戲。
Rust 可以輕松編譯成 wasm,并在 zkwasm VM 中處理之前生成一個(gè) wasm 映像(image)。然后我們可以選擇將處理后的執(zhí)行軌跡發(fā)布到數(shù)據(jù)可用性層(Data Availability Layer)并稍后證明它。或者用戶也可以選擇立刻證明,并將 zkSNARK 證明發(fā)送到鏈上(使用單張 RTX4090 GPU 大約 45 秒就可以處理 100 萬字碼規(guī)模的證明,這對(duì)于較慢節(jié)奏的塔防游戲來說已經(jīng)足夠了)。
游戲然后被分解為幾個(gè)步驟。
(玩家將確認(rèn)地圖設(shè)置并將 zkwasm 輸出提交到鏈上)
(游戲邏輯在 rust 代碼中運(yùn)行一波戰(zhàn)斗。相關(guān)的 execution trace 可以由 zkwasm 證明,玩家提交 zk 證明到鏈上)
對(duì)于許多游戲開發(fā)者來說,在鏈上開發(fā)游戲意味著他們需要學(xué)習(xí) solidity、rust 或 cairo。這意味著他們需要停止使用他們熟悉的 C#。此外,嘗試將 Unity 引擎的渲染和動(dòng)畫與基于 Mud/dojo 的 solidity/cairo 游戲邏輯代碼統(tǒng)一起來,是一個(gè)非常耗時(shí)費(fèi)力的過程。
我們將發(fā)布第一個(gè)使用 zk 協(xié)處理器、Unity 原生的解決方案,用于鏈上游戲的「zkServer」開發(fā)框架。我們稱之為 Zinity。
游戲代碼被解耦為:
1)核心邏輯代碼(攻擊,戰(zhàn)利品箱,單位坐標(biāo)等)
2)其余代碼。然后,這兩部分代碼都從 C#編譯成 wasm,核心游戲邏輯由 zkwasm runtime 運(yùn)行,其余代碼在普通的 C# runtime 運(yùn)行。將有一個(gè)處理消息的通信協(xié)議來負(fù)責(zé)兩邊的通信。
zkWASM 將以二進(jìn)制代碼形式,見證諸如「玩家 A 在時(shí)間 X 在坐標(biāo)(x,y)放置了一個(gè)炮塔」的動(dòng)作。隨著新的一局游戲開始,我們開始獲取初始游戲狀態(tài)。隨著游戲的進(jìn)行,zkwasm 將見證并計(jì)算更多玩家輸入。當(dāng)本局游戲結(jié)束時(shí),將會(huì)生成附帶哈希值的新游戲狀態(tài)和相關(guān)的執(zhí)行軌跡(execution trace)。
我們可以選擇將整個(gè)執(zhí)行軌跡(execution trace)發(fā)布到諸如 Eigenlayer/Celestia/Avail/Greenfield 之類的數(shù)據(jù)可用性層(DA layer)上?;蛘哂脩艨梢赃x擇只將哈希值放在數(shù)據(jù)可用性層上,將軌跡(trace)存儲(chǔ)在云存儲(chǔ)中。此外,我們還會(huì)設(shè)計(jì)一個(gè)挑戰(zhàn)期,以 fault proof 的方式,來驗(yàn)證游戲狀態(tài)。
此外,對(duì)于重要的、玩家參與經(jīng)濟(jì)單位較大的游戲結(jié)果,用戶還可以選擇為全部游戲過程生成 zk 證明,并直接發(fā)布在 DA 層上。
最后,所有流程將被整合并作為 Unity SDK(非動(dòng)畫和渲染)或 CLI 工具來指導(dǎo)整個(gè)工具鏈。
我們還可以將此解決方案擴(kuò)展到其他游戲引擎,如 Unity/Unreal/Godot。未來計(jì)劃還包括與其他 zkVM(如 RiscZero)以及各種 DA 層(Eigenlayer/Celestia)集成。
通過這種方法,我們可以大大擴(kuò)展鏈上游戲 / 可驗(yàn)證游戲開發(fā)者社區(qū),吸引 web2 游戲開發(fā)者和各種游戲工作室。
此外,我們還在探索圍繞可驗(yàn)證游戲的鏈上街機(jī)概念。例如,玩家也可以在鏈上提交某種塔 / 炮塔 / 障礙物的設(shè)置,另一個(gè)玩家可以提交他們選擇的怪物和小兵,以嘗試完成關(guān)卡。戰(zhàn)斗結(jié)果在本地計(jì)算,只有 zk-snark 證明提交到鏈上,以驗(yàn)證游戲結(jié)果。這是為了確保通過關(guān)卡的方法,不會(huì)被廣播到鏈上被大眾可見。
ERC-6551(代幣綁定賬戶)將使這些 PvP 對(duì)局,變成自主街機(jī)(autonomous arcade)。開設(shè)房間的玩家可以向智能合約存入獎(jiǎng)勵(lì),而挑戰(zhàn)者需要支付固定入場費(fèi),該費(fèi)用累積到獎(jiǎng)金池中,以獎(jiǎng)勵(lì)完成關(guān)卡的玩家。前 10 名完成關(guān)卡的玩家,可以拿走一定比例的獎(jiǎng)金池獎(jiǎng)勵(lì)。
我們正在積極探索這個(gè)自主街機(jī)的想法,并歡迎在 twitter 上(@BladeGamesHQ)進(jìn)行任何類型的討論。在我們即將發(fā)布的文章中,我們會(huì)討論塔防游戲的 PvP 示例。
我們將在 ETHdenver 展示一個(gè)可驗(yàn)證的游戲演示。這款游戲?qū)⑹褂?Rust 和 React 開發(fā),在 zkwasm 上運(yùn)行。在twitter上聯(lián)系我們,我們會(huì)把你加入早期試玩人員名單!
我們的 Zinity 解決方案為 web2 和 web3 開發(fā)者,提供了開發(fā)可驗(yàn)證游戲的順暢上手體驗(yàn)。我們相信,讓開發(fā)者使用各種類型的游戲引擎,以及不同的 DA 層和 zkVM 進(jìn)行開發(fā)的即插即用方法,也將提供更大的開發(fā)體驗(yàn)靈活性。
我們?cè)O(shè)想未來的開發(fā)者體驗(yàn)是這樣的:Zinity 可以為可證明游戲提供「彈性」支持,并為 crypto 開發(fā)者、 Web2 游戲開發(fā)者提供可證明游戲的可插拔開發(fā)選項(xiàng)。
比如開發(fā)者可以用 Rust 編寫核心游戲邏輯,用 C# 和 Unity 編寫游戲的其余部分,并在鏈上 commit 執(zhí)行軌跡 / 軌跡的哈希,延后生成 ZKP,這樣開發(fā)成本、證明成本都會(huì)好很多。
這種彈性模型還可以幫助開發(fā)人員,在 C#和 unity 引擎內(nèi)部快速測(cè)試早期游戲創(chuàng)意,然后繼續(xù)迭代他們所希望的游戲「上鏈程度」(到底有多上鏈算上鏈?我們認(rèn)為應(yīng)該由開發(fā)者和用戶決定)。同時(shí)也提前壓力測(cè)試游戲設(shè)計(jì) vs. 區(qū)塊鏈性能的 tradeoff。
當(dāng)我們開發(fā)自己的游戲,并測(cè)試各種技術(shù)棧時(shí),我們意識(shí)到我們?nèi)匀恍枰?jīng)驗(yàn)豐富的 web2 游戲開發(fā)者嘗試開發(fā)可驗(yàn)證游戲,以獲得更好的游戲心流和 UIUX。因此,我們提出了自己的首創(chuàng)解決方案,并希望為更廣泛的鏈上游戲開發(fā)者社區(qū)做出貢獻(xiàn)。
我們已經(jīng)就使用 zkwasm 和可驗(yàn)證游戲開發(fā)的一些話題寫了很多內(nèi)容,并正在進(jìn)行剩余的工作。這里是一些話題:
感謝 Sinka、Wangyao、Will Robinson、Mohamed Fouda、LoneSCV、0xAiko、Simon Chan、Maggie Wu、James Fang、Zee 等人對(duì)本文的貢獻(xiàn)
小編推薦下載
相關(guān)推薦
相關(guān)文章
更多>>資訊排行
同類軟件下載
生活新篇章Life reboot 生活實(shí)用
游戲開發(fā)大亨 模擬經(jīng)營
游戲開發(fā)物語 模擬經(jīng)營
鏈能游戲 學(xué)習(xí)工具
游戲開發(fā)大亨蘋果版 模擬經(jīng)營
游戲開發(fā)模擬器 模擬經(jīng)營
游戲開發(fā)的二三事 模擬經(jīng)營
游戲開發(fā)大亨破解版 模擬經(jīng)營
游戲開發(fā)物語蘋果版 模擬經(jīng)營
鏈全財(cái)經(jīng) 金融理財(cái)
熱門標(biāo)簽