搜索
查看: 7177|回复: 13

[AMXX 带源码] loss 和cl_cmdrate 以及 choke 和 cl_updaterate 之间的关系

[复制链接]
发表于 2010-4-21 03:01:52 | 显示全部楼层 |阅读模式 来自 中国–四川
玩CS最重要的是什么?
是心情。

玩半天越玩越恼火,还不如去找个电影看看。

玩CS能让我们玩的痛快些的,一个是自己的技术,这个要自己提高了

,别人帮不了你,还有就是FPS,这个有相关的优化,网上有很多教

程,不外乎“关闭垂直同步”等,但最要的还是有个不错的机器,好

的显示器,好的显卡,可以基本不考虑这个因素了,另一个网上说的

很少,却非常重要的因素就是choke和loss。这个直接影响我们玩CS

时的ping、弹道等,这个因素不优化好,就会让我们觉得卡,打不死

人,明明打到人,死得却是自己。

下面我来说下关于choke和loss的几个重要参数。、

我们都知道,我们玩CS是在服务器上进行的,有许多玩家参与,要保

证所有玩家看到的是一个结果,这就要求,我们每个人得到的数据和

服务器是一致的,而实际上因为网络的原因,我们每个玩家的机器与

服务之间的数据包的更新是不可能完全同步的,这就需要参数来进行

补偿和预判断。

ex_interp 这个参数就是管这个的,

我建议大家设置为0,
ex_interp 0            默认值 0.1

而提到ex_interp 就不得不提到cl_updaterate ,cl_updaterater

的改变会直接影响ex_interp,如果硬性指定ex_interp的值为0.1或

是0.01等,如果指定的值实际上大于你所需要的补偿,就会造成打不

死人,感觉打到人了,而实际上却打到了别处。所以我们打

ex_interp设置为0,同过调整cl_updaterate让CS自己设置你的

ex_interp这样我们就得到了一个最精确的值“1/cl_updaterate”

,是没有任何一个值比“1/cl_updaterate”,更接近我们实际的需

要了。

另一个重要的参数是cl_cmdrate 这个值理论下是越接近服务器的

FPS值,就越好,这个参数决定了我们每秒钟发送给服务器的数据,

也就是我们的上行,但由于网络的原因,我们不可能获得很理想的上

行带宽,所以如果设置的过高,反而会有不好的结果。

还有rate 这个参数被一些人说成了压枪参数。说的神乎其神,其实

它是每个数据包中的数据总量。这个数值要求最好等于或非常接近于

服务器的设置。否则发生数据包丢失。默认参数为空。一般我们提意

反它设置为20000。因为实际测试得出,高于20000是没有任何意义的

,反面会得到相反的结果。

上面简单的说了这些参数,可能大家要问,这和你说的choke和loss

有什么关系,到现在还没有看到呢。

要明白它们有什么关系,首先要知道choke和loss是什么意思。

Loss = 所收到的数据的丢失率
Choke = 发出的数据的丢失率
他们是一种数据包丢失。
这2个值可以显示测量你的网络参数是否合适!

有choke的产生你可以想象一下你拼命地向对手开枪而这些数据都丢

了根本没发到服务器,于是服务器就判定你根本没开枪。这时你就会

发现就算你离敌人很近地扫射,敌人没死你却被乱敌人一枪打死了。

有loss的产生你应该有过这样的体验,有时遇到人时你你刚要开枪突

然卡一下,这时有两种可能,一是你发现你死了,或是对方躺在了地

上,而这中间的过程,丢失了。

如何检测这两个值呢?我们可以打开net graph ,方法是打开控制台

输入net_graph 3

屏幕下方会显示一堆数据,
左上角的就是 fps 值
右上角的是延迟时间
In=你接受自服务器的数据量(k/s
Out=你发送至服务器的数据量(k/s
左下角和右下角分别是 loss 和 choke

loss 和 choke = 0 是最好的、最完美的 !

cl_cmdrate是客户端每秒钟通知服务器它的行为的次数。
这个参数决定了每秒钟你发给服务器多少个数据包。

cl_updaterate 是每秒钟你从服务器接受的数据包数量。

这就可以看出loss 和cl_cmdrate 以及 choke 和 cl_updaterate

之间的关系了。

換句話說,有 loss 的時候就降低 cl_cmdrate,有 choke 的話則降

低 cl_updaterate。

这就是我们经常看到职业选手在打比赛前一定会做的设置,这个值并

不是固定的,而是随着网络质量和服务器的人数的多少,而有所改变

的,打比赛时,人数是固定的,网络质量在一个时间段内也可以说是

固定的,所以我们在进行比赛前,调整好这几个参数,就可以保证最

大程度的保证我们能发挥到最好水平了。

下面的参数为我们进入服务器时基准参数,也是假定在lan比赛中,

网络状态比较好的情况下的设置。

=====================================
fps_max "101"                //默认值 101
rate "20000"                //默认值为空
ex_interp "0"                //默认值 0.1
cl_cmdrate "101"        //默认值 30
cl_updaterate "101"        //默认值 30
=====================================

直接复制加入你的userconfig.cfg文件里保存,即可。



另外在调整cl_cmdrate 和 cl_updaterate 时,手动的一点一点的

降低或是升高,都要在控制台里输入,这样调整会非常麻烦,也非常

担误时间。

我写了一个很方便的一键调整cl_cmdrate 和 cl_updaterate 的脚

本。喜欢的下载吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
发表于 2010-4-21 10:27:17 | 显示全部楼层 来自 中国–广东–深圳
非常精彩的文章,感谢楼主。
回复

使用道具 举报

 楼主| 发表于 2010-4-21 11:56:47 | 显示全部楼层 来自 中国–四川
第一次发贴子,谢谢回复!
回复

使用道具 举报

发表于 2010-4-23 11:23:43 | 显示全部楼层 来自 中国–天津–天津
非常有用处的帖子,玩CS的人都应该来看
回复

使用道具 举报

 楼主| 发表于 2010-4-24 12:31:40 | 显示全部楼层 来自 中国–四川
感谢支持,这几天迷上了AMXX,刚起步,太多不会,教程又少,不知道大家知道哪里教程比较全的?
回复

使用道具 举报

发表于 2010-4-24 14:15:36 | 显示全部楼层 来自 中国–重庆–重庆
不错  对于使用ADSL的玩家来说 很有用   
ADSL上下不是对称的  延时大的玩家可以参考
回复

使用道具 举报

发表于 2010-4-24 19:22:59 | 显示全部楼层 来自 中国–甘肃–兰州
很有参考价值哦,支持!谢谢啦~~
回复

使用道具 举报

发表于 2010-4-26 21:49:55 | 显示全部楼层 来自 中国–广西–贵港
{:3_67:}支持
回复

使用道具 举报

发表于 2010-5-18 00:04:15 | 显示全部楼层 来自 中国–陕西–西安
强烈的支持,网络环境太差了,只有大家研究出更多的办法解决了。
回复

使用道具 举报

发表于 2011-10-21 20:45:16 | 显示全部楼层 来自 中国–福建–厦门
这个好东西
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表