unity經(jīng)驗(yàn)分享:Unity主程如何做好游戲項(xiàng)目管理
? ? ? ?很多小伙伴最近在面試或者考慮跳槽,可能工作了3~5年了想漲薪或想做技術(shù)總監(jiān)或主程, 可自己還是個(gè)雛,沒有做過項(xiàng)目技術(shù)管理,怎么辦?
? ? ? ? 今天我給大家梳理一下作為一個(gè)技術(shù)總監(jiān)或主程你應(yīng)該如何帶好一個(gè)游戲項(xiàng)目,做好技術(shù)管理。接下來我們將以一個(gè)項(xiàng)目的主要流程為主干,分析在每個(gè)環(huán)節(jié)中你應(yīng)該如何處理和應(yīng)對,避免踩坑(注:有些小的游戲項(xiàng)目,某些環(huán)節(jié)可以做精簡,具體的根據(jù)實(shí)際情況來決策)。
1: 游戲項(xiàng)目的技術(shù)可行性分析與驗(yàn)證
公司開始決定研發(fā)某個(gè)游戲,游戲立項(xiàng)后公司的各種資源陸續(xù)到位,作為技術(shù)管理者,首先要做好技術(shù)上的可行性分析驗(yàn)證。如何做呢?我們可以按照從下幾個(gè)步驟來執(zhí)行:
(1)列出需要做技術(shù)驗(yàn)證的清單與工具驗(yàn)證的清單;
(2)根據(jù)清單分配好技術(shù)驗(yàn)證工作到對應(yīng)的開發(fā)者;
(3)準(zhǔn)備好相關(guān)技術(shù)可能用到的技術(shù)資料與技術(shù)儲備;
(4)確定好正確的技術(shù)攻關(guān)的方向;
先來看如何把要做的技術(shù)驗(yàn)證都列舉出來,這個(gè)工作其實(shí)是很關(guān)鍵的,項(xiàng)目中可能涉及到技術(shù)風(fēng)險(xiǎn),是否能盡早的公關(guān)和得到驗(yàn)證,是后期項(xiàng)目平穩(wěn)上線的關(guān)鍵。我大概列舉了一些常用項(xiàng)目可能要注意的幾個(gè)方向,供大家參考(更具體的一些細(xì)節(jié),可能不同的項(xiàng)目會(huì)不一樣)。
渲染效果與渲染性能
渲染效果與渲染性能是我們首先要驗(yàn)證的核心方向,比如我們要做卡通類的游戲,我們就要開發(fā)出高效的符合游戲項(xiàng)目風(fēng)格的卡通Shader相關(guān)代碼和技術(shù)驗(yàn)證。比如,我們項(xiàng)目中必須要求實(shí)施光照,就可以考慮定制渲染管線來代替?zhèn)鹘y(tǒng)的向前渲染管線來獲得更好的效率和性能,如使用URP渲染管線等。
渲染性能驗(yàn)證是指模擬游戲玩法的極限情況,堆出來可能的極限的場景,角色數(shù)目,怪物數(shù)目,釋放技能等然后運(yùn)行來驗(yàn)證渲染的性能,看下三角形的面數(shù),渲染性能開銷,Drawcall等。
這些驗(yàn)證要特別的注意,一定要上游戲目標(biāo)玩家的真機(jī)來做處理。比如渲染效果,要多測試幾組目標(biāo)玩家的機(jī)器,看看渲染效果是否有差異,渲染性能是否能達(dá)標(biāo),有些由于平臺和顯卡的原因?qū)е落秩拘Ч胁町?可能要額外的寫代碼來抹平這些差異。
還有一個(gè)很重要的點(diǎn)是要考慮渲染降級,我們在做一些精品的游戲的時(shí)候往往考慮的是中高端手機(jī)的游戲畫面和效果,但是有些低端機(jī),為了玩家的流暢性,我們就要考慮渲染降級,如何來做這個(gè)處理,我們也要做好需求分析與技術(shù)驗(yàn)證,比如編寫一套shader,如果是低端機(jī),就用渲染效果沒有那么好但是性能開銷小的shader。如果是低端機(jī),可以關(guān)閉一些特效等。
總結(jié): 盡快的在玩家目標(biāo)群體的機(jī)器中做好渲染效果和渲染性能的驗(yàn)證與統(tǒng)計(jì),同時(shí)在這個(gè)過程中摸索出來設(shè)計(jì)的技術(shù)規(guī)范,比如模型的面數(shù)+細(xì)節(jié)增強(qiáng)的流程規(guī)范等。這里額外再說一點(diǎn),模型場景的面數(shù)規(guī)范不是網(wǎng)絡(luò)上去百度得到的,而是根據(jù)真機(jī)的實(shí)際的場景,游戲中的物體數(shù)目, 運(yùn)行的目標(biāo)人群的手機(jī)等因數(shù)綜合考慮來得到的美術(shù)設(shè)計(jì)等一些參數(shù)規(guī)范。
美術(shù)策劃工具制作與規(guī)范化開發(fā)流暢
工具制作也是需要優(yōu)先考慮和做驗(yàn)證的,因?yàn)楣ぞ咧谱魃婕暗搅碎_發(fā)協(xié)作流程,比如做一個(gè)給策劃用的關(guān)卡編輯器來做關(guān)卡編輯。和策劃約定好相關(guān)的輸入規(guī)范與輸出規(guī)范。策劃如何做,程序如何用等,具體的可以結(jié)合游戲項(xiàng)目來考慮。這個(gè)過程完成后,就可以制定出和美術(shù)策劃協(xié)作的一些具體的工作流程。
游戲核心玩法的驗(yàn)證
有一些游戲的核心玩法,需要驗(yàn)證,比如格斗類游戲需要驗(yàn)證一些玩家的手感,AppStore上有一些創(chuàng)意類的游戲,需要組織技術(shù)來實(shí)現(xiàn)核心玩法,比如《紀(jì)念碑谷》等游戲。比如《貪吃蛇》滿屏都是長蛇的玩法驗(yàn)證等。比如有些創(chuàng)意類游戲要做Mesh切割等都需要來做技術(shù)驗(yàn)證。
經(jīng)過上面的一些技術(shù)驗(yàn)證和摸索,我們對項(xiàng)目的技術(shù)難點(diǎn),團(tuán)隊(duì)成員(程序+策劃+美術(shù)+測試等)協(xié)同開發(fā)與合作都可以形成初步的認(rèn)識與流程方案。
2: 參與制定團(tuán)隊(duì)協(xié)同工作流
游戲項(xiàng)目開發(fā)本質(zhì)是一個(gè)工程管理,所以嚴(yán)格的工程項(xiàng)目管理流程是非常必要的,整個(gè)項(xiàng)目開發(fā)中設(shè)計(jì)到的有:美術(shù)+策劃+程序+測試+運(yùn)營等。接下來大家就會(huì)再一起來商量出一個(gè)協(xié)同工作的流程。大概率上來說都是基于版本管理工具來進(jìn)行管理與協(xié)作(如git, svn等)。策劃提交哪些策劃案與數(shù)值表給程序到項(xiàng)目中用,美術(shù)做好資源后如何導(dǎo)出來,導(dǎo)到哪個(gè)目錄下給程序使用。在這個(gè)過程中,Unity主程要考慮的問題主要是:
(1)程序如何與策劃的數(shù)值表對接起來;
(2)程序如何與策劃的關(guān)卡地圖,關(guān)卡數(shù)據(jù)對接起來;
(3)程序如何應(yīng)對策劃的改動(dòng),能讓策劃馬上看到效果等;
(4)程序如何與美術(shù)的地圖場景對接起來;
(5)程序如何與美術(shù)的角色對接起來;
(6)程序如何與美術(shù)的一些粒子特效,技能特效等對接起來;
(7)程序最后如何把這些資源數(shù)據(jù)通過程序拼接成游戲;
(8)程序如何發(fā)布版本交付給測試,進(jìn)行版本測試;
(9)程序如何與測試對接制定測試的case;
(10)項(xiàng)目如何建立bug提交與管理機(jī)制;
…
綜合考慮完這些問題以后,就會(huì)出一些協(xié)作規(guī)范與協(xié)作模式,這樣大家就可以各自協(xié)同開展工作了。對于程序來說工作是非常重要的,因?yàn)樽詈笳澈纤械亩际强砍绦?。所以在團(tuán)隊(duì)協(xié)作中,我個(gè)人比較傾向于以程序?yàn)橹鲗?dǎo)來建立開發(fā)與協(xié)作流程。
3: 框架設(shè)計(jì),版本管理,熱更新,多渠道打包發(fā)布
程序員熟悉的框架設(shè)計(jì)版本管理,熱更新考慮,多渠道打包發(fā)布才上場。這里上場前先得要?jiǎng)澐趾媚夸浗Y(jié)構(gòu),這里得目錄結(jié)構(gòu)要結(jié)合上面得工作流,哪些目錄開放給策劃,哪些目錄開發(fā)給美術(shù),策劃做好得地圖數(shù)據(jù)放在哪個(gè)文件夾等,這些我們做框架得時(shí)候要優(yōu)先定好,來疏通上面得協(xié)作流程。這些定好后,美術(shù)+策劃的工作能正常進(jìn)行了,這個(gè)時(shí)候才是程序自己做具體框架代碼的時(shí)候,才是熟悉的配方熟悉的味道??蚣茉O(shè)計(jì)本質(zhì)就是提出一套開發(fā)規(guī)則與開發(fā)流程,所有的程序基于這個(gè)開發(fā)流程來開發(fā)業(yè)務(wù)功能,與業(yè)務(wù)無關(guān)的代碼作為框架代碼,下一個(gè)項(xiàng)目可以重用,與業(yè)務(wù)邏輯代碼相關(guān)的就直接考慮用這個(gè)項(xiàng)目就可以了,如果其它項(xiàng)目要用再考慮從這里取。這里要特別說的是資源管理,發(fā)布的版本管理,熱更新版本管理,以及多渠道打包方案,不過這些方案都是成熟的,相信各位主程們都比較熟悉了。
4: 代碼review與穩(wěn)定性測試
作為一個(gè)主程,必須要抽時(shí)間來review每天的代碼推進(jìn),專門找人或自己來review每天代碼的實(shí)現(xiàn),把控好團(tuán)隊(duì)的實(shí)現(xiàn)思路,代碼質(zhì)量等,看是否有走偏, 提前發(fā)現(xiàn)各種技術(shù)隱患,因?yàn)槟愕膱F(tuán)隊(duì)里面不是每個(gè)人都年薪百萬,所以必須要做好代碼的review與管理,如果項(xiàng)目大,開發(fā)者多,可以專門讓一個(gè)技術(shù)管理者review代碼。在review代碼的過程中可以形成技術(shù)架構(gòu)文檔,來為團(tuán)隊(duì)的交接做好準(zhǔn)備,如果是小項(xiàng)目,而功能都是主程自己開發(fā),這個(gè)過程可以根據(jù)實(shí)際情況來省略。
測試我是強(qiáng)烈建議盡早的引入對多平臺,多目標(biāo)機(jī)型的真機(jī)測試,這樣能今早的發(fā)現(xiàn)問題,同時(shí)完善測試case。今早的他測試對接流程放日常的開發(fā)中。同時(shí)管理者對項(xiàng)目過程中遇到過的問題做好review,關(guān)鍵時(shí)刻很多改動(dòng)都在腦袋里面,很多曾今的錯(cuò)誤都在,關(guān)鍵時(shí)刻能獲得靈感。不要等項(xiàng)目快上線了,才做真機(jī)測試,到時(shí)候一堆的問題。
切記:穩(wěn)定性是基于嚴(yán)格工程管理與開發(fā)設(shè)計(jì)流程的產(chǎn)物,沒有高大上的天馬行空的想象,就是一個(gè)工程管理問題。
今天就分享到這里了,希望屏幕前的你,路越走越寬, 越走越好。