多人在线游戏相信很多玩家都玩过,也有很多玩家就喜欢玩多人游戏,因为很多人在游戏中觉得与人斗才是其乐无穷的。但多人游戏有一个重要的前提就是要有网络连接。我们也知道在玩多人游戏时,网络连接状况往往事关玩家在多人对战中的能否有上佳的表现。那么影响网络连接状况的因素究竟有哪些呢?我们经常所(听)见到的Ping值、服务器刷新率(Tick rate)以及丢包(或Choke)这些衡量游戏网络状况等变量究竟代表的是什么意思呢?
在这里,小编就打算为大家做一个“解读多人游戏网络连接状况”的专题报道,和大家一起了解一下究竟是哪些网络因素影响了玩家在多人游戏中的体验。而在专题的第一期,我们首先和大家一起围绕Ping值这个玩家在多人游戏中最经常见到的变量做一些讲解:
Ping值往往是玩家在体验一款多人游戏之前,最先关注的一个变量,因为很多玩家都知道其代表了玩家与游戏交互的快慢。但Ping值的真是含义又是什么呢,其和延迟是一回事吗?
Ping值的具体含义
关于Ping的简要历史:
在改编自汤姆·克兰西《猎杀红色十月》这部著名军事小说的同名电影中,肖恩·康纳利扮演的舰长马克·雷明斯曾命令船员发出单个“Ping”,来作为和中情局(CIA)分析师杰克.瑞恩(亚历克·鲍德温饰演)秘密交流的方式。
在潜艇相关的专业术语中,“Ping”是被用来描述,潜艇声纳系统发出的一段脉冲声音。这段脉冲在碰到某一物体后会反射到潜艇上。这段过程中脉冲所经历的时间,被用来测算潜艇与侦测到的物体之间的距离。而这也和在线游戏中Ping的工作原理类似。
Ping和延迟(latency)是一回事吗?
Ping实际上是一种检测在线服务器连接状况的工具。
在具体的运行中,是由Ping通过控制消息协议(Control Message Protocol 简称:ICMP)向服务器发出一段回应请求(echo request)来测算回应的时间。其测算的结果就是大家平常所说的“延迟(latency)”,延迟经常用毫秒(千分之一秒)来表示(毫秒:Milliseconds,简称,ms)。
尽管,Ping代表了这个测试的过程,而Latency(延迟)代表了测试的结果,但在游戏圈中,很多玩家甚至是开发者经常把Ping作为延迟的代表,两者并不是同一种东西,当然游戏玩家和开发者之间“约定成俗”了,也就无关紧要了。
影响Ping或是延迟(latency)的因素:
影响延迟的因素有多种,如玩家的使用的网络连接设备、网络协议以及他诸如软件或硬件防火墙等因素。(网速也是影响因素,但是目前大部分多人游戏单纯对网速的要求相比于目前玩家的平均网速实际上非常低,例如《战地1》这样的64人大战场游戏,据相关测试其在游戏中平均的下载速度仅为140Kb,上传速度仅为22Kb。)
但影响延迟最大的因素其实是玩家所在位置与服务器(或作为主机服务器(Host)的玩家,或是两位玩家之间的距离)所在位置的远近。
例如,如果国内玩家要是玩美服或欧服上玩游戏,在不借助加速器的情况下,你的延迟肯定会很高,因为位置上的距离会让信息在玩家客户端与服务器间的交互中出现延迟。
延迟是在线游戏中一个重要的关注点,在一般多人游戏中,Ping也经常通过各种方式显示反馈给玩家,有的是通过数值,有的是通过类似手机信号的图标显示,当然有时候也会附上颜色说明(绿色一般代表低延迟,红色一般代表高延迟)
“男友4”中不同区域服务带来的不同延迟
延迟对多人在线游戏产生的影响:
这一点相信很多玩玩家在多人游戏中都碰到过:高延迟可能会让你打不中或是打不准其他玩家;或是出现瞬移等现象。但我们在这里打算深入为大家讲解一下,不同多人联机模式下的延迟对玩家的影响,以及“延迟补偿(Lag Compensation)”这一技术对玩家的影响。
专用服务器(Dedicate Server)和P2P(Peer-to-Peer局域网)模式:
专用服务器(Dedicate Server):
这种模式下,游戏厂商(或有资质的玩家)在某地搭建一台服务器,专门执行为某个游戏主持比赛的任务。此模式下,所有玩家在多人游戏中的信息交互都是通过一台专用服务器实现的,如下图:
专用服务器模式解析图
目前像《战地1》、《CS:GO》、《守望先锋》以及《绝地求生大逃杀》等FPS游戏都是使用专用服务器来主持游戏。这种模式下,玩家延迟的大小一般取决于玩家客户端与服务器的距离、服务器的刷新率(关于刷新率,我们将在下一期做详细介绍)以及服务器的带宽等网络环境。
专用服务器模式的优势在于:它可以保证相对稳定的对战环境;为一定区域内玩家提供相对公平的网络环境(相近的Ping值)。(对于游戏厂商而言劣势就是价格高昂的服务器购置或需要持续投入的服务器租赁费。)至于这种模式下高延迟的影响,我们会在下面的“延迟补偿”中另作专门讲解。
P2P(Peer to Peer)模式:
这种模式分为两种,一种是有主机(这里的主机指的是Host,不是Console那个意义的主机,下同)的P2P模式,也就是线上玩家中,有一名玩家的游戏设备作为服务器,其他玩家之间的互动交流信息通过这位玩家游戏设备的网络传输(有的分类也并不把这种模式归为P2P模式,这里仅供理解方便,把其归类为P2P模式);另一种是没有主机的P2P模式,线上玩家直接互相传输数据。一般多人合作类多人游戏或是格斗游戏会采用这两种P2P模式:
有主机P2P模式就相当于游戏利用玩家客户端作为服务器主持游戏。这种模式在处理延迟方面存在明显的劣势(优势是游戏厂商不用花钱购置或租赁服务器),因为主机玩家享受了零延迟的优势,而其他玩家与主机玩家连接的时候,就要因为地理位置上的距离而存在延迟。而专用服务器模式下,主机服务器只负责传输处数据,并不进行游戏,所以能保证玩家之间的相对公平(注意这里也仅是相对,因为毕竟无法保证主机服务器离每位玩家的地理距离是相同的。)
另外,在P2P模式下,其他玩家的网络连接状况受主机玩家网络状况的限制。特别是主机玩家的上传网速。也就是说,只有主机玩家上传速度顺畅(连贯且高速),才能保证其能向线上的其他玩家实时传输交互数据。另外如果作为服务器的主机玩家(就是很多自定义多人游戏中的房主)退出游戏,那么其他玩家也将被迫退出游戏比赛。
另一种P2P模式是没有主服务器玩家的,玩家之间的游戏数据的交流直接通过之间的网络联通,这种模式的优势消除了主机服务器玩家的优势,能给线上的玩家以相对公平的对战环境,但是存在的问题是,任意两位或多位玩家之间一旦稍有连接不当,就让是整个比赛陷入停顿,或是中断,特别是玩家之间地理距离过远。
例如,现在育碧的备受玩家指责的《荣耀战魂》目前就是使用的这种连接方式,而在近期育碧终于对游戏糟糕的网络链接做出改进,宣布将在未来上线游戏的专用服务器。
《荣耀战魂》即将在接下来的两个赛季内引进专用服务器
延迟补偿技术以及带来的相关后果
一般情况下,游戏中高延迟的表现,可能都是大家在多人游戏中经历过的,或是可以简单理解的。如:高延迟的玩家在游戏中表现的不是正常的运动而是两点之间的瞬移;高延迟玩家可能对低延迟玩家的位置出现误判。
但以上的现象显然已近无法解释目前现在大多数游戏的高延迟现象了,因为现在很多使用专用服务器的多人PVP游戏,会在游戏服务器中增加延迟补偿作为补偿高延迟玩家的机制。而正是这种机制,往往会让游戏呈现另外一种景象。下面我们带大家简单地了解一下延迟补偿的具体运行原理。
很多使用专用服务器游戏,首先会在游戏服务器中设置一个进行延迟补偿的阈值,比如说,如果服务器检测到玩家传来的数据延迟在100ms以上,那就开始对其信息处理进行“补偿”。
补偿机制简单的工作流程是,服务器在接收到高延迟玩家的数据之后,在做出判定之前,会把相应游戏的游戏世界环境“倒回”之前一段时间再做判定。
具体可以射击游戏为例,假如玩家1的延迟是50ms,玩家2的延迟是100ms,玩家2在自己的游戏中射击并准确地击中了垂直于自己视角的跑动中的玩家1,玩家2射击的信息传输经过50ms到了游戏服务器,这时服务器则要根据目前玩家1的情况对玩家2的射击是否击中做出判定,但在这50ms期间,玩家1的位置数据恰巧已经在服务器中更新了两次,这时就极有可能玩家1在服务器中的位置信息已经脱离了玩家2子弹打中的位置。
在没有延迟补偿的情况下,玩家2也很可能最终从服务器那里得不到击中玩家1的最终反馈。而在有延迟补偿的情况下,服务器会在判定玩家2射击是否击中玩家1时,会自动将玩家1在游戏服务器中的“位置(实际上是Hitbox,具体这里可以简单地理解为玩家在服务器中的位置)”退回到之前一段时间,如果在这个例子中服务器的延迟补偿恰好是50ms,那么这里服务器会判定玩家2恰巧是已经击中了玩家1。
也正是由于延迟补偿这一机制只在服务器中“拉回”低延迟玩家的“位置(Hitbox)”并不改变低延迟玩家在游戏中的实际模型位置,所以,其在这种情况下,会很容易让低延迟玩家在躲到掩体后依然受到伤害。如下图:
其实,这一奇怪的现象也让很多玩家误以为对面玩家是在开挂。至于游戏开发商为什么要在游戏中设置延迟补偿这一折衷机制,大家可以在这里看V社关于这一机制的解释(9.游戏涉及中延迟补偿的使用)。
另外,现在也出现了一种EA旗下开发商DICE在《战地1》的多人服务器中使用的新机制,简单地说就是服务器会在一定延迟内做少量补偿,超过这个延迟则不进行延迟补偿,玩家需要根据游戏服务器的提示在射击中“打提前量”,如下图:
正因为现在网络条件以及服务器条件依然无法达到让所有玩家享受较为相近的延迟,也由于现在也没有绝对合理的机制保证高延迟玩家和低延迟玩家公平合理对战。因此现在很多多人游戏选择:服务器分区设定,这一方面可以减缓服务器的带宽压力,一方面也可以让服务器内的玩家在相近的延迟下进行对战。
当然关于服务器分区,也有软硬两种措施:软性措施是一般游戏会在一开始让玩家选择在哪一个区的游戏服务器中进行游戏,或是提供不同区域的服务器筛选工具,类似的如《战地1》:
《战地1》中的服务器区域筛选界面
硬性措施则是有的游戏服务器通过直接限制某些区域的IP或设置玩家进入服务器的Ping值门槛这样的强制性措施把高延迟玩家排除在服务器之外,保证游戏服务器内部的玩家延迟保持在相近的水平,但这样势必会分裂线上玩家,影响游戏的销量。如之前备受争议的《H1Z1》以及Steam上的《黑色沙漠》等游戏。
steam上玩家对《H1Z1》锁区的抱怨
而在玩家方面,为了应对高延迟,我们往往需要使用市面上的网游加速器来减小游戏的延迟。而加速器也并不能直接减小玩家与服务器的地理距离,只是优化了玩家与服务器之间的网络连接通道。其原理则简单来讲就是,在玩家与游戏服务器中间搭建专用的双线或多线网络服务器,玩家的信息先传到这个相当于中继站的服务器,然后再由其最终传到游戏服务器。也就相当于把玩家与游戏服务器之间的连接网路变成一个专用通道。当然这个通道也有带宽大小,因此,我们往往会在高峰期使用加速器时不能取得最佳加速效果。
目前市面上众多的网游加速器
最后需要指出的是,Ping虽然是检验多人游戏体验效果的重要变量,但并不是唯一变量,多人游戏低ping并不一定会给玩家带来很好的游戏体验。比如,现在据科学测算,人类的反应速度的极限在100ms左右,一般人的反映速度大约在200ms到300ms左右,也就是说如果服务器的Ping值在200ms以内大体就是可以接受的,但现实情况往往并非如此,在200ms左右Ping的服务器中我们的游戏体验往往并不顺畅。而其中的影响因素还要涉及到多人游戏的丢包、Chock以及服务器的属性等问题,这些我们将在下一期中做详细讲解。
参考资料(以上相关解释,由于篇幅有限(也是小编能力有限)并没有完整和非常准确的呈现,感兴趣的玩家可以在下面的资料中看到完整解释):
· What exactly is ping, and what affects it?
· Valve Developer Community:
· Battle(non)sense:
TEKKEN 7 Input & Network Delay Analysis
· Tick rate: What is it and how can it affect your gaming experience?