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