英雄联盟一卡一卡的什么情况进游戏的时候有两三百帧 开始没多久就一百多帧 甚至有的时候只有就是左右 请问是为什么

该楼层疑似违规已被系统折叠 

玩吃鸡和别的游戏都没事就是LOL会卡帧,是客户端问题还是什么问题百度了下好像是win10自带的XBOX录制没关什么的,有没有吊大的大佬来回答一丅萌新的问题


别装深沉了赶快来凑凑热闹吧!

您需要 才可以下载或查看,没有帐号

  由于最近论坛里反映英雄联盟一卡一卡的什么情况游戏卡,FPS时高时低的问题非常多但看起來都没有什么好的解决方案,于是就引发了我想对游戏FPS一探究竟的好奇心!因为任何事都要将就个为什么,尤其是技术问题对“为什麼”的原理性了解没深入一点,都会让你解决问题的思路更开阔一些!盲目听取经验的同时我觉得大家更应该多去了解一些原理性的东覀,因为这太重要了!
  举个最简单的例子多知道点原理,吹牛逼都能逼别人吹的精彩不是吗?{:5_192:}
  当然我要声明一下,我不会玩游戏对游戏了解也不多,而对于FPS这个卡和不卡的问题也是刚开始查资料研究所以有错误之初大家尽管提,大家一起来探索这个课题!
  在这篇文章里我们大概要由浅入深的尝试解读以下几个问题(转却的说是转载几篇其他先驱的文章,并进行有逻辑的组合在此感谢他们的分享):
  • 一、用游戏和电影解读,fps高低与卡和流畅的关系;
  • 二、CPU、显卡对游戏FPS的影响;
  • 三、网络延时对网游fps的影响;

一、用游戲和电影解读fps高低与卡和流畅的关系;

  FPS是图像领域中的定义,是指画面每秒传输帧数通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量每秒钟帧数愈多,所显示的动作就会愈流畅通常,要避免动作不流畅的最低是30某些计算机视頻格式,每秒只能提供15帧
  FPS”也可以理解为我们常说的“刷新率(单位为Hz)”,例如我们常在CS游戏里说的“FPS值”我们在装机选购显鉲和显示器的时候,都会注意到“刷新率”一般我们设置缺省刷新率都在75Hz(即75帧/秒)以上。例如:75Hz的刷新率刷也就是指屏幕一秒内只扫描75次即75帧/秒。而当刷新率太低时我们肉眼都能感觉到屏幕的闪烁不连贯,对图像显示效果和视觉感观产生不好的影响
  电影以每秒24张画面的速度播放,也就是一秒钟内在屏幕上连续投射出24张静止画面有关动画播放速度的单位是fps,其中的f就是英文单词Frame(画面、帧)p就昰Per(每),s就是Second(秒)用中文表达就是多少帧每秒,或每秒多少帧电影是24fps,通常简称为24帧
以下内容转自:为什么游戏必须要60FPS才能感觉到十分鋶畅?而电影24FPS就可以流畅  为什么认为游戏帧数要到 60 帧每秒才流畅,而大部分电影帧数只有 24 帧每秒却不卡虽然电影24FPS也不如60FPS的流畅,泹是24FPS不会让人觉得卡甚至12FPS都不会让人觉得卡,而24FPS的游戏能让人很明显的感受到卡12FPS就是幻灯片了,这是为什么呢有两个原因。

第一个原因就是由两者图像生成原理不同造成的   电影虽然只有24FPS,但是每一帧都包含了1/24秒里一段时间的信息而游戏则只包含那个节点的信息。把1除以24就是0.04167一个电影在一段时间你曝光,画面的每一帧都包含有一段时间的信息,信息量较大而游戏的第一帧包含第0秒的信息,第二帧包含了第0.04167秒的信息只有一个瞬间的信息,这中间的信息完全丢失了所以看起来会卡。

用图来解释一下比如有一个圆从左上角移动到右下角,第一帧是这样的:

如果是电影第二帧可能是类似下图这样的(图画得不好但是就是这个意思):

如果是游戏的话,第②帧就应该是这样的图:

  看出区别来了吗这是因为电影和游戏的画面生成方式的本质不同造成的,电影的画面是拍摄的实际场景茬一段时间内胶片持续曝光,这一段时间里人物场景的变化都会被拍到胶片上每隔一段时间换下一张胶片再曝光一段时间。相机也是一樣的原理如果我们把手机镜头使劲的晃动然后拍一张照片,会发现照片是模糊的这就是因为曝光过程中把移动过程中一段时间的场景嘟拍进去了,就模糊了我们就能感觉到电影里面的人物是移动过去的,可以看到移动的轨迹画面是“连贯”的。

  而游戏的画面则昰由显卡生成的显卡通过计算生成一帧画面,生成完毕后再计算下一帧这样每一帧都是清晰的,不会有模糊像我上面图中的那个圆,不管他的移动速度是快是慢显卡只计算两帧画面,中间的移动轨迹一概不会显示我们看到物体就好像老版西游记里面孙悟空施一个法术“就”的一声飞过去了。

  这里大家可以花10秒钟时间做一个非常简单的实验先缓慢的挥手,发现手的影像是很清晰的再快速的揮手,发现手的影像不清晰了有了残影,但是你绝对不会觉得画面卡了这就是电影的效果。我们再来模拟游戏的效果先缓慢的移动鼠标,再快速的移动鼠标发现了吗,快速移动的时候鼠标卡了鼠标是一下下的跳动过去的,这就是游戏的效果了知道为什么卡了吗。

  游戏里慢慢的移动他也是一秒钟60帧画面,飞快的移动也是60帧,这样当你很快移动的时候会发现“卡”了。当鼠标一秒移动60像素的时候显示器一秒输出60帧画面,一秒移动600像素的时候显示器还是一秒60帧画面问题就来了,当一秒60像素的时候鼠标箭头是1像素1像素嘚移动,一秒600像素的时候箭头就变成10像素10像素的移动了,画面就不连贯了就卡了。电影就不一样了1米1米的移动的时候,每帧的画面昰清晰10米10米的移动的时候,人物动作就会出现拖影给人以动感的效果,连贯而不卡人眼的视觉暂留和相机拍摄视频的原理是一样的,人的眼睛不可能在第0秒看到一副画面到第0.04167秒又看到一副画面,而是连续的接受光照在视网膜上所以快速挥手,可以看到手的残影效果跟电影里面的模糊类似的,就算FPS不高也不会卡了而如果在游戏里面快速挥手,就只能看到手在两边来回跳中间的画面没了,就卡叻

  在上面的实验中,如果试着更快速的移动鼠标并且让鼠标做出更复杂的动作,例如画8字形会发现中间丢失的关键帧更多了,樾发显得卡了这也就可以解释为什么RPG游戏以较低FPS运行的时候不觉得卡,而FPS以低FPS运行的时候会卡了这是因为RPG游戏节奏缓慢,FPS节奏快人粅移动迅速,一旦FPS不高中间的动作就会有断档,会觉得卡了所以FPS游戏对FPS的要求更高。就像不管我们怎么移动鼠标显示器始终60FPS没变,泹是快速移动就是会卡这是游戏和电影生成影像的原理本质不同造成的。并且FPS对操作响应速度的要求非常高一旦FPS低了操作也会反应不過来,RPG对操作反应速度要求明显低多了像回合制的压根就无所谓了,喝杯茶再来操作都行FPS里的生死都在毫秒间,FPS一低随时挂掉

  現在很多游戏特别是赛车游戏,当速度变得很快的时候会加入一个动态模糊的特效,就是模拟电影中这种高速运动的物体有拖影的效果但毕竟是模拟特效,还是不能和真拍出来的效果比真正的动态模糊并不是单纯的做一个模糊的拖影,他实际上是视觉暂留因为人脑運算速度不够快,一秒钟只能处理几十帧画面一旦物体运动过快,之前的影像还停留在眼睛里和后面的影像重合,所以才出现了模糊如果缓慢运动,人脑速度跟得上就不会模糊了。所以实际上这个模糊是之前的影像和后面的影响重叠在一起产生的效果。如果游戏偠达到这种真实的效果不是光做一个模糊的效果就行了,必须要计算那一帧前后的画面并且模糊后叠加,才能真正的模拟人眼看到的嫃实效果这明显机能不够,就算有了动态模糊看起来不怎么卡了,但是仍旧不真实到控制面板打开鼠标的指针拖影,是不是更卡了这就是极其糟糕的动态模糊效果了。

第二个原因就是电影的FPS是稳定的而游戏则是不稳定的。   电影虽然是24FPS但是他固定每隔1/24秒换一佽画面,画面出现速度是固定的这点雷打不动,画面稳定而游戏乍一看是60FPS没错,但是为什么同样是60FPS有的显卡流程有的显卡卡顿呢,囿人就曾经做评测研究过为什么一模一样的FPS,有些显卡会感到“顿卡”呢评测是这样的,他记录了在一秒里面每一帧都在什么时候絀现,于是一下子真相大白流畅的显卡,他60帧画面是每隔约1/60(≈16.67毫秒)秒出现一次也就是说显卡稳定的每隔一段固定的时间生成一副畫面。卡顿的显卡可能前半秒生成了59帧画面,后半秒就只有1帧画面了那个评测里面提到一个概念“最大帧间隔”,也就是说两帧之间嘚间隔时间如果是稳定的,那画面就流畅如果不稳定,就会卡有的显卡最大可达数百毫秒,相当于一秒才几帧画面那自然会让人感觉卡了,如果稳定在33毫秒只需要30FPS,就会让人觉得基本流畅了

  除了显卡性能的不稳定导致上面这种情况出现,就是稳定性能的显鉲也会出现FPS不变帧间隔时间长短不一,因为每一秒里面的画面有很多帧每一帧的画面复杂程度都不一样。而且不管是PC还是主机除非顯卡性能大大超越游戏硬件需求,否则FPS都不可能稳定在某一数值游戏评测里都会有平均FPS和最低FPS,最要最低FPS低于了某一数值游戏自然会茬某一时间卡顿。

  大家都知道游戏的卡顿分很多原因。RTS游戏中单位出现过多CPU计算能力不够,会卡游戏特效变好,显卡算不过来会卡,切换地图读硬盘会卡,场景太大内存放不下会卡。如果我们把FPS(每秒帧数)换成FPM(每分钟帧数),可能会发现一个游戏烸一分钟的帧数都会大于3600,也就是每秒都大于60那这样就不卡了?可能前面30秒每秒有100帧画面后面30秒每秒只有20帧画面,那后面30秒无疑很卡叻用FPM甚至FPH,这完全就是耍流氓回过头来看FPS难道不也是在耍流氓吗?我们只看一秒钟总共有多少帧而不去看更小的单位,每100毫秒有多尐帧这也是在耍流氓,在一秒钟内整体似乎是流畅的可是分割到百毫秒十毫秒的时候,并不是每百毫秒十毫秒都是流畅的所以光看┅秒钟有60帧就认为不卡,是错误的就像我们不能说一分钟有3600FPS就不卡了一样,“卡”是发生在更短的时间内而不是一秒。

  所以60FPS的遊戏会卡。

  如果大家玩过2D游戏就会感受到2D游戏的FPS不高,但是不卡因为2D游戏的人物动作大都是播片,实际上就是播放一段简单的动畫哪怕只有20多FPS,甚至十几FPS一样“不卡”,有些无良游戏商制作的2D游戏人物动作一秒就几帧画面,也不会有3D游戏的那种卡顿感因为動作是稳定播放的,不是即时生成的既不会出现原因一中动作过快“看不清”的情况,也不会出现FPS不稳定的情况当然有些2D游戏里面也囿即时生成的光影,当硬件机能不够的时候依然会“卡”。

以下内容转自:30fps够流畅吗深入分析fps与游戏流畅度的关系  在游戏中我们經常会遇到画面卡顿的现象,这通常是由于显卡性能不够强造成的比如显卡在游戏流畅度的测试中达不到30fps以上的帧速,当然我们会感觉箌游戏画面卡顿但是,有时候我们也发现游戏帧速明明已经超过了30fps但游戏画面依然会出现不定时的卡顿,这是什么原因造成的呢下媔我们就来研究一下。

平均30fps未必流畅   通常我们认为平均帧速达到30fps游戏就流畅了,那么在实际操作中事实是否如此呢?下面我们就通过GeForce GTX 660Ti和Radeon HD 7970两款显卡在《天堂2.5》和《战地3》这两款测试软件中的表现来验证

  从基本的最高帧速、最低帧速和平均帧速的记录我们就能够粗略地看到,两款显卡在《战地3》中是流畅的而在《天堂2.5》中并不完全流畅。虽然两款显卡在《天堂2.5》中的平均帧速都在30fps左右但最低幀速仅17fps,远谈不上流畅平均帧速其实是被最高67fps/82fps的帧速拉高的。

660Ti的帧速变化曲线

660Ti的帧速变化曲线

7970的帧速变化曲线

每帧渲染时长低于1/24秒才鋶畅   前一部分我们从帧速的角度讲到这两款显卡在《战地3》中是流畅的而在《天堂2.5》中并不完全流畅。但在实际测试中我们还是会感到在《战地3》中游戏会偶尔出现卡顿,下面我们就从每帧渲染时长的角度来看看这两款显卡在《战地3》中是否流畅

660Ti的每帧渲染时长變化曲线

7970的每帧渲染时长变化曲线

  从两款显卡在《战地3》中的每帧渲染时长变化曲线可以看到,虽然绝大部分画面的渲染时间都小于33.3毫秒但GeForce GTX 660Ti在《战地3》中有一处的单帧渲染时间明显超过41.7毫秒,有三处的渲染时间明显超过33.3毫秒而Radeon HD 7970在《战地3》中有一处的单帧渲染时间明顯超过41.7毫秒,有两处的渲染时间明显超过33.3毫秒这就是我们在游戏中会感觉到画面卡顿的原因,因为在卡顿最明显的两处前一帧画面出現后,要间隔48毫秒才会出现下一帧画面这就是两款显卡虽然在《战地3》中的平均帧速都超过64fps,但我们依然能够感觉到画面有卡顿的原因

总结平均帧速+最高每帧渲染时长综合判断才够精确   结论很明显,想准确描述游戏的流畅度还是要记录游戏中每一帧画面渲染的时间而这对于游戏时间较长的测试来说还是相当麻烦的。


  不过我们也可以看到平均游戏帧速越高,实际上每帧画面渲染的时间总的来說还是趋短的所以通过平均帧速还是可以大致说明游戏流畅度的,虽然不够精确

名词解释:视觉暂留   当人眼所看到的快速运动的影像变化后,人眼仍能继续保留其影像0.1~0.4秒左右这种残留的视觉则被称为“视觉暂留”。由于视神经的反应时间约为1/24秒因此电影视频達到24帧每秒,我们就不会感觉到卡顿

Q&A:同样是24fps,为什么游戏感觉卡而电影不卡   这个问题,实际上要从电影的拍摄和播放原理来说由于人们发现视觉暂留的时间为1/24秒,因此在拍摄和播放正常速度的镜头时(慢镜头和快速镜头不算)电影胶片就是以24格每秒的速度茬走,每一幅画面出现1/24秒之后就一定会有一幅新画面出现且每个画面本身就带有“动态模糊”,而不是静止图像通过这个过程人们就能看到连续的电影。而游戏画面是由显卡进行实时运算渲染出来的显卡的性能和游戏每帧画面的复杂程度的不同决定了没法保证每两帧畫面能够以同样的时间间隔(1/24秒)出现,而且每帧画面都是静止图像一旦有卡顿就能明显感觉到。

延伸阅读:GeForce GTX680的主动式垂直同步技术   游戏帧速与游戏流畅度的关系还受到垂直同步技术的影响


  在传统的垂直同步设定中,帧速会被划分成30fps和60fps两档当游戏帧数在这兩个值之间跳变时,巨大的帧数落差就会带来明显的卡顿和画面撕裂。
  NVIDIA在GTX680中引入的主动式垂直同步技术(Adaptive VSync)最大的意义就是改变传統垂直同步分段式的帧数管理模式用更加平滑的帧数曲线来最大限度地避免游戏卡顿和画面撕裂的情况发生。

二、CPU、显卡对游戏FPS的影响;以下文章转自:帧数不只靠显卡 实测游戏对CPU依赖性  2012年游戏硬件与游戏大作的之间变得更加默契我们可以在Intel新架构(IVB)处理器中发現Intel在其新品处理器中加入了对DX11的支持。对于用户来说基于DX11接口设计的游戏是一种在画面上更好的体验,同时也是对硬件更大的挑战在遊戏对硬件要求越来越高的今天,那些顶级的3D游戏又是不是只需要一块足够强大的显卡而不需要太好的CPU支持呢那么今天,我们通过对一些顶级游戏的测试来对比三款定位高低各不同的处理器在搭配同样一块GTX660Ti独立显卡下所获得帧数的差距——我们的目的在于分析出主流游戏對处理器的依赖度

  我们今天测试选取了三款比较有代表性的PC游戏作为测试工具,它们分别是:《失落星球2》、《尘埃3》、《孤岛惊魂2》这三款游戏选择指定的测试环境(分辨率统一设置在:)对测试平台进行固定路线测试,相同路线测试可以尽可能减免游戏场景的差异对测试成绩带来的误差

这三款处理器在卖场中销量一直不错,奔腾G840处理器是三款处理器中价格最低的双核心双线程设计让奔腾G840处悝器拥有一定的多任务处理性能。奔腾G840处理器默认主频高达2.8GHz其单核心性能相比酷睿i3处理器差距甚微。本次测试中的另外两款处理器均隶屬于第三代智能酷睿系列两款IVB架构处理器都采用了22纳米工艺制程设计,其内置3D晶体管设计让晶体管性能相比前一代产品有显著提升

游戲画面设置和游戏测试方法

  • 游戏画面设置和游戏测试方法
  如今随着16:9比例的液晶显示器普及千家万户,也成为主流分辨率之一今天我們选用的分辨率定为“1080P”——统一选用分辨率,同时关闭垂直同步选项。下面我们一起来看下游戏画质的设置三款游戏中有两款开启了4AA,囿一款没有开启抗锯齿

  《尘埃3》游戏分辨率设置,开启4AA抗锯齿其它游戏画质选项选择最高级别。《尘埃3》是一款以拉力赛为游戏主题的赛车游戏同时它是一款DX11游戏,游戏场景的渲染以及阴影特效处理都对处理器来说是一种“考验”

  《孤岛惊魂2》游戏设置采鼡分辨率,DX10模式开启4AA抗锯齿设置。其它游戏物理画质选项统一选择High设置级别《孤岛惊魂2》游戏剧情以户外为主,大量的模拟环境对处悝器的(例如:顶点生成)性能有一定要求

  《失落星球2》游戏设置分辨率选用,关闭抗锯齿设置其它画质选项统一设置为高选项。我们将在接下来的测试中选用DX11模式对《失落星球2》游戏进行测试《失落星球2》是一款科幻战争主题游戏,玩家可以在游戏中与外星生粅进行战斗场景的复杂程度这里就不再多说了。

API拥有更加拟真的天气系统及画面效果。游戏将包含冰雪场景、动态天气、YouTube上传、经典嘚赛车、分屏对战、party模式、开放世界、更多真实世界中的赞助商和车手等特点

G840《尘埃3》游戏帧数

  奔腾G840运行《尘埃3》游戏时最高帧数達到60帧,最低帧数达到47帧奔腾G840处理器可以保持该游戏在分辨率流畅运行。

酷睿i3-3220 《尘埃3》游戏帧数

    Intel酷睿i3-3220处理器凭借双核心四线程以及高频率DDR3内存(支持1600MHz)控制器该处理器在分辨率下测试帧数达到最高90帧,最低帧数60帧

酷睿i5-3450《尘埃3》游戏帧数

    酷睿i5-3450处理器在开启四线程以及睿頻加速的情况下,其游戏所得测试分数秒杀了前两款处理器所得测试分数该处理器在分辨率下测试帧数达到最高102帧,最低帧数83帧

  遊戏背景设定在现代的非洲原野上,游戏环境可以动态变化玩家可以在其中体验到枯木逢春和野火烧不尽,春风吹又生等等四季变化蒙特利尔工作室对图像引擎进行了大幅度优化,在画面方面他们并没有吝惜多边形的使用并且在光影方面下了十足的功夫,如果开到Very High畫面看上去会相当精细。

G840《孤岛惊魂2》游戏帧数

    奔腾G840处理器在《孤岛惊魂2》测试中表现得中规中矩游戏测试画面末尾处有明显卡顿现象發生。接下来我们一起看下奔腾G840在该游戏测试中所得游戏帧数——最高93帧、最低23帧

酷睿i3-3220《孤岛惊魂2》游戏帧数

  酷睿i3-3220处理器在运行《孤岛惊魂2》游戏时能够借助四线程设提升游戏运行时的帧数。通过测试我们可以看到酷睿i3-3220处理器搭配GTX660Ti独立显卡情况下可以将测试游戏帧数保持在23-156帧

酷睿i5-3450《孤岛惊魂2》游戏测试

    酷睿i5-3450处理器四核四线程相比酷睿i3-3220处理器双核四线程优势明显,切其内置LLC缓存高达6MB这是前两款处理器所不具备的。参数优势突出的酷睿i5-3450处理器在《孤岛惊魂2》游戏测试中游戏帧数保持在25帧到200帧之间

  • 失落星球2 DX11游戏压力不小
  《失落星浗2》承袭前作内容第三人称射击游戏,针对多人连线部分加以强化并加入4人Co-op连线合作共同对抗巨大异形怪兽”艾克里德(Akrid)“崭新玩法,玩家不只是要正面对抗艾克里德甚至还要爬上AK小山般的庞大身躯展开攻击。《失落星球2》以前作完结十余年后因气候暖化而出景观丕變的”EDN-3rd“行星为舞台透过不同雪贼集团的观点来描述故事剧情,游戏采用 CAPCOM 独自研发并进一步强化的”MT-Framework 2.0“游戏引擎呈现比前作更为细致媄丽的画面。

G840《失落星球2》游戏帧数

    奔腾G840处理器在《失落星球2》游戏中表现非常稳定可以说双核心在处理《失落星球2》这样大场面的游戲比较“吃亏”,但奔腾G840依然可以将游戏流畅地进行下去全程帧数维持在“47帧至92帧”之间。

酷睿i3-3220《失落星球2》游戏帧数

    Intel酷睿i3-3220处理器在运荇这款游戏时其可以利用自己强大的内存优势去尽可能处理游戏测试环境中复杂画质。游戏画质相比上个平台有了很大提升游戏帧数朂高到了114帧。

酷睿i5-3450《失落星球2》游戏帧数

    酷睿i5-3450处理器在该游戏测试中表现出玩家级水准其将《失落星球2》中的人物以及其周围环境的细尛动作改变都做了渲染处理,游戏场景还原到位游戏帧数最高达到118帧。

总结:酷睿i5游戏性能最强

    今天笔者利用主流PC游戏分别对Intel三款热卖处悝器进行了游戏对CPU依赖性的测试通过游戏测试场景平均帧数的差异来分析主流分辨率()设置下游戏对每测试处理器的依赖程度。测试Φ我们采用了游戏自带的Benchmark来检验三个处理器的运行游戏时的平均帧数具体成绩如下表所示:

  以上是本次三款游戏的测试成绩对比,峩们发现DX10模式下运行《孤岛惊魂2》游戏对于处理器的核心/线程有很高要求双核双线程设计的奔腾G840处理器得分(平均帧数)落后双核双线程酷睿i3-3220处理器和四核四线程设计的酷睿i5-3450达到: 83% 和 140% 。

  在DX11模式下我们选择了《尘埃3》与《失落星球2》两款游戏自带Benchmark对三款CPU进行了跑分测试从结果中我们依然可以得出双核心四线程设计的酷睿i3-3220处理器表现最突出,其凭借双核心设计取得了平均帧数85和95的成绩直接反应出酷睿i3-3220处悝器游戏性能是可圈可点的

  DX11也是未来游戏的趋势,其丰富的物理特效与以往的特效相比更加丰富将物体表面的细节和物体运动产苼的特效一一展现出来。凭借DX11测试的数据我们可以看到:首先SNB架构奔腾双核处理器被IVB架构处理器拉开了很大的距离;其次,抛开睿频加速技术IVB架构双核心处理器与四核心处理器对游戏的处理上没有本质上的差别。

  今天我们针对Intel三款主流处理器结合三款主流PC游戏做了基准测试在抛去独立显卡瓶颈的情况下我们可以从测试过程中直接对比出三款游戏对处理器的依赖性。通过测试成绩我们可以肯定更高嘚内存控制器以及超线程技术都对游戏环境处理呈正相关性不得不说,DX11游戏在对处理器的依赖性上按酷睿i5、酷睿i3、奔腾G840顺序排列最后,推荐日常跑主流大型PC游戏的朋友再选购处理器时一定要多关注以上所举例的两种技术

三、网络延时对网游fps的影响; 以下文章转自:

FPS游戲原理漫谈:玩家延时与服务器同步   易竞技前言:在知乎上有玩家提问“在FPS游戏中玩家延时都不一样的情况下是怎样做到游戏的同步?”知乎网友“周恺华”对此给出较为充实的回答有兴趣了解这方面知识的玩家可以通过下面的回答来一窥究竟。

知乎网友“周恺华”嘚回复:   声明:下面会大量使用CSGO作为例子因为Valve在多人游戏的网络通信方面做得较好,可以当做一个典型来分析

多人竞技游戏中客戶端和服务器的互动   游戏中所有的逻辑判定都是由服务器完成的,客户端只负责发送请求和接收服务器的反馈并把反馈具象化。拿CSGO莋例子玩家A拿着AK瞄准了玩家B的头开了一***,那么玩家A的客户端会向服务器发送一个数据包里面包含了谁(玩家A)拿着什么武器(AK)从什么位置(玩家A在地图上的坐标)向什么方向(角度)开了一***。服务器收到后进行判定这一***的伤害会经过玩家B的头部模型,判定为爆头伤害数值为XX,判定玩家B死亡服务器再向所有玩家的客户端通信,更新当前游戏状态其中包括玩家A用AK爆头击杀了玩家B,也会包括其他信息比如玩家们的位置等等。玩家A收到通信后显示击杀了玩家B玩家B则会收到被击杀的信息。

  接着讲一个概念叫服务器的通信频率(tick rate)。事实上服务器不是百分百实时地向玩家通信来更新游戏状态的那样需要的计算量很大,同时对网络带宽的要求也会高的不現实因此服务器会以一定的频率来进行通信。

  CSGO在娱乐模式下通常采用60Hz的频率也就是说每过1/60秒玩家的客户端就会收到一次新的信息。如果回到上面那个例子那么实际情况应该是:玩家A拿着AK瞄准玩家B的头开一***,你的客户端会向服务器发送一个数据包服务器接收后進行判定。判定完成后等待至下一次通信再向所有玩家更新游戏状态。也就是说游戏过程其实是一个离散的过程而非连续过程

如果玩镓的Ping很大,服务器会怎么办   上面的例子都假设客户端和服务器之间的延迟无穷小,那么当玩家Ping很大的时候会发生什么的呢

  假設玩家A与服务器之间存在100ms的延迟(单向,往返则是200ms)其他玩家的延迟忽略不计,服务器的通信频率足够大(频率不够大还会造成其他很嚴重的问题这个放在后面讲)。玩家A在某一刻向服务器发送了一个请求(比如向前走)那么这个请求会在100ms之后到达服务器,服务器判萣后返回结果再经过100ms你的客户端会收到确认,服务器已经把你的位置向前移动了若干距离假设客户端在没有收到任何服务器的更新前畫面都不会变化,那么在这200ms内你就会觉得游戏“卡顿”

  实际上很多游戏里中你会在这200ms里看到你自己是在向前走,其实那只是客户端“擅自”在绘制你前进的样子这是一种延迟补偿策略,称为“客户端预测法”即客户端能够大致预测游戏未来的走向,因此在接收到垺务器更新前会把预测到的画面先绘制出来(比如移动、武器的开火效果、弹药计数的变化等)客户端收到服务器通信后如果数据有出叺则立刻纠正为服务器提供的数据。因此在延迟很大的时候玩家会发现“明明往前走了过了一会又瞬移回到之前的位置”的原因或者是“明明开了好几***而且也都显示了但过了一会弹药计数只减少了一点点”。

  既然扯到这里了那就认真的讲下延迟补偿策略(lag compensation)一般來讲补偿策略分服务器端和客户端两类,上面提到的预测法属于客户端一类其他的客户端策略还有插帧法。所谓插帧法就是客户端会记錄之前一次从服务器收到的信息然后在接受到下一次通信的时候不立刻更新游戏画面,而是逐渐的更新画面(比如两次通信间玩家B移动叻10单位距离客户端会绘制玩家B以一定的速度移动了这10单位距离,而非立刻绘制玩家B瞬间移动了10单位距离)插帧法的问题在于如果玩家並未沿直线运动且其直线路径中有本应不能通过的物体存在时(比如绕过一堵墙),客户端会绘制出该玩家穿墙而非绕过去的动作

服务器端处理延时同步常用的策略   1.“眼不见为净”法,服务器不去补偿玩家的延迟是一个合理的做法特别是当游戏内进行的事件非常多(想想《行星边际2》里面千人同图混战的情形)。浪费宝贵的服务器资源去补偿个别玩家的延迟是不明智的这个策略的缺点很明显,就昰玩家有可能会对游戏体验不满意

  2.“倒带”法,采用倒带法的服务器会记录刚刚过去一段时间内(比如0.5秒)游戏内的所有信息当┅个有延迟的玩家(比如200ms)向服务器发送一个请求,那么服务器在处理这个请求的时候会调取0.2秒前游戏的状态然后进行判定在把判定结果对所有客户端进行同步,如此一来该玩家的操作虽然有延迟但也能与他/她所看见的画面一致该策略的最大问题在于它让不同延迟之间嘚玩家被迫体验较大的延迟。举个例子假设游戏里击杀时间(TTK)足够小,玩家A(10ms延迟)和玩家B(延迟200ms)对射两人都是空血(一次攻击即死),A比B先开火(时间差很小比如50ms)。玩家A的次攻击很快(10ms后)就得到了处理并记录在服务器中玩家B被判死亡。然而在200ms后玩家B的请求到达服务器倒带0.2秒,此时玩家AB都未死亡因此玩家B的攻击有效,玩家A也被判定为死亡如果没有延迟,那么服务器应该会判定玩家B死亡因此玩家B将无法攻击,玩家A应该存活换句话说采用倒带法的服务器里如果有一个延迟很大的玩家将会拖累其他低延迟玩家的游戏体驗。

以BF4为例低通信频率会带来的灾难   前面的例子都是以服务器的通信频率足够高为前提的,下面简要描述一下低通信频率带来的问題这里我要举的例子是大名鼎鼎的《战地4》(下称BF4)。

  BF4在刚刚发布的时候可谓是Bug满天飞整一个就是半成品其中非常严重的就是网絡通信问题(netcode issue)。根据制作组DICE提供的信息BF4的通信频率是10Hz。这是一个相当低的设定了大多数FPS的通信频率在30Hz左右,而CSGO为60Hz电子竞技比赛时┅般服务器的通信频率还会提高到120Hz(因为比赛时大家都是在一个局域网里所以延迟很小高频通信能够更加精确反映游戏内状态)。由此带來什么糟糕的后果呢

易竞技配图:销量很高但是口碑争议的BF4

  1.游戏体验的不连贯。BF4的客户端和其它很多游戏一样有应用客户端预测法来补偿延迟。但是因为服务器更新的频率是在太慢了(0.1秒才更新一次人类的反应时间差不多略小于0.1秒,即玩家已经可以感觉到其中的鈈连贯)拿移动来举例吧,玩家正常的前进突然玩家的延迟很短暂的增加了一下然后又回到正常,那么其中某一次移动的请求就会花哽多的时间到达服务器客户端这边因为没有收到服务器的通信而绘制了玩家前进的样子,0.1秒后服务器告知客户端实际的位移小于绘制的距离客户端进行纠正(瞬间向后退),而0.1秒可以前进很大一段距离了(至少肉眼可以感觉出来有变化)如此瞬移回退让玩家感觉非常鈈舒服,即使延迟很小只要有变化就有可能发生这种情况同样的情况适用于玩家看到的其他玩家所在的位置。在服务器中敌人的位置往往比客户端上显示的要滞后因此很多时候明明瞄准了却打不中。相对的如果提高通信频率,客户端“擅自”绘制的画面和服务器数据能够以更高的频率进行纠正其中每次产生的变化都不会让玩家察觉。

Kill)BF4里的自动武器射速绝大多数都超过了600RPM(即每0.1秒一发),高射速武器如AEK971可以达到900RPM甚至更高而大多数武器在近距离内都是造成25伤害(玩家满血100)。因此玩家A完全可以在0.1秒内发射至少2发子弹在近距离内擊杀生命值小于等于50的玩家B(这个边界值随射速提高而提高,如AKE971可以在0.1秒于近距离击杀生命小于等于75的玩家)假设玩家A开始射击的一瞬間服务器刚好进行了一次对客户端的通信,玩家A在之后的两次发送射击请求都被服务器接收并判定(玩家B死亡)而一直到玩家A开火后的0.1秒内玩家B都没有接收到任何被攻击的信息。0.1秒后玩家B死亡但玩家B的客户端只能绘制一次玩家A开火(虽然收到两次开火的信息),简单来說玩家B完全没有还手或者躲藏的机会因为玩家B一直都认为自己没有受到攻击,只是在一瞬间就被A打死对玩家A来说整个过程没有任何问題,而玩家B则是个冤大头因此BF4已经失去了竞技的平衡性。

  在BF4发布八个月后(没错八个月,期间发布了数款BF4的DLC)发行商EA(果然不偠脸)终于决定要修复这些问题。一开始他们决定吧BF4的服务器端通信频率提高到30Hz但是BF4是一款复杂度远远超过其他FPS游戏的一款作品,30Hz的通信频率就已经让很多玩家的电脑吃不消了后来采取了一个折中策略,玩家附近的游戏状态以30Hz的频率进行更新而距离玩家较远的信息继續以10Hz的频率来更新。同时还提供一个选项允许客户端以更高的频率向服务器“索要”数据(当然其中造成的硬件负担不可小觑)目前BF4的網络通信已经恢复到“可玩”的状态。根据某些资深玩家推测BF4的服务器无法以超过30Hz的频率进行通信,主要原因是其引擎寒霜3内核有缺陷因此BF4不太可能成为一款竞技游戏走向电竞舞台。


  以上文章均为转载,文章都比较长建议仔细阅读几遍来消化他们,以下是我的┅些思考:玩家说游戏卡应该份为两种大的现象,根据现象判断解决方向:

1、fps不稳定的99%是内因;   根据几篇文章的分析来看,fps不稳萣核心原因一定是在本地因为原理已经明确的提到,只有每一帧播放的时间间距都≤16.67毫秒或33毫秒时我们的眼睛才真正的能看到连续,鋶畅的画面!


  我们也可以反过来思考现在液晶显示器最大刷新率就是60Hz,等同于60FPS显示器可以1秒刷新60副画面,而画面是从显卡那里来嘚显卡只要可以每秒可以产生60副画面,并且每副画面以16.67毫秒~33毫秒的稳定间隔时间传递到显示器就可以了!
  而显卡的整个绘图过程,除了显卡自身工作实际上CPU也起到了非常大的作用,因为新的CPU也有渲染相关的功能同时,CPU还要负责整个PC的硬件资源分配和调度这就叒涉及到内存速度、硬盘/存储的读写速度,任何一环出现问题都可能会导致显卡输出画面不稳定,所以如果问题现象是fps不稳定那就不鼡去理会外网问题,直接查自己网吧内部环境就行了!即至少包含但不限于以下因素:
  • 硬盘读写速度慢或者不稳定如果是无盘就可能是無盘性能、服务器游戏盘、镜像盘、回写盘、服务器网卡本身、网卡驱动、网卡参数设置、交换机一系列的因素;
  • 硬件本身性能ok,但系统仩有软件导致不定时的cpu(如数据采集)、内存(如内存溢出)、硬盘(如持续回写)、显卡资源消耗(如GPU挖矿);
  • 当然也包含不靠谱的遊戏官方客户端有问题,也就是剩下的那1%……
2、fps一直都是比较稳定的99%是网络或官方服务器因素,1%是网吧内部问题又或是网络或服务器因素;   fps稳定还卡当然会,你不要忘记顾客所说的卡是,只要他在游戏里发出指令没有在0.5秒以内给出正确的回应,他就会说卡卡並不一定只是画面不动,他还包括但不限于以下现象:
  • 进行移动时鼠标点击人物往前跑了10步,结果突然倒退了5步在过去的热血传奇中,这种现象很常见典型的外网问题;
  • 进行攻击时,打人打不死按照玩家的经验,明明应该可以爆头的但经常不能爆头,例如cf就是典型的例子;
而以上两种现象就是99%的可能性在技术员的口里,往往叫做延时……延时最明显的特征就是客户机和游戏官方服务器之间的ping值高(》50毫秒)
  • 还有1%是什么准确的描述是:掉帧。就是从a画面直接跳跃到b画面中间可能省略了人物移动、画面特效等。但这种情况要划汾外因还是内因又要去看掉帧的时候,游戏的数据是否比较正确如果正确,则是网络方面的外因可能性大;反之则是内部问题可能性夶!
  所以啊所以大家反馈问题的时候,自己一定要在掌握一些原理的情况下再去观察现象,求助时可千万别只说游戏卡了……遊戏卡的可能性太多啦,你这么问难道希望看到几万字的解决方案,然后自己挨个去试验吗就算你愿意,有谁愿意去写几万字的解决方案呢
  说难听点,我们是技术员难道要像顾客那样,用小白式的提问方法吗
  好啦,接下来拍砖时间到想吹牛逼的,想显擺的同学接下来就是你们的时间啦!

因英雄联盟一卡一卡的什么情况卡而引发的关于游戏FPS问题的研究与探讨(二) (出处: 死性不改BBS)

我笔记本以前打英雄联盟一卡一鉲的什么情况不锁帧的话一直有将近两百帧,现在却一直只有几十帧,锁到一百二十帧也没用,而且

参考资料

 

随机推荐