手游遭遇兼容性、客户端、服务器、防外挂问题如何做?

本文来自Game Look,不代表本平台观点与立场(好文章分享)

这份白皮书不仅给出了目前国内手游产品遭遇的技术上的主要问题,也给出了一个推荐给开发者了解的解决方案,以下是针对各类技术问题WeTest给出的建议。

GameLook报道 / 1月8日,腾讯质量开放平台WeTest正式发布《2017中国移动游戏质量白皮书》。

在此次的《2017中国移动游戏质量白皮书》,分别从研发概况、市场硬件环境、兼容性、客户端/服务器端性能、安全现状、舆论口碑等多个层面,汇总中国移动游戏产品质量数据和趋势,最大程度展现手游研发质量现状。

值得注意的是,gamelook发现,这份白皮书不仅给出了目前国内手游产品遭遇的技术上的主要问题,也给出了一个推荐给开发者了解的解决方案,以下是针对各类技术问题WeTest给出的建议:

兼容性问题解决建议

客户端崩溃

崩溃问题解决方法主要有下列四种,开发者需要根据自身情况合理选择:

1、通过异常堆栈找到对应的代码进行分析,java可以直接看到代码堆栈,native程序可用ndk-stack还原到代码异常堆栈,根据逻辑找到原因;

2、与上一个稳定版本对比代码变化,可使用比较工具如beyondcompare,仔细分析所修改的代码,找到问题原因;

3、直接调试分析,使用Android Studio进行调试,Java和Native程序都可以考虑,在代码异常发生之前单步跟踪,找到问题原因;

4、关键位置多打些debug日志等待问题重现,重现后通过日志缩小问题范围再结合代码进行分析,找到问题原因;

UI异常

UI异常一般分为几类:黑屏、白屏、花屏;重影,错位;资源加载失败等等。

1 黑白屏和花屏问题一般是跟Android设备的兼容适配强相关的问题。具体跟设备的屏幕尺寸、GPU类型,定制化Android版本等相关。例如关注GPU对一些纹理的支持格式;以及虚拟控件对图片本身的显示效果等。

2 重影、错位,或者资源加载失败,一般是游戏本身的逻辑问题。一旦出现,一般不会只在特定的机型上发生。这块UI问题,产生的原因有时也与游戏引擎相关,就Unity引擎开发的游戏而言,我们发现很多开发者没按官方图片格式等来做,注意图片格式符合官方标准等。

无响应

ANR问题往往是因为主线程执行了一些耗时操作,导致线程阻塞时间超过阈值从而引发系统异常.

ANR主要包含以下一些类型:

•KeyDispatchTimeout(5 seconds) –主要类型,按键或触摸事件在特定时间内无响应;

•BroadcastTimeout(10 seconds) — BroadcastReceiver在特定时间内无法处理完成;

•ServiceTimeout(20 seconds) –小概率类型,Service在特定的时间内无法处理完成在ANR分析中用的比较多的是trace文件和system.log

•根据trace文件是否能准确抓住现场

•system.log中可能出现的有用信息是CPU的使用率

客户端性能优化建议

帧数(fps)

核心场景中,尽量减少耗时较大函数的调用,比如资源加载函数,对象生成函数,IO操作函数等,将这些函数放在场景加载时完成。

同一时刻场景中存在的对象数量需要进行控制,特别是一些比较消耗性能的对象,刚体性质的对象需要物理计算及碰撞检测,模型材质复杂的对象需要更多渲染性能,这些对象不要同时存在过多。

对游戏资源的尺寸进行优化,在保证效果的前提下,减少网格的面数和骨骼数,纹理的大小等。

**

内存

**

代码逻辑方面,及时释放不再使用的内存,减少频繁的内存分配和释放,有条件的情况下可以使用内存池和对象池技术。

游戏资源方面,控制资源的尺寸,进行按需加载和释放,防止不再需要的资源继续留在内存中。同时一些参数也会影响资源的内存占用,比如纹理长宽非2次幂,纹理mipmap数量等,需要特别注意。

CPU

在游戏主线程中,尽量不做复杂运算,将这些运算放在单独的子线程中完成。

善用引擎提供的优化选项,比如网格合并,遮挡剔除,光照烘焙等,这些功能可以极大减少引擎需要的CPU运算。

性能要求特别高的代码,可以使用c或c++语言实现,甚至嵌入汇编语言。

服务器性能问题解决建议

单场景问题排查

通过压测工具进行单场景测试,逐步增加场景压力,如果出现:服务器进程cpu资源耗尽、回复消息过慢、回复消息失败,则表示服务器到达瓶颈,此时一般可通过系统工具(top、perf、iostat、vmstat等)排查热点逻辑,查看是否存在优化空间,或从逻辑机制上解决。

容量测试问题排查

综合场景一般包括之前筛选出的所有场景,将所有玩家按照一定比例分布,该比例一般可以通过不同场景下的心跳包频率比例看出。

主要会遇到的问题为:游戏卡顿、玩家掉线等,该类问题一般为客户端或服务器各进程资源遇到瓶颈所致。排查方法与单场景类似。

稳定性测试问题排查

稳定性测试中易出现服务器宕机、内存泄露等情况,针对服务器宕机,一般通过gdb分析core文件,并结合所测场景的机器人行为进行分析宕机原因。通过查看稳定性测试中的内存变化曲线,可以判断服务器内存是否稳定或泄露,若发生泄露,一般可通过内存检测工具,如valgrind等对服务器进程进行排查。

手游安全问题解决建议

客户端安全

客户端安全指的是从反破解反调试角度,应用层面需要进行的防范措施。

针对开发者的建议:

1)增加反调试机制防止游戏在运行时被破解;

2)屏蔽常规的ptrace等注入方式;

3)配置编译选项将so文件中的函数名进行抹消;

4)针对动态库so以及资源文件进行完整性校验;

5)针对Unity引擎下的关键逻辑动态库dll文件,需要进行隐藏或者加密处理;

6)针对Apk文件的二次打包进行校验处理;

7)避免输出关键逻辑相关的log信息。

业务逻辑安全

业务逻辑安全指的是和游戏业务数据相关的安全问题。

针对开发者的建议:

1)针对游戏运行时的内存数据进行加密处理;

2)本地客户端与服务器端的通信协议必须使用加密保护,且加密Key至少每次登录变化一次;

3)针对通信协议强交互类型的游戏,关键逻辑运算必须有服务器端完成;

4)针对通信协议弱交互类型的游戏,需要记录用户在单局游戏内的数据,上报至服务器端进行统一校验。

服务器端安全

服务器端存在各种影响游戏正常运营的安全问题。

针对开发者的建议:

1)针对游戏内用户输入,需要防止SQL注入等类型的漏洞问题。

2)针对DDOS类型的攻击漏洞问题,建议加入类似大禹系统的防攻击安全组件。

本文为GameLook原创文章,如若转载,请注明出处:http://www.gamelook.com.cn/2018/01/317528

手游遭遇兼容性、客户端、服务器、防外挂问题如何做?相关推荐

  1. 神武服务端手游开服架设服务器搭建教程linux

    神武服务端手游开服架设服务器搭建教程linux 大家好我是艾西,今天跟大家分享下怎么架设神武手游服务端 <神武>回合制网络游戏以西游记为背景,辅以多样化的门派设置.画面.活动玩法和各种创新 ...

  2. 手游神武2最新服务器,神武2手游新服开启公告 安卓IOS新服开启

    神武2手游新服开启公告,安卓IOS新服开启.神武手游安卓和IOS客户端又将开启新的服务器了,新的服务器将在3月11日开启.每当新服开启的时候肯定都会有一系列的活动登场,下面就让我们一起来看一看新服活动 ...

  3. lol 服务器 不稳定,LOL手游评分持续下跌,服务器不稳被国外玩家狂喷

    英雄联盟手游版来了!LOLer期待了六年的手机版终于上线,虽然您目前还没有国服,但是却也没挡住大量国内玩家跑到外服展现真正的技术,让老外怀疑这么多高手大概都是开了挂.然而面对期待已久的游戏,有外媒报道 ...

  4. 大话西游手游有双系统服务器吗,大话西游手游有几个版本_大话西游手游官服和混服怎么区分_玩游戏网...

    <大话西游>手游时间服点卡是互通的吗 点卡有两种,一种是大话西游手游内部的点卡,这种点数是在游戏里面购买道具或者计时用的,分为绑定点和交易点,这种是不能通用的,比如我在时间服有两个号,一个 ...

  5. 刀锋战记2服务端手游开服架设服务器搭建需要什么

    刀锋战记2服务端手游开服架设服务器搭建需要什么 <刀锋战记2>  是一款以魔幻世界为题材精心打造的韩派角色扮演策略战斗类手游,游戏以魔幻世界为背景,采用虚幻4引擎打造,全面塑造的一个虚拟架 ...

  6. unity塔防游戏怪物转向_怪兽塔防手游下载-怪兽塔防官方版v1.0下载

    怪兽塔防官方版是一款画风Q萌的塔防手游,怪兽塔防里有很多可爱的怪物,保护你身后的城堡,不断到来的敌人会对你造成极大的威胁,你可以通过在固定的位置放置武器进行防御,这将考验你对紧急情况的反应和应对能力, ...

  7. 倩女幽魂显示服务器繁忙,倩女幽魂手游新服首开服务器爆满,万人排队逼疯玩家...

    原标题:倩女幽魂手游新服首开服务器爆满,万人排队逼疯玩家 对于倩女手游玩家来说最近最值得高兴的就是新服的开放了,1月2号<倩女幽魂>手游新服[太阳神鸟]上线后玩家热情高涨,甚至出现了万人排 ...

  8. qq炫舞手游显示无法连接服务器失败,qq炫舞手游无法连接版本服务器_QQ炫舞手游无法连接版本服务器解决方法_游戏吧...

    QQ炫舞手游有玩家遇到了无法连接版本服务器的原因,想必大家都很想知道怎么办吧.下面游戏吧小编就为各位玩家带来了QQ炫舞手游无法连接版本服务器解决方法. 无法连接版本服务器 亲爱的玩家 由于网络问题,服 ...

  9. qq炫舞手游显示无法连接版本服务器,炫舞手游无法连接版本服务器怎么办_QQ炫舞手游3.21无法连接版本服务器解决方法_游戏吧...

    QQ炫舞手游突然不能连接服务器了,很多玩家都很着急,那么到底怎么解决呢?下面游戏吧小编就就为各位玩家带来了QQ炫舞手游无法连接服务器方法,快来看看吧. 无法连接版本服务器 亲爱的玩家 由于网络问题,服 ...

最新文章

  1. 红包规则_“科普闯关100%夺红包”游戏规则升级了!速速来看!
  2. XHTML Strict和Transitional 的区别
  3. python sns绘制回归线_SVM--支持向量机amp;Python代码
  4. 计算机硬件基础 试题,计算机硬件基础试题(库)
  5. Spring学习-黎活明视频学习注解
  6. 3K水稻SNP数据集的简单利用
  7. 流量高峰时期的性能瓶颈有哪些、以及如何来解决
  8. php octet stream,php 上传excel时,excel mime-type类型为application/octet-stream,无法通过验证...
  9. 看完一本青春小说后的感悟。
  10. win7安装oracle 黑屏,苹果电脑装Windows7黑屏的原因和解决方案
  11. 安徽公务员计算机专业科目真题,公务员计算机专业真题+答案安徽省考 安徽省公务员考试...
  12. Java输出各种 * 图案
  13. 外国男子在北京抢车后连撞4车和1名行人-砍伤-外国男子-菜刀
  14. DiDi for Android协议分析
  15. 在条码软件中如何制作ISBT-128条码
  16. 很全面的5G技术基础知识PPT(一)
  17. 弱函数(weak)使用
  18. OFFICE安装报错:This installation requires a compatible Microsoft Office program installed on your comput
  19. WebRTC 系列1--创建相机预览
  20. 这款引文数量全球的SOD检测试剂盒,你可能想不到

热门文章

  1. Dreamweaver 8安装
  2. 第一次刷机,MOTO MB300 平刷2.3
  3. 6页的试卷怎么打印?想要打印试卷去哪里打印
  4. 腾讯QQ/TM珊瑚虫外挂 2.3.4 QQ IP数据库
  5. beta阶段第六次scrum meeting
  6. 夏令营导师推荐信怎么写(浙大CS上岸老学姐手把手教你)
  7. php数组的索引,PHP数组的类型-数字索引数组
  8. 运输层(1.运输层协议概述)
  9. 【40本】算法与数据结构技术书籍从入门到进阶附技术书阅读方法论
  10. 易福门KF5001电容式接近开关