互动游戏对战平台官网
标题:
讨论:互动流星主机优势和延迟引起的异常现象分析
[打印本页]
作者:
清风♂夜
时间:
2017-3-7 22:03
标题:
讨论:互动流星主机优势和延迟引起的异常现象分析
小白爱折腾
互动流星数据如何传输,怎么判定攻击,主机为什么有优势,暴气暴不开,无效,高空被定下来,速度为什么有些人慢有些人又显得快,能躲的招躲不掉能追加的追加不了,打不中的又打中了能反的却又反不了,各种奇怪现象是什么原因
有的人有时间写篇帖子吧,多多少少来说点
我现在最想知道的是互动数据如何传输,有些网络游戏是服务器收发各玩家数据并判定攻击
作者:
清风♂夜
时间:
2017-3-7 22:05
转发太平洋游戏网的一篇文章
关于游戏延迟引起的一些异常现象简单分析
2010-11-10 02:10 zhaoli A+
当大家在游戏中遇到一些不可思议的现象时,往往会认为,这是对方玩家使用了第三方辅助软件。而事实上,这些莫名其妙的现象,绝大多数都是由网络延迟,也就是大家平时所说的“卡”引起的。在这里,我简单地给大家分析一下大多数由于延迟而引起的各种情况。
本文的针对对象为《真·三国无双online》玩家群体,文章中所涉及的内容,如非特别指明,都是以《真·三国无双online》为参考环境。鉴于并不是所有玩家都接触过网络技术方面的知识,我在正文里将大部分技术名词、技术原理都口语化、简单化了。
一、游戏延迟的分类
单个的玩家要连接游戏,大致的连接是通过这样的路径来实现的:
玩家电脑 - 玩家宽带 - 玩家所在城市电信运营商路由器 - 服务器所在城市电信运营商路由器 - 服务器机房 - 服务器
在这条路径里的任何一个环节出了问题,都有可能造成游戏延迟。而游戏延迟可分为网络延迟和非网络延迟两种,我们可以把主要的延迟大致归纳如下。
非网络延迟
1. 玩家电脑性能引起的延迟:主要由玩家电脑的CPU、内存、显卡等硬件设备不能满足客户端需求所引发的延迟,其主要表现为:
内存不足:游戏场景切换、进入战斗画面时读取数据的时间特别长,最典型的就是在进入战斗读取数据时非常慢,而进入战斗后基本正常。
显卡性能:当游戏画面复杂到达一定程度时,会出现游戏画面丢祯的情况,也就是画面一闪一顿,俗称“慢动作”的情况。
CPU性能:一些电脑的CPU散热性能不好导致温度过高,或者CPU占用量太大时,也会短时间出现“慢动作”的情况,典型表现是不少玩家都遇到过的,在据点附近或者兵多的大地图会特别卡。
此外,也可能会出现某个版本的客户端因素,导致原本能正常运行游戏的玩家电脑,不能满足游戏运行需要,从而出现以上情况;而且随着版本的提高,对电脑的硬件需求也是会逐渐提高的,尤其是一款3D格斗游戏。
2. 服务器性能引起的延迟:主要由游戏服务器硬件性能不足而导致玩家出现的延迟。
造成服务器延迟的原因,主要是因为某个局部场景内的玩家过多,或者整个服务器登陆的玩家数量过多。其主要表现为:
网速正常(开启个人属性界面、读取个人信息、聊天信息、地图切换速度均正常),自己身边的玩家形象迟迟不能刷新。典型表现为不久前的统一庆典。
除此之外,由于服务器性能而引起的延迟可以说几乎没有。
网络延迟
3. 玩家网络引起的延迟:由玩家本人或局域网的网速限制、下载、病毒而引起的网速迟缓,“迅雷党”就是其中的典型。
4. 电信运营商引起的延迟:由玩家所在城市电信运营商、服务器所在城市电信运营商这一条线路中造成的网络延迟。
如电信用户登陆网通服务器,延迟问题主要就是出在电信网络和网通网络的信息传输上。
又如电信2区近一段时间的大范围延迟,问题主要出在服务器所在城市电信运营商:四川(绵阳)电信的线路问题上。
5.服务器网络引起的延迟:由服务器所在机房的网络原因引起的延迟,比如游戏服务器受到大规模DDOS攻击。当然,目前还没有遇出现过类似问题。
总的来说,大家遇到的游戏延迟主要都属于第1、3、4这三种情况。而我们这里主要针对的,是网络延迟的情况分析。
二、数据传输的基本流程
通俗的讲,游戏信息在网络传输的时候,上行和下行使用着不同的通道。大家双击自己的“本地连接”就可以看到,发送出去的数据包和接收到的数据包是分开的。
真三这款游戏在运行时,是本地运行和接收服务器指令同时进行的,游戏内自己的人物动作由本地产生并提交到服务器,服务器通过攻击判定后计算出损血情况并同步给玩家电脑。
我们以两个人单挑为例,简单分析一下真三的数据传输过程。
参与对象:玩家A、玩家B、服务器。
玩家A出招:电脑A生成“出招”的相关数据包,发送给服务器,同时在玩家A的游戏界面内产生出招动作。
玩家B出招:电脑B生成“出招”的相关数据包,发送给服务器,同时在玩家B的游戏界面内产生出招动作。
服务器同时收到双方出招数据:根据招式的强硬度,计算攻击判定和双方的体力损失。
服务器先收到玩家A的出招数据:判定玩家A攻击有效,计算玩家B的体力损失。
服务器将攻击判定,及体力损失返回给玩家A、玩家B。
根据攻击判定,在双方本地电脑内各自产生后续效果(吹飞、倒地等等)。
我在这里要强调的是:玩家A和玩家B产生的后续效果并不是完全一致的。当玩家A和B的延迟不一致时,如果差距过大,就可能会出现这样的情况:
服务器将攻击判定,及体力损失返回给玩家A、玩家B。
玩家B收到服务器返回数据(玩家B后仰),于是等待后仰消失(这是玩家B本地产生的动作),发起“跳跃”指令并向服务器提交新的数据包。
服务器收到玩家B的跳跃数据,开始进行指令判定,并判定跳跃有效,并发送给玩家A和玩家B
玩家A这时才收到服务器返回数据(玩家B后仰),于是等待后仰消失(这是玩家A本地产生的动作),再次发动攻击并向服务器提交新的数据包。
服务器判定玩家A的攻击为浮空攻击并返回相关数据,此时玩家A看到的情况是:玩家B被砍但是不掉血。
玩家B收到服务器返回的浮空攻击相关数据,被砍飞并受身……(后续省略)
玩家A收到服务器返回的浮空攻击相关数据,发现玩家B本来正受地面攻击,却突然受身跑掉。
这里只是举一个例,具体的各种延迟引起的情况,我将在后面做详细分析。
三、各种延迟引发的典型现象分析
1. 瞬移
现象:玩家A看到玩家B瞬移
产生原因:1.玩家B网速不稳定,主要是玩家B网络上行速度受限
2.玩家A网速不稳定,主要是玩家A网络下行速度受限
分析:
玩家B面朝玩家A移动,提交数据到服务器;
服务器将数据传递给玩家A,玩家A看到玩家B向自己移动;
玩家B转身反方向移动,提交数据,但是由于玩家B的上行网速受限,服务器没有及时收到该信息;
因为服务器没有返回玩家B的后续动作,玩家A在本地看到玩家B仍然根据先前的指令,一直朝自己的方向跑;
玩家A攻击玩家B,提交数据;
服务器因为没有获得玩家B的数据,因此判定攻击无效;
玩家A收到服务器返回的攻击无效判定,看见自己砍玩家B无反应;
服务器这时才收到玩家B提交的的一大堆新数据(包括玩家B的本地坐标),返回给玩家A;
玩家A看到玩家B突然瞬移到了另一个位置(玩家B的实际位置)。
不光是瞬移,当玩家A攻击玩家B到了一半,却发现自己被玩家B反攻;或者砍玩家B不掉血,玩家B砍自己却掉血,都是属于同样的原理。
在hub连接的局域网模式下,短时间拔掉网线并不会导致游戏立刻掉线。当遇到对方玩家时短时间拔掉网线再插回去,就可以看到对方瞬移了。
2. 带着冰冻效果到处跑
现象:玩家A看到玩家B身上带着冰冻效果移动
产生原因:信息传输过程中丢失了数据包。
分析:
玩家B被冰冻,服务器和玩家A、B均收到相关数据;
玩家B解冻,服务器将该数据发送给玩家A、B;
玩家B收到解冻指令,开始移动并提交给服务器;
服务器发送给玩家A的玩家B解冻数据包丢失;
服务器收到玩家B的移动指令,转发给玩家A;
玩家A收到B的移动指令,看到玩家B移动;
由于解冻数据包的丢失,玩家A看到B身上仍然带着冰块,并且该现象会一直持续到下一次玩家B的形象数据更新。
在网络传输中,丢失数据包是很正常的事情。如果对时间要求不高,可以采取丢包重发机制在保证数据包的安全性;但是对真三这样重视实时性的游戏来说,丢包重发显然是不可能的。
有时候看见玩家死亡后躺在地上移动、带着其他玉效果乱跑,都是属于同样的原理。只要对方离开自己视野范围后再接触,就正常了。
3. 追杀
现象:玩家A甲刀无双追杀玩家B,砍飞了却发现对方不掉血
产生原因:1.玩家B网速不稳定,主要是玩家B网络上行速度受限
2.玩家A网速不稳定,主要是玩家A网络下行速度受限
分析:
玩家A,B均朝同一方向移动。
玩家A甲刀放无双;
服务器收到玩家A的无双指令,传递给玩家B;
玩家B跳起并向服务器发送数据包;
服务器向玩家A转发玩家B的跳跃指令;
由于延迟,玩家A没有收到B的跳跃指令,因此撞上本地看到的玩家B,向服务器发送攻击指令。
服务器判定玩家B跳起,因此玩家A的无双攻击无效;
玩家A没有收到攻击无效指令,看到B发出惨叫并被割飞,但是不掉血;
玩家A收到B的跳跃指令、攻击无效指令、B的新位置指令。
于是玩家A看到的是:B被自己的无双割飞后不伤血,继续跑路。
由于延迟程度的不同,产生的后续现象也不同:
玩家A还可能看到:B发出惨叫,然后出现在空中(延迟程度较低);
B直接跳起来,躲开自己的无双(没有延迟);
B被撞飞并且躺地上,守着尸体却发现B突然消失(延迟非常高);
跑D撞到对方听到惨叫声,对方却在继续跑,也是属于这样的情况。
4. 其他。。
因为我暂时想不起来,所以等我想到了或者大家提到了,再进行更新。
如果大家有觉得其他的疑问也可以在回复里说明,是属于延迟引起的问题我也会在这里更新。
作者:
【死神の再战】
时间:
2017-3-7 22:31
没看完,就冲这洋洋洒洒的一大篇,先顶再说
作者:
mynameisluyao
时间:
2017-3-8 12:26
你自话自说,简单的想法,在我看来这根本就是一个笑话!所以我郁闷。。。。
作者:
风云再起丶纯钧
时间:
2017-3-8 12:59
1、随便一个爆气爆气爆掉你的烧;
2、打断招后效果仍然在,就和没有断招一样(把定都踢了但是还会被定住,排除踢迟了);
3、速度微异常;
4、明明跑远了仍然会被后来的锤子砸中;
5、爆气爆不掉;
6、快死的时候起身贼快;或者无效。
这些只有一部分是所谓的网络延迟,你能解释得了这些个吗?
楼下的不要喷我,我菜,也不懂。
具了解开了网络加速器会有种轻微的加速度的感觉,可以自己下载个加速器试试。
作者:
【冥府】鬼骷髅
时间:
2017-3-8 18:02
提示:
作者被禁止或删除 内容自动屏蔽
作者:
有梦
时间:
2017-10-14 15:17
这游戏就这样了,太过于看网络,很无奈,有时候延迟,真的明明没被打一直被打,各种招,定躲了没用,偶尔延迟变很小很小,真的躲定,T定,抢定,躲破防一点压力都没有
作者:
小锤锤
时间:
2017-10-14 18:35
1/07修改的太多了,9/07就不会玩,不知道是否也很多
作者:
金圣惆怅
时间:
2018-1-22 22:52
2 楼讲的很明确,只不过个人认为流星蝴蝶剑的服务器是房主,这中间连接是:
玩家电脑 - 玩家宽带 - 玩家所在城市电信运营商路由器 - 互动对战平台所在城市电信运营商路由器 - 互动平台服务器机房(可以理解为互动游戏对战平台) - 服务器(可以理解为107或907房间)- 互动平台机房-互动对战平台所在城市-房主所在城市电信运营商路由器-房主宽带-房主的电脑。
欢迎光临 互动游戏对战平台官网 (http://hdbbs.fxt365.com:81/)
Powered by Discuz! X2.5