辅助公告

您的位置:主页 > 辅助公告 >

【CF辅助】穿越火线外挂提示你枪战王者客户端技术方案

浏览: 来源:辅助公告 发布时间:2019-03-13

  【CF辅助】穿越火线外挂提示你枪战王者客户端技术方案
  一、项目背景
 
  CF手游的团队有着相当丰富的FPS游戏制作经验,但是移动端开发经验相对匮乏。团队面对的挑战很大,我们需要在手机端完美还原CF十多个游戏模式,上百把枪械手感。
 
  虽然我们有实时对战FPS游戏开发经验,但是手游网络质量很差,我们需要保证在高Ping值,高丢包率的弱网络环境下流畅同步,并且避免外挂的出现。CF端游用户量很大,手游也会是一个高在线的游戏。对于后台我们希望能大幅度地提高负载,节省成本。
 
  二、解决方案
 
  1.移动端实时同步技术
 
  1.1 CF手游的C/S架构
 
  CF手游是竞技向的手游,为了杜绝外挂,弱网络下有良好表现,注重游戏的时效性,最终选择基于C/S架构使用可靠UDP作为网络层的同步方案:
 
  《穿越火线:枪战王者》手游客户端技术方案:实时同步与手感优化
 
  1.2高性能的Dedicated Server与服务器负载优化
 
  《穿越火线:枪战王者》手游客户端技术方案:实时同步与手感优化
 
  图CF手游服务器物理世界还原
 
  CFM的即时对战服务端(DS)是依赖虚幻3引擎开发过程中积累的经验,完全为手游重写的。DS基于PhysX和Recast开源组件开发,对程序性能有良好的控制。在腾讯标准M1机型配置下,单机综合承载可以达到8000人。DS反外挂强度接近端游,单机性能比同类端游提高7-8倍。
 
  1.3高时效的UDP网络层
 
  游戏对网络有实时性要求高,带宽要求小的特点。TCP虽然提供了可靠传输,但是内置的复杂拥塞控制算法并不是专为实时性优化的,也没有提供较好的方法让业务定制化。CF手游实现了自定义的RUDP协议方案,使用UDP保证协议实时性,同时通过自定义重传策略兼顾可靠性,取得了很好效果,主要技术要点包括:
  带宽优化
 
  主要思路是有损服务和降低不必要开销。CFM持续进行了多轮流量优化,包括:
 
  MTU设计为500+字节,应用逻辑保证数据包大小不超过MTU,避免拆包。
 
  减小包头,8字节。
 
  小包合并。同一帧发往同一个目标的多个小数据包合并为大包,减少包数量。
 
  降低服务端帧率和位置精度,但不影响玩家体验。
 
  1.4弱网络移动同步方案
 
  PVP实时玩家同步
 
  CFM采用C/S架构,服务器上会执行完整的游戏逻辑。在移动同步上,玩家的位置也是以服务器的位置为准,客户端1P视角和3P视角分别进行同步和模拟。
 
  《穿越火线:枪战王者》手游客户端技术方案:实时同步与手感优化
 
  图CF手游玩家实时同步方案
 
  如上图所示,客户端1P根据玩家的输入调整移动方向和速度,并把相关信息上报到服务器。服务器对上报的信息进行合法性检验之后更新玩家的移动状态,并在每个逻辑帧下发移动信息到所有客户端。客户端在收到服务器下发的移动信息,使用适当的同步算法对玩家的移动进行模拟,达到实时流畅的同步效果。其技术要点如下:
 
  在3P的同步模拟上,CFM参考了DR算法(Dead Reckoning)和影子跟随算法等方案,并针对移动弱网络的特点,加入了延迟补偿和预测同步的特性,解决了在网络抖动的情况下同步位置差距大和移动过程卡顿等关键问题。客户端收到服务器的移动信息后,会对服务器的移动路点进行过滤和合并,然后构造出3P同步模拟的移动路径。同时,客户端会根据当前与服务器的位置差距以及当前的网络延迟对模拟移动时的运动速度进行补偿,从而保证客户端3P经过SimulateTime时间的模拟移动后与服务器的位置达到一致。
 
  另外,在移动弱网环境下,网络抖动会导致游戏过程中网络瞬时延迟变大,客户端在3P同步模拟过程中可能出现服务器下发的移动信息丢失或者延迟到达的问题。在这种情况下,3P模拟的移动过程就会被打断,出现走走停停的卡顿现象。为此,CFM在同步模拟的过程中加入了预测同步,在没有收到服务器信息的情况下,会根据玩家之前的移动状态继续预测移动,预测时间为2倍的网络延迟。在预测移动过程中,如果收到来自服务器的移动信息,则会自动恢复为正常的同步模拟过程,从而保证了3P同步模拟过程中移动的流畅性和连续性。
 
  《穿越火线:枪战王者》手游客户端技术方案:实时同步与手感优化
 
  PVE大规模怪物同步
 
  CFM的多人PVE模式以末日逃生,僵尸围城为设定,为了更好地表现尸潮围堵的感觉,提高玩家闯关过程中的爽快感,必须支持大规模的怪物行为同步。面对大量怪物带来的流量消耗及客户端性能压力,CFM针对PVE怪物行为的特点重新设计了低误差,低流量消耗,支持复杂行为的同步方案。
 
  《穿越火线:枪战王者》手游客户端技术方案:实时同步与手感优化
 
  图CFM指令式怪物AI同步方案
 
  支持上百AI单位的实时同步,核心问题:
 
  服务器伤害逻辑与客户端行为表现一致性;
 
  怪物群体行为与移动同步;
 
  大规模怪物同步流量控制;
 
  AI命令按需发送,降低流量消耗。
 
  【CF辅助】穿越火线外挂提示你枪战王者客户端技术方案
 
  在CFM的多人PVE模式中,怪物的移动信息只会在怪物移动路径变更时进行同步,而不是传统方案中的每帧同步。怪物路径更新的频率约为1~2秒/次,其同步流量消耗只有传统方案的1/8左右。
 
  通用怪物行为建模,对复杂怪物行为进行抽象。
 
  CFM中怪物种类多样,怪物行为特别是BOSS技能流程复杂,包括各种连续技和组合技。CFM怪物同步方案中对怪物的行为进行了抽象,把怪物的行为规范到统一的流程中,通过对服务器下发的技能指令进行解释,生成客户端技能状态机,驱动怪物的复杂行为表现。
 
  PVE大量怪物同步:群体行为
 
  难点:
 
  Ø常规寻路导致怪物位置重叠;
 
  Ø纯客户端方案导致位置差异大;
 
  解决:
 
  Ø服务器计算怪物群体力,构造移动路径;
 
  Ø客户端根据下发路径进行移动模拟;
 
  效果:
 
  Ø保证服务器与客户端路径一致;
 
  Ø路径合包下发,节省流量;
 
  Ø避免客户端寻路与碰撞计算,提高性能;
 
  2.移动FPS游戏手感
 
  2.1移动端操作手感
 
  FPS竞技类游戏,对玩家操作的反应和准确性要求极高,如何在移动端实现良好的操作手感是个很大的挑战。我们从移动、瞄准和射击三个维度进行了深度探索和优化,不断尝试了几十种手感方案,上百套参数调整,最终得到了目前的操作手感解决方案。
 
  适配多样屏幕的操作数学模型
 
  我们获取玩家的触屏输入Touch,通过计算Touch的位置和DeltaPosition,转换为角色的移动加速度和视角转向角度等。
 
  由于屏幕的密度和手机分辨率各不一样,相同的滑屏物理距离会得到不一样的DeltaPos,因此CFM在操作模型计算中加入了移动设备的dpi和分辨率因子来解决一致性问题。
 
  【CF辅助】穿越火线外挂提示你枪战王者客户端技术方案
  抖动手感数学模型
 
  抖动的主要因素有两个:一是触摸的不精确性,另一个是游戏帧率的抖动。触摸的不精确性,是由于我们手指与屏幕的接触是一块区域,但程序中获取的却是一个像素点,并且各个系统的实现也各不一致。
 
  3D Touch
 
  在苹果推出的新一代多点触控技术3D Touch后,我们立刻进行了相关的技术预研,最终实现了一种能完美解决操作体验的手感方案,也成为了首款支持3D Touch的FPS手游,并申请技术专利。我们在跟随开火的基础上,加入了按压力度来触发开火(即3D Touch)。在iOS上,我们通过Hook UIKit的事件分发,从而把按压力度转发到C#层来实现。
 
  《穿越火线:枪战王者》手游客户端技术方案:实时同步与手感优化
 
  图CF手游3D Touch
 
  2.2枪械射击手感
 
  作为经典第一人称射击游戏CF在移动平台上的延续,CFM力求为玩家还原最真实的枪械手感。CFM结合移动客户端上玩家的操作方式进行优化,创新性的设计自身的枪械弹道数学模型,此模型成为射击游戏的标杆:
 
  T字弹道模型
 
  子弹弹道散发模型
 
  现实中子弹射出的时候受各种环境因素影响,会出现小幅度的随机偏向,子弹的最终射出方向即是在后座力计算后的前向方向叠加上散发的偏差,弹道散发的幅度和方向符合高斯正态分布。因此CFM在实现枪械散发模型时也使用高斯随机数实现。

穿越火线外挂:http://www.99bj120.cn/fuzuogonggao/452.html

CF透视:http://www.99bj120.cn