你有感觉到CS2移动的不一致性吗?
日前Reddit用户Powerful_Seesaw_8927进行了一项对比CS2与CS:GO移动机制的全面测试。
该用户使用宏脚本测试了CS:GO在64 tick、128 tick以及CS2 sub-tick下的移动情况。他注意到,在CS2中每次按下“D”键时,玩家最终位置与起点存在差异,而CS:GO中则无此现象。
在名为“CS2移动不一致性”的讨论帖中,一名Valve开发者确认团队已注意到该问题,并正在致力于寻找解决方案。CS领域博主Thour在社交媒体上指出,这一问题影响了游戏中急停和peek等关键操作,这或许能解释为何许多玩家感觉CS2中的移动手感与CS:GO不同。
他是如何测试的?
以下为Powerful_Seesaw_8927的具体测试内容:
CS2移动机制不一致性
自CS2发布以来,包括我在内的许多玩家一直反馈其移动机制存在一种奇怪的“不一致感”。与CS:GO(尽管有缺陷,但移动干脆、响应及时且可预测)相比,CS2的移动常显得飘忽、不可预测且不精确。
令人沮丧的是,近两年来始终没有可靠的数据解释或修复方案,大多数讨论停留在理论和猜测层面。因此,我设计了一项简单且可复现的测试,对比CS2与CS:GO(64tick和128tick)的移动表现。
测试设置
- 地图:aim_bots
- 起点坐标:
- CS2:setpos 0.000000 0.000000 64.031250;setang 0.000000 0.000000 0.000000
- CS:GO:setpos 0.000000 0.000000 64.093811;setang 0.000000 0.000000 0.000000
(仅Z轴略有差异,不影响水平移动)
- 宏命令:按下“D”键750毫秒(原表述笔误为700毫秒,不影响结论)后释放,记录玩家最终位置(主要为Y轴)。
- 目标:在一致环境下,重复相同输入应产生小范围可预测的输出,以评估不同版本的移动一致性。各版本测试20次。
测试结果
CS:GO – 64 Tick
测试序号 Y轴坐标
| 1-20次 | -189.966919(13次)<br>-186.060669(7次) |
- 不同坐标数:2种
- 结论:一致性极高
CS:GO – 128 Tick
测试序号 Y轴坐标
| 1-20次 | -187.370255(14次)<br>-189.323380(5次)<br>-185.417130(1次) |
- 不同坐标数:3种(仅1次出现-185.417130)
- 结论:仍高度一致且可预测
CS2 – sub-tick
测试序号 Y轴坐标
| 1-20次 | 数值分散至-185.417130至-190.302002之间,共出现10种以上不同坐标 |
- 不同坐标数:10+种,高度分散
- 结论:一致性严重不足
结论
- CS:GO:即使在64 tick下,移动表现依然可靠。
- CS2:相同输入下,输出完全不可预测。
- 直接影响:急停、peek、架点及整体移动操控等核心机制均受影响。
最终呼吁
这已不再是单纯的“手感问题”——数据证明CS2移动机制存在真实且可复现的不一致性,这很可能是许多玩家觉得“游戏不对劲”的关键原因。
Valve,您曾呼吁提供可复现的测试——这就是答案。请修复这一问题。
开发人员做何反应?
vMcJohn(开发人员):嗨!我很好奇你用的是什么程序来按下D键700毫秒时长的?是AutoHotkey脚本还是其他工具?谢谢!
Powerful_Seesaw_8927:我用的是 Wooting 键盘自带的宏程序 Wootomation。这是个非常简单的宏:按下按键后保持700毫秒(其实保持时间可能不影响结果),然后松开。如果你需要,我可以通过私信或其他平台发送未加速的测试视频和宏设置截图…… 再次感谢你的评论!
vMcJohn:感谢反馈。在Windows(及其他平台)上,很难实现精度高于15毫秒的定时器。这意味着你设置的 “等待700毫秒” 实际可能在685到715毫秒之间波动。这种误差在64 tick下几乎无影响,在128 tick下有轻微影响,但在CS2 sub-tick的微秒级时间戳机制中可能成为大问题。
这里有一个AutoHotkey脚本,尝试复现你的测试,精度可达2毫秒以内:
#NoEnv
; #Warn
SendMode Input
SetWorkingDir %A_ScriptDir%
TimePeriod := 2
#SingleInstance Force
Numpad0 & Numpad1::
DllCall("Winmm\timeBeginPeriod", "UInt", TimePeriod)
Send, k
Sleep, 1500
Send, {d down}
Sleep, 700
Send, {d up}
DllCall("Winmm\timeEndPeriod", "UInt", TimePeriod)
return
需要说明的是,我们已知CS在计算X和Y轴(地面)加速时存在问题:当前机制与帧率非完全独立。
感谢你进行严谨的科学测试,祝你好运!
Powerful_Seesaw_8927:这解释很有道理 —— 感谢你深入分析。很高兴知道官方正在处理这个问题。你最后的评论是我能得到的最好回应。我的工作有价值,科学思维得到认可,这对我意义重大。尤其作为量子计算专业的学生,能听到行业前辈的肯定让我非常开心。对我来说,掌握如何进行严谨的测试和科学研究极其重要。感谢您,先生,祝您一切顺利!
Powerful_Seesaw_8927还做了什么测试?
除了移动测试之外,Powerful_Seesaw_8927先前还发布文章,分析了CS2和CSGO的武器扫射转移情况。
他通过逐帧对比 CS:GO 与 CS2 中武器满弹道扩散时的视角变化,发现两者在弹道恢复阶段存在显著差异:
CS:GO:视角恢复平滑且线性 —— 每次射击后,视角偏移角度持续稳定递减,确保弹道扩散的可预测性与可控性。
CS2:恢复阶段存在 “微波动”—— 视角偏移角度递减后,可能轻微回升,随后再次递减,在连续射击间重复数次这种波动。这种 “微抖动” 导致弹道不稳定感,增加了控制难度。
他认为这可能和sub tick有一定的关系,该机制可能引入了后坐力表现的细微不一致性。
禁止灌水刷屏违者禁言3天,详情查看 >> 评论(30)
最新评论(30)