上一主题: CoD2服务器重新开放
下一主题: CoD录像(Demo)播放教程
使命召唤Windows独立服务器getstatus DDoS攻击防护补丁MarkC Windows 7 + Vista + XP鼠标加速去除补丁论坛积分系统与勋章系统说明服务器搜索软件HLSW使用说明选择最适合你的FPS值——使命召唤FPS值深度剖析
使命召唤网络诊断工具lagometer使用指南Promod网络参数设置教程Config问题速查指南服务器战绩统计积分计算方法COD4中文版转英文版补丁 免安装完整硬盘版
CoD4记分牌个性化设置教程[教程]让你的CoD4变成真真正正的纯联网版本国内COD4战队信息统计帖Promod图像优化教程使命召唤4 Promod 简介
FPS优化ConfigCoD4音频设置宝典Promod比赛地图报点教程国外CoD4职业高手config包战术研讨软件GTactix使用指南
CoD4升级补丁下载PB故障终极解决方案图解CoD2网络参数设置宝典——《CoD2的甜蜜点》ClanBase比赛录像下载教程CoD4史上最强队最经典录像集锦第一弹
如何用avidemo录制高清画面使命召唤strafe跳跃教程WE ARE Call of Duty 2CoD4录像(Demo)播放教程 
返回列表 查看12113 | 回复39 回复 发帖

您好:尊敬的游客,您是本帖第12114位浏览者

【原创】CoD2网络参数设置宝典——《CoD2的甜蜜点》

相关标签: 宝典, 参数, 设置, 甜蜜点, cod2
不论是哪个竞技游戏,网络参数的调校一直是职业玩家津津乐道的话题。竞技FPS比赛,不论是在线下还是线上,归根到底其实都是在由游戏服务器端与游戏客户端组成的网络中的数据包传输。数据包的传输频率以及传输成功率对游戏都有着很大的影响:传输频率低将造成游戏客户端滞后于服务器端,表现为开枪需要较大的提前量,以及明明已经拐过墙角,看回放的时候却发现还没过拐角的时候就被别人打死;传输成功率低将造成游戏客户端的一些数据包无法被服务器接收,即我们通常所说的丢包,表现为明明瞄准了却打不死人。可见网络参数设定的正确与否玩家能否发挥正常水平、甚至超长发挥有着非常密切的关系。

这部宝典就是为了解决以上问题而编写的。

除了网络参数的介绍之外,本宝典还详细解释了Quake引擎的bug,以及它能给你在游戏中带来什么优势。

看完这部宝典,我不敢说你马上就能步入顶尖高手的行列,但是我可以保证,你再也不会死的莫名其妙。

我们的CoD2服务器的网络参数参照国外职业联赛服务器进行设置,按照本宝典设置之后进入我们的服务器,你就可以体会到国外职业玩家是如何游戏的。


--------------------------------------------------------华丽的分割线--------------------------------------------------------


COD2的甜蜜点



下面的文章阐释了在以Quake3为引擎的FPS多人游戏(CoD2就是其一)中广为人知的现象。

这种现象表现为游戏中的一种感觉——一种在玩家与虚拟环境之间发生的接近瞬时的反应速度;一种在玩家的键鼠操作与屏幕图像显示之间没有任何延迟的感觉。对我来说,这种感觉在一个晚上的游戏中只发生屈指可数的几次。但是,当这种感觉来临的时候:

-        我觉得我可以越跑越快,跳得更高,几乎悬停在空中
-        我可以将子弹射过放置在100码外的针眼
-        我可以一个接一个地把别人爆头
-        我可以不断抢旗,连续杀人,就像一台杀戮机器

我渴望着这种感觉来临。而当这种感觉消失之后我越发觉得它像一碗糖蜜,使我夜不能寐,我总是渴望着它再次降临。

我把这种感觉称为COD2的“甜蜜点”。

那是一种上瘾的感觉。正如瘾君子那样,我无时无刻不想着找回这种感觉。

直到现在,甜蜜点回归已经成了一种概率事件,正如钓鱼,抛硬币。我几乎试过了所有可能的方法:

-        更换ADSL猫
-        移除硬件防火墙
-        删除软件防火墙
-        中止背景运行程序
-        降低图像设置
-        超频显卡

你还可以接着往下举例。但是没有一种方法能够让甜蜜点持续存在。

起初我认为降低ping值或许能有效果,于是我降低了游戏图像设置,但是事与愿违。然而,在网上找了一段时间以后我发现了:

甜蜜点是确确实实存在的,而且是可以重复的。哦,太棒了。我必须承认,我当时——而且现在仍然——感到非常惊讶:大多数CoD玩家还不知道有甜蜜点存在。更让我惊奇的是大多数的人根本不知道我接下来要讲的基本概念。我不得不指出:所有这些信息都不是秘密。正如我前面提到的:早在Quake一代的时候就已经有对此完整的说明文档了。

例如,Funender.com的资深Quake玩家injx就曾经写过一篇关于这种现象通俗易懂的文章:

http://www.funender.com/quake/info/q3connection.htm

其主要表达的基本概念是,你可以通过:

1. 优化你的电脑到服务器的网络连接,使其尽可能的高效;
2. 利用Quake3引擎的一个bug;

来达到甜蜜点。

A.        获得高效的网络连接

我说的高效是指:你的电脑所传输或接受的数据量正好可以满足游戏图像设置的需要。在你游戏安装目录下players文件夹下有一个mp_config.cfg文件,这个文件里有三个参数直接影响到你与服务器之间数据传输的效率:snaps,cl_maxpackets以及com_maxfps。

A.1  snaps

Snaps是指每秒钟你从服务器上接受的数据“快照”的数量。每张“快照”都包含着服务器端游戏的状态(比如玩家A正在用Kar98k开火,玩家B刚刚趴下),这是一种与帧数相似的数据传输方式。

Snaps必须设置成与CoD2服务器端参数sv_fps设置相同的值(游戏默认并且锁定在20,但是使用MOD可以消除这一限制)。不论你的snaps设置得多高,你在一秒钟之内都无法接受比服务器sv_fps设置更多的数据“快照”。因此,即使你可以把snaps设置成40并在一个sv_fps = 30的服务器上玩,你的游戏其实还是运行在snaps 30。为了提高效率,你应该让你的snaps值等于服务器sv_fps的值(我们的服是30)。

如果你的网速很慢(比如拨号上网),你应该设的比服务器低(snaps的最低值是10).

A.2  cl_maxpackets

这是每秒钟你的电脑能像服务器上传的数据包的最高数量。数值越高你的游戏就越流畅,因为你向服务器报告你(在游戏中)的位置与动作的频率提高了。由于Quake3引擎的限制,这个数值不能超过125。

注意:如果你把这个数值设得过高,你的ping值(由游戏算出)将会升高。我之所以说是计算出来的是因为这只是一个表示连接效果的数字,你与服务器之间的距离并没有增加。

因此,你应当在不影响ping值的情况下尽量提高cl_maxpackets值(而且不能超过125)。较高的cl_maxpackets能够给你带来更好的命中判定,即只要你能瞄准敌人,就可以打到他(明明瞄着敌人却打不死他的情况将减少)。当然,这是把双刃剑,其他人也能够准确地击中你。反之,数值越低就越难击中别人或被别人击中。但如果你是一个高手,将cl_maxpackets设得越高你就越容易得分。

A.3  com_maxfps

这个参数控制着游戏允许的最大帧数。

Quake3引擎用1毫秒的整数倍来衡量时间。1秒=1000毫秒。由于你的显示器上每秒钟显示的画面(即帧数)不可能出现小数点,因此你的实际有效帧数是由下列公式决定:

实际有效帧数(FPS)= int(1000/N)
N = 相邻两帧之间的时间间隔(以毫秒计)
int() = 取整函数

实际有效的帧数等于1000/N,这里N必须是整数。

以下列出的是所有有效的com_maxfps值:

1000/1 = 1000
1000/2 = 500
1000/3 = 333
1000/4 = 250
1000/5 = 200
1000/6 = 166
1000/7 = 142
1000/8 = 125
1000/9 = 111
1000/10 = 100
1000/11 = 90
1000/12 = 83
1000/13 = 76
1000/14 = 71
1000/15 = 66
1000/16 = 62
1000/17 = 58
1000/18 = 55


A.4  cl_maxpackets与com_maxfps的关系

为了是你的网络连接效率最大化,cl_maxpackets与com_maxfps数值的选择必须顾及数据上传与显示帧数之间的关系。

上传速率应等于int(帧数/N),即以上所列数值,所有其他的数值都不够高效。

实际上如果你的cl_maxpackets值不等于帧数/N,你的cl_maxpackets会自动向下舍入下一级数值。

Injx作了如下解释:

大多数人都把maxfps(最大帧数)设成125。这样的话,你的有效maxpackets值将有如下几种可能(假设你的电脑能够保持最大帧数不变):(结果全部向上整)125/1=125,125/2=63,125/3=42,125/4=32,125/5=25,以此类推。你应当选择你的网络能够处理的最大值。如果你的maxpackets值不是有效值,就会浪费你的带宽资源,进而造成网络不稳定(就是通常所说的卡)。例如:如果你的帧数下降到100,那么你的有效maxpackets值就会变成:100/1 = 100,100/2 = 50,100/3 = 34,100/4 = 25等等。所以,如果你把cl_maxpackets设成100并使用125的最大帧数,你的实际maxpackets值很会变成63(在上面高亮显示,这是不超过cl_maxpackets限制的最大值),然而,当帧数下降到100的时候,maxpackets将变成100,因为这是现在不超过cl_maxpackets限制的最大值(在上面高亮显示)。如果你的网络不能处理每秒钟100个数据包的流量,就会使你的ping值上升并且跳动。即使你的网络可以处理从63到100的跳跃,你的ping也会比maxpackets保持不变使更加易于浮动。

底线

选择你的网络能允许的最大cl_maxpackets与com_maxfps值。

如果cl_maxpackets不是有效值,就会浪费你的带宽,进而造成游戏不流畅。

B.Quake 3的四舍五入bug

Quake3引擎有2个重大bug。

我们需要了解的是其中一个bug,它无意中创造了一种全新的游戏方式(跳跃,CoD2可以像CS那样玩跳跃,因为都是quake引擎)。这个bug的产生是由于游戏在计算玩家移动时产生的四舍五入错误。

当玩家从某一帧的某个位置移动到下一帧的某个位置是,四舍五入错误产生叠加效应,并且在有些时候可以让玩家比正常情况下跳的更高更远。后面这种技术被称作旋转跳。在Quake3的后续补丁中,id Software企图修正这个bug,但发现玩家的移动会前后快速晃动。因此,旋转跳在Quake3中被保留了下来。

同样,在CoD2里也有这种情况。

Injx在这里的解释非常通俗易懂:

基本上,Quake在渲染每一帧的时候会计算你的位置。因此,如果你的帧数越高,在一秒钟内你的位置就会被计算更多次。帧数不会影响你的奔跑速度,跳跃速度或者武器后坐力。在Quake 3里,标准的重力场强是 800单位/平方秒。同时,Quake里面没有空气,因此就没有空气阻力阻碍你的移动。当你按下跳跃键时——不管你原地站立不动或是在跑动中抑或其他——你被瞬间赋予了向上的270单位/秒的垂直速度。这个初速是固定不变的。因此,当你起跳后,你受到2个力:1)向上的270单位/秒的向上速度 2)由重力产生的800单位/平方秒的减速。由于Quake在每一帧都要计算你的位置,这意味着它在每一帧中计算重力向你施加的效果。然而,当每次Quake计算你的新位置、方向、速度时,它必须记住Quake的虚拟世界不是连续的,而是基于一个超高精度的立体矩阵,其中最小的长度刻度被称为“单位”。因此,当它在计算玩家位置和速度的时候,玩家不能处在两个“单位”之间。他们必须正好处于某个特定单位的位置上,不能横跨2个单位。因此,Quake不能用小数点来计算位置数值,必须在渲染新位置时把小数点四舍五入掉。这意味着在Quake的技术结果中存在四舍五入的错误,这造成了移动距离(跳跃时最明显)的“公差”。确实,许多玩家在首次尝试神奇的帧数值——例如125——时表示,他们当时就感觉自己像是漂浮在空中。然而,这件事也有另一面相反的特性。正如有些帧数值能够减少重力效应,另外一些帧数值却能够增加重力效应,这就会使你失去跳跃的速度和高度而处于不利的境地。

B.1 四舍五入错误与最佳帧数(FPS)

Coriolis Mutant在这里作了更加深入的物理学解释:http://ucguides.savagehelp.com/Quake3/FAQFPSJumps.html。下面列出的是Coriolis文章中最重要的部分,解释了为什么速度(跳跃距离)是帧数的函数:

现在,让我们回到跳跃上来。理论上,四舍五入错误应在一次典型跳跃中相互抵消。这里假设小数位可以是拥有相同概率的任何数值。然而,在实际中并不是这样。每一帧所花的时间趋于与前一帧相同。速度的改变是加速度改变每一帧所花时间的过程。而加速度是由重力产生,因此是恒定的。每一帧所耗时间也是近似恒定的,因此每一帧速度的改变也是近似恒定的。由于速度总是整数,而速度的改变几乎总是一样。在持续的帧数四舍五入中几乎每一帧都有错误。如果帧数保持恒定,Quake3的四舍五入错误便会累计。一些帧数会向上舍入,一些会向下舍入。根据这个规律,为了取得最远的跳跃距离,理想的帧数是你的电脑所能保持的最高帧数,并且小数位永远是最接近0.5,但要比0.5大。Quake3的重力场强是800,所以你必须要让800/帧数的结果的小数位大于0.5。为了防止帧数跳动,你同时要让临近帧数的小数位大于0.5。最后,你必须是帧数越高越好,让尽可能多的向上舍入错误得到积累。

由于四舍五入错误的存在,对于生活在连续空间里的数学家而言,时间、空间在CoD2里面是不连续的。四舍五入错误可以是好事,也可以是坏事。理想的状态是四舍五入错误永远造成对我们有利的结果。浮动的FPS使得四舍五入错误随机化,进而相互抵消。Coriolis Mutant找出了符合上述要求的最佳的帧数,并且筛选出游戏支持的最佳帧数(等于1000/N)。因此,他制作了一张拥有最佳跳跃高度/速度的最优FPS值列表。这些就是“甜蜜点”FPS值,也是com_maxfps的推荐值:

sweetspot.png
2011-5-20 01:01


结论

这里有一个计算程序,你可以填入不同的值来寻找最适合你的cl_maxpackets与com_maxfps值:

http://www.funender.com/quake/info/fps.htm

你需要用IE打开上述链接才能正常显示。那么,现在让我们利用这个程序来寻找能使我们达到甜蜜点的最佳FPS/maxpackets组合吧!

1.        如果:com_maxfps = 125
最佳cl_maxpackets = 125,跳跃高度 = 48 (比正常跳跃高6.66%)
2.        如果:com_maxfps = 76
最佳cl_maxpackets = 77,跳跃高度 = 47 (比正常跳跃高4.44%)
3.        如果:com_maxfps = 111
最佳cl_maxpackets = 112,跳跃高度 = 46 (比正常跳跃高2.22%)
4.        如果:com_maxfps = 71
最佳cl_maxpackets = 72,跳跃高度 = 46 (比正常跳跃高2.22%)
5.        如果:com_maxfps =55
最佳cl_maxpackets = 56,跳跃高度 = 46 (比正常跳跃高2.22%)

正常跳跃就是值当你的FPS浮动时的跳跃。这时,任何四舍五入错误都将因随机FPS值而相互抵消。为了抵消这种作用,我把com_maxfps设成我的电脑能保持不变的最高值(这会随着地图的改变而不同)。
com_maxfps值必须从上述值中选取。

我用的一般是125,76,111,71或者55. (我用的是125)

试验观察

虽然我不能说我自从优化系统而使自己达到甜蜜点之后变成高手(我还是很菜),但是我敢说我发现游戏变得越来越愉快。我们之前提到,提升cl_maxpackets值的一个结果就是你的命中判定改善很多(cl_maxpackets值越高,你更容易打中别人),而且我的爆头率也比原先高很多。

但是,我也发现了优化的另外一面,我也更容易被别人打中。把FPS值抬高以后,我发现我跑步的速度也提高了。我发现我可以绕着一些人转圈。我注意到的另一件事是当我把snaps调低(比如20)以后,游戏开始卡得厉害。这使得别人很难打中我——但是同理,我也很难打中别人。可玩性下降了许多。当你们尝试不同的cl_maxpackets与com_maxfps值时,也把你们的试验结果跟帖告诉我。

附:

如何设置网络参数?

CoD2设置网络参数可以通过以下两种办法实现:

1. 直接输入

进入服务器→选择阵营和武器出生→按“~”键调出控制台→输入网络参数(每次只能输入一个参数)→回车→按“~”键退出控制台

例如,在我的服务器里推荐输入:
  1. /snaps 30
  2. /cl_maxpackets 125
  3. /com_maxfps 125
复制代码
注意:参数与数字之间有空格

1.png
2011-5-20 01:01


2. 使用游戏快捷方式命令行自动执行(推荐)

首先,我们要对windows的设置做一些调整:

打开我的电脑,在工具栏上的工具菜单中选择文件夹选项

2.png
2011-5-20 01:01


在弹出的窗口中选择查看选项卡,将隐藏已知文件类型的扩展名选项前面的勾去掉,然后点击确定退出:

3.png
2011-5-20 01:01


接下来:

进入CoD2安装目录下的main文件夹→右键单击空白处→选择新建文本文档.txt文件→将txt文件名改成Autoexec_mp.cfg→用记事本打开Autoexec_mp.cfg文件→输入网络参数(如下列黑体字)→保存关闭→右键点击桌面上的CoD2快捷方式→在“目标(T)”一栏的最后(引号外面)空一格输入+exec autoexec_mp.cfg(+exec后面有一个空格)→点击确定保存(如下图)

4.png
2011-5-20 01:01


这样,你每次进游戏就会自动执行你设置的网络参数,一劳永逸。

例如:在我们的服务器玩可以这样设置:
  1. seta snaps "30"
  2. seta cl_maxpackets "125"
  3. seta com_maxfps "125"
复制代码
5.png
2011-5-20 01:01


如何在游戏中显示帧数(FPS)

在游戏中调出控制台(~)输入如下参数后回车:
  1. /cg_drawfps 1
复制代码
若不想每次进游戏时手动输入可以将以下参数加在上述Autoexec.cfg文件后面:
  1. seta cg_drawfps “1”
复制代码

 

转播到腾讯微博     转播到QQ空间   转播到百度空间   转播到开心网   转播到人人网   转播到豆瓣网

......

q        >>>>>>>>>>>>>>>>>>>>>>>

顶啊 学习

有多少人在玩COD2啊

下来看看,学学啊

求COD2服务器列表

下来看看,学学啊

顶啊 学习 正需要

总是死得莫名其妙的人来看看

新人前来来学习

看下。。。

看看啊啊啊

学习学习 哈哈

一定要看看

看看!……求真相

回复个看看

赶紧膜拜学习。。。

Faith PROMOD SND since 2009 ~ Plz follow us at TS3 : vip1.ts1.cn:7000

学习一下...

学习一下,我是发现自己经常狙击瞄准了却打不到人……
返回列表
上一主题: CoD2服务器重新开放
下一主题: CoD录像(Demo)播放教程
标题 (可选)
高级模式 | 发新话题
B Color Image Link Quote Code Smilies
换一个

发帖时请遵守我国法律,网站会将有关你发帖内容、发帖时间以及你发帖时的IP地址的记录保留至少60天,并且只要接到合法请求,即会将这类信息提供给有关go-vern-ment机构。