cf手游自动瞄准辅助 “端改手”怎么做?《穿越火线:枪战王者》客户端技术方案详解

11/27 23:10:42 来源网站:辅助卡盟网

cf手游自动瞄准辅助 “端改手”怎么做?《穿越火线:枪战王者》客户端技术方案详解

本文节选自《2018腾讯移动游戏技术评审标准与实践案例》手册,由腾讯互娱专家工程师郭智介绍CF手游团队在移动端实现同步技术、移动FPS游戏手感方面的实践和经验,完整手册可于文末免费阅读和下载。

一项目背景

CF手游的团队有着相当丰富的FPS游戏制作经验,但是移动端开发经验相对匮乏。团队面对的挑战很大,我们需要在手机端完美还原CF十多个游戏模式,上百把枪械手感。

虽然我们有实时对战FPS游戏开发经验,但是手游网络质量很差,我们需要保证在高Ping值,高丢包率的弱网络环境下流畅同步,并且避免外挂的出现。CF端游用户量很大,手游也会是一个高在线的游戏。对于后台我们希望能大幅度地提高负载,节省成本。

二解决方案

1.移动端实时同步技术

1.1CF手游的C/S架构

CF手游是竞技向的手游,为了杜绝外挂,弱网络下有良好表现,注重游戏的时效性,最终选择基于C/S架构使用可靠UDP作为网络层的同步方案:

cf手游辅助瞄准和进阶_cf手游辅助瞄准红点_cf手游自动瞄准辅助

图CF手游网络架构

引擎层:Unity的物理引擎是Physx。为了保证两边物理算法一致,我们搭建了基于Physx的物理服务器,并对其作出优化,同时集成了Recast Navigation等高性能引擎组件为服务器提供基础功能。

数据层:基于我们的关卡工具导出碰撞模型和关卡数据提供给服务器,保证数据一致。

游戏逻辑层:客户端使用C#编写,服务器为了高性能使用C++,保证核心运算一致。客户端和服务器都会维护一致的逻辑实体,两边都做移动计算,服务器会在同样的位置进行命中伤害计算,并且通知客户端做表现。服务器永远是权威,客户端是哑终端,借此达到高强度的反外挂。

整体C/S架构基于我们实现的UDP网络层进行快速传输。

1.2高性能的Dedicated Server与服务器负载优化

cf手游辅助瞄准红点_cf手游自动瞄准辅助_cf手游辅助瞄准和进阶

图CF手游服务器物理世界还原

CFM的即时对战服务端(DS)是依赖虚幻3引擎开发过程中积累的经验,完全为手游重写的。DS基于PhysX和Recast开源组件开发辅助论坛,对程序性能有良好的控制。在腾讯标准M1机型配置下,单机综合承载可以达到8000人。DS反外挂强度接近端游,单机性能比同类端游提高7-8倍。

cf手游辅助瞄准红点_cf手游自动瞄准辅助_cf手游辅助瞄准和进阶

1.3高时效的UDP网络层

游戏对网络有实时性要求高,带宽要求小的特点。TCP虽然提供了可靠传输,但是内置的复杂拥塞控制算法并不是专为实时性优化的,也没有提供较好的方法让业务定制化。CF手游实现了自定义的RUDP协议方案,使用UDP保证协议实时性,同时通过自定义重传策略兼顾可靠性,取得了很好效果,主要技术要点包括:

数据传输分类

CF手游中并非所有数据都要求可靠,按游戏逻辑需要,只有不到50%的协议有可靠性需求,RUDP中只对这部分协议提供可靠性保证。而非可靠包则保证尽快到达,以满足游戏的实时性需求。对玩家移动状态等信息,由业务层定时冗余重传。

cf手游自动瞄准辅助_cf手游辅助瞄准红点_cf手游辅助瞄准和进阶

图CF手游网络数据传输分类

客户端与服务器的交互时序如下:

cf手游辅助瞄准和进阶_cf手游辅助瞄准红点_cf手游自动瞄准辅助

图CF手游网络数据交互时序

快速发送

发送方不维护发送窗口,不等待前面包是否ack,有数据需要发送时立即发送。

快速重传

CF手游使用比TCP更高精度,响应速度更快的重传策略以保证实时性。

cf手游辅助瞄准红点_cf手游辅助瞄准和进阶_cf手游自动瞄准辅助

表RUDP快速重传策略

带宽优化

主要思路是有损服务和降低不必要开销。CFM持续进行了多轮流量优化,包括:

cf手游辅助瞄准红点_cf手游辅助瞄准和进阶_cf手游自动瞄准辅助

1.MTU设计为500+字节,应用逻辑保证数据包大小不超过MTU,避免拆包。

2.减小包头,8字节。

3.小包合并。同一帧发往同一个目标的多个小数据包合并为大包,减少包数量。

4.降低服务端帧率和位置精度,但不影响玩家体验。

1.4弱网络移动同步方案

PVP实时玩家同步

CFM采用C/S架构,服务器上会执行完整的游戏逻辑。在移动同步上,玩家的位置也是以服务器的位置为准,客户端1P视角和3P视角分别进行同步和模拟。