[分享] 从server端改进cs玩家的枪性
先说明我的网络环境:小区局域网,虚拟ip接入速度10M/s。服务器运行方式:sv_lan 1 后通过端口映射成internet ip,玩家从internet game 刷ip连入。
最开始我的sv_maxrate 8000,sv_maxupdaterate 默认,此时玩家连入后枪性很不好,后改进为sv_maxrate 25000,sv_maxupdaterate 101(此为wcg lan 的设置,普通非局域网连接恐怕承受不了),枪性得到较大提高,但仍与同为lan game的wcg下枪性有较大差距。
此时的client端的in,out值平均为4;3左右(client端:cl_updaterare:80,cl_cmdrate:60),并不低,最后发现问题处在cs的注册表部分。
如果你在一台机器上玩cs的话,cs的分辨率设置是保存在注册表内,而非cs文件夹内。而我此时server上的cs游戏的设置为320*240。当我把server上cs游戏的分辨率改为1024*768后,再重起server,server内cser的枪性水平几乎达到了lan的水平,即枪性提高十分显著。
所以可以推出结论:hlds运行时的参照游戏分辨率是按server上cs游戏在本机内注册表的分辨率设置值而定。即它提供给客户端的弹道数据算法也是在此分辨率下的算法。所以:试设320下两弹点相隔10dpi,传给client后在1024下,10的间隔就变成了10*(1024/320)=40,这就是为什么弹道飘高极大且左右也显得误差过大的原因。同理,若server端1600下10dpi,到了client端1024下就变成了10*(1024/1600)=8,即枪性会更好,这个结果我也已经试验证实过了。
所以,对于一部分的server,直接或间接的改变本机注册表内cs分辨率的设置,可以在不增加网络传输及服务器负担的条件下,极大的改善cser的枪性,因为你改动的只是传输的某个数据值的大小。
不知道这个结论是不是已经有人发现过,如果先前有相同的见解,请恕小弟在此的。。。。。。了,哈哈。原创作者:cctv@05 from dyc beijing
非常感谢!!!
我马上就去试!!!真的非常谢谢!!!!!! 真的有这种事吗? 装完hl1440后,好像是把系统注册表内的cs分辨率改为默认的320*240,如果不加以改动的话,client端的枪性简直糟透了。 请问:但服务器并没有引入注册表,是否将
"ScreenWidth"=dword:00000400
"ScreenHeight"=dword:00000300
"ScreenBPP"=dword:00000010
追加进去即可?(1024*768*16dpi)
sv_maxrate 10000
sv_maxupdaterate 30
是否需要修改?
请具体说明用法。 对,麻烦说一下具体如何修改或者给个修改好的注册表
谢谢!! 不好意思,我忘了说明了,我的系统下原本就装有cs 1.5,在装了hl1440后,
我发现我的cs 1.5的分辨率被设回了默认,之后我改动了cs1.5的分辨率,
却对hl1440 server内的枪性产生了影响。
我的注册表valve内同时包含counterstrike和half-life两个项,但确实是修改了counterstrike项下的EngineModeH和EngineModeW后,会对hl server的运行
产生影响,而我的注册表内的half-life项下并没有上面两个键值。
至于注册表内不含counterstrike项的server,它的如上两个参数默认到底是
多少,甚至是否存在本文所阐述的问题,偶并不清楚。 重申一下,我的上面两个键值位于
HKEY_CURRENT_USER\Software\Valve\CounterStrike\Settings 但是服务器没有加载什么注册表啊,我说的是独立服务器。 sv_maxrate 10000 和sv_maxupdaterate 30这大概是internet game 的默认值吧,
而我用的 sv_maxrate 25000和sv_maxupdaterate 101是lan的比赛设置值,
调高这两个参数确实可以提高枪性,但对网络的要求很高,可以根据自己的
网络环境来设置,参数具体含义参见其他文章吧。