你有感覺到CS2移動的不一致性嗎?
日前Reddit用戶Powerful_Seesaw_8927進行了一項對比CS2與CS:GO移動機制的全面測試。
該用戶使用宏腳本測試了CS:GO在64 tick、128 tick以及CS2 sub-tick下的移動情況。他注意到,在CS2中每次按下“D”鍵時,玩家最終位置與起點存在差異,而CS:GO中則無此現(xiàn)象。
在名為“CS2移動不一致性”的討論帖中,一名Valve開發(fā)者確認團隊已注意到該問題,并正在致力于尋找解決方案。CS領域博主Thour在社交媒體上指出,這一問題影響了游戲中急停和peek等關鍵操作,這或許能解釋為何許多玩家感覺CS2中的移動手感與CS:GO不同。
他是如何測試的?
以下為Powerful_Seesaw_8927的具體測試內(nèi)容:
CS2移動機制不一致性
自CS2發(fā)布以來,包括我在內(nèi)的許多玩家一直反饋其移動機制存在一種奇怪的“不一致感”。與CS:GO(盡管有缺陷,但移動干脆、響應及時且可預測)相比,CS2的移動常顯得飄忽、不可預測且不精確。
令人沮喪的是,近兩年來始終沒有可靠的數(shù)據(jù)解釋或修復方案,大多數(shù)討論停留在理論和猜測層面。因此,我設計了一項簡單且可復現(xiàn)的測試,對比CS2與CS:GO(64tick和128tick)的移動表現(xiàn)。
測試設置
- 地圖: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軸)。
- 目標:在一致環(huán)境下,重復相同輸入應產(chǎn)生小范圍可預測的輸出,以評估不同版本的移動一致性。各版本測試20次。
測試結果
CS:GO – 64 Tick
測試序號 Y軸坐標
| 1-20次 | -189.966919(13次)<br>-186.060669(7次) |
- 不同坐標數(shù):2種
- 結論:一致性極高
CS:GO – 128 Tick
測試序號 Y軸坐標
| 1-20次 | -187.370255(14次)<br>-189.323380(5次)<br>-185.417130(1次) |
- 不同坐標數(shù):3種(僅1次出現(xiàn)-185.417130)
- 結論:仍高度一致且可預測
CS2 – sub-tick
測試序號 Y軸坐標
| 1-20次 | 數(shù)值分散至-185.417130至-190.302002之間,共出現(xiàn)10種以上不同坐標 |
- 不同坐標數(shù):10+種,高度分散
- 結論:一致性嚴重不足
結論
- CS:GO:即使在64 tick下,移動表現(xiàn)依然可靠。
- CS2:相同輸入下,輸出完全不可預測。
- 直接影響:急停、peek、架點及整體移動操控等核心機制均受影響。
最終呼吁
這已不再是單純的“手感問題”——數(shù)據(jù)證明CS2移動機制存在真實且可復現(xiàn)的不一致性,這很可能是許多玩家覺得“游戲不對勁”的關鍵原因。
Valve,您曾呼吁提供可復現(xiàn)的測試——這就是答案。請修復這一問題。
開發(fā)人員做何反應?
vMcJohn(開發(fā)人員):嗨!我很好奇你用的是什么程序來按下D鍵700毫秒時長的?是AutoHotkey腳本還是其他工具?謝謝!
Powerful_Seesaw_8927:我用的是 Wooting 鍵盤自帶的宏程序 Wootomation。這是個非常簡單的宏:按下按鍵后保持700毫秒(其實保持時間可能不影響結果),然后松開。如果你需要,我可以通過私信或其他平臺發(fā)送未加速的測試視頻和宏設置截圖…… 再次感謝你的評論!
vMcJohn:感謝反饋。在Windows(及其他平臺)上,很難實現(xiàn)精度高于15毫秒的定時器。這意味著你設置的 “等待700毫秒” 實際可能在685到715毫秒之間波動。這種誤差在64 tick下幾乎無影響,在128 tick下有輕微影響,但在CS2 sub-tick的微秒級時間戳機制中可能成為大問題。
這里有一個AutoHotkey腳本,嘗試復現(xiàn)你的測試,精度可達2毫秒以內(nèi):
#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軸(地面)加速時存在問題:當前機制與幀率非完全獨立。
感謝你進行嚴謹?shù)目茖W測試,祝你好運!
Powerful_Seesaw_8927:這解釋很有道理 —— 感謝你深入分析。很高興知道官方正在處理這個問題。你最后的評論是我能得到的最好回應。我的工作有價值,科學思維得到認可,這對我意義重大。尤其作為量子計算專業(yè)的學生,能聽到行業(yè)前輩的肯定讓我非常開心。對我來說,掌握如何進行嚴謹?shù)臏y試和科學研究極其重要。感謝您,先生,祝您一切順利!
Powerful_Seesaw_8927還做了什么測試?
除了移動測試之外,Powerful_Seesaw_8927先前還發(fā)布文章,分析了CS2和CSGO的武器掃射轉(zhuǎn)移情況。
他通過逐幀對比 CS:GO 與 CS2 中武器滿彈道擴散時的視角變化,發(fā)現(xiàn)兩者在彈道恢復階段存在顯著差異:
CS:GO:視角恢復平滑且線性 —— 每次射擊后,視角偏移角度持續(xù)穩(wěn)定遞減,確保彈道擴散的可預測性與可控性。
CS2:恢復階段存在 “微波動”—— 視角偏移角度遞減后,可能輕微回升,隨后再次遞減,在連續(xù)射擊間重復數(shù)次這種波動。這種 “微抖動” 導致彈道不穩(wěn)定感,增加了控制難度。
他認為這可能和sub tick有一定的關系,該機制可能引入了后坐力表現(xiàn)的細微不一致性。
標簽:開發(fā)人員 CS2 CSGO 移動機制 存在差異