昨天测试4人联机,4人物里位置分别为:成都,厦门,武汉,郑州。服务器建立在成都,4人网络情况稳定,全程Ping值低于60。然后2个人用无线网卡,2个人用USB,USB线质量也很好,因为我们3人联机,从来就没有掉过。
但是,就在这理想的环境下,4人联机,还是掉线。我们之前测试的4人联机,成功过一次,其中3人都是用的USB线。
于是我猜想联机掉线的原因有以下几点:
1.4人联机,数据量过大,USB传输数据出现问题(但是之前的4人测试,3人USB没有掉线,而且速度很快,无延迟和瞬移,难道是RP好,这个原因暂时忽略)。
2.物里位置上的网络互通问题,可能中间出现掉包等情况(Ping值良好,掉包应该不存在,准备用加速器再测试一下,这个原因暂时忽略)。
3.这个可能是主要原因了,带宽!
由于PSP的联机设计为面联,所以,无需考虑延时以及带宽问题,但是当使用互联网时,就不得不解决带宽的问题了。由于一般用户的带宽都是2-4M左右,所以,在设计这个软件的时候,我是以一定的时间间隔去获取PSP的数据。在间隔的时间段内的PSP数据就全部忽略。假如说PSP的网络数据是连续性的,我这里就是跳跃性的处理,这也是为什么有时候BOSS或玩家会瞬移的原因。
而在PSP的联机游戏过程中,有很多地方需要进行数据同步,以怪物猎人举例,在进行任务时,开箱子,打BOSS等情况下需要进行同步,比如某个玩家拿了箱子中的道具,则需要反映给其他玩家,BOSS的移动以及BOSS的攻击和被攻击,都需要同步给其他玩家。这些数据是以接任务的人为主(如果接任务的掉线了,则应该是以第二个接任务的为主,猜想)。
一般在2-3人联机时,需要同步的数据量较小,在THL设定的时间间隔内,能处理完毕。但是当玩家多了以后,可能一些必须同步的数据被忽略了(在时间间隔内的数据),导致其他玩家一直在等待同步,当这个同步时间超过了游戏中设定的超时时间后,就让其他玩家掉线了(比如,4人联机,有可能其中一人拿箱子的道具,突然卡住了,而且要卡几秒时间,这个情况下,必掉!)
目前能想到的解决4人联机掉线办法就是缩小PSP数据的发送间隔(即THL里的流畅度,流程度的值越小,PSP数据的发送频率越高,瞬移及掉线的情况应该会减少),但是这样做的负面效果就是增加了带宽的占用量,如果是小水管,可能会因为延时过高而掉线 - -(好难平衡啊)。
今晚准备测试一下最后一个原因,流畅度的下限改为1吧(估计很少有人的家用带宽能承受这个数据量 0.0)。