【自制熟肉】【Fiveso】CS2的移動(dòng)機(jī)制以及subtick詳解

MrMaxim 關(guān)于tickrate的猜測視頻地址:
https://www.youtube.com/watch?v=AmIGvTrvkU8
簡單來說,CS2的subtick里服務(wù)器與各玩家電腦的溝通頻率是64次每秒。雖然包的發(fā)送個(gè)數(shù)是每秒128個(gè),但是每次都是一個(gè)大包緊接著一個(gè)極小的小包,然后大包與大包之間的時(shí)間間隔在1/64秒左右。
MrMaxim對此的猜測是因?yàn)閱蝹€(gè)發(fā)送包的最大長度有限,而新的發(fā)送內(nèi)容超過了該長度,所以只能分成兩個(gè)包來發(fā)。
在MrMaxim的圖表里,CSGO的64tick服務(wù)器發(fā)送的包大小/長度在160~200左右,而128tick社區(qū)服務(wù)器的包大小也是160~200左右??偠灾鼈兌紱]超過500。


那么CS2的subtick大包有多大呢?1300多!

更多的信息或許包括了具體的發(fā)射時(shí)機(jī),按鍵時(shí)機(jī)等。但是到2023年8月為止Valve并沒有給出具體是多少。
另外,在該視頻下,有一個(gè)關(guān)于音頻處理的回復(fù)是這樣的:

(另注,CS2的運(yùn)行是非同步/異步的。在Valve的更新中指出這樣會(huì)降低服務(wù)器CPU的工作負(fù)載,這樣被忽略的幀數(shù)就會(huì)更少)
ChatGPT機(jī)翻結(jié)果:
"沒錯(cuò),我也這么理解的。
在音頻中,當(dāng)多路流進(jìn)行復(fù)用時(shí),需要擁有同步的時(shí)鐘,以便每個(gè)數(shù)據(jù)包(幀)包含一組固定數(shù)量的樣本或毫秒數(shù)。然后,通過改變幀大小來設(shè)置傳輸延遲(延遲)。
非同步音頻則嘗試將每個(gè)流鐘率與自己的速率同步,并允許它們在浮動(dòng)的時(shí)間基準(zhǔn)下進(jìn)行"混合"。一個(gè)來自一條流的樣本可能恰好處于另一條流樣本的1/2位置,然后通過將BOTH流轉(zhuǎn)換/重新采樣為另一個(gè)由服務(wù)器確定的采樣頻率來混合它們。這可以在服務(wù)器端信號(hào)混合中實(shí)現(xiàn)亞毫秒級的延遲。
我認(rèn)為這就是這里發(fā)生的情況。服務(wù)器將玩家通信重新采樣為更高的幀率,但仍然只在每個(gè)客戶端上以1/64秒的幀進(jìn)行通信。但是,客戶端的"動(dòng)作"可能被報(bào)告為發(fā)生在幀的1/4位置,服務(wù)器將其解釋為所有連接客戶端的信息流時(shí)間線中的1/256時(shí)間基準(zhǔn)信息,使服務(wù)器能夠更準(zhǔn)確地報(bào)告并更準(zhǔn)確地響應(yīng)多個(gè)非同步客戶端的時(shí)間線,即使它只在1/64秒的時(shí)間間隔內(nèi)這樣做。"
總的來說,CS2的溝通的頻率、內(nèi)容和辦法與當(dāng)前CSGO的有很多不同。但是subtick在某次更新中就已經(jīng)說明了bhop的時(shí)間間隔可以被設(shè)置,以達(dá)到128tick的效果。Ropz其實(shí)也已經(jīng)評價(jià)過了。
至于CS2的手感,我只能說跟CSGO有點(diǎn)不同。它的響應(yīng)延遲應(yīng)該比CSGO更短,這在我滑翔時(shí)(BV1Kk4y1g7uF)感受挺明顯的。