發新話題
打印

[教學] L4D2 網絡參數優化

[Close]

[教學] L4D2 網絡參數優化

如果你希望直接取得優化,
不想花時間了解最適合自己的設定,
請建立一個autoexec.cfg(Left 4 Dead 2\left4dead2\cfg內),並輸入以下指令:
引用:
rate 30000; cl_cmdrate 30; cl_updaterate 30; cl_interp_ratio 2; cl_interp 0.067
如果你至少希望了解一下上述指令如何幫助提升你的遊戲體驗,請繼續閱讀。




為什麼要優化網路參數?
這裡說的優化網路,其實不是說降低PING值等等的事,
而是透過更改幾個遊戲內置參數而達至以下目的:

1. 提高你推HUNTER,推JOCKEY的成功率
2. 縮短你能看見一隻從牆後冒出來的喪屍的時間




原本的網路參數有什麼問題?
要了解這點,各位首先要認識遊戲內的兩個元素:
1. Hitbox
在螢幕上隱藏著,帶領著Model移動的物件,是遊戲世界的真實情況。
2. Model
你在螢幕上看見的Hunter,Smoker,喪屍等等,都是Model。

Model是跟隨著Hitbox移動的,但兩者並不一致,
Model是有延遲的,

延遲的時間則由網絡品質和參數決定。
兩者的具體情況請參考下列影片:
http://www.youtube.com/watch?v=vF25ZnMWPn0
http://www.youtube.com/watch?v=brJmVOLgz9Q

從上述影片,大家應該得知很重要的一點:
在生存者的近戰攻擊中,只有擊中Hitbox,系統才判定為擊中。
(射擊有另一種判定機制)
有些人覺得Hunter十分難推,
其實就是由於Hunter的Hitbox與Model分離很遠的原故。
而此情況正是由L4D2預設的網絡參數所引致。




說的究竟是哪個參數?
那個參數就是本文要說的最主要的一個參數:
cl_interp




什麼是cl_interp?
cl_interp就是控制Hitbox與Model之間延遲時間的參數
簡單來說:
cl_interp愈高 = 延遲愈大
cl_interp愈低 = 延遲愈少

L4D2預設的cl_interp是0.1,
表示你看見的所有Model都是比HitBox慢100毫秒 (0.1x1000),
你在看的遊戲世界其實都是在重播100毫秒之前發生的事,

100毫秒延遲,對於高速移動的物件,尤其是你要去推的Hunter,
其實是一個太長的延遲。




那是不是設得愈低愈好?
不一定。
cl_interp值愈低,的確愈能令螢幕的畫面貼近正在進行的遊戲世界,
但由於某些原因,亦同時會帶來更鈍的遊戲畫面,
「鈍」就是不流暢,你或許會感到喪屍輕微一卡一卡地移動的情形。
cl_interp的高低必定是「流暢畫面」和「貼近遊戲世界」之間的取捨。

但每人的感覺和接受能力都不同,
因此最好的設定其實就是最適合自己的設定。





更改這個東西是不是一定能幫助我?
當然不能保證。
你可能習慣了原本的延遲,或者說你在預設延遲下已是一個神手,
那這修改不一定對你有幫助。
但就人性化的角度來看,推一隻看得見的Hunter總比推空氣簡單,對不?
長遠來說我相信對你的技巧會有所幫助,尤其是在對抗這種節奏急速的遊戲中更能體會它的重要性。




有沒有什麼設定可供參考?
本文開頭記載的一組設定就是最安全的設定,
使用它可以在不引致卡屍的環境下,得到最大程度的延遲縮短。
引用:
rate 30000; cl_cmdrate 30; cl_updaterate 30; cl_interp_ratio 2; cl_interp 0.067
如希望更進一步縮短延遲,可嘗試:
引用:
rate 30000; cl_cmdrate 30; cl_updaterate 30; cl_interp_ratio 1; cl_interp 0.033
但請別忘記低數值的副作用。

你亦可測試各個設定,找出自己最能接受的平衡點。

有一條公式要記住:

cl_interp的最低可行值 = cl_interp_ratio / cl_updaterate

要進一步降低interp值,必然要提升cl_updaterate或降低cl_interp_ratio,否則遊戲不容許你更改。
但請注意,某些伺服器有對cl_updaterate值作出限制。




.
Interp值 0.1 與 0.033 的對比圖




.
.



[ 本帖最後由 Crasher 於 2012-10-11 10:02 編輯 ]

TOP

.
Interp值 0.1 與 0.033 的對比圖




.
.

TOP

引用:
原帖由 donaldhen 於 2012-4-21 17:18 發表
想請問射擊系統如何計算是中的@_@
同近攻相反
用Model判定
所以改interp不會對你的槍法有影響
但對怪物的實質位置掌握必須大大提升
舉一個例 如果你interp值高
你射一隻正在向你飛撲的hunter
可能響你以為仲有機會開槍的情況下轉眼間已經比人撲中左
被撲前一剎你睇到隻hunter仲好遠

[ 本帖最後由 Crasher 於 2012-4-21 17:42 編輯 ]

TOP

引用:
原帖由 tommyin1010 於 2012-4-22 15:22 發表
rate 30000; cl_cmdrate 30; cl_updaterate 30; cl_interp_ratio 1; cl_interp 0.033依兩個數值又係改咩
如果改到hitbox同model完全一樣會點
同埋點顯示個hitbox
rate : client最高可以向server接收的bytes/second
cl_cmdrate : client向server傳送的command/second  (開槍,移動等command)
兩值同interp無關, 但修改後可以有正面影響
cl_update : client要求server傳送的update/second


hitbox同model唔會完全一樣, 只能盡量減低延遲
而因為l4d2的engine內部限制了最高server tickrate為30
(不管你設updaterate有多高,server向你傳送的update都不會超越30/s)
所以l4d2高程度使用了interp去製造流暢遊戲畫面
當你interp愈低,又沒有足夠update的情況下,
畫面理論上就會愈卡,
但先前都說過, 卡可以是個人主觀感覺
只要自己覺得不卡就可以


這是0.016的畫面, 一般server可以達到的最低值
可以看見這次hunter是連接著hitbox


[ 本帖最後由 Crasher 於 2012-4-23 20:12 編輯 ]

TOP

引用:
原帖由 tommyin1010 於 2012-4-23 19:41 發表
updaterate最高為30, 但係>30會唔會影響到interp的數值
(以cl_interp的最低可行值 = cl_interp_ratio / cl_updaterate 的公式計算)
eg: 
cl_updaterate 30; cl_interp_ratio 2 = cl_interp 0.067
cl_updaterate 60;  ...
條數照係咁計
只係updaterate即使超過30亦不會向server接收超過30update/s
(依個正是造成卡屍的原因)
即係updaterate高過30唯一作用就係進一步降低interp

TOP

引用:
原帖由 tommyin1010 於 2012-4-23 20:22 發表
咁降低cl_interp_ratio依個數黎降低 interp 有咩後果?
依個值單獨無影響
主要係睇cl_interp同cl_updaterate
假設 cl_updaterate=20 , 每秒向server接收既update=20
代表傳送model位置既data每個需時 = 1/20 = 0.05 = 50ms
若果 cl_interp=0.1, 用以製造流暢畫面既model延遲 = 0.1 = 100 ms
代表每個data有100ms時間可供傳送
即使第一個data傳送失敗,仍有50m時間可供傳送第二個後備packet
預設參數畫面最流暢就係咁解

TOP

TOP

有loss同choke唯一對策就係降updaterate同cmdrate
loss=你自己電腦/上網慢
choke=server慢

TOP

引用:
原帖由 .hE1 於 2012-6-17 01:43 發表
請問
如果想降低PING值
咁有冇方法?
關哂其他程式 如msn,bt
唔好用wireless

TOP

引用:
原帖由 .hE1 於 2012-6-17 02:16 發表

sorry 我電腦白痴黎
請問wireless係咩黎?
仲有我而家上網只係用緊6M 會唔會唔多唔小有啲影響?
wireless=無線上網

6M真係慢左D
或者唔入得多人場, rpg場依類

TOP

引用:
原帖由 .hE1 於 2012-6-17 02:27 發表

屋企有個wifi算唔算?
你部電腦直線插LAN線上網=唔係無線

TOP

發新話題