详细解释Net_graph参数

    分享
    avatar
    蓝肉番茄
    Admin

    帖子数 : 47
    注册日期 : 10-08-20
    年龄 : 27
    地点 : 江苏徐州

    详细解释Net_graph参数

    帖子 由 蓝肉番茄 于 周一 八月 23, 2010 8:05 pm

    很多玩家使用命令来查看游戏网络环境,
    那么你知道这些值什么意思么?如何设置才会更佳呢?
    仔细看看下文吧。

    正确设置游戏的网络参数
    适用于
    CS:S以及source引擎的相关游戏(eg:DOD:S)


    第一步:回退到基础设置(建议跳过本步骤,原文作者目的是完全重新设定)
    如果你的设置并非是默认的,那么从路径Valve\Steam\SteamApps\{username}\Counter Strike Source\cstrike\cfg下删除文件config.cfg,并且删除别的设置文件。

    第二步:加载CS:S游戏 呵呵

    第三步:控制台Console
    英文界面:点击 options -> keyboard -> advanced -> 允许console.
    中文界面:点击 选项-> 键盘-> 高级-> 允许打开控制台
    点击按键`打开控制台(命令行模式)

    第四步:rate
    在控制台(命令行模式)下输入rate并回车(点击enter)
    将会有如下回应

    Max bytes/sec the host can receive data

    这个的意思是要设置rate值,也就是你的电脑一秒钟可以收取多少字节的数据最大值。
    简单来说就是 要明白自己的网络连接下行速度。
    2Mbps的就是大约每秒钟200000字节,可设置为rate 200000(这个在控制台输入即可)
    1Mbps的就是大约每秒钟100000字节,可设置为rate 100000(这个在控制台输入即可)
    512Kbps的就是大约每秒钟51200字节,可设置为rate 51200(这个在控制台输入即可)
    128Kbps的就是大约每秒钟128000字节,可设置为rate 12800(这个在控制台输入即可)
    等等
    注意:在IN GAME官方文档中就是建议这样设置的。假若下行速度可以超过这个rate值,那么你就会出现choke值,反之则会出现lots值。Loss值和choke值同时出现,那么你的游戏过程将会非常迟钝,卡来卡去。Rate其实就是个上限值,设置高于游戏服务器的设置一般没啥问题。服务器本身有一个命令参数sv_maxrate就是处理此问题的,假如服务器比玩家客户端低,那么以服务器为准。现在有很多文章说,要把参数rate设置为20000或者30000,其实这个参数值(rate 20000)的概念来自于1.6,算是个非常错误的信息。Rate 30000这个值来自于Whisper,说在HLDS邮件列表上,曾经发表过一篇由供职于valve公司的Alfred Reynolds的文章上所提及的值。然而我并没有在此邮件列表上看到过此邮件。


    我的参数值是这样设定的:
    ISPs所提供的带宽计算方法和硬盘厂商的差不多,比如1Mbps是1×1000×1000bps,而不是×1024。
    看不懂,就再解释一下:
    Mbps×1000=kbps
    Kbps×1000=bps(bits per second)比特每秒

    要转换bps为bytes,那么就将bps除以8。
    我们来粗略的算一算,不除以8,而是除以10
    那么2Mbps=2×1000×1000÷10=2×100000=200000
    然而,这并不说明你一定非要按照此限制来设置rate值。

    第五步:updaterate
    这里就要需要一些注意,需要你的宽带的上行值了,比如
    2Mbps的带宽,我们这里是512kbps
    那么参数的值cl_updaterate就可以设定为512(在控制台输入cl_updaterate 512即可)

    注意:
    Valve从未在官方说过,要以某个数值来设置上传数据包,却说过,我们可以每个玩家可以在服务器上以53.6kbits每秒的速度游戏。(详见链接http://support.steampowered.com/ ... adp.php?p_faqif=108)。一个普通服务器是 33 tick,也就是每秒33个数据包,因此以53.6除以33就是大约每个数据包为1.6kbits,也就是大约200bytes(字节)。根据大量的测试,这条规律在数值大的时候是一样的,比如100 tick的服务器,经常发送15KB/s的数据。你也可以自己尝试设置的更高,但是这样就会造成一些少见的问题。最近的一次升级说明文档来看,今后的source引擎游戏服务器将会以100pps rates的形式运行。不管怎样,这个设置方法很适宜于较高的updaterates值,也不会有数值溢出错误。

    第六步:commandrate
    现在这步需要一些计算,你需要了解 网络上传速度和你的平均帧数值(FPS值)。
    类似rate,我们以一个参数值来说明,假设你的上行速度是256Kbps也就是25600。
    除以200就得到cmdrate的值。
    比如25600÷200=128。

    你的游戏帧数(FPS值)是这个值的最高上限。
    因此需要设置cl_cmdrate为cmdrate的值和fps的平均值,两者中的最小值。

    注意:如果你尝试发送超越你的发送能力的数据值,那么你就会造成服务器端的choke值(反应速度、移动速度、开火速度)。如果你的客户端接受不到这些数值,就是造成loss值,呵呵,前面这些速度响应就会受影响。最近一次升级说明文档,显示cmdrate的最大值为100.00000。就是说一次传送101。不管怎样,我是没有见过人类,我是说人类,有需要将数据值每0.01秒传送一次的必要。

    第七步 Interpolation delay延迟补偿
    Cl_interp是处理服务器时间和客户端时间的延迟补偿的。
    换句话说,在CSS中你一直玩在“过去的时间”。
    这个值是定义在“过去”多久,是以秒钟为单位的。
    注意:根据最新的source引擎升级,此参数已经禁止。并以参数cl_interp_ratio来代替。一般来说默认值为1。


    完了,现在就可以尝试修改你的cfg文件了。
    呵呵,好好的享受流畅的视觉效果吧。

      目前的日期/时间是周三 十二月 12, 2018 6:43 am