和前两次实验一样,先模拟一个低 ping值环境,几分钟后再模拟一个高 ping值环境。和之前实验结果不同的是,在使用了更改的配置后,这次延迟服务的补偿终于正确了。这张图表显示,即便 ping值从低切换到高,延迟都是基本相同的。
问题解决了吗?
这个配置修正了一个游戏中 ping值计算的错误,却也产生了一个副作用,即釜山场馆内选手屏幕上的帧数和 ping值显示(Ctl-V)会出现错误。显示的 ping值会比实际 ping值低大约 13ms。这是因为,我们上述对延迟服务所做的配置更改,本质上是在目标值上直接添加了一个偏移量,以补偿计算错误。这会对客户端中记录和显示的 ping值应用偏移量产生下游效应(稍后我们会详细分析这点)。其结果是外部客户端显示的数字将比实际 ping 低 13 ms左右。虽然这个结果不是完美的,但当时我们认为确保同等竞赛环境里的对等延迟是一件更重要的事情,即便这意味着釜山场馆外显屏幕会显示错误的数值。
下一步措施,以及一个困难的现实
既然我们已经知道如何准确测量真正的延迟,并找到了一个通过更改配置能够补偿这个计算错误的解决方法,我们马上准备了一个计划进行修正部署,并准备向选手和粉丝沟通,说明之前出现的问题。
但当我们明白了问题所在,我们却面临着一个困难的现实。
我们意识到,在场馆内的选手之前都是在高于35ms范围 的网络下进行比赛的,但在上海远程参赛的队伍,却是在实际的35ms范围内进行比赛的——35ms左右是釜山至上海的自然网络延迟 。我们没有做到公平竞争原则下的延迟对等。
我们需要立即告知队伍。唯一的问题是,这个差异是否大到足以需要重赛。这是一个赛事运营的决定。经过估算,由于计算错误,前三个比赛日中釜山和上海的真实延迟差值大约在15 - 20ms 之间。这也让我们最终做出一个艰难的决定,即使用更新后的配置,将三场受影响的比赛进行重赛,以确保竞赛公平性。
理解ping值的显示数字
在我们决定重赛早期比赛之后,我们知道我们还有很多工作要做。这意味着重新制定赛程,并与队伍联系,以确保他们了解正在发生的事情和原因。 这还意味着我们准备对比赛场馆的服务器和数据中心服务器的配置进行更改,并重新运行所有测试以验证更改是否正确运行。 我们还邀请职业选手前往比赛现场测试新设置下的服务器,多次检查我们是否解决了这个问题。 我们甚至进行了盲测,让职业选手在不知情的情况下尝试两种配置,并让我们知道哪一种感觉像 35ms 延迟,哪一种感觉不止于此。
很不幸的是,我们并没有及时且清晰地将这个外显误差向各位玩家以及转播团队沟通。
不久之后,我们的粉丝就指出了对韩国队伍来说似乎是不公平的优势。 我们开始看到粉丝发布一张显示 22ms 延迟的屏幕截图,而不是预期的约 35ms 的延迟。
这是我们必须回应的问题。
如之前提到的,延迟服务中漏洞的解决方法是添加到配置文件中的补偿偏移值。 此偏移量对屏幕显示的数值有副作用:
在上海的选手屏幕显示的 ping值是正确的
在釜山的选手屏幕显示的 ping值不正确,并且比实际延迟低约 13ms
这里重申一下原因,上海的屏幕显示的ping值是正确的,因为当他们使用延迟工具时,他们已经达到了35 ms左右的延迟目标,因此延迟工具并不会为他们的体验添加补偿。而釜山的屏幕数字显示不正确的原因是,在引擎中引入了延迟配置偏移量,它纠正了引擎中的延迟错误计算,让实际延迟能够达到35ms这个目标。但这将产生让日志和ping值显示偏移约 13 ms 的下游效应。
为了验证这一点,我们从 30 多个进程中收集了客户端日志,并绘制了屏幕上显示的 ping/延迟数据图表(如下示意)。
上图只显示了RNG相关的比赛,竖轴是显示的ping值。 与上一个部分显示数据的图表不同,在这种情况下,横轴代表离散的数据集,每个游戏都有一个数据集。 因此,每个绿色方块都是报告的 ping值的直方图,这些都是从客户端日志中读取一个选手的一场比赛的数据。 正如这里可以看到的,这些值存在一些波动,并且值都在 33 ms 和 39 ms 之间的范围内。 这符合 RNG 的 35ms +/- 5ms 的已知自然延迟值。
下一个要查看的数据集是釜山选手在配置更改之前和配置更改之后的客户端日志(如下示意)。
在上图中,我们过滤了数据,仅显示在釜山比赛场馆进行的比赛。左侧显示的游戏是配置更改之前进行的比赛。正如这里可以看到的,显示数值在 33 到 39ms 之间,范围为 35ms +/- 5。我们也知道,通过更新“端到端”的监测工具进行检验以及结合选手报告,真正的延迟和所显示的不同。
在图表的右侧,我们看到在使用能够提供相同真正延迟的新配置后,显示延迟数值介于 19 ms和25 ms之间-通常在22 ms +/- 5 ms的波动范围以内。将这两个值相减可以看出,显示ping值中的偏移误差是一致的,大约为13ms (35ms - 22ms = 13ms)。因此,在配置更改并解决实际延迟问题后,当釜山屏幕显示ping值显示 22 ms左右时,实际上真实延迟是 35 ms左右。
回到显示 T1 与 SGB 比赛的屏幕截图,这解释了当时 Zeus 的屏幕显示ping值为 22 ms左右,而在添加我们从实验中得到的校正偏移值后,真正的延迟则是在 35ms左右。
结论
作为支持现场比赛的拳头游戏电竞技术团队,我们一直竭尽所能地对比赛环境进行测试、检查、再三检查,以确保无虞。我们一直是以为职业选手创造同等竞赛环境作为最高优先级。我们的目标是让技术让路,将舞台留给运动和比赛本身。
我们也希望尽一切努力坚持竞赛公平性,并为全世界的粉丝创造更好的观赛体验。任何计划的修改,都可能带来风险。但我们希望做到最好,来规避风险,并为选手和粉丝创造最好的体验。
但在这次整件事情中,我们未能及时发现的漏洞影响了比赛,我们对ping值显示错误问题的沟通也不够及时透明。我们再次对此造成的问题和困扰致以深深的歉意。
我们深知这几天对大家并不容易,因此我们正在进行额外的测试和验证,以确保后面的对抗赛和淘汰赛阶段顺利无虞。我们还要感谢队伍和选手们在此期间表现出的坚韧,尽管有诸多障碍,他们仍为我们解决这些问题提供了宝贵的反馈。虽然我们不敢妄言以后永远不会再出现任何可能影响比赛的程序问题,但我们承诺一定从这次事件中吸取教训,更及时地与队伍和粉丝进行沟通,并持续地为良好的赛场环境做出不懈的自我监督和自我改进。
一夜之间,年轻人集体换上了“业主群闹事头像”。
老实说,袈裟还是得争取的
游侠网有幸采访到了11 bit工作室联合项目主管兼首席设计师 Jakub Stokalski先生和11 bit 工作室联合项目主管兼艺术总监Łukasz Juszczyk先生,在采访中他们为玩家们揭露了关于游戏设计的大量信息,下面让我们一起来看看吧!