【技術科普】動輒幾十個G,遊戲包體能不能減減肥?

爱分享的小魔方發表於2024-11-20
近幾年,手機遊戲的畫質越來越好,內容也愈發豐富,這對廣大玩家們來說當然是一件好事。然而,與之相伴的問題便是,遊戲變得越來越“佔地”。有時一下更新就要幾個G甚至十幾個G的空間,讓本就不算寬裕的手機儲存捉襟見肘。為了下載遊戲,不得不四處清理檔案的窘境,相信不少觀眾都經歷過。

不知道大家是否會好奇,到底遊戲裡的什麼東西佔了那麼大的空間?研發又做了哪些壓縮包體的努力?遊戲大小和我們的實際體驗之間,有哪些不為大家所知的關係?今天這期魔方研究,我們專門請到了負責《暗區突圍》手遊客戶端開發的Nico和Banthy兩位技術專家,為大家答疑解惑。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?

首先,他們指出了包體越來越大的核心原因,那就是——美術品質的升級。遊戲安裝包中,佔地最大的就是各類美術資源,一般要超過70%。美術資源中不僅包含了組成角色、武器、場景的各類貼圖和網格模型,讓一切“動起來”的骨骼動畫,讓光影更自然的預烘焙光照資訊,以及CG過場等內容。隨著美術品質的提高,以上各類素材的體積都有所增加,直接導致了遊戲包體的膨脹。除此之外,則是音訊資源,引擎程式碼等等。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?
各種美術資源

那麼遊戲體積太大會帶來哪些問題呢?首先自然是對下載轉化率的影響,從使用者選擇開始下載遊戲,到最終開始遊戲,這個環節會有一定比例的玩家流失、安裝包越大,自然有更多使用者因為流量有限,儲存空間不足,或者等待時間過長等原因放棄。減小遊戲包體,自然可以減少新進使用者的流失。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?
大家有為了下載遊戲到處刪東西的情況嗎

其次,過大的包體對玩家的長期留存也有一定的“威脅”。每次版本更新時巨大的安裝包,都存在勸退使用者的風險。這也是為何,手遊的大版本更新,通常都會搭配一定的“更新福利”來補償使用者。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?
更新都會有福利

因此,包體控制對於任何遊戲專案組來說,都是優先順序非常高的事情。同時,它也高度考驗多部門協同——程式、美術、策劃、音訊,甚至是海外本地化團隊都要為壓縮包體貢獻出自己的一份力。

貼圖和網格模型:提高複用率

既然美術資源是大頭,那麼壓縮包體自然要先從這裡入手。一個最直觀的手段,就是提高貼圖和模型的複用率。比如當我們在暗區的新地圖中放入一把椅子,如果可以直接複用舊地圖中椅子的貼圖和模型,那便不會額外增加資源量。反之,如果因為某些特別的設計需求,這必須是一把全新造型的椅子,那麼就會增加一定資源量。一個地圖中成千上萬的道具和模型,倘若都是“新面孔”,那所佔的空間就非常恐怖了。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?
不同地圖,相同的椅子

因此,暗區的PM同學會制定一個相當嚴格的資源複用率標準。地圖用到的美術資源被劃分為所有地圖都會呼叫的公用資源庫,和某張地圖專屬的私有資源庫,並對私有資源庫的大小做限制。這也就解答了一些暗區先鋒們的疑問:為什麼暗區不同地圖的邊緣建築存在“克隆”的現象。這並不是美術同學偷懶不做,而是為了控制包體大小,不得不做出的“犧牲”。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?
“按需下載”

其實暗區在這方面,甚至有一些“優勢”,因為世界觀層面,目前暗區的故事都在“卡莫納”地區發生,因此不同地圖植被和建築風格是相對統一的,複用起來並不太違和。而另一些遊戲,比如《原神》,由於設計需要,每個地區都要有鮮明的文化差異,無論是服裝、建築還是植被的複用率都比較低,自然包體就大了起來。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?

骨骼動畫:運用程式手段節約空間

如果說貼圖的複用主要靠美術和策劃在設計時的“自覺”,那麼動畫檔案的壓縮,就更依賴於一些程式工具了。舉例來說,在暗區中,根據改槍方案的不同,很多戰術動作都有著微妙的差異。比如瞄準鏡裝在武器不同插槽時,開鏡動作會略有不同。如果分別儲存各個情況下對應的動畫,佔用的空間就變得很大,因此開發大大會做一套程式工具來解決,只需錄入幾套最基礎的動畫,再用演算法微調不同情況下動畫的播放的起止位置即可。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?

再比如說,暗區中加入女先鋒的選項後,如果直接套用男角色的骨骼動畫,不管是裝備的穿戴效果還是槍械的使用動作都會有些奇怪。可如果為男女角色訂做完全不同的骨骼動畫,同樣會大幅增加佔用的資源,此時,我們同樣可以基於一套演算法,對男角色的骨骼動畫進行微調,生成可以較為自然適配女角色的骨骼動畫。當然,這種處理方案並不完美,採訪中,開發大大也表示,這確實是製作手機端遊戲時才會考慮的解決方案,如果“空間允許”,肯定男女角色分別做動捕,才有更自然的表現效果。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?

其它的美術素材壓縮方案還有:過場動畫避免直接使用預渲染的影片(MP4),而是儘量用引擎自帶的動畫工具進行指令碼演出。遊戲內場景中帶有文字的標牌儘量將文字和貼圖分開,這樣在製作海外版本的多語言包時可以只改文字,無需儲存多個貼圖等等...可以說,為了壓縮包體大小,哪怕是隻能減少幾MB空間的最佳化方案,也是很有必要嘗試的。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?

音訊:拆分小塊,程式輸出

說完了美術,我們再說說音訊。FPS的玩法決定了《暗區突圍》並不是一個BGM豐富,配音眾多的遊戲。但饒是如此,各類音樂、音效也要佔到幾百MB的空間。因此,音訊壓縮同樣必不可少。最直觀的,當然是控制音訊的位元速率,一個男團的幾十句喊話,最後實裝到遊戲中可能只佔幾MB。而在槍聲的處理上,暗區音訊組同樣使用了一些工具,將武器的各類音效拆分成最小單元,再基於需要進行組合和變化,在效果和空間佔用上找到平衡點。最終暗區的所有音訊檔案只有200MB左右,可以說是非常了不起的最佳化。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?

安裝包的問題

前面說了這麼多在開發過程中控制遊戲大小的方式,但其效果主要是讓“安裝完畢的遊戲”佔地儘量小一點。接下來我們要談的則是“遊戲安裝包”的問題。常玩各類新遊戲的觀眾可能注意到了,如今在下載新遊戲時,往往會分成兩步。第一步是從應用商店下載並安裝,但這還沒完,開啟安裝好的遊戲後,往往會再下載不少資源,才能正式開始遊戲。有時,進入遊戲後下載的資源量甚至比安裝包還要大,這又是為什麼呢?

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?

首先,是因為平臺的限制。安卓和IOS對於軟體安裝包的大小均有一定的要求,安卓需要小於2GB,iOS則需要小於4GB。超過這個大小會無法透過平臺的稽核。所以大家看安卓版的《王者》、《和平》、《LOL手遊》的下載包都是卡在2GB,至於其它啟動遊戲所必須的資源,自然要開啟遊戲後再下載了。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?
不同系統對軟體安裝包大小的要求也不同

可下完了安裝包,又要下那麼多資源,這體驗同樣不夠好。於是,為了讓大家能儘快“玩起來”,程式設計師們又做了資源“分級”設計。拿暗區舉例,玩家初次進入遊戲時,地圖資源只有農場地圖是完整下載的,因為新玩家前期不會進入別的地圖,這樣就能減少一些資源下載量。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?

而《王者榮耀》因為上線多年,玩法眾多,資源分級就做得更細緻了,從高畫質素材到商店皮膚,再到不同模式的地圖,都被拆分為不同的資源包,可以進入遊戲後邊玩邊下。類似這樣的設計雖然不能減少完整安裝後的大小,但起碼可以做到讓玩家“儘快玩到”,也算是一種很實用的技術方案。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?
王者中不同的資源包

在這次採訪的最後,我們問兩位開發大大這樣一個問題——倘若遊戲的包體限制不存在,手遊的品質會有很大的提升嗎?他們表示,提升肯定有,但並不會有很多玩家想象得那麼大。因為,包體限制只是手遊開發所面臨的諸多限制中的一個。其它諸如記憶體佔用限制,晶片算力限制等問題其實更棘手。至少對於《暗區》來說,控制記憶體佔用的難度,要比控制包體還要大上不少。

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?

總的來說,他們認為,由於在開發之初就做了細緻合理的規劃,《暗區突圍》的包體控制肯定說得上是手遊中的“模範生”了。在未來,他們也在考慮實裝更多減輕玩家負擔的技術手段,比如在版本更新時對一些地圖資源進行差量更新,可以減少大家更新版本時需要下載的資源包。不過,差量更新與資源加密工作存在一定衝突,需要花一些時間來克服,還請大家再耐心等待一段時間。只要是對玩家體驗有好處的技術,他們一定都會認真研究可行性的!

【技術科普】動輒幾十個G,遊戲包體能不能減減肥?

不得不說,這次的採訪真的給我留下了非常深刻的印象,比起平時大家接觸更多的策劃和運營,技術團隊在遊戲開發中所扮演的角色,往往並不為玩家們所瞭解。但實際上,沒有他們的縝密規劃,遊戲的迭代也很難有條不紊地推進,實際體驗也難免大打折扣。以後有機會,我也會跟大家再多介紹更多技術開發背後的小秘密——


來源:騰訊魔方工作室

相關文章