- 网络优化:
- 客户端和服务器立即发消息的收发方式【优先级高】。现在服务器和客户端有个缓存队列(可靠UDP的机制,改进后我们将使用TCP,可靠UDP,非可靠UDP三种网络方式)消息不回立即发送。降低延迟。
- 客户端收发协议多线程【优先级高】。更快的收发包,减少不受客户端帧率影响。
- 实现非可靠UDP【优先级高】。当用户网络不稳定丢包时可大幅降低延迟。使用冗余包的方式保证UDP可靠,比现在的ACK保证可靠性流量更大但延迟率低
- 网络数据测量分析【优先级高】。测量纯网络ping值,和游戏真实ping值。定位延迟问题,目前正常ping值在30ms左右,但网络层实际ping值在100ms左右,定位问题和解决方案。实际主要是因为客户端逻辑层和表现层的更新顺序问题
- 断线重连【优先级高】。分析和制定更好的断线重连方案,测试提供测试用例,需要策划配合。review和方案讨论的时间,具体修改方法还需要测试讨论
- 将帧协议从protobuff改为二进制流【优先级低】针对混战角色较多提升客户端收发包性能。
- 移动的行为预测,表现层预表现一段时间玩家操作,使用航位预测算法平滑渲染层和逻辑层,降低移动延迟
- 协议包的压缩和限制,减小包的大小,忽略部分细微操作
- 底层优化
- 负载均衡机制,因为逻辑层是15帧,渲染层依赖玩家设备和游戏环境但几乎都会高于15帧,通过分摊逻辑运算降低帧率的毛刺
- 道具掉落系统的格子算法统一【优先级中】。目前IO模式使用了新的格子算法,匹配还是老算法。
- 贴图资源泄漏【优先级中】。从主城到战斗等场景切换会有些贴图无法释放,导致玩家时间长之后内存膨胀
- 堆内存优化【优先级中】。解决游戏中顿卡问题,堆内存分析优化,通用内存池开发
- 性能优化【优先级中】。分析游戏的性能瓶颈解决游戏中卡,发热,帧率低等问题。已知有图形配置的调整,追帧隐藏场景等。【每次封板前后review,有针对进行优化】【持续】
- 阻塞加载场景,再来一局同一场景不进行loading【优先级低】。提升loading速度
- UI使用一些插件做一些动画【优先级低】
- 加密。使用关键数据内存加密的方式(仅客户端),使用关键数据上报服务器校验的防作弊方式
- 使用IL2CPP取代Mono的DLL加密方式,防止代码逆向并提升性能。
- 更详细的图形配置测试,获得每个图形配置对帧率,发热耗电的数据提现,针对标杆机型普及率高的机型做深度的推荐配置,让玩家上来就获得最好体验【优先级低】(取决于已有机型的数量)
- 流程优化:
- 服务器白名单【优先级中】。这几次测试也有需求开服测试时可以屏蔽玩家,但是可以运行指定IP段提前连入测试,被服务器挡掉的玩家有未开服公告
- 热更流程优化【优先级中】。重构现在的热更代码,和自动构建集成,支持不同服的版本使用不同的CDN配置,支持更新表格和lua,支持更新部分UI资源。【后续更多的资源更新需要对资源做更大的调整】
- GM工具【优先级低】。现在只有发公告
- 开关服的流程优化【优先级低】。登陆公告,跑马灯,踢人,封号,关服倒计时,更完善的公告。需要和策划一起梳理
- 自动构建的Build号校验
- 工具优化
- AI行为树编辑器。【优先级低】。暴露更多的接口给策划,让策划便于编辑修改【开发中下周】【持续】
- CMT技能编辑器。【优先级低】。开发可视化的CMT编辑器,优点不需要写代码,缺点无法配置逻辑,不灵活【持续】
- 自动的调试菜单更美观易用,支持分页【优先级低】
- 支持本地录像和日志记录功能,支持关键数据校验不同步时实时上报日志
- 重构
- MainUI拆分【优先级低】。因为开发了多个模式,很多模式的UI都混在一个预制体,战斗界面非常庞大而且容易出错,性能也差,使用不方便。可以分摊到开发过程中【持续】
- 玩家组件系统重构【优先级低】纯代码重构
- UI使用消息事件系统【优先级低】。使用消息系统可以使UI结构更清晰减少bug,新的界面使用了历史遗留的一些界面没使用
- 帧同步游戏内换人加入优化【优先级低】。因为IO模式支持中途换人,每次换人的时候需要发送该玩家拥有英雄数据天赋数据非常庞大,优化为只在换人的时候同步换的角色的属性和天赋,否则后期英雄数量的时候会出问题【是否可以不换人】
- 状态机重构【优先级低】。统一目前游戏内的多个状态机,游戏流程使用唯一的一个状态机。客户端2天
- 资源管理方式使用引用计数方式【待讨论】
閱讀更多 Mack 的文章