關於遊戲開發管線的設計與最佳化
最近和很多人討論如何最佳化他們現在的開發管線。在這裡也做一些筆記。
費了好大勁寫的,點贊收藏再看吧。
一、定義與作用
遊戲管線,或者遊戲開發管線,指的是一種“工作流程”。
每個遊戲專案因為其選擇的核心玩法、渲染風格、敘事方式或者純粹的體量要求,都會導致管線的特異性。
這個所謂的“管線”在一個專案中,不是一個,而是會有許多個。這些管線交織在一起,形成針對不同資產、不同階段的遊戲內容生產軌道。它們彼此關聯,互相影響。
好的遊戲開發管線有兩個最顯著的作用:提高質量下限、最佳化整體效率。
也做出一些足夠出彩的細節來吸引玩家是必須的,但是這和工業化與提效不衝突
以一些常見的情況來舉例:
- 有多少團隊會在“結版本出包”這件事上讓整個團隊停下來幾天,甚至數週?
- 有多少團隊會出現遊戲資產的質量參差不齊,有的很精緻,有的很拉跨?
- 有多少團隊會經常出現”開發瓶頸“——大家在經常要等某幾個人,這幾個人的進度決定了整體的進度?
而這些問題之所以存在,正是因為”電子遊戲“是一種”擁有商業屬性的高技術濃度裝置藝術“。這種產品與傳統網際網路產品完全不同,反倒是和汽車工業等有點像。
一個優秀的產品往往具備設計壁壘、技術壁壘、工作量壁壘中的至少一個(常見的大多具備兩個以上)。而前兩個壁壘在小型獨立遊戲領域問題可能不大,但是一旦專案成一定規模,就必須建設可靠的開發管線,以保證壁壘的持續和堅挺。
而所謂的”遊戲工業化“就是遊戲開發管線的設計、搭建、維護和最佳化的過程。
二、管線設計
大概知道開發管線是怎麼回事之後,我們來聊“管線設計”。
眾所周知,工業化的基礎是標準化。而標準的制定,卻是整個環節設計的”第3步。
第1步,是做Demo和立項 —— 大家先說清楚我們做的是啥。
很多時候立項只是因為有個“點子”。這本身沒有問題,但是實際上這個點子是否成立是需要實際論證甚至驗證的。因為不是所有人都具備足夠的“演繹法”能力,為了不讓以後出大麻煩,開發團隊需要在一開始就錨定整個專案的目標,並用Demo將這個目標講清楚。在這個Demo的開發過程中,整個初始團隊要進行瘋狂的磨合,一方面瞭解團隊和目標的關係,一方面探索流程的合理性。
又可能你腦子裡想的內容不多,但是為了讓Demo成立,會衍生出一堆東西來
在這個階段中,我們還需要確定幾件事:
- 美術資源品質要達到什麼程度。
- 標準形態下的核心玩法需要做到什麼程度。
- 達到這個程度,當下最合理的工作流是什麼樣的。
- 為了展示上述內容,我們有什麼資源是必須新做?
用盡可能少的“新資源”來製作Demo,說明標準和目的是一種能力
第2步,制定里程碑 —— 別一下子把攤子鋪太大,大家一起向一個方向用力。
在這個階段,大家需要圈定好專案的邊界和範圍。然後根據團隊的能力和預算,分好開發階段。儘可能不要在實際開發走起來之後,發現做每一件事都需要打補丁和產生不可預估的前置任務。
在這個階段中,我們需要確定幾件事:
- 專案一共有多少內容量。說清楚有多少功能、多少玩法、多少系統。
- 根據我們的產能,制定多個可以量化內容的階段。每個階段不能超過三個月。(團隊必須能用文字清晰的描述每個階段——里程碑 的驗收內容和每個內容的保準。如果可以的話,用形象的語言描述此時如果是玩家能看到什麼、體驗什麼。)
- 詳細的拆解每個里程碑的開發內容,排清楚開發順序。
之前我們自研的一個項管系統的某個版本
第3步,現在,我們就可以面向目標定標準了。
這裡的標準主要包含兩部分:
- 流程的標準 —— 大流程包括了誰先誰後,前置環節做到什麼程度才能啟動後置環節,每個不同型別的需求由誰發起,誰跟進,每個環節的負責人如何指定,最終結果誰負責。
- 資產的標準 —— 除了各類美術資產,也包括策劃資產、技術資產,甚至會議記錄的內容。
而管線的設計也就由此開始:
簡單的遊戲資產管線設計:明確的規範遊戲開發的每個環節,包括資產的生產,人員的協作,並作的驗收,多個成果的組合。
這個是飛書專案
你必須可以明確的描述遊戲開發流程中每個資產從無到有的各個環節的負責人,以及每個開發任務的前後置關係。
不同事項的依賴關係和優先順序定義:
- 有些需求雖然看似明確,但卻依賴於其他的需求的結果;
- 有些需求雖然看似關鍵,卻是個無法確定耗時的“研究”;
- 有些非常耗時的研究和探索,可能會導致後續工作流的變化;
- 有些工作項是嘗試性的,可能其成果不一定會真的有用。
這些工作項可能彼此依賴,或在冷靜的討論下被調整優先順序。因為團隊的規模有限,需要在專案開始的時候決定好,每個人在每個階段的工作重心是什麼。尤其是每個領域的核心角色。
第4步:管線的維護和最佳化
管線最佳化的主要目的是提高效率,那麼就會有如下幾個方向的思考:
最佳化單個環節工活兒的時間
- 人員的適配在這個環節是最有感覺的。優秀的項管人員能將合適的人放在合適的活兒上。
- 很多工具、外掛也是在這個部分發力的。
此時,管線的設計者需要明確的判斷這些工具的價值和影響:
這個工具的物件是雕花還是鋪量,提高質量還是提高速度,代價是什麼?這個工具的引入帶來的影響是一個人的還是一條線的還是一個面的,對整個團隊來說整體的結果是不是利大於弊?
尤其是在AI時代逐步來臨之後,越來越多的工具在這個環節努力將已經標準化的流程從工業化推向智慧化。但是這往往帶來工作流程和團隊結構的改變。需要有額外的管理成本和人員培訓成本。
比如我們為之前公司設計開發的劇情動畫工具↑,它是個服務,由外掛和引擎關聯
我們可以很清晰的描述它的定位就是鋪量,能夠保證整家公司劇情表演動畫的下限。
它的利弊:但是它無法負責雕花。它能將劇情動畫的鋪量工作從數週一條變成一分鐘一條,而且可以讓劇情策劃直接操作。在策劃完成這部分工作後,讓劇情動畫組或者PV組的美術同學在此基礎上做選擇並最佳化結果。
它產生的開發管線影響:它需要專案開發團隊的工作流程和資產準備的順序產生影響,需要團隊更早的規劃每個角色的動作庫。釋放劇情動畫人員的人力需求和時間需求,大幅度降低這個環節前置步驟的開發成本。
衡量下來整體是增利大於弊的,而且利弊對比懸殊。這個工具也因此成為了在全公司在全國各類團隊中都非常受歡迎的自研提效工具之一。
- 當發現因為“標準不明確”導致的返工時,要格外注意。
有些時候,“你之前沒說清楚”或者“我怎麼知道你以後要這麼做”是一個很容易被忽略的管理問題。作為管線的維護人員,我們絕不能把這種話看作是“甩鍋”。絕大部分的人,都不存在能力問題。但是大部分人都是不想“為溝通浪費時間”。那麼如何讓單次的溝通更有效率,更準確,是要時刻去關注的。這也是幫助團隊中一個管線下的各個環節形成默契的手段之一。
“你為什麼不看文件”和“你開會的時候怎麼沒說”。也是在規則之上要針對“人”去做處理的。當然,如果某些可以量化的標準是普遍要遵守的,也可以做一些工具出來:
我們曾經為美術開發過資產檢查工具,檢查不透過是不能上傳到庫裡的
最佳化整體時間
這裡其實更多的是和很多“一直以來都是這麼做的”去較勁的,衝破歷史和習慣的枷鎖。
- 時刻關注耗時的高峰,將削峰作為使命。
遊戲開發的過程中,經常會出現一些計劃外但又無法預估耗時的事情。
比如每次“打包”“打版本”前的混亂。包括了衝突、配置錯誤、因為效能不合規導致的資源修改和不合適的渲染方案最佳化。
其實所有有點經驗的開發者都知道這件事應該前置。但是本來每個人的開發工作量幾乎就是排滿的,而且屎山上的屎也不全是自己的。種種原因就會導致誰也不願意提早進行這部分工作,就算想,這件事的優先順序也提不起來。
所以,削峰就成為了一個要去“設計”的事情。比如說,使用UWA等工具在遊戲第一次成功出包之後,就進行全自動的每日打包,配一個自動安裝啟動的指令碼。這個指令碼每天后半夜執行。指派一個人,早上來了看一眼,如果失敗了,就立刻找人解決一下。讓問題不堆積。
在此基礎上,我們完全可以做一個簡單的效能監控指令碼,這個指令碼就是開啟遊戲裡一些主要的功能玩法,和美術、程式最擔心效能問題的地方。每週一次,週末自動執行,只要包打的出來,就去這些地方跑一下,把效能記下來。週一上午讓主程主美引擎TA一起看一下,如果發現又隱患,立刻插個小單下去,爭取週三之前就消化掉。
我們在前司的部分專案中搭建了這套流程,有一套自動化的SaaS守護著這些專案,他們也從來沒位這種問題擔心過。
日常監控裝置牆
- 減少瓶頸環節的存在感
這裡主要針對“科研”類任務。這些任務往往擁有很高的必要性和不可預估的耗時。
所以,這些事必須做,但必須“單獨處理” —— 不把這件事放在里程碑的常規規劃裡,而是作為一件單獨的時間線進行管理。所有它的後置任務先不排。能不能流出人力Buffer看團隊的實際情況而定。但是反正不能讓別人等它。
注意,瓶頸工作項是一定會存在的,但是如果你想打造一個健康的工業化管線,就要努力讓瓶頸工作項的影響範圍更小。
- 合理的利用工具進行職權轉移
每個崗位都有他自己的“垃圾時間”。
比如,我會認為介面最上層的邏輯和某些關卡元素的搭建對於前端來說,就是垃圾時間。因為這些事對於策劃和UX來說可能是需要頻繁調整的事情,而這些事對於這兩個工種來說是非常必要且持續的,對前端來說就是細碎且沒有營養的。
於是我會非常推薦使用一些圖形化程式設計工具,讓非技術人員可以先把Demo和效果調到滿意,再讓真·程式設計師去把最後一公里走完。這件即節省了程式的開發時間,也節省了程式與策劃和UX的溝通時間。
當這些非技術人員培養出來後,關卡玩法、社群功能、UI製作、表演控制都可以由他們來完成了。(從某個角度來說,這也是省錢的方法,畢竟程式的時薪比別的工種都貴啊)
我們甚至為這件事開發了一個專門給策劃用的邏輯編輯器
持續提高環節透過率
這是每一個管線維護人員都要去因地制宜去思考的。
尤其是一條新管線在剛跑起來的時候,一定要持續跟進一段時間。觀察環節和環節的互動是否順暢。有些時候,規矩是好的,但反人性,也需要規則的設計者進行換位思考。而且在早期不要害怕嘗試,也不要怕捱罵。
舉個例子:我曾經有連續兩三個月對一個大型專案的五十多個管線進行大規模的刪減。最有趣的是,大部分時候,我刪掉了一些環節,整個團隊毫無感覺 —— 這些環節規則上存在,但是因為反人性,所以大部分團隊成員是不願意遵守的,甚至已經故意無視它們了。而在這個時候,你要意識到:因為這些環節的被忽略,一定有風險和隱患出現了,我們需要去檢查之前的產出物,看是否有問題。
溝通方式最佳化、文件內容減少廢話、規範和標準的清晰、不墨守陳規的嘗試新的工具都是要去做的事。
尤其是努力嘗試將垃圾時間釋放掉。比如我們會意識到大部分專案的美術資源規範是程式制定的。但是當美術不遵守規範時,程式很難主動張嘴去維護這個規範 —— 一來是覺得還有更重要的事兒,二來畢竟早晚是要做最佳化的。
從削峰的角度來看,這件事就需要去解決。所以我們在請程式為每個專案主要的DCC開發了資源檢查外掛 —— 這個外掛的目的除了給美術增加約束外,還必須具備讓美術舒服的功能:
- 美術可以透過外掛直接上傳資產到庫裡。
- 透過外掛上傳的資產可以自動關聯工單,美術同學再也不用去網頁上去改任務狀態了。
- 自動生成複合規範的命名主體,美術同學只用根據規範寫這個東西最後一部分的名字就好。
- 在上傳前,外掛會自動檢查資產規範,如果不復合要求就不讓上傳。
配合一個複合網盤直覺的前端設計,這個產品就很讓美術同學感到舒服了
總結
遊戲開發管線必須建立在一個明確的目標的基礎上,這個目標包括了核心玩法、美術目標、發行策略等。
遊戲開發管線的重點在於讓遊戲能夠穩定、高效的生產出來,而並不能解決遊戲是否出彩、是否好玩、是否賺錢的問題。它更多的是保證下限。
很難說有沒有一種正規化可以適配所有遊戲的開發。因為運作順暢的管線和這個團隊裡的每個人都有關係。
當年做發行的時候,發現80%的專案都是做不完的。而所謂“做完了”的專案也有80%最終沒能走到上線那一步。我自己也曾在做製作人的時候遭遇專案中道崩殂的情況。
雖然大環境一定是有鍋要背的,但是我們身在其中卻也只能繼續前行。
原文:https://mp.weixin.qq.com/s/XLqwHyYRZPLqD-8k_0x8QQ
相關文章
- 遊戲開發與設計遊戲開發
- 關於軟體專案開發的分析與設計
- 關於GameFi鏈遊NFT遊戲元宇宙系統技術開發(搭建設計)GAM遊戲元宇宙
- 基於關卡設計維度的戰棋遊戲系統與關卡設計用例遊戲
- 新發布丨一個關於遊戲開發的加速計劃遊戲開發
- 遊戲開發中遊戲效能的最佳化遊戲開發
- 遊戲開發商與遊戲發行商如何保持良性關係?遊戲開發
- 【程式設計師的遊戲開發之路】 遊戲架構程式設計師遊戲開發架構
- 遊戲開發—協議設計遊戲開發協議
- 遊戲心理學研究:基於發展心理學與社會時鐘的遊戲設計遊戲設計
- 重度遊戲的護城河:管線遊戲
- 如何開發與設計一個爆款小遊戲遊戲
- 遊戲文件與遊戲設計遊戲設計
- 遊戲開發<關卡設計Level Design>資料專題遊戲開發
- 遊戲開發者的思考:什麼是遊戲設計的核心?遊戲開發遊戲設計
- 一份關於Roguelike遊戲開發的啟示遊戲開發
- 【遊戲設計】從“通關率”檢驗遊戲設計遊戲設計
- 遊戲開發經驗談(二):對戰類全球服遊戲的設計與實現遊戲開發
- 遊戲開發與設計中的“3C”是指什麼?遊戲開發
- 遊戲關卡設計:淺談如何評價一個遊戲的關卡設計水平遊戲
- 關於遊戲中“設定介面”的思考遊戲
- 遊戲基礎知識——機關與陷阱的設計手法遊戲
- 遊戲關卡設計文件遊戲
- 關於手遊技能的UI設計UI
- 遊戲大地圖開發指南:遊戲外部空間設計遊戲地圖
- 設計、故事、運營、機制,關於遊戲的13本書遊戲
- 開發者談設計遊戲時需要注意的7個關鍵點遊戲
- 遊戲關卡設計之<遭遇戰設計>遊戲
- 多位開發者以產品為例談三消遊戲的設計關鍵遊戲
- 基於原型的遊戲角色設計方法原型遊戲
- 遊戲開發思考:面向商業化設計遊戲開發
- 【譯】闖入遊戲開發 #3:程式設計遊戲開發程式設計
- 遊戲機制設計:資源管理挑戰與遊戲中的AI設計遊戲AI
- 理性關卡設計手冊:如使用RLD理論指導遊戲關卡開發?遊戲
- 射擊遊戲PVP關卡設計及融入開放世界玩法設計遊戲
- Linux開發:快速開發遊戲的9個關鍵!Linux開發遊戲
- 聊一聊解謎遊戲的設計(二):機制與關卡遊戲
- 關卡設計師談創造性遊戲開拓遊戲