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