《穿越火线:枪战王者》手游客户端技术方案: 实时同步与手感优化
旺道朋友圈广告 -> 最新发布





一、项目背景

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

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

二、解决方案

1.移动端实时同步技术

1.1 CF手游的C/S架构

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

图CF手游网络架构

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

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

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

整体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保证协议实时性,同时通过自定义重传策略兼顾可靠性,取得了很好效果,主要技术要点包括:

数据传输分类

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

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

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

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

快速发送

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

快速重传

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

表RUDP快速重传策略

带宽优化

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

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

2.减小包头,8字节。

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

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

1.4弱网络移动同步方案

PVP实时玩家同步

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

图CF手游玩家实时同步方案

如上图所示,客户端1P根据玩家的输入调整移动方向和速度,并把相关信息上报到服务器。服务器对上报的信息进行合法性检验之后更新玩家的移动状态,并在每个逻辑帧下发移动信息到所有客户端。客户端在收到服务器下发的移动信息,使用适当的同步算法对玩家的移动进行模拟,达到实时流畅的同步效果。其技术要点如下:

客户端1P即时预表现,避免网络延迟带来的操作手感迟滞的问题。

客户端在接受玩家输入后,会即时更新本地的移动状态,并上报服务器。在收到服务器回包之前,客户端1P就会按照新的状态进行移动,保证玩家的操作在第一时间得到响应。客户端与服务器物理世界的一致性则保证了客户端1P预表现的结果和服务器的移动结果是一致的。

客户端3P进行延迟补偿和预测同步,消除网络因素引入的位置误差。

在3P的同步模拟上,CFM参考了DR算法(Dead Reckoning)和影子跟随算法等方案,并针对移动弱网络的特点,加入了延迟补偿和预测同步的特性,解决了在网络抖动的情况下同步位置差距大和移动过程卡顿等关键问题。客户端收到服务器的移动信息后,会对服务器的移动路点进行过滤和合并,然后构造出3P同步模拟的移动路径。同时,客户端会根据当前与服务器的位置差距以及当前的网络延迟对模拟移动时的运动速度进行补偿,从而保证客户端3P经过SimulateTime时间的模拟移动后与服务器的位置达到一致。

另外,在移动弱网环境下,网络抖动会导致游戏过程中网络瞬时延迟变大,客户端在3P同步模拟过程中可能出现服务器下发的移动信息丢失或者延迟到达的问题。在这种情况下,3P模拟的移动过程就会被打断,出现走走停停的卡顿现象。为此,CFM在同步模拟的过程中加入了预测同步,在没有收到服务器信息的情况下,会根据玩家之前的移动状态继续预测移动,预测时间为2倍的网络延迟。在预测移动过程中,如果收到来自服务器的移动信息,则会自动恢复为正常的同步模拟过程,从而保证了3P同步模拟过程中移动的流畅性和连续性。

服务器延时、丢包补偿

丢包时,服务端可能由于移动路径不连贯而卡在拐角处,需要有补偿机制。因为传输延迟,从客户端向服务器发起移动请求,到服务器开始模拟有时间差。CF手游服务端需要回溯到移动包的历史时间,再追到当前时间。这样允许最多减少100-200ms内的C/S不同步现象。另外当客户端移动路径部分丢失后,服务端根据历史数据,尝试推算可能的移动路径。通过尝试绕路策略避开障碍,在较小范围内近似模拟客户端路径。

应用平滑插值和物理力学

在移动弱网环境出现抖动时,服务器的移动信息可能会延迟到达或者扎堆到达,导致客户端3P同步模拟过程中速度陡变,移动过程忽快忽慢等问题。因此,CFM对同步模拟过程中速度的变化进行了平滑插值,保证速度的变化符合玩家对现实世界变速的认知,提高游戏的真实感。另外,在进行大角度变向过程中,根据物理力学规律,玩家角色应该遵循先减速再逆向加速的物理过程。CFM在同步模拟过程中对玩家的此类行为进行了分析判定,并实现了相应的物理模型,避免玩家在变向移动时速度过快难以命中的问题,增强了游戏体验。


PVE大规模怪物同步

CFM的多人PVE模式以末日逃生,僵尸围城为设定,为了更好地表现尸潮围堵的感觉,提高玩家闯关过程中的爽快感,必须支持大规模的怪物行为同步。面对大量怪物带来的流量消耗及客户端性能压力,CFM针对PVE怪物行为的特点重新设计了低误差,低流量消耗,支持复杂行为的同步方案。

图CFM指令式怪物AI同步方案

支持上百AI单位的实时同步,核心问题:

  • 服务器伤害逻辑与客户端行为表现一致性;
  • 怪物群体行为与移动同步;
  • 大规模怪物同步流量控制;
  • AI命令按需发送,降低流量消耗。


在CFM的多人PVE模式中,怪物的移动信息只会在怪物移动路径变更时进行同步,而不是传统方案中的每帧同步。怪物路径更新的频率约为1~2秒/次,其同步流量消耗只有传统方案的1/8左右。

通用怪物行为建模,对复杂怪物行为进行抽象。

CFM中怪物种类多样,怪物行为特别是BOSS技能流程复杂,包括各种连续技和组合技。CFM怪物同步方案中对怪物的行为进行了抽象,把怪物的行为规范到统一的流程中,通过对服务器下发的技能指令进行解释,生成客户端技能状态机,驱动怪物的复杂行为表现。

PVE大量怪物同步:群体行为

难点

Ø常规寻路导致怪物位置重叠;
Ø纯客户端方案导致位置差异大;

解决

Ø服务器计算怪物群体力,构造移动路径;
Ø客户端根据下发路径进行移动模拟;

效果

Ø保证服务器与客户端路径一致;
Ø路径合包下发,节省流量;
Ø避免客户端寻路与碰撞计算,提高性能;

2.移动FPS游戏手感

2.1移动端操作手感

FPS竞技类游戏,对玩家操作的反应和准确性要求极高,如何在移动端实现良好的操作手感是个很大的挑战。我们从移动、瞄准和射击三个维度进行了深度探索和优化,不断尝试了几十种手感方案,上百套参数调整,最终得到了目前的操作手感解决方案。

适配多样屏幕的操作数学模型

我们获取玩家的触屏输入Touch,通过计算Touch的位置和DeltaPosition,转换为角色的移动加速度和视角转向角度等。

由于屏幕的密度和手机分辨率各不一样,相同的滑屏物理距离会得到不一样的DeltaPos,因此CFM在操作模型计算中加入了移动设备的dpi和分辨率因子来解决一致性问题。

抖动手感数学模型

抖动的主要因素有两个:一是触摸的不精确性,另一个是游戏帧率的抖动。触摸的不精确性,是由于我们手指与屏幕的接触是一块区域,但程序中获取的却是一个像素点,并且各个系统的实现也各不一致。

3D Touch

在苹果推出的新一代多点触控技术3D Touch后,我们立刻进行了相关的技术预研,最终实现了一种能完美解决操作体验的手感方案,也成为了首款支持3D Touch的FPS手游,并申请技术专利。我们在跟随开火的基础上,加入了按压力度来触发开火(即3D Touch)。在iOS上,我们通过Hook UIKit的事件分发,从而把按压力度转发到C#层来实现。

图CF手游3D Touch

2.2枪械射击手感

作为经典第一人称射击游戏CF在移动平台上的延续,CFM力求为玩家还原最真实的枪械手感。CFM结合移动客户端上玩家的操作方式进行优化,创新性的设计自身的枪械弹道数学模型,此模型成为射击游戏的标杆:

T字弹道模型

枪械射击时,子弹射出的最终方向主要由三个因素决定,一是枪射当前瞄准的方向,即玩家希望射击的位置;二是枪械后座力引起的枪口上抬和左右偏向,形成T字形的主弹道;三是枪管震动和环境因素对子弹弹道形成的轻微扰动,即子弹弹道的散发。

图CF手游枪械弹道模型

枪械后座力模型

枪械每次射出的子弹的反作用力都会导致枪口上抬和左右偏向,上抬和摇晃的幅度与枪械当前连发数成正比,枪口随着连发数的增加逐步上抬,到达最大上抬幅度后转为随机方向的左右摆动。

在枪械停止射击后,游戏模拟枪口位置在玩家控制下从上抬位置恢复到初始位置,恢复的过程使用弹簧模型,遵循胡克定律。

子弹弹道散发模型

现实中子弹射出的时候受各种环境因素影响,会出现小幅度的随机偏向,子弹的最终射出方向即是在后座力计算后的前向方向叠加上散发的偏差,弹道散发的幅度和方向符合高斯正态分布。因此CFM在实现枪械散发模型时也使用高斯随机数实现。

创新辅助瞄准机制

CFM在射击上创新性地设计了一套辅助瞄准机制,帮助玩家自动瞄准静止和低速运动的目标,降低新手玩家的操作门槛,提高新手玩家的乐趣。同时,辅助瞄准在面对快速移动和转向目标时将失去效用,以此保证高手玩家的技术优势,提高玩家对技术提升的追求。

来源: 《2018腾讯移动游戏技术评审标准与实践案例》 点击下载 【2】客户端性能篇.docx (1.11 MB, 下载次数: 41)

教育培训机构-如何策划节日招生?
做教育培训,最重要的事情莫过于招生了。面对不同的学员,招生方…于招生。目标不同,活动策划也会不一样。② 活动主题要鲜明不仅主题要鲜明,主题之间要有连续性。就像看连续剧一样,一集接一集,一环扣一环。策划好一系列活动,一个接一个来,从多个角度延续活动的宣传,突出主题,引起关注度。常用的招生方式有:体验课招…-------------想要获得更多运营技巧、doc文案,
教育培训:如何提高满班率和续班率
什么是满班率?就是实际人数除以计划招生人数,这个值就是满班率…员有流失是正常的,但要保证一个概率。在保障老学员续期的基础上,我们也要大胆创新,开设网络课程,拓宽招生区域。实地课程录制后,进一步发行到商弈云课上,通过商弈云课系统转成真实流量,网上有人点击观看,点赞,可以按点播量分佣金。助你在日常的营销推…-----------------------想要获得更多运
培训机构难盈利的问题出在哪里,如何实现盈利?
竞争白热化实地培训班、托管辅导班竞争白热化了,利润越来越稀薄…现没有多少盈利。还有一部分负责人在刚招生时,掌握了不少资金,开始盲目扩张,盲目做课程推广,以期待获得更多生源和收费,从而使培训班陷入了这种恶性循环的陷阱里。其实这些到手的钱,并不是你的利润,而是你未来要支出的钱。如遇到行业快速发展时期,或者…-----想要获得更多运营技巧、doc文件,请“关注”并“转
“差异化”经营是网络培训赚钱的关键所在
“差异化经营”这个词,相信大多数人都耳熟能详,但要做到的却是…。在现有的基础上更新升级或者资源整合就是对现有的产品或者技术,进行升级版本,或者通过一些资源整合,成一个项目。你的技能以前是用来生产或制造产品,现在是把技能升级成知识培训,转换云课堂。直白一点就是可以让老师自行录好课程并上传到学校的商弈云课…在着缺点和不足之处。在创新改革时,要从功能、服务、价格等方面
教育培训行业是如何运作的?
以前读书时,学校附近有个小摊卖鸡蛋灌饼。刚开始的时候只有一家….%,剩下的一对一和多人大班其实市场份额都很小。家长报培训班,是希望孩子能够学到知识。老师通过课上教学和课后辅导来满足孩子的需求,达到成绩提高的目标。我见过上百人的大培训班,为什么一个班这么多人?因为是名师讲课,但人太多坐后面,基本听不到重…是你的核心竞争力。想要得到用户的认同,你就必须做到产品质量好
旺道:实体店怎么做网络营销?
年纪大了,体力不好了,便赚不了什么钱了。所以,一定要在年轻的…写文案都是非常头痛的事情,那么下面我会给大家提供一个解决方案。在互联网营销系统里面有很多细节营销,软文营销就是其中一种,但好多小白头痛写文章,所以可以用这个方法也一样可以植入广告语,或者是图片广告,轮显切换广告,使用 旺道营销系统,也就是每…以帮你吸引海量精准粉丝。有了粉丝,你通过广告、产品、服务就可
旺道:圈里圈外,铁饭碗距离瓷饭碗究竟有多远?
中国人爱混圈子,从线下一直混到线上,各种奇形怪状的圈子勾勒出…不能推则敷衍了事,盼着混到主任科员退休;一种是老黄牛式,踏踏实实、兢兢业业工作,但拙于人际关系,活干得最多,但依旧不见晋升迹象;还有一种是提线木偶式,你扯一下线他动一下,好像脑子和身体是分离的。我突然一拍脑袋,这是提前衰老的迹象啊,工作内容…即使选择留在铁饭碗圈里,也应保有随时离开的思想警惕和进行必要
旺道:微信要双开了,朋友圈推广更好做了
现在手机只能登一个微信,如两个,三个微信的小伙伴们就只能退出…动推广工具、 设置头像点击头像图标,点“+”选择图片,可以上传你的企业,个人头像,产品服务等。旺道微信朋友圈广告免费朋友圈广告-旺道、 设置推广主题点“广告”,再点“+”设置推广的主题(类别),填好中文主题,以及你的网址。教你不花一分钱做朋…简直就是一劳永逸哟。如果你点开发布的文章看不到广告,那就是你
旺道:如何能让网站多个关键词排名百度首页?
最近接了一个单,做婴儿游泳馆加盟的。优化推广范围是全国,但是…泳馆加盟哪家好”、“婴儿游泳加盟多少钱”这类与我息息相关的词。如何能让网站多个关键词排名百度首页?但客户并不认同,客户说这个词指数低,或者说搜的人不多。是,这是一方面原因。但是,指数低有什么关系,你是卖产品还是卖指数。搜的人不多有什么关系,…实现广告效果最大化,来满足大众化的广告需求。对于这样的四两拔
旺道:如何成为网络营销达人?这个技能帮你节省80%的时间
在某次名师讲坛上,听到了一个让人警醒的故事。说有个村子缺水,…准的产品。现在已经不是新鲜事物,好多企业因为百度竞价的高额费用,头疼不已,所以做网站关键词优化排名,成为了企业必选的推广项目。做优化也要做到有成效,不然就是一分钱也是昂贵的。用 旺道智能机器人 就可以持续代替人工去做,它非常聪明,只要你够耐…手,设备先进,你多努力奔跑也于事无补。简单说,要去一个地方,

此文章来源来互联网,如果你有任何版权冲突,可以联络我们,微信号:WANCOME,QQ:1444641。加我们时,请说明来意,我们将优先处理你的问题。




商弈云推  | 圈推广  | 随手推  | 圈推广  | 跨圈推
粤ICP备10213132号
旺道商标注册证号:8608864
Copyright © 2016 环企网络信息科技有限公司 版权所有