问题背景:这次 MSI 季中冠军赛(比赛场地:韩国),因为 RNG 是线上参赛(比赛场地:本土)的原因,所以拳头一开始就表示为了公平起见,会将选手们的 ping 值都锁定在 35ping 。
问题:
P.S. 对这个关于 ping 的问题很好奇,也请大家尽可能客观分析这个技术问题,不要上升到选手及其他问题.
1
codefever 2022-05-16 11:03:05 +08:00 1
1 、可能是硬件老化导致电脑运行加载变得非常慢;
2 、系统缓存垃圾太多 3 、中电脑病毒 4 、内存或者 CPU 占用过高 5 、电脑安装程序太多占用空间 6 、网络波动 |
2
whitehack 2022-05-16 11:15:13 +08:00
盲猜一波
1. 一般都是真实的延迟,与服务器之间的连接延迟 2.可以通过服务器控也可以通过客户端控. 不考虑作弊的情况下,通过客户端控应该会最准确 影响也最小. 只需要程序逻辑上加上延迟就行了.比如服务器 10ms 就给了响应.那么客户端在连接层再多加上 25ms 的延迟. 发送请求也一样. 当前与服务器连接的真实延迟是 15ms,连接层就延迟 20ms 再把请求发送出去,消息到服务器以后基本可以保证是 35ms 左右的延迟 3. 这个要具体问题具体分析. 没有啥通用工具吧. 按照 op 的问题来看 就是通过程序逻辑来控延迟,可能服务端控也可能客户端控. |
3
seeyisee 2022-05-16 11:20:38 +08:00
拳头说是看比赛日志发现 ping 有问题的。
|
4
seeyisee 2022-05-16 11:21:16 +08:00
在基地比赛本身就比去现场有优势。
|
5
markgor 2022-05-16 11:27:50 +08:00
以下内容纯属猜测;
1 、游戏右上角的 ping 我觉得是 TCP ping ,而不是 ICMP ping ,如果是 TCP PING 则在端口处增加延迟即可“锁 ping”低延迟时增加延迟返回。 2 、如果一开始就高于 35PING ,锁不锁没有任何意义,如果一开始低于 35PING ,锁了的话也很难百分百维持 35ping 。 3 、上面假设都是基于 TCP PING 的,如果 TCP PING 自己加个定时器再返回结果就行了。 但是题外话, 假设:A 到 B 的延迟是 35 毫秒;而 B 到 C 的延迟是 25 毫秒。 即:A 放个技能后,C 收到的时间是 60 毫秒。 请问:如果把 A~Z 打乱随机抽出 10 个,每 60 毫秒展示一次,有多少人能答对字母出现的顺序 50%以上的? 另:大家都慢 60 毫秒,再另一个角度而言是否也属于公平?(你放个技能,我等 60 毫秒才展示;我放个技能,你也等 60 毫秒才展示) 就这次韩国棒子的做法,真的刷新了我的认知。 可能下次他们会以场地供电不是核能源而是煤炭发电,导致电波不稳影响为由要求重赛。 |
6
UIXX 2022-05-16 12:30:44 +08:00 1
0X 年的时候写过游戏逻辑,技术可能过时了,就简单说说吧。
1. 不知道,这得问 LOL 的开发人员,不同游戏的 ping 代表的含义可能会不一样。 游戏内显示的 ping 值不一定是 TCP/UDP 的时延,也可能是专门为游戏设计的心跳机制中的网络参数。 2. 网络状况迥异的环境下,没有任何技术手段能确保双方都在某个 ping 范围内。 比起锁定延迟,我们更常的做法是在帧同步上下功夫,比如优先让网快的正常游戏,网慢的客户端对短时间内过来的更新指令作类似于快进的处理。 3. 不同架构、不同类别的游戏控制同步的方法不一样。 比如一款中心化的 RTS 游戏,采用的是服务器广播-客户端收发的方式交互,想要增加延迟可以设置广播队列的发送时间。对一款允许局域网内的 RPG ,纯粹的 P2P 通信,只需要交互前约定共同参数即可。 |