新浪游戏 | 新浪首页
新浪首页 > 游戏世界 > 游民论谈 > 文章内容
关于DF3中网络传输(高ping值)问题的思考
游民部落网友水星_saver

    [回上页]

      大家注意到没有,有时候明明击中了目标,而且也显示了xxx被你击毙,但1,2秒后你却被对方干掉,或者从对方死亡的地点飞来了AT4什么的来打你。如果你被击中,会显示xxx击中了你。这种情况发生在你的计算机对主机的ping不高,而对方的ping相当高的情况下。如果你的子弹坐标数据是和对方的坐标数据是在对方的计算机上进行对比效验的,那么绝对不会发生这样的情况,因为效验的结果会首先在对方的计算机上执行,然后传到主机,然后在传到你的计算机,当你看到xxx被你击中的信息后,对方只有按复活的份,绝无可能再发射AT4了。因此可以说,第一个问题的第2种可能也是错误的,只有在主机进行坐标对比,然后分别把结果传输到你的计算机和对方的计算机进行确认并执行,由于你的计算机的ping值低,你会先接收到对方被击中的消息,而对方在没有接到被击中的消息前,还是可以开枪的,而此时的开枪信号和各种动作信号还是有效的。也许有人认为要是DF中主机一旦判断对方被击中,就停止判断对方的传输来的一切行动数据,直到对方复活为止,不是更好?但是DF是模拟现实的战斗的,被击中之前发射的子弹一样可以击中目标,并不是对方被打死了,这些子弹就会自动消失,当然子弹的速度是非常的快的,但使用AT4你就会明显的感觉到你被击中后AT4一样可以继续前进直到击中远处的目标。这里还要提到刚才的第4个问题,数据是否要进行反馈确认?答案是重要数据的确是要确认的,第一个例子,读秒时你被主机判断击中,那么主机会发送你被击中的信号给你的计算机,但是,你正处于读秒之中,这些信号肯定是无法到达的,但是当你和主机的连接一恢复,你就是立即死亡,why?很明显,主机会不停的发送你死亡的信号,直到你的计算机确认,执行,并反馈到主机以后才停止发送。所有的数据进行反馈确认,这无疑大大增加了网络传输的数据量。

      和主机的CPU消耗。所以应该不会这样,我以前建主机的时候,一进地图就去炸塔(标准第3关)当我将塔炸毁时,有些队员才进来,他们反映他们看到的塔并没有被炸毁,但是当他们往塔上爬时会莫名其妙的死亡。这说明主机并没有将塔被炸毁的信息在没有得到每台客户机确认的情况下不停的发送,直到被确认为止,否则就绝对不会出现这样的情况。

      好了讲了这么多,我现在谈谈由于双方ping值的差异而造成的影响,首先,网络延迟是大家都知道的,你和对方的延迟时间等于你的ping值和对方ping值之和。而由于延迟时间过长,所以双方看到的对方,实际上并不是真实的位置,而会是某某nm以前的位置,所以要打一定的提前量。当然,这个也是常识问题了。但是我认为实际上的问题并不是想像的那么简单。首先,假设你的ping值很高,大约在500左右,第五个问题中由于你接收和发送的数据量的不同,所以你接收的数据要比你发送的数据丢包的可能性大的多。也就是说,你的数据(移动坐标和子弹的轨迹坐标)可以完整的传送到主机,由于对方的ping值很低,所以对方看到的你只是普通的延时问题。但是,你这里就不一样了,由于丢包,系统会自动修补数据,这个修补动作就是继续对方的最后一个动作,直到你接收到新数据,如果对方最后一个动作是向山头跑,那么你的计算机会让他继续跑,当然这个时间是非常短暂的,但是如果对方实际的动作是做了一个左右机动后才向山头跑的,那么你看到的对方是假象,对方实际上会在后面一点时间才会在山头冒出来。如果你开枪射击了,那么他及有可能是撞到你的子弹上的。这就是为什么老有人抱怨对方太厉害,刚露头就被干掉,而且对方的ping并并不低,其实在低,即使在主机,也不可能提前看到对方。还有,如果这个延迟和提前量相抵消的时候,那么简直就和主机没有什么区别了。经过一些试验,我认为这个值在450-600之间,可以达到几乎不打提前量的水平。


    [下一页]

    发表及查看评论】【关闭窗口



游戏世界意见反馈留言板 欢迎批评指正 游戏咨询电话:请与各公司客服热线联系

新浪简介 | About Sina | 广告服务 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2004 SINA Inc. All Rights Reserved

版权所有 新浪网
北京市通信公司提供网络带宽