谈谈CS:GO的优化网络设置篇

上一篇讲视频优化,视频设置好了,只能保证你单机运行游戏的时候不那么“卡”。可是如果我们要在网上和其他玩家对战,那么我们必须面对一个十分重要的东西,网络设置。这个时候那些玩CS1.6的朋友肯定会说,哈哈,这个我知道,不就是cl_cmdrate "101";cl_updaterate"101";rate "25000"嘛?好吧,对一半。这里有兴趣的朋友可以听我把一些基本的概念讲完,这样能帮助你更好的设置这些东西。懒的人可以直接跳过。看文章最后的结果了。现在开始各种唠叨了啊……参照27015论坛TF2版块,作者888的一篇《Source引擎网络通信原理》,从这篇文章,我们知道,CSGO是一个C/S的游戏,就是客户端和服务器的架构。每个玩家把自己的行动位置,开枪动作等等个人行为上传到服务器,服务器收到以后进行处理,然后再把处理结果发送给每个玩家。那么,对于一个动作射击游戏,这个过程肯定是需要越快越好,这样才能保证我们在游戏的世界中不脱节。总不能我对着一个人开枪了半天,服务器过了几分钟才告诉我打中没有吧?我们又不是发射导弹。那么,到底是什么决定了服务器发送接收信息的快慢呢?
-tickrate这个是一个服务器启动参数,它决定了服务器对信息处理的速度,如果把服务器比作电脑的CPU,那么这个值类似于设定CPU的主频。主频越高,当然处理速度也就越快。而你这个CPU必须要很“给力”,才能有那么高的主频。一般来说,服务器这个参数的值是64,其实真的是很慢的。像CS1.6服务器,我们可以通过一些加速插件,把这个值拉到300多以上,这样玩家在游戏里面就会玩得更顺了。可是目前的CSGO服务器貌似还没有这种加速插件,所以像我们PGi战队租用的服务器,我们也只能让客服帮我们开到128。
rate这个是一个客户端参数,作用是告诉服务器你的电脑所能承载的最大速率是多少。为什么要告诉服务器呢,如果你接受信息的能力很有限。而服务器却以它的最大速度发送信息给你,那么最终结果是你的电脑应接不暇,导致丢包。这个参数的默认值是80000,为什么呢?参考了STEAM论坛的一个帖子[链接点这里],我知道,如果按照服务器默认的-tickrate是64的话,也就是说服务器每秒将发送64个数据包给你,然后每个包的大小为1200byte。那么做下乘法:64*1200=76800.现在知道为什么服务器默认值是80000了吧。那问题就在于,我们的个人电脑如果设置成80000或者更高,我们的电脑到底上行和下行满足得了么?答案是肯定的。不信我们来算下,80000/1024/8 =10K/S。我想到现在没有谁家的网络下载速度不到10K/S吧,上传再被运营商阉割也不至于10K不到吧。我曾经记得网上有一篇关于网络优化的文章,上面好像说要把RATE值设定为35000,那是不对的。那样会限制你自己的信息收发速度,让你玩起来很不爽。所以,如果你是在网吧,或者是在家用ADSL 2M以上,又或者是小区宽带,那你就尽情的设置到80000以上吧。可是(对不起,我也不想那么曲折的)。有的朋友就发现似乎自己没办法把rate设定得更高 比如 rate100000。为什么呢?其实客户端的这个值,有一个上限,就是它必须小于等于服务器的sv_maxrate值。你的网络再好,你疯狂的向服务器所求信息,可是服务器应付不过来也没有用。有max当然也有min,的确有sv_minrate,也就是你手贱想把这个值设太小服务器也不允许。最后,最简单的方法,上来我就直接输入rate1280000。然后如果超过服务器上限,它会自动帮我限定为它允许的最大值,也就是和sv_maxrate的值一样。cl_cmdrate这个值也是一个客户端参数。(小科普一下吧,cl_开头的参数全都是客户端参数,sv_开头的都是服务端参数。)cl_cmdrate的作用是设定你客户端向服务器发送的数据包的速度。怎么设,当然是越大越好。因为我们希望服务器能以最快的速度知道我们做了什么事,比如我看到一个敌人,我按下开枪键对他扫射,我当然希望服务器能尽快的收到我开枪的信息,然后处理,再然后向那位敌人的客户端发送一个数据信息“喂,你对面那个兄弟朝你开枪了,你要躺下了……”。这个值最高能设定为128。那些还沉醉在CS1.6想设101的该醒醒了啊。但是,真的是有但是的。这个值同样也会被服务器限制,参数是sv_maxcmdrate。你设再高,也不允许超过它。所以!和rate同样道理,不要犹豫,cl_cmdrate 128!如果超过服务器的最大值,它会帮你定在允许的最大值的。
cl_updaterate这个值就是告诉服务器它应该每秒向你的电脑发送多少数据,这个值设置其实和cmdrate差不多,我们当然是尽可能的比它设大。同样的,这个值也会受到服务器sv_maxupdaterate和 sv_minupdaterate的限制。所以,我的建议是设到128,即cl_updaterate 128然后让服务器去帮我调到它所限制范围内的最大值。关于这个cl_updaterate参数,涉及的东西很多。比如,在最近的一次ESWC2012比赛中,各位朋友会有一种经验,就是我们连接入CSGO的“HLTV”(GTV)的时候,因为服务器在法国,所以我们看GTV的时候觉得人物一卡一卡的,然后我们调低cl_updaterate,比如设定在16。同时把cl_intrp_ratio设定为2。然后就会发现人物的行动平滑很多。为什么呢,其实这个问题要解释清楚真的需要很大的篇幅,因为这涉及到起源引擎的一个特性——实体插值法。所以按照rOd个人的理解,大致的理由是这样的,因为巨大的网络延迟的原因(ping300+),导致我们没办法很好的从GTV服务器获取数据。所以,我减小向服务器申请的数据cl_updaterate。只接收一些关键的数据,然后让我们自己的电脑根据这些关键数据自己去生成一些过渡的图像。举个夸张点的例子,本来我们把cl_updaterate调得很高的时候,当我们的一个敌人从DUST2A门通过大道跑向A平台的时候,服务器会通知我们的客户端“敌人在A门、敌人在A坑、敌人在A大道中段、敌人在T字路口、敌人在平台、敌人在雷点”一共6个位置信息。可是当我们把cl_updaterate调低的时候,我们可能只会收到“敌人在A门、敌人在雷点”,那中间那些过程,则有我们的客户端自己去推测了。这样做,使得一些“不那么重要的信息”不需要让服务器从法国那么远的地方花上0.3秒传过来,而是由我们的客户端自己就生成了。本地生成花费的时间可能不到0.01秒。所以,我们不那么卡了。可是带来的劣势也很明显,就是你屏幕上看到的人物的动作准确性就打了折扣,因为你看到的有挺大一部分是你客户端自己“推测”出来的。这种降低updaterate的方法只能适用于看GTV,如果我们自己参与到游戏中的时候,降低updaterate不是一个明智的做法。 想深入理解的这些相关原理的,请参照《source引擎网络通信原理》。
谈谈CS:GO的优化【网络设置篇】
cl_intrp这个值叫插值周期。和我上面提到的“实体插值法”有关。它的最小值=cl_intrp_ratio/cl_updaterate。cl_intrp_ratio的默认值为1,而如果我们的cl_updaterate为128,那么cl_intrp的最小值为0.0078125。rOd觉得应该把插值周期调小以获得更实时,更准确的服务器数据。而cl_updaterate是会因为我们进入不同的服务器而跟着改变的。为了让c l_intrp始终取最小值,我们设定为cl_intrp0,然后由电脑自动去帮我们完成最小值的计算。
最后!来了啊,那些刚才走神不听讲的朋友,讲结果了!rOd的建议是这样设置你的网络参数:在..SteamsteamappscommonCounter-StrikeGlobal Offensivecsgocfg目录下找到autoexec.cfg,用写字板打开。填入下面4行。rate 128000cl_cmdrate 128cl_updaterate128cl_intrp0
输入完毕,保存。
好,今晚就到这里,大家晚安。下期预告……嗯,还没想好。

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/319795.html

更多阅读

未越狱的iPhone4S 怎么设置个性铃声? 个性铃声来电铃声

未越狱的iPhone4S 怎么设置个性铃声?——简介铃声下载你是否学会了呢,那么如何将下载好的铃声设置成自己的个性铃音呢,我们先来看iphone4s未越狱如何设置手机铃声的方法。未越狱的iPhone4S 怎么设置个性铃声?——工具/原料iphone4s未

移动的3g网络该怎么用 移动4g卡放在3g手机上

移动的3g网络该怎么用——简介3G网络,是指使用支持高速数据传输的蜂窝移动通讯技术的第三代移动通信技术的线路和设备铺设而成的通信网络。3G网络将无线通信与国际互联网等多媒体通信手段相结合,是新一代移动通信系统。对于移动3g网络

无线路由设置方法,路由器无线网络设置 手机设置无线路由器

无线路由设置方法,路由器无线网络设置——简介本教程主要针对XP系统局域网、无须拔号上网的环境下如何正确设置路由器实现共享上网,并且教大家路由器无线网络设置。无线路由设置方法,路由器无线网络设置——工具/原料路由器一台(有线无

声明:《谈谈CS:GO的优化网络设置篇》为网友酒醉夜未阑分享!如侵犯到您的合法权益请联系我们删除