首页 > 知识库 > 正文

移动游戏技术优化的解决方案简述
2016-02-20 19:34:23   来源: 张丹 51CTO.com    评论:0 点击:

移动游戏经过多年来的高速发展,仅凭一个好的创意就能大获成功的产品已经越来越少,必须经过不断精细化的打磨,追求极致的用户体验,才能做出S级大作。本文讲述如何从技术角度追求手游(特别是多人对战手游)用户体验提升的解决方案。

\

腾讯手游技术总监  张丹

手游经过多年来的高速发展,如今已经进入白热化的红海时代,仅凭一个好的创意就能大获成功的产品已经越来越少,必须经过不断精细化的打磨,追求极致的用户体验,才能做出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收入造成巨大损失。

解决方案:苹果这边也在不断的优化处理方法,我们也根据用户的一些游戏行为去实时分析识别这些黑卡和恶意用户,进行封号等进一步打击

五、舆情

热词分析:

从论坛、贴吧、应用市场、公众号、微博……等抓取游戏相关热词和关键词。

通过这些热词的情感分析,到底是正面,还是中性,还是负面,方便我们快速找到游戏体验的问题。

以上只是解决方案的一个简述,想要深入了解移动游戏的各种技术问题和解决方案,探索极致的玩家体验提升,欢迎加入腾讯游戏运营部!

这里特别衷心感谢一起为手游技术不断探索和优化的兄弟姐妹们,感谢你们精益求精的辛苦付出和不断优化!

【编辑推荐】

  1. 25%的游戏通过Steam支持Linux系统
  2. Unity游戏引擎登录Linux平台
  3. 五大超酷的开源游戏
  4. 服务才是未来 腾讯游戏运维的实践分享
  5. 开源界何时不再玩捉迷藏游戏?
【责任编辑:火凤凰 TEL:(010)68476606】

相关热词搜索:移动游戏 手机游戏 优化

上一篇:技术专题:智能化运维
下一篇:运维人,你应该具有的五大O2O思维

分享到: 收藏