CS弹道的详细分析(1)
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
CS弹道的详细分析(2)
作者: 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记住数字是三
CS弹道的详细分析(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
所以清楚自己的连接情况,并且针对设置,那么会有一些好的改善
3.
首先,肯定下面两点官方说明是正确的。
cl_cmdrate控制一秒钟内客户端向服务器提交的数据次数, 也就是客户端告知服务器玩家在一秒内干了什么
cl_updaterate控制一秒钟内服务器向客户端提交数据的次数, 也就是服务器告诉玩家现在整个地图中的变化情况(队友的行动, 敌人的行动)
那么在游戏中我们打开net_graph 3来测试。
很显然,IN和cl_updaterate有关,out和cl_cmdrate有关。
调低cl_updaterate,IN数据流量降低。
调低cl_cmdrate,IN和OUT数据流量同步降低。
调低FPS,IN和OUT数据流量同步降低。
第一种情况很正常。
第二种情况我想应该是由于客户端向服务器提交数据次数降低,那么服务器判定客户端
的带宽比较低,因此也降低了对客户端的传输数据频率。
第三种情况也很容易理解,每秒客户端画面刷新率降低,相应要求的数据量肯定要降低。
我想所有的玩家关心这些参数的原因是这些参数改动是否能够影响自己CS的水平,会不会改变弹道?会不会增大延迟?会不会。。。?
CS弹道的详细分析(4)
按骗人不眨眼兄的说法,9发子弹有可能只起到3发的效果,我觉得是不可能的,从我掌握的情况来看,U-DRAGOON的说法是基本正确的。
U-Dragoon 在 Re:....updaterate和cmdrate的实验报告------!!!看不得!!! 中提到:
我认为cmdrate控制的每次发送数据都相当于一个关键帧,而子弹的发射都是存在于关键帧上,那么,cmdrate降低带来的数据流量减少应该是游戏细节的损失,子弹发射这样的关键数据不应该被省略掉。损失的细节则由服务器来进行插值计算。
为什么呢?我想大家应该有注意到这一点,CS中主木仓开一发(甚至两发)以最快速度切换到手木仓,你再切换回来,会发现你的子弹“没有打出去”,弹夹中的子弹数量和你开木仓前是一样的。而你打的那一木仓有没有效呢?事实证明,那棵子弹完全有效。这种情况只出现在别人做SERVER,你加入的情况下。如果你做了一个listenserver,几乎不会出现这种情况。因为你自己是SERVER,自己和自己传输数据,不用那么曲折吧?但这里为什么说几乎呢,因为我试了20次,还是有一次成功了(如果不是我看花眼的话)
如果你JOIN到别的SERVER,那么这个试验成功率高达70%。很遗憾,在cl_cmdrate 10和
cl_cmdrate 100的情况下成功率差别不大。
造成这个BUG的原因,我想应该是由于有关数据包是先后发出的,1.打出子弹.2.切换.3.换成手木仓4.子弹数目-1。前三个步骤的数据包都发出去了,第四个数据包被忽略了。由此看出,计算子弹数目的数据包优先级是很低的,而有关子弹发出的数据则是关键的。
再看另外一个BUG,如果你在别人的SERVER里,用USP+AWP对着墙打就可以发现。如果以尽量快的速度猛扣3木仓USP再马上切换出AWP开一木仓,你会发现AWP一木仓打出了2-3发子弹,墙壁上有5-6个弹孔。而实际上应该发出了4发子弹。原因呢,请各位思考一下,但和上面的例子不尽相同。
我举这个例子是为了说明子弹发射作为关键帧的重要性盖过了其它的数据。
再举一个证明服务器进行了插值计算的例子,如果你有录过DEMO就会发现,如果cl_cmdrate和cl_updaterate比较低的话,虽然你玩的时候感觉画面是平滑的,但用playdemo播放你录的DEMO就会发现,DEMO一顿一顿的。但是你用VIEWDEMO播放呢,感觉如何了?又变平滑了。这就是因为VIEWDEMO对DEMO的播放过程进行了插值计算,使其变的平滑。
同理,你打的时候之所以平滑也是因为服务器进行了插值计算。实际上,你的DEMO才真正反映了你当时的情况,只不过你被“幻象”所蒙蔽了。那么由此可想而知,你的木仓瞬间在你眼里是指在他身上的,但是在服务器的“眼里”是吗?那就难说了。
而如果cl_cmdrate和cl_updaterate足够高,你的DEMO也会达到正常的平滑程度。也就是说,你可以做到更精确。
说了这么多,其实以最简单的思路来看。以上两个参数低,则每秒接受和发出的数据量都低,那么就必定有数据被忽略,就必定会影响游戏的效果和精确度。
而现在你也知道FPS对你CS水平的影响不仅仅在于准心回复的速度了吧?
所以我建议cl_cmdrate和cl_updaterate还是在100的好,fps_max呢,如果你的显卡和CPU足够好(MX400至少要搭配athlon 1600xp,显卡再高档呢,CPU就可以降),设置为100,但如果不够好,比如你是tnt2那就60好了,MX200用71比较合适,否则得不偿失哦。
4.
cs的网络参数调整指南!
一,512/64ADSL:
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一样),因此得出:
CS弹道的详细分析(5)
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的网路状况。
五,综合说明:
有几个参数是要调整的
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之间了......