昨晚和今天( 2023-03-30 ~ 31 )和日常一样想摸个鱼,上线打几把大乱斗练练手,但出现了平时所没有的卡顿和断连(发生连接错误)。 30 号晚上和 31 日上午 (尤其后者),都有出现开一把 中途必掉线 的情况,很令人难过(主要是对于对手太不礼貌了,弄得像是打不过就拔网线一样)。中途掉线率几乎是 100%,不是所有节点都如此 (不过,三个“最优节点”似乎都有此问题,至少丢包卡顿是有的)。
注:丢包会造成卡顿的原因在于《任天堂明星大乱斗:特别版》的线上联机同步机制是 delay-based ,有一篇非常详细的文章,介绍了两种常见的格斗游戏线上模式的同步机制 (delay-based netcode and rollback netcode),可以看这里:https://arstechnica.com/gaming/2019/10/explaining-how-fighting-games-use-delay-based-and-rollback-netcode/
网络环境:江苏南京电信,有线网。
之前测试 UDP 代理转发的时候,整过一个发 UDP 包测试的脚本,就刚好借此来测试一下。测试脚本很简单:本地发出带序号的小 UDP 包到目标主机的高位端口,然后记录收到回应的时间间隔。超时丢包的包序号会被记录。
用来测试的脚本: Gist 链接 (写得很草率,别太较真)
这里 UU 加速器用的是路由器插件。选好加速节点之后,____ (防止服务被滥用,将主机加速的代理转移到电脑的过程略)。接下来在电脑端尝试测试连接稳定性。
下面是对于匹配的“最优节点”的发包测试结果。其中,第二轮测试使用的 15 ms 间隔是为了模拟真实游戏时的发包频率 (任天堂明星大乱斗特别版,P2P 联机,发包频率 1/60 s)。
单看第一轮测试的丢包率,似乎还可以接受,没有出现集中丢包的情况。
但是,图中的第二轮测试在大约第三分钟时,出现了所有的回程包全部丢失的情况(服务端正常收到)。
这个现象在稍后又尝试测试了一下,没能复现,节点还是东京电信 6762 (服务端收到的 IP 与端口号: 103.140.240.179:23712),倒是成就了梦寐以求的 0 丢包。但我的摸鱼时间已经没了啊(大悲)。
下图是另一组测试,测试时间是 2023-03-31 早晨 9:20 前后,是最早发现服务端可以正常收到包、回程包丢失现象的一次测试。这个测试中在回程包丢失之外,还有出现的就是较为严重的抖动。
有一些高延迟节点,似乎没有出现这种故障。但,由于任天堂大乱斗使用的是 delay-based netcode ,网络延迟会直接反映到操作输入延迟上,游玩体验大大降低。
等官方修吧。
现在想打游戏的话,看样子得再开始之前甩个五分钟的 UDP 包看看。确定不掉线再去打线上。
裸连是不行的。国人玩家少,而且如果匹配到日本玩家,上面同样的目标 IP 的 UDP Ping 平均延迟在直连的情况下是 100 ms ,丢包 3%,你敢联机玩吗。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.