|
发表于 2003-10-24 18:19:32
|
显示全部楼层
|阅读模式
来自 中国–北京–北京
先说明我的网络环境:小区局域网,虚拟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 |
|