本文档列出心动网络游戏前端评审关注要点。
-
具备热更新能力
- 具备不通过市场审核更新游戏内容或进行修正bug的能力
- 每次热更的文件数可控或固定数量(5个文件内),如超过应该通过压缩包更新
- 热更新必须使用数字(Int)版本号而不能使用字符串比较(例如 5.x.x)
-
iOS 10+: 关于在游戏启动时检查网络
客户端启动后第一时间应检查网络是否可用。如果不可用则等待,并进行友好的提示(iOS 10设置引导说明)。直到网络通畅。
-
iOS和安卓系统权限请求
下所有申请系统授权的提示,包括推送、地理位置、拍照、地理位置、发送通知、蓝牙权限、读取扩展卡等, 均不应该启动时要求授权,而是根据用户行为需求来设计提示授权时机。 提示授权时,应该先在游戏界面UI内提示用户是否授权,当用户给予肯定的答复后,获得用户同意后再触发系统提示申请授权。 不能调用 IMEI 串号。
-
iOS: SDK 和代码中不能出现 wechat alipay 微信支付 或任何直接或间接导向至平台外充值的功能,包括不显示的入口或任何有嫌疑的关键字都不能出现在代码和 SDK 中
-
弱网络性能
具备心跳机制检测弱网络,并具备数据包队列机制防止重连丢包等体验或bug问题
-
错误(Crash)日志收集机制
-
接入 TapDB 数据统计系统 SDK
用于运营数据分析和运营维护
-
下载CDN资源时能正确支持302转向
-
多语言支持
有多语言支持机制,包括但不限于:
- 文本通过特定的方法包裹后输出,例如:
_T("确定", "Main") // 默认返回'确定'
- 图片资源特定的方法包裹后输出,例如:
_I("/logo.png", "Main") // 默认返回'logo.png'
- 有多语言文本、图片资源数据(表格)文件
- format 支持序号,例如 format("%[1]s name is %[2]s", "his", "john")
- 文本通过特定的方法包裹后输出,例如:
-
压缩
图片素材使用 pngquant 压缩 声音使用 AAC-HEv2 32Kbps 或更高压缩比方式
-
返回按钮的功能应该是返回上一层UI、关闭弹窗或暂停游戏。而不是退出游戏
-
TargetSDK 为 23 或更高
-
尽可能支持 Google Play Services ,例如成就和排行榜
-
参考: http://api.txwy.com/sdk_api/android/tw/#advanced-section-kb
-
非心动SDK的iOS充值系统
iOS充值获得收据后保证先本地存储落地、放入队列,并将保存在例如UserDefault这类持久化的存储区。然后不断的从队列提取并执行充值,直到成功后再从队列移除。充值队列具有定时重试机制。保证游戏断网或Crash均不掉单,确保充值流程的可靠。
-
体积
安装包体积尽量小。资源整体如能控制是90M以下,则可以在无wifi时安装,有助于提高转化率。
-
关注运行时内存峰值
可参考 市场设备占有率指数 。如果占用小于200M可以兼容 iPhone4S。
参考 心动网络游戏安全评议要点