Unity设备分级策略

Unity设备分级策略


前言

之前自己做的设备分级策略,在此做一个简单的记录和思路分享。希望能给大家带来帮助。

分级策略

  1. 根据拟定的评分标准,预生成部分已知机型的分级信息,且保存在包内;
  2. 如果设备没有被评级过,则优先从预生成分级信息里找自己的机型;
  3. 如果没有预生成信息,则通过设备各个硬件数据权重来进行评分;
  4. 如果获取不到需要的硬件数据,则进行跑分;
  5. 根据最终的分数来判断设备档位,且进行对应的效果降级。

跑分逻辑

跑分脚本,在短时间内(10帧下,每帧渲染后的10ms内)尽可能多的绘制模型。通过绘制的个数来打一个分数,从而判断机型等级。

Unity设备分级策略_第1张图片
需要注意的是:跑分脚本必须要在闲时运行,且限制时间、CPU占用率,不能影响到正常的游戏体验。

有人可能会问,为什么是绘制多少个模型,而不是固定模型数量去判断时间了?

原因是出于以下几点考虑:

  1. 考虑到如果出现跑分流程,那么就是在启动游戏的阶段,把时间作为可控因素对玩家的风险更小;
  2. 限定时间不限定个数可以更好地体现出手机的能力,如果把每一帧看作一次机会的话,相当于一台手机有很多次机会进行测试,取最终的个数总和作为分数,更加具有说服力;
  3. 如果拿时间做评定标准一是跨度太小不好评定,二是不稳定因素较高,可能不准确。

分级标准

如何评定的分级标准呢?
一是从经验方面,二是从多台测试机数据反馈。

评分标准并不是定死了就不改,而是需要根据线上玩家实际情况不断迭代,最好能做到自动动态迭代。不同类型的游戏,评分标准也可能有不同。

评分等级及对应效果降级策略

分数 0-400 400-700 700-1000
等级 低端机 中端机 高端机
分辨率 50% 75% 100%
DPI 50% 75% 100%
最大帧率 30FPS 45FPS 60FPS
是否使用低清资源

Android设备分数标准

内存大小(权重0.7) 1024-2048 2048-3072 3072-4096 4096-6144 6144-8192 8192+
分数 100 300 500 700 800 1000
CPU核数(权重0.1) 2-4 4-6 6-8 8-10 10+
分数 100 300 600 800 1000
CPU主频(权重0.1) 1000-1500 1500-1800 1800-2000 2000-2500 2500+
分数 200 300 500 800 1000
显存大小(权重0.1) 512-1024 1024-2048 2048-3072 3072-4096 4096+
分数 100 300 600 800 1000

iOS设备分数标准

苹果设备号

内存大小(权重1.0) iPhone7.xxx iPhone8.xxx iPhone9.xxx
分数 300 600 800
内存大小(权重1.0) iPad5.xxx iPad6.xxx iPad7.xxx
分数 300 600 800

跑分标准

模型绘制个数(权重1.0) 0-4000 4000-10000 10000+
分数 300 600 800

未来可优化空间

  1. 玩家可以主动切换高中低等级;
  2. 除了图集之外的资源也使用低清包;
  3. 跑分功能及标准更加细化;
  4. 设备评级标准更加合理,动态适配调整;
  5. 打包时间尽可能的缩短;
  6. 自动动态最大帧率调整(参考阴阳师);
  7. 资源卸载逻辑分级。

你可能感兴趣的:(Unity3D技术分享,unity,性能优化)