
检测延迟
Ping(延迟)是玩家与服务器之间的往返时间,通常显示在大多数游戏内的网络显示中。它测量的是距离和路由质量,而不是带宽。即使连接速度很快,连接到遥远的服务器仍可能产生较高的延迟,这就是为什么服务器的位置可能比连接速度更重要的原因。
,
Ping值实际上测的是什么?
Ping值(延迟数)是指在某一时刻,往返于单一目的地的一次完整旅程。客户端发送一条简短的信息,另一端进行回复,这两者之间消耗的时间就是屏幕角落里显示的那个数字。
这使得该数值既实用,又有其局限性。它只说明了上一次往返所花费的时间,却无法对下一次往返做出任何说明。
另外两个测量指标填补了这一空白:
抖动 (Jitter) 是指数据包之间往返时间的波动程度。对于游戏而言,稳定但稍慢的连接比快速但飘忽不定的连接更容易处理,因为客户端的平滑处理是根据特定节奏进行调整的。
丢包 (Packet loss) 是指根本未能到达目的地的数据包数量。较低的 Ping 值无法说明那些已经丢失的数据包。
这就是为什么连接测试会同时报告 Ping 值和抖动。它们分别回答了关于同一连接的不同问题,玩家可能会在 Ping 值良好的同时,却遭遇糟糕的游戏对局。
文章的核心洞察
选择地区是玩家的抱怨,而不是功能需求:当玩家要求选择服务器地区时,他们实际上是在报告一个他们无法看到或控制的延迟问题。他们要求的功能只是其中一种可能的解决方案,而在玩家基数较小的情况下,这会用糟糕的比赛匹配换来无法满员的比赛。
基于延迟的分组解决了区域限制试图缓解的问题:区域是行政边界,而延迟是可以测量的。通过测量的延迟(Ping值)将玩家分组,可以将远距离的玩家排除在同一个大厅之外,而无需按地理位置划分队列。
随着时间的推移放宽规则是大多数匹配机制未充分利用的杠杆:动视(Activision)发布的研究表明,随着排队时间的增加,放宽技能限制的速度要快于放宽连接限制的速度。同样的渐进方法也适用于任何池化规则。
当权衡过程可见时,排队时间是可以商榷的:几个社区的玩家都自愿等待更长时间,以获得更好的连接或人数更满的比赛。让他们感到沮丧的不是等待本身,而是不知道等待能换来什么。
透明度和自主权缩短了反馈循环:可见的 Ping 值和选择等待更近服务器的选项,可以将模糊的指责转化为玩家可以采取的行动,代价是可能会暴露你不想公开的数据。
Ping 是如何影响游戏网络代码的?
网络代码是围绕 Ping 值测量的延迟构建的。有两种技术与之直接相关:
客户端预测会提前服务器大约该延迟运行。较高的 Ping 值意味着更大的猜测,以及猜测错误时更大的修正。
延迟补偿会根据射击者的延迟将服务器倒回,以检查他们在开火时看到了什么。较高的 Ping 值意味着更长的倒回时间。
倒回就是一名玩家的 Ping 值变成所有人的问题的地方。由于射击者的击中算数,因此代价落在了目标身上,尽管目标在自己的屏幕上已经到达掩体,但仍然被击中。
Respawn 在其 2021 年 4 月针对《Apex 英雄》的服务器和网络代码深入探究中坦率地指出:“这种荒谬的现象无法消除,只能在玩家之间转移,因为现实很简单,Ping 值是真实存在的,而且玩家的 Ping 值各不相同。”
Riot 测量了这种转移可以达到多大。在 2020 年 7 月,Matt deWet 和 David Straily 计算出,在《无畏契约》中,在基准条件下,“对决中拉枪(peeker)的反应时间比防守方长约 141 毫秒。”网络延迟只是该数据的一部分,此外还有 tick 率和缓冲,但这是双方玩家都无法选择的部分。
网络代码决定了由谁来为 Ping 值的差异买单。它无法缩小这种差异。
为什么 Ping 值差距比 Ping 值本身更重要?
比赛的公平性取决于玩家之间的差距。两个延迟相同的玩家在平等的条件下相遇。但两个平均延迟相同但具体延迟差异很大的玩家则不然,因为每一次回溯和每一次修正都会偏向其中一方。
这在一定限度内成立。两个连接都很差的玩家是平等的,但依然处于一场糟糕的比赛中。质量第一,公平性是第二重考验。
Edgegap的1v1研究(2020年)正是这样定义公平性的,即两个玩家往返时间之间的差异,并测量了单场比赛服务器部署对此产生的影响。为每场比赛选择合适的位置缩小了66%比赛中的延迟差距,平均缩短了31毫秒(1v1案例研究)。同一项研究还指出了其中的平衡取舍:让一个玩家获得最低延迟的位置可能会扩大差距,而最公平的位置可能会牺牲部分延迟。
竞争激烈的1v1可以说是实现这种平衡最难的场景,而《Rivals of Aether 2》将其明确化。其部署选择的是“最大化响应能力(所有玩家的平均延迟最低)和公平性(所有玩家的延迟平衡)的服务器”。游戏还会在其主界面中显示每个玩家的延迟,因此玩家们看的是同一个数值。
开发者实际上能控制什么?
并非路由问题。一旦数据包离开玩家的家庭网络,运营商及其背后的骨干网络就会选择路径。在 2015 年,拳头游戏(Riot Games)工程团队发现,这些网络“更倾向于选择更便宜的路线,而不是更快的路线”。游戏中的任何设置都无法改变这一点。
但有两项决定权确实属于开发者。
谁参与这场对局。如果将六名来自北美东部(NA-East)的玩家和一名来自欧洲的玩家放在同一个大厅里,任何服务器位置都无法对第七名玩家保持公平。这场对局在开始前就已经注定了。解决方法在于匹配机制:以牺牲对局规模或排队时间为代价,限制远距离玩家匹配在一起的规则。
服务器在哪里运行。匹配机制只能平衡其已测量的延迟(Ping)。在对局形成前测量每位玩家到候选位置的往返时间,可以让服务器在差距最小的地方启动。可供选择的位置越多,每个玩家就越容易匹配到一条既短又均衡的路由。
Edgegap 的区域匹配深度剖析同时解决了这两个问题:在匹配时测量到Ping信标(ping beacons)的延迟,并以低于最大满员率的方式进行部署,“以 4v4 开始一场 6v6 对局,而不是从另一个大洲拉入第七名玩家。”
来自我们的赞助商(其实就是我们自己!)的寄语
大多数延迟来自距离,而非代码。Edgegap 的边缘云是一个分布式网络,按需提供高达 615+ 个可用位置,因此每场比赛都能在最适合玩家的可用位置运行。对直播工作室流量的独立重放测试表明,与公共云相比,平均往返时间减少了 58%。
Edgegap 的观点(仅代表个人意见,姑且听之即可!)
在比赛开始前已决定公平的延迟(Ping值)
当玩家看到自己的延迟(ping)时,决定这一延迟的两个关键决定已经做出:谁被放入了游戏大厅,以及服务器在何处启动。此后网络代码(netcode)所做的一切,只是决定了由谁来承受这一差距,而无法改变差距本身的大小。
因此,当一场比赛让人感觉不公平时,在指责网络代码之前,先看看匹配机制。检查一下该大厅中玩家之间的距离有多远,以及最好和最差连接之间的差距有多大。一条限制远距离玩家匹配的规则,以及一个设在连接差距最小处的服务器,通常比任何延迟补偿设置都更能维护公平性。
,










