《求生之路2》服務(wù)器tickrate的作用與網(wǎng)絡(luò)參數(shù)的優(yōu)化
- 來源:百度貼吧
- 作者:請叫我蘿莉悾丶
- 編輯:宅黑真的騷

在《求生之路2》中,玩家能夠自己搭建服務(wù)器,這就不得不牽涉到服務(wù)器tickrate與各項網(wǎng)絡(luò)參數(shù)了,只有合理調(diào)整好這些,你的服務(wù)器才能夠盡善盡美。隨小編一起來看看關(guān)于服務(wù)器tickrate的作用與網(wǎng)絡(luò)參數(shù)的優(yōu)化吧。
首先,tickrate是服務(wù)端里一個非常關(guān)鍵的參數(shù),它影響了服務(wù)端與客戶端之間的更新頻率,理論上來說,tickrate越高的服務(wù)器,玩家之間各種操作的反饋和判定就會更加精準(zhǔn),但是同時也會對服務(wù)器和玩家的網(wǎng)絡(luò)有更高的要求。
畢竟tickrate越高,服務(wù)端與客戶端之間收發(fā)的數(shù)據(jù)包就會越多,所以產(chǎn)生loss的幾率就會變高,如果網(wǎng)絡(luò)帶寬不夠,就會產(chǎn)生choke,而loss和choke會嚴(yán)重影響游戲體驗。
這里只是簡單的介紹一下tickrate的作用,如果想要了解更多自己去網(wǎng)上搜索相關(guān)的資料。
然而,L4D2是一款09年的老游戲了,那個年代的Source引擎(Source2009)版本比較老舊,存在很多問題,而且沒有開放接口對tickrate進行修改。但是后來有國外的技術(shù)大佬開發(fā)了一款名為Tickrate Enabler的插件(并不是Sourcemod插件,也不是Metamod插件,準(zhǔn)確的說是Source Server-Side Addons),這個插件可以讓我們修改L4D2服務(wù)端的tickrate,打破L4D2服務(wù)端默認(rèn)30Tick的瓶頸,嗨呀,發(fā)財啦發(fā)財啦
然后上面也簡單介紹了tickrate的作用,這對于L4D2來說是一個革命性的進步,但事實并非如此。。。高tickrate的服務(wù)器往往存在著嚴(yán)重的choke,不僅如此,在高tickrate的服務(wù)器里也并沒有感覺到各種騷操作的判定變得精準(zhǔn),這就是服主和玩家經(jīng)驗尚缺,對Source引擎網(wǎng)絡(luò)傳輸概念不了解的后果。
一些服主可能以為我把tickrate調(diào)高,整成100tick,我的服務(wù)器就會變得高大上起來,對此我只能說too young
實際上你的服務(wù)器只能說是最高支持100tick,并沒有發(fā)揮出100tick的作用,同樣的,玩家的參數(shù)設(shè)置不當(dāng),也只能說是在100tick的服務(wù)器里玩著30tick的判定。
所以,服務(wù)端不僅要將tickrate調(diào)高,同時還要修改一些網(wǎng)絡(luò)傳輸參數(shù)來達到對應(yīng)tickrate的配置,這樣才能100%發(fā)揮出高tickrate的優(yōu)勢,同樣的,客戶端也要修改一些網(wǎng)絡(luò)傳輸參數(shù),才能享受到高tickrate帶來的優(yōu)勢,而且服務(wù)端與客戶端的網(wǎng)絡(luò)傳輸參數(shù)要保持同步才是最佳效果。
打個簡單的比喻,tickrate和網(wǎng)絡(luò)傳輸參數(shù)好比兩根一樣大的水管,tickrate的那根水管閥門全開,而網(wǎng)絡(luò)傳輸參數(shù)的那根水管閥門只開了一半,所以你tickrate再高,經(jīng)過網(wǎng)絡(luò)傳輸參數(shù)水管的也就那么多,所以毫無意義,而且還會產(chǎn)生較高的choke。
順便簡單一句話解釋下loss和choke是什么意思,loss就是丟包,choke就是網(wǎng)絡(luò)帶寬不夠,導(dǎo)致的數(shù)據(jù)包被延遲送達,網(wǎng)絡(luò)瓶頸和參數(shù)設(shè)置不當(dāng)都會產(chǎn)生choke,服務(wù)器與客戶端的網(wǎng)絡(luò)連接質(zhì)量有問題就會產(chǎn)生loss.
根據(jù)Valve Developer Community的解釋以及自己的理解和實際調(diào)試結(jié)果,我來分別介紹下客戶端和服務(wù)端的網(wǎng)絡(luò)傳輸參數(shù)(這里只是介紹作用,后面再給出設(shè)置建議)。
首先,先說下客戶端的幾個參數(shù):
1、rate - 客戶端每秒最大可以接收多少字節(jié)的數(shù)據(jù)包,默認(rèn)值為10000(約等于9.76k),在L4D2這個版本的引擎里最大支持30000(約等于29.3k)。這個參數(shù)控制著游戲客戶端的帶寬,取值范圍受服務(wù)器對應(yīng)參數(shù)sv_minrate/sv_maxrate的限制。
2、cl_updaterate - 客戶端每秒向服務(wù)器請求多少次刷新,這個參數(shù)控制著客戶端的游戲世界更新頻率,理論上設(shè)的越高,那么你在游戲里看到的東西就會跟服務(wù)器更為同步。默認(rèn)值為20 (也就是20Tick),最大值受服務(wù)器Tickrate的影響,如果超過了服務(wù)器的Tickrate,那么毫無意義而且會浪費帶寬,取值范圍受服務(wù)器對應(yīng)參數(shù)sv_minupdaterate/sv_maxupdaterate的限制。
3、cl_cmdrate - 客戶端每秒最大可以向服務(wù)器報告多少次動作,玩家在游戲里移動、射擊、推猴、秒牛等等都屬于一種動作。因為服務(wù)器Tickrate的概念,服務(wù)端在收集捕獲這些動作的時候都有個頻率,不可能實時將各種細(xì)微的操作都立即計算出來反饋給客戶端,所以這個參數(shù)和Tickrate控制著游戲里各種判定的精準(zhǔn)度。默認(rèn)值為30(也就是30Tick),最大值為100并且受服務(wù)器Tickrate的影響,如果超過了服務(wù)器的Tickrate,那么毫無意義而且會浪費帶寬,取值范圍受服務(wù)器對應(yīng)參數(shù)sv_mincmdrate/sv_maxcmdrate的限制。
4、這里還要提到兩個參數(shù)cl_interp_ratio和cl_interp,也就是我們常說的lerp,國內(nèi)L4D2對lerp這個東西有著非常嚴(yán)重的誤解,甚至還有很多人無腦跟風(fēng),所以我要重點并且簡單明了的介紹一下lerp的作用,以及如何根據(jù)自己的情況去設(shè)置合理的lerp值。
5、Lerp的作用:我上面介紹了服務(wù)器Tickrate的概念,以及cl_updaterate參數(shù)的作用,所以看懂了的人都知道,服務(wù)端游戲世界與客戶端游戲世界的同步都有個頻率,這個頻率受Tickrate和cl_updaterate參數(shù)的影響,并不是實時的。因此,在兩次更新的間隔時間里(1000ms/Tickrate=?ms),客戶端沒有收到來自服務(wù)器的數(shù)據(jù),就不知道該顯示什么,所以就有了lerp這個概念。lerp用于預(yù)測和補償兩次更新的間隔時間里該顯示什么,也就是說lerp相當(dāng)于在你原有延遲的基礎(chǔ)上再給你手動增加了個延遲,比如你現(xiàn)在的延遲(ping)是100ms,你的lerp值也是100ms,那么你真正的延遲是100ping+100lerp=200ms,那么你在游戲里看到的都是0.2秒(200ms)前發(fā)生的事情,所以就產(chǎn)生了為什么我看hunter離我還有這么遠(yuǎn)就撲中我了,我charger撞出去模型都碰撞了為什么沒有判定,tank拳頭賊J8長等情況。。同樣的,在服務(wù)器刷新頻率不高(tickrate低或者網(wǎng)絡(luò)傳輸參數(shù)沒有優(yōu)化)的情況下,你設(shè)置了較低的lerp值就會看到其他玩家以及小SS移動的時候模型一頓一頓的(一步一個小閃現(xiàn))。這就是tickrate/ping/lerp/updaterate/cmdrate的鍋在正規(guī)比賽中禁止選手在中途修改lerp值也是有原因的,因為在某些情況下lerp值能給自己帶來優(yōu)勢,屬于涉嫌作弊的行為。
6、所以lerp值要根據(jù)自己的網(wǎng)絡(luò)情況,以及服務(wù)器的網(wǎng)絡(luò)情況和參數(shù)設(shè)置來得到最適合自己的lerp值,一般情況下,只要你不是那種玩啥都卡的村里網(wǎng),而且服務(wù)器網(wǎng)絡(luò)和刷新頻率沒有問題,那么我推薦lerp值都應(yīng)該設(shè)置為0,這樣才能最大程度的保證你看到的東西沒有延遲。如果服務(wù)器刷新頻率不夠或者你的網(wǎng)絡(luò)有點毛病,那么在盡可能低的原則下(個人建議),找到一個能流暢游戲的lerp值才是最適合你的,lerp值也跟你的反應(yīng)速度和習(xí)慣有關(guān),用慣了一個lerp的玩家可能需要一定時間才能適應(yīng)新的lerp值。(以上均為個人建議,僅供參考)
具體lerp值該怎么修改我這里就懶得BB了,網(wǎng)上到處都有教程。(其實lerp值的影響范圍跟tickrate和updaterate有關(guān),我這里就不細(xì)說了,普通玩家可以不必關(guān)心這些,大概明白lerp的意思就行。一個合格的服務(wù)器都會設(shè)置好自己的相關(guān)參數(shù),因為客戶端lerp的實際取值范圍也受服務(wù)器參數(shù)的影響和限制,服務(wù)器上很多參數(shù)都是有關(guān)聯(lián)的)

玩家點評 (0人參與,0條評論)
熱門評論
全部評論