帧同步技术目标总结

  • 在写一些网络优化总结的时候,翻到了年初(2018年)3月份写的技术目标。在此之前因为玩法在不断摸索,主要的时间都在独立解决一些问题上,几乎不会涉及到技术任务的分配。但因为4月份版本需要上线测试而且至关重要,但当时的版本还过于Demo化延迟性能等都有不少问题,因此也被委以重任制定技术上下个月版本的技术目标,希望能有所提升。 着实挖空心思了一番!丧尽天良的列出了一大堆优化目标。。。 经过大家的不懈努力,两个版本之后基本所有的优化点都已完成(游戏功能也在不断开发),之后的版本有了大幅提升,顺利的经过了n轮测试。现在回头看看,真是一个非常痛苦而又快乐的过程,痛并快乐着,我想这就是游戏开发的真实写照。
    • 网络优化:
    • 客户端和服务器立即发消息的收发方式【优先级高】。现在服务器和客户端有个缓存队列(可靠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天
    • 资源管理方式使用引用计数方式【待讨论】
  • 来自 <https> /<https>

  • 分享到:


    相關文章: