逗游网:值得大家信赖的游戏下载站!
发布时间:2021-01-08 08:40 来源:小黑盒 作者:小ti妹
机制介绍
收起CSGO怎么打的更准是很多玩家关注的焦点,FPS游戏中射击延迟和判定是决定射击准度的关键,下面给大家分享FPS游戏系统延迟与判定机制详解
一,fps游戏中一次射击的判定。
FPS游戏由于各个射击角度和射击方位不同,击中敌方位置的不同,需要大量计算量,如果全部由服务器来计算的话,服务器压力太过于巨大。所以这部分工作基本是由客户端来完成的,再使用算法封包发回服务器,这时候服务器只需要判断发回的数据为是否击中,和击中血量,就可以反馈到另一个玩家身上。
也就是说,在fps游戏中击中一个人的过程分为:❶玩家操作→❷玩家电脑判断是否击中(以及击中部位)→❸玩家电脑发送击中信息给服务器→❹服务器扣血并发送扣血信息到敌人电脑。本文内容是关于❶→❷过程中的系统延迟问题。
二,系统延迟与网络延迟。
延迟的定义:延迟是一种时间指标,用于描述执行所需操作和取得预期结果之间的延时。在fps游戏中就是玩家操作鼠标键盘打中敌人到看到敌人扣血或者击杀信息中间的时间差。
提到延迟大部分人想到的是游戏中的pin值,也就是客服端(玩家电脑)到服务器的网络延迟,也就是在上述过程中的❷→❸和❸→❹过程。本文不作讨论。
准确的系统延迟是击中→判断是否击中所用的时间。但是玩家在屏幕看到敌人的时间点在本次讨论中非常重要。所以本文的讨论的过程是:❶玩家在自己电脑屏幕上看到敌人→❷玩家操作键盘鼠标击中敌人→❸玩家电脑判断是否击中的过程。
三,系统延迟的组成。
外设延迟: 输入设备处理机械输入并将这些输入事件发送到 PC 所需的时间。
游戏延迟:CPU 处理对游戏世界的输入或更改并提交新帧供 GPU 渲染所需的时间。和cpu性能相关,更强的cpu性能代表更短的游戏延迟。
渲染延迟:从待渲染的帧排队列齐到 GPU 完全渲染帧之间的时间。和显卡性能相关,更强的显卡性能代表更短的队列。
PC 延迟:帧在 PC 上传输所需的时间。这包括游戏延迟和渲染延迟。
显示延迟:GPU 完成帧渲染后,显示器呈现新图像所需的时间。和显示器性能有关,具体参考数值为灰阶响应(GTG)时间。
系统延迟:涵盖整个端到端测量的时间。也就是图中整个过程所需要的时间。
这个延迟决定了你在多长时间后看到了你对输入设备(鼠标键盘)的操作。绝大部分玩家在游戏中的系统延迟为50-100毫秒。大部分玩家的系统延迟是大于网络延迟的。
四,系统延迟与射击判定的关系。
了解这个问题需要我们更全面的来看fps游戏中一次击中的过程。
第一个部分是玩家从屏幕上发现敌人
第二部分使用鼠标瞄准敌人
第三部分开枪
第四看到击杀信息
至此我们就完成了一次fps游戏中的击杀。
让我们把时间暂停到第二部分的画面
我们把它放大
神奇的现象发生了,其实瞄准的地方并没有在敌人身体但是我们还是完成了这次击杀,相信这种情况各位盒友也都遇到过,包括与之相反的情况-确定自己已经瞄准但就是没有打中。这其中有子弹飞行速度的影响但是在这种近距离的射击中,系统延迟造成了更大的影响。
我们继续把时间暂定到这一帧画面
然后再次回到系统延迟构成图
当玩家在看到这一帧画面的时候,所看到的帧来自于显示器,也就是显示器目前所显示的帧,在这个时刻,游戏程序由cpu继续运行,也就是说反应这个敌人所在的真正位置的帧,和显示器目前所显示的帧,中间隔了渲染队列,渲染延迟,和显示延迟相加的时间。所以在这帧画面中
敌人在我们屏幕中的移动方向是向左,而我们所瞄准的位置虽然不是敌人的身体,却是敌人目前真正的位置,所以电脑把这次射击判定为命中。
注意这段内容中涉及到的两个位置:①玩家看到的敌人位置,②敌人目前的真正位置。这两个位置一般是有所重合但不完全重合的。而系统延迟的高低决定了这两个位置的重合度,系统延迟较低,这两个位置的重合度就更高,系统延迟越高,则这两个位置也就越远。
如果你的系统延迟为100毫秒,那你就是用0.1秒前的枪来打0.1秒后的敌人(好大的官威呦),即使你在屏幕上已经瞄准了,还是会因为这0.1秒敌人的移动发生没打中的情况。
所以有时候你明明瞄准了却没打中,现在知道为什么了吧。那种很离谱的人体描边,往往也是因为系统延迟高的原因。