在策略與 Roguelike 類型的游戲中,戰(zhàn)斗規(guī)模往往會(huì)隨著玩法設(shè)計(jì)不斷擴(kuò)大。當(dāng)數(shù)百個(gè)單位同時(shí)出現(xiàn)在同一戰(zhàn)場(chǎng)上時(shí),如何在保持游戲節(jié)奏的同時(shí)維持穩(wěn)定性能,成為開發(fā)過程中必須面對(duì)的核心技術(shù)問題。
《幻面之旅》是一款融合塔防與自走棋機(jī)制的 Roguelike 戰(zhàn)斗游戲。這個(gè)包括主程、主美、制作人、概念設(shè)計(jì)師以及負(fù)責(zé)海外推廣顧問的五人小團(tuán)隊(duì),此前曾開發(fā)過登上E3展的動(dòng)作 Roguelike 游戲《合金重組》。相比上一款作品偏動(dòng)作化的戰(zhàn)斗體驗(yàn),《幻面之旅》的設(shè)計(jì)目標(biāo)更加明確:構(gòu)建一個(gè)“輕量但高密度”的策略戰(zhàn)場(chǎng)。
![]()
在游戲中,玩家需要守護(hù)場(chǎng)景中央的“女神”防御核心,并在不斷涌入的敵人攻擊下維持防線。玩家通過擊敗敵人獲取經(jīng)驗(yàn)和貨幣,用于召喚隨從、建設(shè)防御塔或提升自身屬性。隨著戰(zhàn)斗推進(jìn),玩家可以逐漸形成不同的發(fā)展路線:選擇更多隨從可提升人口上限,獲數(shù)值偏低增幅;選擇精銳化隨從,人口上限提升少,但隨從升階上限變高,獲更強(qiáng) buff。這種策略分化讓戰(zhàn)場(chǎng)規(guī)模在后期關(guān)卡中迅速擴(kuò)大,刷怪量峰值時(shí)可能超過三百個(gè)單位。
![]()
正是在這樣的設(shè)計(jì)背景下,團(tuán)隊(duì)在項(xiàng)目早期就將性能作為核心技術(shù)目標(biāo),并最終決定將開發(fā)環(huán)境從 Unity 遷移到團(tuán)結(jié)引擎。
當(dāng)戰(zhàn)斗規(guī)模成為核心挑戰(zhàn)
團(tuán)隊(duì)此前的項(xiàng)目主要基于 Unity 2019 和 2021 開發(fā),因此在技術(shù)上已經(jīng)積累了較多經(jīng)驗(yàn)。但在《幻面之旅》立項(xiàng)階段,開發(fā)者重新評(píng)估了未來可能出現(xiàn)的性能壓力:大量角色、重復(fù)行為邏輯、密集的戰(zhàn)斗特效,以及不斷增加的渲染對(duì)象數(shù)量,都可能成為潛在瓶頸。
最終團(tuán)隊(duì)選擇使用團(tuán)結(jié)引擎 1.6.7 作為項(xiàng)目的主要開發(fā)版本。遷移的原因并不在于功能差異,而更多來自于性能考慮。對(duì)于一個(gè)需要在同一場(chǎng)景中同時(shí)運(yùn)行數(shù)百個(gè)單位的項(xiàng)目來說,團(tuán)結(jié)引擎的合批優(yōu)化帶來了顯著的性能提升。
在技術(shù)規(guī)劃上,團(tuán)隊(duì)為項(xiàng)目制定了三個(gè)核心優(yōu)化方向:首先通過 SRP Batcher 提升渲染批處理效率;其次借助團(tuán)結(jié)引擎的 Profiler 工具建立持續(xù)的性能分析工作流;未來在邏輯層面逐步引入 ECS 框架,以優(yōu)化戰(zhàn)斗中大量相同行為邏輯敵人的情況。這些策略共同構(gòu)成了項(xiàng)目的技術(shù)基礎(chǔ)。
讓數(shù)百個(gè)敵人同時(shí)出現(xiàn):SRP Batcher 的作用
雖然《幻面之旅》具有塔防元素,但敵人會(huì)在短時(shí)間內(nèi)大量刷新,后期關(guān)卡的戰(zhàn)場(chǎng)密度明顯增加。當(dāng)數(shù)百個(gè)角色同時(shí)存在時(shí),渲染階段的 CPU 開銷往往成為幀率下降的主要原因。
為了解決這一問題,團(tuán)隊(duì)在渲染層面依賴 SRP Batcher 進(jìn)行優(yōu)化。SRP Batcher 通過統(tǒng)一材質(zhì)和渲染狀態(tài),使大量使用相同 Shader 的對(duì)象能夠共享渲染數(shù)據(jù),從而減少 CPU 與 GPU 之間的狀態(tài)切換成本。在實(shí)際開發(fā)過程中,這一優(yōu)化策略對(duì)高密度戰(zhàn)斗場(chǎng)景產(chǎn)生了明顯效果。
![]()
團(tuán)隊(duì)的測(cè)試表明,在游戲前中期戰(zhàn)斗規(guī)模逐漸擴(kuò)大的階段,幀率基本可以保持穩(wěn)定。只有在游戲末期接近刷怪峰值時(shí),才會(huì)開始出現(xiàn)較為明顯的幀數(shù)下降。對(duì)于以大量同類敵人為核心玩法的策略或 Roguelike 游戲來說,這種批處理優(yōu)化能夠顯著延長穩(wěn)定運(yùn)行的區(qū)間。
用數(shù)據(jù)驅(qū)動(dòng)優(yōu)化:Profiler 的日常使用
在持續(xù)優(yōu)化過程中,團(tuán)隊(duì)還使用了團(tuán)結(jié)引擎的 Profiler 工具來定位性能問題。打包時(shí)勾選 Development Build、Autoconnect Profiler,可在真實(shí)運(yùn)行情況下觀察各項(xiàng)開銷,在編輯器內(nèi)也能根據(jù)時(shí)間消耗找到需要優(yōu)化的行為。
![]()
![]()
通過 Profiler,開發(fā)者可以清晰地看到 CPU 與 GPU 的時(shí)間分布,以及腳本執(zhí)行、渲染調(diào)用和 GC 分配等關(guān)鍵指標(biāo),通過時(shí)間消耗排名快速定位最昂貴的行為邏輯,再針對(duì)具體系統(tǒng)進(jìn)行針對(duì)性優(yōu)化。這種以數(shù)據(jù)為依據(jù)的調(diào)優(yōu)方式,在高密度戰(zhàn)斗場(chǎng)景中尤其重要,很多性能問題只有在真實(shí)規(guī)模的戰(zhàn)斗中才會(huì)顯現(xiàn)出來。
為規(guī)模化戰(zhàn)斗準(zhǔn)備:ECS 架構(gòu)的引入
隨著戰(zhàn)斗規(guī)模擴(kuò)大,傳統(tǒng)基于 MonoBehaviour 的架構(gòu)會(huì)面臨大量 Update 調(diào)用、對(duì)象生命周期管理復(fù)雜以及 GC 壓力增加等問題。特別是在敵人行為高度相似的情況下,這種架構(gòu)往往無法充分利用現(xiàn)代 CPU 的緩存結(jié)構(gòu)。因此,團(tuán)隊(duì)計(jì)劃逐步將項(xiàng)目整體采用 ECS 框架進(jìn)行優(yōu)化。ECS 將數(shù)據(jù)與行為邏輯解耦,使系統(tǒng)能夠以更連續(xù)的數(shù)據(jù)結(jié)構(gòu)處理大量實(shí)體,從而獲得更好的緩存命中率和并行計(jì)算能力。
在《幻面之旅》中,絕大多數(shù)敵人的行為模式實(shí)際上非常一致:移動(dòng)、搜索目標(biāo)、攻擊、受傷和死亡。這類重復(fù)度極高的邏輯非常適合使用 ECS 批量處理。雖然目前項(xiàng)目仍在規(guī)劃這一架構(gòu)轉(zhuǎn)變,但團(tuán)隊(duì)的目標(biāo)很明確:為大量角色的戰(zhàn)斗場(chǎng)景進(jìn)一步壓榨性能空間。
![]()
當(dāng)同一套戰(zhàn)斗邏輯走向更多平臺(tái)
從《合金重組》到《幻面之旅》,團(tuán)隊(duì)的項(xiàng)目開發(fā)計(jì)劃盡可能輻射更多平臺(tái)。團(tuán)結(jié)引擎在跨平臺(tái)開發(fā)上的便利性,成為了團(tuán)隊(duì)以更低的開發(fā)成本觸達(dá)到更多玩家的關(guān)鍵原因。
就目前的開發(fā)經(jīng)驗(yàn)來看,游戲的核心代碼在不同平臺(tái)之間基本可以保持不變,真正需要針對(duì)性調(diào)整的部分集中在玩家交互方式和 UI 層。也正因?yàn)榈讓娱_發(fā)路徑足夠統(tǒng)一,團(tuán)隊(duì)才有可能在不反復(fù)重構(gòu)主干邏輯的情況下,把項(xiàng)目逐步推進(jìn)到 PC、移動(dòng)端、主機(jī),甚至小游戲平臺(tái)。對(duì)于中小團(tuán)隊(duì)而言,這種跨平臺(tái)能力能夠顯著減少重復(fù)開發(fā),讓有限的人力更集中地投入到玩法打磨和內(nèi)容完善上。
在輕量化流程中追求精致表現(xiàn)
在《幻面之旅》的美術(shù)實(shí)現(xiàn)中,團(tuán)隊(duì)并沒有把“風(fēng)格化”理解為單純的視覺選擇,而是把它放進(jìn)了整體開發(fā)流程中一起考慮。對(duì)于一個(gè)小團(tuán)隊(duì)來說,理想的美術(shù)方案不僅要能夠建立辨識(shí)度,還要足夠輕量,能夠降低光照、資產(chǎn)制作和迭代過程中的成本;同時(shí),它又不能以犧牲表現(xiàn)力為代價(jià),戰(zhàn)斗中的角色、特效與場(chǎng)景仍然需要維持足夠細(xì)膩的完成度。
基于這樣的思路,團(tuán)隊(duì)逐步形成了一套偏輕量化的美術(shù)路徑:一方面通過“無影動(dòng)畫”風(fēng)格控制渲染與光照復(fù)雜度,另一方面借助 AI 輔助工具提升前期概念設(shè)計(jì)效率,再結(jié)合 Unity 成熟的粒子系統(tǒng)完成戰(zhàn)斗特效,最終在相對(duì)便捷的工作流中,維持了游戲整體較完整的視覺呈現(xiàn)。
“無影動(dòng)畫”:一種更輕盈的視覺方案
《幻面之旅》采用了一種較為獨(dú)特的視覺風(fēng)格,團(tuán)隊(duì)將其稱為“無影動(dòng)畫”,靈感來自二維動(dòng)畫作品。在這種表現(xiàn)方式中,場(chǎng)景仍然具有完整的視覺和氛圍變化,但角色本身并不會(huì)參與復(fù)雜的實(shí)時(shí)陰影計(jì)算。
![]()
這種設(shè)計(jì)并不僅僅是風(fēng)格選擇,同時(shí)也是一種技術(shù)策略。通過減少角色陰影和復(fù)雜光照的參與,開發(fā)者可以大幅降低實(shí)時(shí)光照與烘焙貼圖的開發(fā)成本。角色視覺變化主要通過后處理效果、場(chǎng)景濾鏡以及 Shader 調(diào)整來實(shí)現(xiàn),例如為角色添加校色 Shader,針對(duì)不同時(shí)段進(jìn)行校色,并掛上關(guān)卡的全局濾鏡,來進(jìn)行諸如色彩平衡、飽和度、明度、亮度的調(diào)整。
![]()
同時(shí),團(tuán)隊(duì)還根據(jù)不同時(shí)段建立光照效果數(shù)值數(shù)據(jù)庫,當(dāng)關(guān)卡抽取到對(duì)應(yīng)時(shí)段,就從數(shù)據(jù)庫中獲得其對(duì)應(yīng)的參數(shù),應(yīng)用到全局設(shè)定里。
![]()
對(duì)于規(guī)模較小的團(tuán)隊(duì)而言,這種方式在保持視覺體驗(yàn)多樣的同時(shí),也能顯著減少實(shí)時(shí)光對(duì)性能消耗的影響,提升場(chǎng)景迭代效率。例如戰(zhàn)斗大招場(chǎng)景,只需提前預(yù)制好技能數(shù)值參數(shù),即可根據(jù)技能的美術(shù)設(shè)計(jì)進(jìn)行濾鏡與相關(guān)材質(zhì)的全局校色。
![]()
*技能對(duì)全局校色
AI 工具進(jìn)入美術(shù)生產(chǎn)流程
在資產(chǎn)方面,團(tuán)隊(duì)也嘗試將 AI 工具引入到美術(shù)流程中,主要使用網(wǎng)上開源的 PS ComfyUI,將手繪流程與 Photoshop 插件實(shí)時(shí)演算相結(jié)合。
![]()
![]()
為了保證風(fēng)格一致性,團(tuán)隊(duì)并沒有使用 AI 直接生成最終資產(chǎn),而是主要將 AI 用于概念設(shè)計(jì)階段。例如在早期草圖中,美術(shù)會(huì)先繪制基本的角色正面設(shè)計(jì),然后通過 AI 工具生成多個(gè)視覺方向,再進(jìn)行人工篩選和調(diào)整。相比完全手繪的流程,這種方法能夠更快地探索不同的視覺方案,同時(shí)保持較高的可控性。
![]()
從一張手繪草稿,能很快看到角色主視覺,甚至是完成度很高的角色動(dòng)態(tài)視頻,團(tuán)隊(duì)的反饋是,這種引入 AI 的工作流顯著提高了效率,特別是在尋找風(fēng)格方向和角色設(shè)計(jì)靈感時(shí)。
用粒子系統(tǒng)構(gòu)建戰(zhàn)斗特效
戰(zhàn)斗表現(xiàn)方面,《幻面之旅》幾乎全部技能特效都基于 Unity 內(nèi)置粒子系統(tǒng)實(shí)現(xiàn),包括戰(zhàn)斗中和特寫鏡頭中的3D粒子。
![]()
對(duì)于一個(gè)需要大量技能表現(xiàn)的 Roguelike 游戲來說,Unity 粒子系統(tǒng)能夠在保證效率的同時(shí)提供足夠豐富的視覺變化。團(tuán)隊(duì)也關(guān)注到團(tuán)結(jié)引擎全新的 Infinity 粒子系統(tǒng),該系統(tǒng)基于 ECS 架構(gòu)設(shè)計(jì),可以支持十萬級(jí)粒子的高性能渲染,并兼容原有粒子系統(tǒng)。這為項(xiàng)目未來的視覺升級(jí)提供了新的可能性。
仍在探索中的技術(shù)方向
隨著項(xiàng)目逐漸完善,團(tuán)隊(duì)也在嘗試一些新的技術(shù)方向,其中之一是將 2D 角色與 3D 武器結(jié)合。目前的游戲整體類似 2.5D ,即 3D 建模場(chǎng)景搭配 2D 角色。通過引入 3D 武器模型,可以讓戰(zhàn)斗表現(xiàn)更加立體,但同時(shí)也帶來了動(dòng)畫匹配、渲染層級(jí)以及視覺一致性等問題。目前團(tuán)隊(duì)正在持續(xù)探索實(shí)現(xiàn)這一效果的技術(shù)難點(diǎn),期待為最終作品帶來新奇的視覺與游玩體驗(yàn)。
另一個(gè)實(shí)驗(yàn)性的想法是角色特寫鏡頭交互設(shè)計(jì)。團(tuán)隊(duì)希望在策略類戰(zhàn)斗中加入更具表現(xiàn)力的瞬間,例如在關(guān)鍵技能釋放時(shí)觸發(fā)短暫的特寫互動(dòng)鏡頭,以增強(qiáng)玩家與養(yǎng)成角色之間的情感連接,同時(shí)也為玩家社區(qū)的提供二創(chuàng)素材。目前這種設(shè)計(jì)還在探索中。
*戰(zhàn)斗場(chǎng)景內(nèi)特寫鏡頭
小結(jié)
對(duì)于像《幻面之旅》這樣以高密度戰(zhàn)斗為核心體驗(yàn)的游戲來說,性能優(yōu)化不應(yīng)該只是后期工作,而需要在項(xiàng)目早期就從技術(shù)架構(gòu)、美術(shù)工作流等方面全方位納入規(guī)劃。團(tuán)結(jié)引擎的 SRP Batcher 的合批優(yōu)化、 Profiler 持續(xù)性能分析、廣泛的平臺(tái)兼容性以及面向數(shù)據(jù)的高性能粒子系統(tǒng),為更大規(guī)模的戰(zhàn)斗場(chǎng)景、更輕量高效的美術(shù)工作流打下了基礎(chǔ)。
對(duì)于考慮從 Unity 轉(zhuǎn)向團(tuán)結(jié)引擎的開發(fā)團(tuán)隊(duì),《幻面之旅》的開發(fā)者給出的建議相對(duì)簡單:放心大膽用,因?yàn)檫w移成本比想象中低。由于 API 與開發(fā)流程保持高度一致,大部分項(xiàng)目都可以絲滑遷移,同時(shí)也不要忘記做好項(xiàng)目備份和立項(xiàng)后及時(shí)申請(qǐng)授權(quán)認(rèn)證。
隨著項(xiàng)目繼續(xù)推進(jìn),這些技術(shù)實(shí)踐也將不斷迭代,并為類似類型的策略或 Roguelike 游戲提供一些可參考的開發(fā)經(jīng)驗(yàn)。
Unity 官方微信
第一時(shí)間了解Unity引擎動(dòng)向,學(xué)習(xí)進(jìn)階開發(fā)技能
每一個(gè)“點(diǎn)贊”、“在看”,都是我們前進(jìn)的動(dòng)力
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.