回顧Web2遊戲引擎發展史,探索全鏈遊戲未來發展路徑

01、底層技術推動遊戲跨越式發展

遊戲行業的進步總是伴隨著科技的提升而不斷演變。 從圖形和音效的變化,到遊戲設計、交互方式的變革,無一不在推動著遊戲的發展。雅達利開發的第一款遊戲Pong被公認為是第一款商業上成功的電子遊戲,風靡一時,掀起了電子遊戲的潮流。 70年代是集成電路高速發展期,1975年摩托羅拉公司推出6502處理器,為後續的家用機輝煌奠定了基礎。最著名的家用機先驅雅達利2600正是由此誕生,吃豆人從此家喻戶曉。

回顧Web2遊戲引擎發展史,探索全鏈遊戲未來發展路徑

現代遊戲是綜合藝術,同時也是複雜技術。早期的遊戲從代碼邏輯到界面交互都較為簡單,開發者更習慣從0到1 進行製作,但是隨著機能提升,遊戲玩法越來越多樣,技術越來越複雜,從頭開發就顯得過程緩慢且效率不高。到了90年代,CD-ROM與3D圖形加速卡的出現則讓遊戲內容與畫面表現都達到了新的高度,導致開發一款遊戲的代碼量急劇增加,在這個背景下,遊戲引擎的概念應運而生。遊戲開發者將部分底層技術標準化,集成為一個高效的工具集,以縮短開發週期,降低開發複雜性,並能夠支持不同平台與設備上的遊戲發布。可以說遊戲引擎的出現為開發者帶去了極大方便。這些模塊化、通用化、標準化的功能可以讓開發者更專注於遊戲內容、玩法設計上。如今一套成熟的遊戲引擎可能包含圖形、物理、場景等各個系統。

1993 年,Id Software 公司使用了 DOOM 引擎(Id Tech 1)製作了《毀滅戰士》這款遊戲,獲得了巨大成功,當年銷量便達到了 350 萬份。 《毀滅戰士》的成功在很大程度上得益於其軟件架構的設計。其遊戲軟件架構被劃分為核心軟件組件、美術資產、遊戲世界和遊戲規則等部分。這種清晰的架構劃分使得不同的開發者可以使用相同的引擎,通過製作新的美術、關卡、角色、遊戲世界和遊戲規則,創造出全新的遊戲作品。 DOOM 引擎的成功劃分激發了社區中的 MOD 製作興趣,同時也成為了第一個商業遊戲引擎。此後十年內,遊戲引擎炙手可熱,從 Epic Games 的虛幻引擎Unreal,到 CryTech 的 CryEngine,再到在 IOS 端大放異彩的 Unity。除了商用引擎,許多廠商也打造了自家使用的自研引擎,例如 Valve 的Source 引擎,Infinity Ward 的 IW 引擎,育碧推出的 Anvil 引擎。

02、Web3 遊戲引擎的ECS 架構

目前最知名的兩個全鏈遊戲引擎 MUD 跟 DOJO 均採用 ECS 架構。 ECS 代表實體-組件-系統(Entity-Component-System),是一種在 Web2 遊戲開發中常用的架構模式,用於管理遊戲對象(實體)以及它們的屬性(組件)和行為(系統)。這種架構模式的好處有:

  • 性能優化:ECS 架構允許遊戲開發者更好地管理內存佈局和數據訪問模式,從而提高遊戲的性能。實體和組件的緊密排列有助於減少緩存不命中,提高數據訪問效率。
  • 可擴展性:由於實體和組件的解耦,新增功能只需要增加對應的組件和系統,而不需要改變已有的代碼。這樣可以方便地擴展遊戲的功能和內容。
  • 復用性:通過將屬性劃分為獨立的組件,可以更容易地複用這些組件來創建不同類型的實體,從而減少冗餘代碼。

MUD V1 即是典型的 ECS 架構。在 V1 的框架中,Entities 實體也是遊戲中的基本單位,可以是各種物體、道具或者是錢包地址,他們由唯一的ID標識。而 Components 組件是實體的數據部分,用來描述實體的不同屬性,比如物體的位置,角色的屬性等等。通過將不同的組件附加到實體上,就可以創建出豐富多樣的遊戲對象。而 Systems 系統則處理 Components 的邏輯,實現遊戲的各種規則跟行為,他們以智能合約的形式存在於鏈上。實體、組件、系統均在一個 Worlds 世界合約中,每個 Worlds 相當於一個獨立的遊戲環境。

這個架構如何體現可擴展性呢?假設我們需要升級遊戲中的某項功能或是社區想要添加新的內容,首先需要讓新的遊戲功能/邏輯(系統)獲得相關組件的寫入權限,然後創建升級版本,遊戲中的其他內容保持不變即可。如果不給寫入權限呢,那麼也可以考慮創建包含新功能的新組件與新系統,玩家可以選擇不同的版本遊玩,同時與相同的核心組件的數據交互。因為從Worlds 的角度看,任何人都可以創建組件和系統,就像任何人都可以創建新的 ERC-20 代幣並將它們“附加”到地址上一樣。

03、Web3遊戲引擎對鏈遊發展的意義

區塊鏈技術目前雖然未完全落地至日常應用,但是其獨特的確權透明等特性也勢必為遊戲領域帶來重要的變革。特別是人們已經見識到 DeFi 帶來的巨大魔力。而把遊戲完全上鍊,會發生什麼呢?由 DeFi 我們不難推出區塊鏈將給遊戲帶來的變化:

  • 開放的經濟系統:區塊鏈可以讓遊戲中的虛擬資產具備真實的所有權和稀缺性。這意味著玩家可以驗證物品的稀有度和產出率,避免了中心化遊戲公司對資產的控制和管理。
  • 可組合性:將游戲放置於區塊鏈的開放環境中,允許不同的遊戲和項目相互補充。玩家在一個遊戲中的進展可以在其他遊戲中反映出來,甚至是共享資產,創造了更加開放和互通的遊戲生態。
  • 用戶生產內容:用戶可以完全自主構建遊戲內容或是資產,並在開放源碼環境中擁有資產的所有權。這促進了用戶生成的遊戲循環,增加了遊戲的可玩性和分發。例如用戶可以把通過驗證的 mod 內容加載進遊戲合約中,豐富遊戲性的同時也許還能收穫部分收益。

區塊鏈遊戲一直以來備受期待,尤其在 DeFi、NFT 這兩個區塊鏈應用領域相繼爆發後,然而目前實現仍然有很多障礙:

  • 首先是技術基礎設施的限制,EVM 速度慢,Gas 費用高,Solidity 語言在處理複雜遊戲邏輯方面也幾乎無法勝任,這嚴重限制了遊戲的複雜性與交互性。
  • 經濟模型設計,眾所周知鏈遊的經濟系統是重中之重,有效激勵與金融化需要找到平衡點。
  • 自由度與治理,鏈上游戲具有相當大高的自由度或者說開放性。它應該允許任何玩家創建並部署不同的遊戲內容,然而這些內容勢必導致遊戲世界更加複雜,甚至產生未預期到的經濟影響,這就需要有效的治理機制去協調管理。

以上只是目前可預見到的一些困難,也是現階段幾乎所有全鏈遊戲聚焦點都在SLG的原因——遊戲機制簡單,不需要高TPS,需要的信息不完備性也恰好能被已有技術完美應用。如果我們期待一款MMORPG,那無疑是具有相當的挑戰性。借鑒遊戲引擎給 Web2 遊戲帶來的改變,如果鏈遊同樣採取 ECS 架構,可以能解決:

  • 數據組織和管理:鏈上游戲同樣存在大量的遊戲數據需要處理,包括角色屬性、物品、地圖信息等。 ECS架構可以幫助將數據組織成可重用的組件,以及對數據的修改和訪問進行有效的管理。
  • 靈活性和可擴展性:通過將游戲實體(Entity)和組件(Component)分離,開發者可以輕鬆地創建新的遊戲對象和功能,而無需影響現有的邏輯。這種靈活性和可擴展性在鏈上游戲中尤為重要,因為複雜遊戲機制可能需要頻繁地進行升級和擴展。
  • 智能合約和數據更新:ECS架構可以更有效地管理智能合約中的數據更新。每個組件都可以獨立地更新,而不必更新整個實體。這可以降低智能合約的執行成本,並提高交互效率。
  • 可組合性:ECS的一個優勢是其組件和系統的可組合性,這與鏈上游戲中的可組合性概念相契合。也許玩家就可以創造新的內容,從而帶來更豐富的體驗。

 

04、Web3全鏈遊戲前瞻

全鏈遊戲的難點還有很多,遊戲引擎也只是解決一小部分問題,不過挑戰與機遇並存,全鏈遊戲這種複雜應用可能成為區塊鏈技術真正落地的敲門磚。

目前全鏈遊戲引擎還是非常早期階段,如前所說,我們看到了複雜應用的雛形,但缺少工具實現。目前開發進度較快的是MUD V2與Dojo。 MUD V2相比V1改進了ECS架構,但是V2目前還在開發中。 Dojo是由Starknet社區構建的目前唯一可驗證的遊戲引擎,得益於Cairo語言,可以原生實現戰爭迷霧。 Dojo也採用了ECS架構,並且計劃在Starknet上開發專屬遊戲的L3,以進一步提高可擴展性。

此外鏈遊所依賴的基礎設施也在進化。 L2 已經夯到可以一鍵發鏈,也許某個爆款遊戲可以通過自建 Rollup 來賺取差價從而維持耗散結構,避免死亡螺旋。利用ERC-4337 賬戶抽象技術,全鏈遊戲能夠讓玩家在一個單一賬戶中進行遊戲交易、創建角色等等,有助於簡化用戶體驗。還可以把不同的遊戲機制封裝為一個可升級的合約賬戶,使得開發者輕鬆更新或優化遊戲規則,內容等等。