移動游戲技術(shù)優(yōu)化的解決方案簡述
原創(chuàng)騰訊手游技術(shù)總監(jiān) 張丹
手游經(jīng)過多年來的高速發(fā)展,如今已經(jīng)進入白熱化的紅海時代,僅憑一個好的創(chuàng)意就能大獲成功的產(chǎn)品已經(jīng)越來越少,必須經(jīng)過不斷精細化的打磨,追求極致的用戶體驗,才能做出S級大作。
下面,我試著講述如何從技術(shù)角度追求手游(特別是多人對戰(zhàn)手游)用戶體驗提升的解決方案。
我們主要從用戶的游戲行為路徑去提升用戶體驗:
一、下載
移動游戲下載包括兩種:
1.應用市場或者官網(wǎng)整包下載。
2.游戲內(nèi)自更新升級。
下載簡單示意圖:
下載主要失敗原因主要分為客戶端原因,網(wǎng)絡原因,CDN原因:
客戶端問題的主要原因:
1.有網(wǎng)絡但下載不了,例如有WiFi但連不上網(wǎng)或有信號但網(wǎng)絡擁塞。
解決方案:檢測網(wǎng)絡連通性,提醒用戶檢查系統(tǒng)設(shè)置等。
2.磁盤空間不夠。
解決方案:下載前先檢查磁盤空間是否足夠,提醒用戶清理。
3.創(chuàng)建文件異常/寫入文件異常。
解決方案:此情況可能是存儲卡IO異常,一般先進行判斷剩余磁盤空間和進行fwrite幾次重試即可恢復。
網(wǎng)絡問題的主要原因:
1.整包或部分文件被劫持或者Cache。
解決方案:提供備份BGP下載地址。
2.移動網(wǎng)絡下,數(shù)據(jù)文件被運營商網(wǎng)關(guān)截斷。
解決方案:分片下載。
3.跨網(wǎng)下載很慢或者失敗,由于下載過程中網(wǎng)絡發(fā)生切換(移動網(wǎng)絡切換WiFi或者WiFi切換另一個運營商WiFi)導致。
解決方案:重新解析并斷點重連。
CDN問題主要原因:
CDN的問題主要是和各個CDN廠商相關(guān),比如有些CDN廠商的CDN池分兩種:小資源CDN池和大資源CDN池。
這里一定要注意大小資源包的分配方式。
另外,要了解每一個步驟用戶流失的情況是怎么樣的,可能在哪些方面有問題:是否產(chǎn)品的曝光標題不夠吸引人?是否產(chǎn)品詳情頁不能打動用戶?是否游戲啟動后,新手引導設(shè)計不合理導致用戶沒有注冊?……根據(jù)每步的數(shù)據(jù),針對性的對每個環(huán)節(jié)進行優(yōu)化?! ?/p>
二、登錄
DNS解析:
DNS解析是登錄的第一步,也是使用域名業(yè)務最常遇到的問題,這里介紹移動網(wǎng)絡特有的幾個DNS的問題:
1.移動網(wǎng)絡LocalDNS劫持。
2.移動網(wǎng)絡DNS解析IP非本運營商IP。
原因一:運營商租用第三方出口。
原因二(非常少量):運營商LDNS故障。
3.移動4G網(wǎng)絡DNS解析很慢。
這是4G網(wǎng)絡的一個特有問題。
移動4G用戶DNS先去查詢4A地址(IPV6地址),大部分業(yè)務現(xiàn)在都沒有配置4A地址,所以正常的應該返回4A地址為空,然后就會去查詢A地址,獲得正常的IPV4地址。蘋果官網(wǎng)流程如下:
最終,我們得出結(jié)論:
另外,特別提示:支持4A查詢的移動4G網(wǎng)絡,也只有手機支持查詢4A地址,才會去查詢4A。比如小米大部分手機都不會去查詢4A地址,華為去年以來的幾款手機都會去查詢4A地址。
解決方案:httpdns+LDNS結(jié)合的方式。
網(wǎng)絡連接:
網(wǎng)絡連接主要有以下幾個問題:
1.運營商之間出口帶寬小,網(wǎng)絡不穩(wěn)定,如業(yè)務部署的服務器和用戶不在一個運營商,會導致連接超時或丟包嚴重。
這個是最基本的問題,大家應該都有解決方案,一般有2種:
(1)分運營商接入。
(2)使用BGP接入。
對于解決中國這么復雜的運營商網(wǎng)絡,BGP是一個不錯的解決方案,但BGP資源一般都比較貴。
2.手游用戶由于出國游玩或者居住國外,經(jīng)常會從國外連入我們國內(nèi)的服務器,由于中國對國際出口的管制,導致網(wǎng)絡質(zhì)量會非常差。
解決方案:搭建國外接入點。
這些問題相信大家都知道,這里不再細說。
除了這些基礎(chǔ)問題外,我們來看看一個典型的手游登錄流程:
登錄成功率低可能有很多原因,我們要知道每個環(huán)節(jié)的成功率和流失率是怎么樣的才能細致的去做優(yōu)化,比如用戶是不是檢查更新失敗,是不是我們的更新服務器出了問題?用戶是不是更新下載失敗(前面已講過原因和方法)?是不是登錄sdk出了問題?是不是大區(qū)列表拉取失敗?上次登錄服和推薦服是否錯誤?最后才是連接游戲服務器失敗。
三、游戲內(nèi)體驗
Crash問題(閃退):
手游Crash對用戶帶來的體驗傷害,大家應該都已經(jīng)非常清楚了。Crash嚴重會導致大量的用戶流失,所以對手游進行Crash監(jiān)控和優(yōu)化非常重要!
關(guān)于Crash的監(jiān)控和分析,騰訊有一款bugly sdk組件,能夠很準確的抓取Crash的堆棧信息并進行專業(yè)的統(tǒng)計分析,大家可以試用一下。
其實還有很多Crash都是比較初級的編碼規(guī)范沒有執(zhí)行好,例如空指針導致Crash,越界訪問,調(diào)用空方法,地址無效,指針未初始化等等,解決起來也相對比較簡單。
一款手游要想Crash原因不造成用戶流失,個人覺得Crash率應該控制在3%以下,如果要做S級精品手機游戲,Crash率要控制在1%以內(nèi)最好。
解決了Crash的問題,我們來看看游戲?qū)謺r(特別是有pvp對戰(zhàn)的游戲)體驗的問題:
FPS:
一般認為,平均FPS>25幀是體驗較好的情況,平均15<FPS<25幀是體驗一般的情況,平均FPS<15幀是體驗較差的情況。如果一局當中FPS突然下降10幀以上,我們認為是一次卡頓,卡頓次數(shù)多了用戶玩的體驗就非常差了。
延時:
網(wǎng)絡低延時是pvp游戲的核心訴求!
在2G情況下,80%以上的延時是在運營商核心網(wǎng)部分,這里確實沒有什么辦法優(yōu)化;3G大概60%的延時是在運營商接入網(wǎng)部分,而4G大概只有40%左右的延時在核心網(wǎng)部分(取決于游戲服務器的部署)。
而移動手機網(wǎng)絡相對固定網(wǎng)絡來說,有著明顯的特點:
1.網(wǎng)絡切換
2.網(wǎng)絡中斷
3.網(wǎng)絡擁塞
我們分為兩個層面去解決,一個層面是降低運營商接入網(wǎng)延時,一個是降低公網(wǎng)延時。
運營商接入網(wǎng)部分:
主要是和運營商合作核心網(wǎng)內(nèi)用戶QOS保障。
公網(wǎng)部分:
主要是通過搭建加速代理的方式進行加速。
卡頓率:
我們把FPS降低10幀以上,網(wǎng)絡延時突然增加100ms以上定義為卡頓,這兩種情況都會導致用戶口中的“卡”,對游戲體驗影響嚴重。
拖拽率:
拖拽的大概原因就是客戶端本地會進行一定的慣性計算,當服務器負載過高,或者網(wǎng)絡延遲嚴重的情況下,會導致客戶端收到服務器的數(shù)據(jù)后對客戶端的數(shù)據(jù)進行校正,就會出現(xiàn)拖拽的情況。
掉線率:
除了關(guān)注以上這些數(shù)據(jù)外,我們還要關(guān)注一些基礎(chǔ)數(shù)據(jù),例如:
手機CPU使用率,內(nèi)存使用率,流量等,這些也對游戲體驗有不同的影響。
四、支付
目前手游主要支付包括兩個平臺:蘋果支付和安卓支付。
蘋果支付統(tǒng)一走蘋果IAP,安卓由于Google Play未進入中國,大多使用第三方渠道sdk進行支付。
支付的典型流程為:
iOS支付,黑卡,惡意退款,匯率差三大iOS黑產(chǎn)業(yè)鏈,給手游的iOS收入帶來絕大部分損失。
黑卡:與iTunes賬戶綁定的非法信用卡,這些賬戶或為APP余額賬戶,或為透支賬戶,來源遍布美國、日本、加拿大等許多國家,倒賣者背后是破解或者盜取他人信用卡的黑客。
惡意退款:就是先IAP付款,然后打電話給蘋果投訴,要求退款,空手套白狼,網(wǎng)上不時刷出最新有效的退款理由。
匯率差:利用國際匯率的大幅波動,而蘋果的匯率更新較慢的特點,像盧布,日元大跌的時候,淘寶上賣家利用匯率差打折售賣游戲幣,賺取差價,給游戲iOS收入造成巨大損失。
解決方案:蘋果這邊也在不斷的優(yōu)化處理方法,我們也根據(jù)用戶的一些游戲行為去實時分析識別這些黑卡和惡意用戶,進行封號等進一步打擊。
五、輿情
熱詞分析:
從論壇、貼吧、應用市場、公眾號、微博……等抓取游戲相關(guān)熱詞和關(guān)鍵詞。
通過這些熱詞的情感分析,到底是正面,還是中性,還是負面,方便我們快速找到游戲體驗的問題?! ?/p>
以上只是解決方案的一個簡述,想要深入了解移動游戲的各種技術(shù)問題和解決方案,探索極致的玩家體驗提升,歡迎加入騰訊游戲運營部!
這里特別衷心感謝一起為手游技術(shù)不斷探索和優(yōu)化的兄弟姐妹們,感謝你們精益求精的辛苦付出和不斷優(yōu)化!