rate
cl_updaterate
cl_cmdrate
这三个参数是影响到你NET GAME时弹道问题的最大原因。
1.
cl_updaterate和cl_cmdrate的差是要看網路的特性來調整
當你在開net_graph時你應該會看到有幾個跳動非常快的數字
in
out
你會看到in後面的數字跳動的非常快!!而out比較穩定比較少變動
in就是你看到其他人傳給你的資料(敵人的位子敵人開槍)
out就是你傳給其他人的資料,(你開槍你的位子)
你一定會想說那HL幾乎都是"射擊"遊戲應該out要比in多,不可能敵人走路比我開槍還快吧!!
造道理來說應該是這樣不過以"電腦的特性""網路的特性"來說不太依樣
512/64ADSL我的設定
fps_max 100
rate 16383.999023
cl_latency -71.000977
cl_updaterate 30
cl_cmdrate 30
ex_interp 0.05
其實cl_updaterate和cl_cmdrate要設定成一樣的數字,如果cl_updaterate設的稍低一點的話
你net_graph裡面的out就有可能大過in
當上面的情況發生就是你網路接受的資料不足!!(接受的資料就是敵人的位子)這也就是LAG
像56k在HL裡是傳輸很慢的網路(幾乎都是在下載)
所以cl_updaterate和cl_cmdrate要設定一個"差"才可以讓56k有一點上傳
所以56k的設定是20和30
但是ADSL是一個高速傳輸的網路,雖然台灣特有64ADSL把上傳限制的很低64k,不過整體的上下傳是很快的
所以如果你照的56k的設定20和30你會發現,很多時候你的out會大過in
所以應該要補正成30 30
cl_cmdrate這個參數是控制你整體網路的上下傳,如果你是56k的話設定成30而512ADSL上傳也只有64k(事實上是不到)
所以512/64ADSL的cl_cmdrate設定成30然後為了要補正ADSL的網路特性所以把cl_updaterate加大到30(跟cl_cmdrate一樣)
512/64ADSL:
cl_updaterate 30
cl_cmdrate 30
如果是1.5M ADSL上傳好像可以達到384k(還是一樣實際上是不到)就可以把cl_updaterate和cl_cmdrate設定到40
但是以ADSL特性的話頂多到40如果是Cable就可以設定的更高50 50 (甚至再更高)....LAN的話就可以像CPL設定到101 101
----教你怎麼在有設sv_maxrate的server上面玩進量不得得到choke
再來是如何上有設定sv_maxrate的server盡量不得到choke
有設定sv_maxrate幾乎都是設定在8000以內
之前就有提到過rate後面小數點設定成0.000521這是一個會自動改變的數字
我測試的結果在rate 8100上下....後面的0.000521會改變成不同的數字
像我的電腦rate 8100以上的話0.000521會改變成0.000977
如果是以下的話0.000521會變成0.000488
所以當一個server sv_maxrate是8000的話把rate設定成7999.999521
7999.999521會自動改變成7999.999512
0.000521 + 0.000488 = 1
剛好補正到8000滿server最大的rate你就會得到最少的choke
記住小數點後三位要是0.999後面的521才會變成512
我實驗的解果是沒有0.999的話7999.000521就會變成7999.000488
因為server有調節/限制!!....所以就算別人傳給傳給你最大的資料也只會有8000
如果你還是有得到choke的話.....不是server有特別另外設定過,不然你就要調整你的cl_updaterate降低
-----如果你512/64ADSL有設定好的話你會"非常明顯"!!!的看出一個server有沒有動過手腳和有沒有超出負荷,你把ex_interp 設定成0.05..........等server人數全滿+一個回合的一開始(就是每有一個人死每一個人都在動作)時,你就會看出不同的異狀@@
net_graph下面藍色一直跑的槓應該都要在標準以下,不應該有突出變成紅色的!!一個紅"越凸出"代表LAG越嚴重
像我看到有些動過手腳的server,就算server只剩兩個人那個紅色大丁(LAG)特別凸出還是持續著,這樣的一個很小的LAG方式是在遊戲中感覺不到的,如果那紅色的凸出比較小的話
一個紅色的LAG代表的是...........ping突然變高一點,進來的資料in變少一點!!這是很嚴重的!!
因為HL server要收集server上每一個玩家的資料,在傳送到每一個玩家的電腦,所以你看到其他人的資料都是經過server再傳送給你,HL的網路新技術server已經佔了很重要的地位,以前的HL server就只是像proxy server
現在的hl server會處理一個玩家們的資料,讓ping比較高的玩家(如ADSL玩家)得到更公平的Game
一般server是比較不會有很嚴重的大丁LAG(就算是有超出一點server負荷)..........會有很嚴重的大LAG幾乎都是有人在server上動手腳
如果你的cl_updaterate和cl_cmdrate沒有設定好的話,你是"絕對"絕對看不出一個server的網路狀況
標題:[參數]512/64ADSL網路設定修正連接sv_maxrate server
作者: Q123556205 (Jason DD)
日期:2002 / 8 / 8 20:17
有幾個參數是要調整的
fps_max
rate
cl_latency
cl_updaterate
cl_cmdrate
ex_interp
而台灣特有個512/64 ADSL(我SEEDNet)設定如下:
fps_max 100
rate 16383.999023
cl_latency -61.000977
cl_updaterate 30
cl_cmdrate 40
ex_interp 0.05
我不敢保證這個適用於每一個512/64ADSL玩家
但是這每一個數字設定都有我自己研究\推測而來的道理:P
fps_max 100
我想這參數大家應該都知道才對,這是HL引擎最高fps張數,這個跟你的螢幕更新率也有關
以前叫別人把顯示卡個"垂直同步"關閉....其實是錯誤的(會讓眼睛看不清楚)
rate 16383.999023
為什麼會有這麼奇怪的一個數字??就是你CS進入Internet Game選單右上角的下拉選單
這就是rate,HL預設只有幾個選項...而且都是整數...要調到像我一樣有小數點的請選擇Custom
再到console裡面自己輸入
cl_latency -61.000977
這是一個到HL引擎開發出網路新技術之後才有的一個參數(前身好像是有兩個參數組成的)
這個參數請使用"負"(不問為什麼)很多人都說這個數字是ping的負一或是負一半事實上是ping的最小值
是怎麼會有這一些數字的
首先你先連上一個internet server但是在連那一個server之前先點server info看看sv_maxrate 0是不是為零
確定進入遊戲裡面之後就要開始做一堆的反覆動作...
ESC
滑鼠點Resume
按 ~ 輸入新的數字
ESC
滑鼠點Resume
按 ~ 輸入新的數字
rate理論上是最大的下載bps但最大好像也只有25000.000000
我參考了很多別人的設定,一開始我先輸入是25000.000521
出去選單再會來發現變成了25000.000000那個521不見了
一直往下降到17000.000521回來還是變成17000.000000
到了16000.000521回來之後發現變成了16000.000977
我知道數字就在16000和17000之間了......
盡量逼近17000但是要保留0.000521這個會自動改變的的其特殊數字
最後當我試到16383.999521時回來就變成了16383.999023這一個數字
如果我再往上加到16383.999900時....他就又變成16384.000000這不是我要的16383.999023這就是有小數點的最大rate
再來要調整的是cl_latency
當你打開net_graph 1時你如果有看到xx ms這個就是你的ping
一般在LAN或是Cable是不太會看到這個跳動的數字出現在net_graph
而這個ping會因為你的一些設定讓它變低
有人說cl_cmdrate是你平均fps
但是我參考到的資料cl_cmdrate其實都固定是幾個數字
這參數給我的感覺是......多少fps(動作)被網路傳送出去......
cl_cmdrate 30是56k數據機
cl_cmdrate 40適用DSL
cl_cmdrate 50適用在區域網路LAN
大家都知道CPL的設定是cl_cmdrate 101大家也知道HL最高fps也只有100
所以這代表了你在CPL區網的電腦所做的每一個動作的完全的傳送出去,就算是達到fps 100,這也代表了你電腦的fps不會被網路"牽制住"
有在家玩CS的玩家都感覺我的電腦配備明明很高檔
但是為什麼用512adsl在家連到internet為什麼fps會依下子掉到很低一下子又可以保持100,滑鼠都移動的不怎麼順暢,準心都回縮的很慢
這時候你就要用cl_latency參數來補正你的game
fps_max + 1 - cl_cmdrate 就是這樣 101 - 40 = 61
但是記住cl_latency -要使用"負數"
ok!設定成cl_latency -60感覺fps有回來一點點但是怎麼滑鼠還是不很不順暢
你試試看滑鼠快速的轉身,一直反覆!!你就會感覺轉一轉怎麼會有卡到一下的感覺!! 雖然滑鼠移動有比較快了但怎麼感覺射擊敵人時還有不扎實的感覺,不是覺得敵人移動的比較快就是,自己滑鼠一下子快一下子慢
其實HL網路新技術的引擎就是把自己的電腦每一個動作和網路緊密的連結在一起,不過世界上有太多不同的網路,所以沒以辦法做的一龐大的資料庫自動一一校正
所以.......說這麼多.......就是設定成這樣cl_latency -61.000977
0.000977這個數字在剛剛設定rate時很眼熟ㄝ!!
16000.000521回來時變成16000.000977在看看自己的rate 16383.999023
兩個參數rate和cl_latency後面的小數點加在一起看看.....
0.999023 + 0.000977 = 1
喔!!好特別再轉轉看自己的滑鼠,不會卡到了!!
rate和cl_latency兩個配合已經把....滑鼠何HL同步了!!也讓滑鼠接到網路牽制的影響降到最低!!
再來是cl_updaterate和cl_cmdrate
cl_cmdrate就已經提過了DSL就是用40所以不改變
開啟net_graph 3記住數字是三
你會看到loss和choke看到如果有choke就是降低cl_updaterate而最高也只能到40就是跟cl_cmdrate同樣的數字
512/64 ADSL下載可以高達50k但是上傳只有6k.......這麼大的一個差距我想大概也跟isdn差不多了
台灣好像沒有isdn但還是說說isdn的設定就是不對稱的類似56k數據機
isdn的設定是下面
cl_updaterate 31
cl_cmdrate 35
dsl
cl_updaterate 40
cl_cmdrate 40
如果是1.5M的ADSL我想就是定成40 40如果是512adsl我實驗的結果是cl_updaterate 30可以""和一個敵人對射擊時""不會得到choke 1
但是在平常,每一回合的一開始,死亡後,走動間,不瞄人實.....都會得到不等的choke
HL引擎真的利害只要你一接近敵人時你的choke就會停止,,,,真正和對方對射時才會開始計算你會不會得到choke
ex_interp 這個參數預設值是0.1你把他修正/改成0.05你打開net_graph 1你會看到下面藍色一直跑的槓會變的比較整齊且接近填滿/但不會超過
下面這個網址有好壞網路的圖表,把網路設定完成後...再去參考一下圖表...你就會知道為什麼要輸入0.05
http://guides.barrysworld.com/cs/tweaking/
至於要怎麼把設定好的資料保存,讓每次啟動就是自動套用設定好的數值
fps_max
rate
cl_updaterate
cl_cmdrate
這四個參數設定好後就會固定在config.cfg裡面不會任意改變
cl_latency
ex_interp
這裡個參數則是會關閉遊戲後又會回覆預設值
你必須把
這裡個參數你必須另外寫一個.cfg讓autoexec.cfg啟動或是直接寫在autoexec.cfg
-----------------------------------------------------------------------------
2.
这个问题本来就不是新问题了,如果是lan的话,cl_updaterate和cl_cmdrate
在Ethernet lan中的标准设置都为101
如果是Ethernet lan的话则可以设置为
rate "25000"
cl_cmdrate "101"
cl_updaterate "101"
如果说cl_updaterate=fps=101,
那么
服务端传送到client中的数据报率=client的刷新率
那么,服务端对client的响应是刷新率所决定的。
如果是lan, cl_cmdrate作为客户端传送到服务器中的速率与cl_updaterate相同,那么网络条件好的情况下,我们打cs是最流畅的
我所说的cl_cmdrate=cl_updaterate=fps只是其中的一种情况(其实就是指lan,没有说清楚,引起误会,不好意思)
如果针对不同的网络条件对服务器进行连接,那么可以有不同的设置情况。
ADSL 64/128
rate "9999"
cl_cmdrate "35"
cl_updaterate "45"
ADSL 256
rate "9999"
cl_cmdrate "50"
cl_updaterate "46"
ADSL 512
rate "9999"
cl_cmdrate "100"
cl_updaterate "60"
ADSL 2MB
rate "9999"
cl_cmdrate "100"
cl_updaterate "100"
可见,网络条件越好,那么这两个参数就越接近,至于fps,要和cl_updaterate接近,我的意思已经很明白:服务器对客户端的响应与客户端显示刷新率同步,我们打cs才不会有一顿一顿的感觉。
loss和choke在任何一台服务器都可能出现,只是出现的情况不一样,loss指的是掉包,与网络连接有直接关系,与网络的负载也有关系,通常出现在客户端端口,或者服务端的端口。choke指数据流拥塞,比如我们有两台机器,同时连到另外一台主服务器上,在服务器里,我们所进行的操作是同时的,或者是同步的,那么就可能产生拥塞,如果客户端带宽不能处理数据流时,越高的cl_updaterate,将产生越多的choke
所以清楚自己的连接情况,并且针对设置,那么会有一些好的改善
---------------------------------------------------------------------------------