指南:騰訊游戲?qū)W院品鑒會上,很多優(yōu)質(zhì)創(chuàng)意游戲都是自己的研發(fā)ampd通過分享經(jīng)驗和與現(xiàn)場專家的交流獲得了靈感。帶有Roguelike元素的在線合作冒險游戲《元能失控(Metaverse Keeper)》就是其中之一。
目前,《元能失控》已經(jīng)通過WeGame的發(fā)行評測,并在測試區(qū)上線,歡迎大家前往體驗并提出改進的建議。以下為分享內(nèi)容:
火花游戲工作室,從2017年初成立至今,逐步從7人發(fā)展到目前的十余人。目前的團隊成員有參與《生化奇兵》、《XCOM》等游戲制作的主機游戲開發(fā)者,也有曾經(jīng)參與《建黨偉業(yè)》的影視行業(yè)從業(yè)者。
在騰訊游戲?qū)W院品鑒會上,我們自嘲是一個老年游戲開發(fā)團隊,不過最近加入不少對游戲制作抱有極大熱情的95后,大大減低了團隊的平均年齡。
我們團隊的部分成員也是《符石守護者》的原創(chuàng)團隊成員,從2013年開始進行獨立游戲的開發(fā),中間也設(shè)計開發(fā)過一款Metroidvania類型的橫版動作游戲(還未上線)。從2017年初,我們重新成立了新的工作室,開始著手《元能失控》的開發(fā)。
這里給大家分享一些我們項目研發(fā)過程中遇到的一些問題。
聯(lián)機方式
《元能失控》作為一個聯(lián)機游戲,聯(lián)機是我們立項之初最關(guān)心的技術(shù)核心點。
我們團隊以往的經(jīng)驗都是以開發(fā)單機游戲為主,我個人也只有在開發(fā)MLB2K11 Wii版本的時候?qū)嶋H接觸過幀同步聯(lián)機,不過這個版本的聯(lián)機模式也因為種種原因最終沒有整合到發(fā)售的游戲版本中。
作為一個小團隊,我需要一個能夠最快速完成,最小人力成本的方案來解決,在進行了一些調(diào)研之后,Photon Bolt成為當時的選擇,P2P+Steam,非常符合我們的要求,也是一個成熟商業(yè)公司推出的解決方案,也有成功的案例。
我們大概從2017年5月份著手聯(lián)機部分的開發(fā),到同年6月,可玩的DEMO就成型了。當年的China Joy上我們第一次展示了當時的聯(lián)機版本。
第一個聯(lián)機版本
不過在這個過程中我們發(fā)現(xiàn)就當時的情況,狀態(tài)同步并不是最適合我們的。作為只有2名程序員的團隊,我們需要投入大量的時間在各種功能的開發(fā)上(整個開發(fā)過程中我們加入過大量的Feature,也砍掉了大量的Feature),如何進行狀態(tài)同步與游戲的數(shù)據(jù)結(jié)構(gòu)以及運作邏輯相關(guān),隨著游戲的特性越來越多,額外需要花費在聯(lián)機同步上的時間成本也相應(yīng)增加,這成為我們快速迭代版本的一個障礙。同時,我們開始有未來開發(fā)移動版本的計劃,P2P的方式在復雜的移動網(wǎng)絡(luò)環(huán)境下并不適用,如果采用服務(wù)器/客戶端的方式,我們需要開發(fā)自己的狀態(tài)同步服務(wù)器,需要專職的服務(wù)器程序來進行,這種方式流量的消耗也較大。
在CJ回來以后,我們權(quán)衡利弊,最終決定遷移至幀同步作為《元能失控》的聯(lián)機方案。
原因:
· 前期投入基礎(chǔ)開發(fā),后期可以像開發(fā)單機游戲一樣來進行,游戲特性與聯(lián)機模塊之間幾乎沒有牽連。
· 較小的消耗的流量,考慮未來可能的移動平臺聯(lián)機。
· 服務(wù)器方案較狀態(tài)同步要簡單,不管是P2P的方式還是服務(wù)器的方式都較易實現(xiàn)。
當然,過程是痛苦的,大量Unity內(nèi)置的模塊在這個方案下不能使用,我們需要尋找或者自己實現(xiàn)相關(guān)的模塊用于幀同步。大概花費了一個半月時間完成了以下幾個要點,整個過程幾乎重寫了一遍游戲:
· 邏輯層和渲染層的分離;
· 隨機數(shù)的統(tǒng)一,保持客戶端隨機數(shù)的一致性;
· 用定點數(shù)數(shù)學庫替代Unity數(shù)學庫;
· 使用Deterministic的物理庫替代Unity物理庫;
· 使用A*尋路算法替代Unity NavMesh。
當然,這里我們不是在對比幀同步和狀態(tài)同步的優(yōu)劣,而是分享什么樣的方案適合我們的項目和團隊。
幀同步的方案也有很大的局限性,譬如很多好用的第三庫很難在這個體系下直接應(yīng)用進來,或需要大量的改造才能使用。當有復雜功能的需求時,難免要造一些輪子。
同時,我們也獲得了一些幀同步天然的優(yōu)勢,比如游戲回放,只需要記錄玩家的輸入,便可以原樣還原整個游戲過程,這在后來我們用于Debug定位Bug起到了非常重要的作用。
光影效果
《元能失控》是一個俯視角的2D游戲,整個場景是用Tilemap構(gòu)建的,在項目的前期我們嘗試過幾種不同的方式來提高視覺表現(xiàn):
· 用Unity的基本光照來對場景打光;
· 用類似2D Dynamic Lights and Shaders插件這種方式來動態(tài)生成陰影。
但嘗試下來整體效果并不是特別好,盡管花費了很多時間來調(diào)整參數(shù),最終也沒有辦法達到美術(shù)想要表現(xiàn)的效果。
最終我們回歸到最適合美術(shù)來調(diào)整效果的一種簡易方式,在引擎中還原Photoshop Overlay的方式來對基礎(chǔ)場景層和光影效果層進行疊加。
這樣一來,對美術(shù)調(diào)整場景的效果變得非常友好,場景美術(shù)在Photoshop里就可以預覽最終能夠呈現(xiàn)的效果,所見即所得。配合后處理插件,基本上可以達到滿意的效果。
我們把場景分到兩個Layer中,光影相關(guān)的Sprite分到Overlay層,并且在渲染場景前做一次Render To Texture,把這些貼圖渲染到一整張大的紋理中,在場景渲染的Pixel Shader中按上述方式進行混合。
這種方式在需要制作光照效果的地方能夠有效提亮,在陰影等需要變暗的地方也能夠有效壓暗。
如下圖所示:
原始場景
光影Overlay貼圖
最終效果
2D層級問題
在2D游戲開發(fā)過程中,層級問題是一個常見且頭疼的問題。2D游戲不像3D游戲的渲染方式,可以通過深度值自動進行深度測試并決定最終寫入FrameBuffer的像素,而是在渲染前就根據(jù)渲染順序決定了最后的渲染結(jié)果。
2D渲染的物體,Unity提供了Sorting Layer和Sorting Order來最終決定渲染的順序。
首先,對于靜態(tài)的物體以及能夠明確場景中層級的問題,我們在Sorting Group中設(shè)定好對應(yīng)的Sorting Layer,來確保總體層級上不出錯。比如關(guān)卡房間的地面,設(shè)定為RoomBG, 角色設(shè)定為Character, 像地面上的巖漿、毒液等,它們應(yīng)該處于地面和角色之間,暫且定義為UnderCharacter,使得在最終渲染時 RoomBG > Character > UnderCharacter。
場景內(nèi)的Sorting Layer
當然,根據(jù)實際需求,往往還需要更多的Layer來處理復雜的層級關(guān)系,這里僅作示意。
在同一層次內(nèi),Sorting Order通常不是固定不變的,角色、怪物、子彈等場景中的物體需要根據(jù)他們實時的位置進行動態(tài)調(diào)整。在這些物體上,我們加入了一個Dynamic Render的腳本,在游戲的運行過程中根據(jù)物體的Y值實時更新Sorting Order。
這里需要注意的是,2D物體在視覺上也是有體積的,需要選定2D物體中正確的點并獲得它的Y值,才能得到視覺上正確的結(jié)果。所以腳本中我們開放了一個Transform結(jié)點,供美術(shù)在需要進行調(diào)整的時候使用。
在很多復雜情況下,這種方式也不能完美解決顯示層級的問題,通常需要很多小的技巧來解決,特別是《元能失控》的場景做了很強的3D透視感,經(jīng)常會遇到一些棘手的問題,讓我們的程序感慨下一個游戲一定要做3D的。(我們團隊大部分美術(shù)和技術(shù)都是3D背景的。)
其它
在整個研發(fā)過程中,我們通常把游戲的內(nèi)容開放給策劃來進行配置,比如怪物的AI狀態(tài)機邏輯、武器道具芯片的各種效果等。
比如下圖是一個武器詞綴的編輯器,我們制作了大量的觸發(fā)條件以及詞綴效果,策劃可以在編輯器中自由組合,產(chǎn)生出全新的詞綴效果,條件和效果中的參數(shù)開放給策劃來調(diào)整。
總得來說,不同的游戲類型和團隊的實際情況,都會遇到不同的實際問題需要去解決,沒有哪一個方法是放之四海而皆準的。在《元能失控》的研發(fā)過程中,我們遇到的問題大多并非解決難度上的障礙,而是哪種方法更適合現(xiàn)在這個項目和團隊。在遇到一些問題的時候,通常沒有完美的方案,我們需要做一些取舍,用合理的代價去解決。
由騰訊游戲?qū)W院聯(lián)合極光計劃共同主辦,旨在發(fā)掘和扶持優(yōu)質(zhì)創(chuàng)意手游的第四期“騰訊游戲?qū)W院品鑒會” 極光計劃專場正式啟動報名,11月10日將落地深圳,大力歡迎國內(nèi)外開發(fā)者們提交游戲項目,前來交流。
電腦端報名,可點擊文末鏈接了解更多
1.《2k11技巧專題之騰訊游戲?qū)W院品鑒會路演項目《元能失控》研發(fā)經(jīng)驗分享》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《2k11技巧專題之騰訊游戲?qū)W院品鑒會路演項目《元能失控》研發(fā)經(jīng)驗分享》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/gl/2122080.html