全鏈遊戲前瞻:從 Web2 遊戲引擎發展歷史講起
撰文: Snapfingers DAO
01 底層技術推動遊戲跨越式發展
遊戲行業的進步總是伴隨著科技的提升而不斷演變。從圖形和音效的變化,到遊戲設計、互動方式的變革,無一不在推動著遊戲的發展。雅達利開發的第一款遊戲 Pong 被公認為是第一款商業上成功的電子遊戲,風靡一時,掀起了電子遊戲的潮流。70 年代是集成電路高速發展期,1975 年摩托羅拉公司推出 6502 處理器,為後續的家用機輝煌奠定了基礎。最著名的家用機先驅雅達利 2600 正是由此誕生,吃豆人從此家喻戶曉。
現代遊戲是綜合藝術,同時也是複雜技術。早期的遊戲從代碼邏輯到介面互動都較為簡單,開發者更習慣從 0 到 1 進行製作,但是隨著機能提升,遊戲玩法越來越多樣,技術越來越複雜,從頭開發就顯得過程緩慢且效率不高。到了 90 年代,CD-ROM 與 3D 圖形加速卡的出現則讓遊戲內容與畫面表現都達到了新的高度,導致開發一款遊戲的代碼量急劇增加,在這個背景下,遊戲引擎的概念應運而生。遊戲開發者將部分底層技術標準化,集成為一個高效的工具集,以縮短開發週期,降低開發複雜性,並能夠支持不同平台與設備上的遊戲發布。可以說遊戲引擎的出現為開發者帶去了極大方便。這些模組化、通用化、標準化的功能可以讓開發者更專注於遊戲內容、玩法設計上。如今一套成熟的遊戲引擎可能包含圖形、物理、場景等各個系統。
1993 年, Id Software 公司使用了 DOOM 引擎( Id Tech 1)製作了《毀滅戰士》這款遊戲,獲得了巨大成功,當年銷量便達到了 350 萬份。《毀滅戰士》的成功在很大程度上得益於其軟體架構的設計。其遊戲軟體架構被劃分為核心軟體組件、美術資產、遊戲世界和遊戲規則等部分。這種清晰的架構劃分使得不同的開發者可以使用相同的引擎,通過製作新的美術、關卡、角色、遊戲世界和遊戲規則,創造出全新的遊戲作品。 DOOM 引擎的成功劃分激發了社區中的 MOD 製作興趣,同時也成為了第一個商業遊戲引擎。此後十年內,遊戲引擎炙手可熱,從 Epic Games 的虛幻引擎 Unreal,到 Cry Tech 的 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 賬戶抽象技術,全鏈遊戲能夠讓玩家在一個單一賬戶中進行遊戲交易、創建角色等等,有助於簡化用戶體驗。還可以把不同的遊戲機制封裝為一個可升級的合約賬戶,使得開發者輕鬆更新或優化遊戲規則,內容等等。