大家用电脑玩英雄联盟的时候,经常会遇到游戏卡顿,fps低的问题,那么是什么原因,怎解决呢?接下来就跟非凡小编一起来看看吧,有需要的小伙伴不要错过!
英雄联盟fps低怎么办
其实原因无非就两个,要么硬件实力太差,要么就是网络问题。FPS就是每秒显示的帧数,显示器刷新率一般是60HZ,所以帧数在60以下就不太流畅了。
首先是LOL官方给出的配置
LOL经过几年的更新,特别是更新了新版客户端之后,配置要求提升了不少。
上图可以看到打开LOL客户端内存已经占了3.3G左右,这还是没有开TGP玩的,如果开了TGP那么占用更大,进了游戏加上内存占用更大。
当然也可以勾选客户端的游戏时关闭客户端,这样可以流畅一点。
但是勾选了这游戏时关闭客户端,游戏结束时就要等一会才会加载出来,急性子可忍不了啊,所以,最好的办法就是在你CPU够用的情况下,加一条2G或者4G的内存,现在内存正好也便宜,DDR3-1600也就100上下。当然在选择的时候要注意你的内存是DDR2还是DDR3又或者是DDR4,查看自己的配置可以用CPU-Z查看。
当然也有偏方可以提高游戏帧率
那就是删除英雄联盟安装目录下的CROSS文件夹,但是有时会出错,小编是不建议这么做的。
LOL对网络要求高,虽然不需要多大的网络带宽,但是网络延迟要很好才行。
国服都是免费的。用之后,网络延迟会有明显的改善。
还有就是如果你感觉从游戏切换到桌面慢的话,可以进游戏设置视频,把全屏换成无边框,会快很多。
1.如果内存少于或等于4G,可以勾选lol客户端的低配机适应和游戏时关闭客户端。(打开低配机适应会影响游戏画质,选择关闭客户端游戏结束时客户端载入缓慢)。
2内存少于4G可以加2G到4G,笔记本电脑需要主板支持拆装内存,至于台式机加内存就很简单了,打开机箱盖,按下内存插槽两边的小按钮,注意内存凹槽方向,用力插入即可,注意,插槽两边的小按钮插入内存之后会自动弹起)
3。网络不好就使用加速器,加速器需要在进入游戏前开启,否则没有效果。
英雄联盟fps低怎么办的内容就到这里了,想要了解更多热门资讯,就来关注非凡软件站,超多新鲜资讯推送!
别装深沉了,赶快来凑凑热闹吧!您需要 才可以下载或查看,没有账号? 举个最简单的例子,多知道点原理,吹牛逼都能逼别人吹的精彩,不是吗?{:5_192:} 当然,我要声明一下,我不会玩游戏,对游戏了解也不多,而对于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就是幻灯片了,这是为什么呢?有两个原因。
第一个原因就是由两者图像生成原理不同造成的。 用图来解释一下,比如有一个圆从左上角移动到右下角,第一帧是这样的: 如果是电影,第二帧可能是类似下图这样的(图画得不好但是就是这个意思): 如果是游戏的话,第二帧就应该是这样的图: 看出区别来了吗?这是因为电影和游戏的画面生成方式的本质不同造成的,电影的画面是拍摄的实际场景,在一段时间内胶片持续曝光,这一段时间里人物场景的变化都会被拍到胶片上,每隔一段时间换下一张胶片再曝光一段时间。相机也是一样的原理,如果我们把手机镜头使劲的晃动然后拍一张照片,会发现照片是模糊的,这就是因为曝光过程中把移动过程中一段时间的场景都拍进去了,就模糊了,我们就能感觉到电影里面的人物是移动过去的,可以看到移动的轨迹,画面是“连贯”的。 而游戏的画面则是由显卡生成的,显卡通过计算生成一帧画面,生成完毕后再计算下一帧,这样每一帧都是清晰的,不会有模糊,像我上面图中的那个圆,不管他的移动速度是快是慢,显卡只计算两帧画面,中间的移动轨迹一概不会显示,我们看到物体就好像老版西游记里面孙悟空施一个法术“就”的一声飞过去了。 这里大家可以花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的帧速拉高的。
每帧渲染时长低于1/24秒才流畅 从两款显卡在《战地3》中的每帧渲染时长变化曲线可以看到,虽然绝大部分画面的渲染时间都小于33.3毫秒,但GeForce GTX 660Ti在《战地3》中有一处的单帧渲染时间明显超过41.7毫秒,有三处的渲染时间明显超过33.3毫秒,而Radeon HD 7970在《战地3》中有一处的单帧渲染时间明显超过41.7毫秒,有两处的渲染时间明显超过33.3毫秒。这就是我们在游戏中会感觉到画面卡顿的原因,因为在卡顿最明显的两处,前一帧画面出现后,要间隔48毫秒才会出现下一帧画面。这就是两款显卡虽然在《战地3》中的平均帧速都超过64fps,但我们依然能够感觉到画面有卡顿的原因。
平均帧速+最高每帧渲染时长综合判断才够精确
Q&A:同样是24fps,为什么游戏感觉卡而电影不卡? 游戏帧速与游戏流畅度的关系还受到垂直同步技术的影响。 在传统的垂直同步设定中,帧速会被划分成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晶体管设计让晶体管性能相比前一代产品有显著提升。 游戏画面设置和游戏测试方法
《尘埃3》游戏分辨率设置,开启4AA抗锯齿,其它游戏画质选项选择最高级别。《尘埃3》是一款以拉力赛为游戏主题的赛车游戏,同时它是一款DX11游戏,游戏场景的渲染以及阴影特效处理都对处理器来说是一种“考验”。 《孤岛惊魂2》游戏设置采用分辨率,DX10模式,开启4AA抗锯齿设置。其它游戏物理画质选项统一选择High设置级别。《孤岛惊魂2》游戏剧情以户外为主,大量的模拟环境对处理器的(例如:顶点生成)性能有一定要求。 《失落星球2》游戏设置分辨率选用,关闭抗锯齿设置,其它画质选项统一设置为高选项。我们将在接下来的测试中选用DX11模式对《失落星球2》游戏进行测试。《失落星球2》是一款科幻战争主题游戏,玩家可以在游戏中与外星生物进行战斗,场景的复杂程度这里就不再多说了。 《Dirt 3》是Codemasters制作发行的一款赛车竞速单机游戏,作为AMD Gaming Evolution的一款游戏,它采用与《F1 2010》同样的Ego引擎,支持DirectX 11 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》承袭前作内容第三人称射击游戏,针对多人连线部分加以强化,并加入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很大,服务器会怎么办? 假设玩家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%是内因;
2、fps一直都是比较稳定的,99%是网络或官方服务器因素,1%是网吧内部问题又或是网络或服务器因素; fps稳定还卡?当然会,你不要忘记,顾客所说的卡是,只要他在游戏里发出指令,没有在0.5秒以内给出正确的回应,他就会说卡,卡并不一定只是画面不动,他还包括但不限于以下现象:
所以啊所以,大家反馈问题的时候,自己一定要在掌握一些原理的情况下,再去观察现象,求助时可千万别只说,游戏卡了……游戏卡的可能性太多啦,你这么问,难道希望看到几万字的解决方案,然后自己挨个去试验吗?就算你愿意,有谁愿意去写几万字的解决方案呢? 说难听点,我们是技术员,难道要像顾客那样,用小白式的提问方法吗? 好啦,接下来拍砖时间到,想吹牛逼的,想显摆的同学,接下来就是你们的时间啦!
因英雄联盟卡而引发的关于游戏FPS问题的研究与探讨(二) |
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。