天天看點

FPS 手遊如何脫穎而出?看《 CF 手遊》的性能突破之路

作者:薛陽,騰訊專項技術測試 工程師

商業轉載請聯系騰訊WeTest獲得授權,非商業轉載請注明出處。

原文連結:http://wetest.qq.com/lab/view/330.html

WeTest導讀

俗話說:使用者體驗不談性能就是耍流氓。 在PC遊戲上的性能問題并沒有那麼明顯, 加個記憶體換個CPU或者刷個主頻就能輕松搞定;到了手遊時代後情況則顯得比較嚴峻,捉襟見肘的記憶體使得資源加載時就像如履薄冰,加上高中低不同配置的機型更加讓性能問題顯得很突出,一個低端機型上的卡頓就可能造成一大批使用者的流失,這當然無法被忽視。

一、項目背景

《穿越火線-槍戰王者》(簡稱:CFM)騰訊遊戲在FPS移動領域的重要布局。CFM團隊秉承多年來在射擊遊戲領域的積累,着力打造高品質的FPS手遊,“手機端最爽快的射擊體驗”被廣大玩家認可,樹立了在移動FPS領域的品質标杆,在公司自有平台和外部管道,都成功占領FPS領域最大市場佔有率,其中低端機玩家占比很大,研發團隊為了保障使用者的體驗,需要持續優化用戶端性能。

二、技術難點

手遊用戶端性能與傳統app有很大差別,并且遊戲玩法、技術實作的不同,遊戲引擎的差别,遊戲的可能出現性能問題的場景以及性能表現差别會很大。另外CFM很大一部分玩家使用的是較低配置的手機,是以性能優化顯得尤為重要和艱巨。CFM采用了Unity引擎,Profiler作為Unity官方的性能采集工具,在引擎層面采集資料,資料全面、可靠,但是不能對資料儲存,無法進行二次分析。

三、實作方案

(一)測試的目标

根據手遊性能測試團隊對騰訊遊戲多年的測試經驗,測試團隊針對CF手遊設定了以下性能名額,來檢驗CF的用戶端性能狀況。測試工具則采用公司内部營運2年的用戶端性能測試工具Cube。

(二)主要測試場景

依據CF的玩法,性能瓶頸主要會在多人PVP場景,選取遊戲中不同模式下,外網玩家較多的場景進行專項測試。

①PVP-5V5-競技模式-團隊戰(運輸船)

②PVP-5V5-競技模式-爆破戰(新年廣場)

③PVP-5V5-休閑模式-救世主(生化酒店)

④PVP-16V0-休閑模式-跳跳樂(天空之城)

⑤PVP-4V0-挑戰模式-樓蘭古墓(困難)

(三)發現問題情況

1、記憶體峰值超标

在低配置的手機上,PSS記憶體峰值超過警示線350MB :

2、動畫剪輯資源超标

動畫剪輯資源超過15M的警示線,檢視動畫剪輯資源大小top20,以及每個資源的生命周期發現,SanTouLong_Boss_Born資源(boss出生紋理)從加載到場景結束一直未釋放,并且資源達到了5.7MB,建議項目組進行優化。

3、樓蘭古墓流量達到6K/S以上

樓蘭古墓場景,平均每秒的流量消耗達到了6.79KB,觀察網絡流量趨勢圖在标記區域中,流量持續很高,建議采取有損服務和降低不必要開銷。

4、FPS抖動嚴重

測試過程發現,部分低配置機型FPS波動比較劇烈,圖中可以看出疑似卡頓點數量也明顯上升,點選FPS曲線上的點發現,大部分卡頓點處都出現了同一個函數,溝通後發現該函數主要功能為采集UDP的丢包數、錯誤包數以及收發包量,建議去除該函數。

5、元件側問題導緻FPS在部分機型下降5幀

目前大部分遊戲内集合了登入、支付、加速等一些元件,這些元件常常會成為影響遊戲性能的兇手。

(四)解決方案

1、去掉不合理的pool緩存,使用GPU Skinning降低SkinnedMesh的記憶體消耗,優化後的PSS記憶體趨勢如下,整體下降了20MB。

2、釋放不需要使用的動畫剪輯資源,并且對資源進行壓縮,将該場景的動畫剪輯資源峰值降為12.07MB。

3、減少不必要的通信,伺服器限幀,樓蘭古墓降低到3.92K/S。

4、修改後去掉采集UDP的丢包數、錯誤包數以及收發包量函數,回複正常

5、元件修複後做了對比驗證,FPS回歸正常

四、最終效果

項目上線前的測試階段,手遊性能測試團隊累計為《穿越火線:槍戰王者》稽核了超過10個版本,在上線前持續優化,確定用戶端性能始終如一,保障使用者穩定體驗。優化效果如下:

FPS均值 25→30

CPU占比率 38%→20%

紋理資源峰值 31.84M→23.04M

Mono記憶體 36.53M→32.04M

針對手遊的性能優化,騰訊WeTest平台的Cube工具提供了基本所有相關名額的檢測,為手遊進行最高效和準确的測試服務,不斷改善玩家的體驗。

目前功能還在免費開放中。,歡迎點選連結:http://wetest.qq.com/product/cube 使用。

如果對使用當中有任何疑問,歡迎聯系騰訊WeTest企業qq:800024531