首页> 中国专利> 在线游戏中动态延迟优化的稳健同步方法

在线游戏中动态延迟优化的稳健同步方法

摘要

本发明提供的在线游戏中动态延迟优化的稳健同步方法,针对不变时间桶同步算法不考虑网络波动,固定同步延迟处理游戏消息而致在线游戏状态同步效率较低的问题,提出了动态同步延迟时间桶算法,当网络条件良好时适当减小同步延迟来提高游戏响应性,条件较差时增加同步延迟来降低消息迟到对游戏一致性的影响,能更好的适应网络的波动,对游戏状态同步具有很强的灵活性,保证游戏状态的可靠性;针对时间桶算法对迟到的消息直接抛弃,会导致游戏状态受到破坏,进而导致游戏崩溃的问题,提出了基于感知强度的选择性回滚策略,将迟到消息对游戏状态影响的程度降到最低,能保证游戏数据的一致性,且游戏体验明显变好。

著录项

  • 公开/公告号CN112511256A

    专利类型发明专利

  • 公开/公告日2021-03-16

    原文格式PDF

  • 申请/专利权人 高小翎;

    申请/专利号CN202011326117.0

  • 发明设计人 高小翎;高宏松;

    申请日2020-11-24

  • 分类号H04J3/06(20060101);H04L29/08(20060101);H04L29/06(20060101);A63F13/35(20140101);A63F13/32(20140101);

  • 代理机构

  • 代理人

  • 地址 310000 浙江省杭州市上城区望江街道近江路12号

  • 入库时间 2023-06-19 10:14:56

说明书

技术领域

本发明涉及一种游戏的稳健同步方法,特别涉及一种在线游戏中动态延迟优化的稳健同步方法,属于在线游戏同步技术领域。

背景技术

在线游戏是最受广大网民喜爱的网络娱乐活动之一,当前在世界范围内大火的若干网游无疑是在线游戏受欢迎程度最好的证明。在线游戏可以帮助游戏者突破地域的限制,在日常生活中将处于不同地区、不同国家的游戏者通过一款应用软件联系起来。最近几年,在线游戏逐渐走向重度化和复杂化,俨然成为了人们生活之余的重要娱乐项目,但在线游戏也面临着严峻的技术挑战,在线游戏基于互联网技术进行数据交互,然而网络本身存在延迟、差错和丢包现象,对在线游戏状态同步提出了较大挑战。游戏世界里的同步效果是一款游戏成功与否的决定性因素,因此一款在线游戏采用的同步机制性能至关重要。

随着在线游戏性能大幅提升,游戏中在游戏者间,游戏者与服务器间传输数据的频率和数量大幅增加,但由于在线游戏依托的互联网固有的延迟和丢包导致在线游戏出现了状态不一致的情况。游戏状态的不一致会直接导致游戏的互动性、娱乐性和公平性受到影响。保证在线游戏的游戏状态在游戏者间状态严格同步,是在线游戏首要解决的问题。

不管在线游戏服务器采用的是P2P架构还是C/S架构,多个游戏者客户端之间进行通信都需要通过网络来传递消息,由此会带来一个关键性的问题,由于网络传输的延迟,客户端一产生一个移动操作后,当消息传送到客户端二后在界面显示出来时已经和客户端1屏幕上的信息不一致。作为在线游戏,最重要的是保证每个游戏者通过屏幕观察到的游戏状态的区别维持在几乎肉眼看不出来的范围内。在线游戏的诞生就决定了其必须依托于网络,这也决定了在线游戏必须解决计算机网络与生俱来的网络延迟、丢包、带宽等问题对游戏状态一致性的负面影响。

稳健同步算法因为能够很好的保证游戏状态的一致性被广泛应用于对实时性要求不太高的游戏中,尤其广泛应用在混合P2P模式下局域网中的在线游戏中。在采用混合P2P模式的在线游戏中,每个结点自己通过处理游戏消息来更新游戏状态。稳健同步算法中应用最广泛的为现有技术的不变时间桶同步算法。

现有技术的不变时间桶同步算法将游戏过程划分为时长不变的周期,每个周期对应一个桶。根据当前网路延迟确定一个不变的滞后时间,不管是本地产生的消息还是来自其它结点的消息,都会根据消息产生的时间加上滞后时间后的值将其放入相应的桶中,当模拟时间进行到该周期末尾时,执行属于该周期的所有消息来刷新游戏状态,并将迟到的消息直接抛弃。时间桶稳健同步方法的基本原理演示图如图1所示。

不变时间桶算法为了解决由于网络延迟对同步算法的影响而引入了额外的同步延迟,同时避免Locksetp中游戏者结点的盲目苦等的情况发生,这样能在一定程度上保证游戏状态的一致性。但在实际应用中,网络的延迟不具有上限,所以在网络波动比较大的情况下,确定一个既能保证游戏交互性又能兼顾游戏状态一致性的延迟时间比较困难。不变时间桶算法一定程度上解决了由于部分游戏者延迟过高对同步效果的影响,时间桶根据所有游戏者的延迟决定一个同步延迟的上限,将游戏过程划分为时间长度不变的周期,每个周期对应一个桶。当模拟时间进行到该周期末尾时,则执行属于该周期的所有消息来刷新游戏状态。

现有技术不变时间桶同步算法消息处理步骤:第1步,根据游戏的特征设定同步延迟的最大容忍值;第2步,设定游戏过程中的桶周期长度,即每隔多长时间更新一次游戏状态;第3步,在游戏运行开始时,通过NTP协议对参与游戏的游戏者结点进行时钟同步;第4步,对于游戏者结点根据收到的消息,将消息投递T

现有技术不变时间桶同步算法的缺点主要包括:

第一,现有技术不变时间桶同步算法会根据游戏者的延迟来决定一个同步延迟上限,而实际情况是网络延迟不会维持在一个不变的水平,而是会出现频繁的波动,当网络条件良好时,游戏者结点的消息可以很快抵达其它游戏者结点,过长的同步延迟会降低游戏的响应性,而当网络条件较差时,不变的同步延迟仍然会出现大量的数据延迟,而对于超过同步延迟上限的消息会直接丢弃然而对于很多游戏将消息直接抛弃是不可想象的,这很可能会破坏游戏一致性并导致游戏的崩溃。

第二,由于在线游戏依托的互联网固有的延迟和丢包导致在线游戏出现了状态不一致的情况,现有技术无法保证在线游戏的游戏状态在游戏者间状态严格同步,游戏状态的不一致会直接导致游戏的互动性、娱乐性和公平性受到影响,现有技术时间桶算法对迟到的消息直接抛弃,会导致游戏状态受到破坏,进而导致游戏崩溃的问题,迟到消息对游戏状态影响的程度大,不能较好的保证游戏数据的一致性,且对在线游戏体验影响很大;

第三,由于网络延迟经常出现波动,现有技术采用不变时间桶算法,不考虑网络延迟而在整个同步过程中采用不变的同步延迟去处理游戏消息,会使游戏的同步性能严重降低,例如当网络条件良好时,游戏消息能及时传输到其它结点,而结点在收到消息后却得不到及时的处理,陷入无意义的盲目等待。现有技术的时间桶算法对迟到的消息直接抛弃,这会导致游戏状态受到破坏,迟到消息对游戏状态影响的程度很大。

第四,采用现有技术,玩家在游戏的过程中对游戏响应性的感受差,有明显的卡顿感;容易察觉到游戏数据不一致的情况和游戏信息不一致的情况;玩家在游戏过程中能感觉到明显的画面抖动;由于网络延迟的存在,消息经常出现迟到的现象,消息的迟到严重影响在线游戏的同步性能;现有技术会对游戏状态进行频繁回滚,严重影响游戏者的体验。

发明内容

本发明提供的在线游戏中动态延迟优化的稳健同步方法,针对不变时间桶同步算法不考虑网络波动,固定同步延迟处理游戏消息而致在线游戏状态同步效率较低的问题,提出了动态同步延迟时间桶算法。当网络条件良好时适当减小同步延迟来提高游戏响应性,条件较差时增加同步延迟来降低消息迟到对游戏一致性的影响,本发明提供的在线游戏中动态延迟优化的稳健同步方法能更好的适应网络的波动,对游戏状态同步具有很强的灵活性,保证游戏状态的可靠性;针对时间桶算法对迟到的消息直接抛弃,会导致游戏状态受到破坏,进而导致游戏崩溃的问题,提出了基于感知强度的选择性回滚策略,可以将迟到消息对游戏状态影响的程度降到最低,基于强度感知的选择性回滚优化的时间桶算法能较好的保证游戏数据的一致性,且对在线游戏体验影响较小,游戏体验明显变好。

为达到以上技术效果,本发明所采用的技术方案为:

在线游戏中动态延迟优化的稳健同步方法,对不变时间桶同步算法优化,消息的同步延迟根据当前网路的状况动态调整,当网络条件良好时适当缩短同步延迟,提高游戏的响应性,而当网络条件较差时适当延长同步延迟,降低消息的迟到率,保证在线游戏消息的顺序处理;本发明提出基于强度感知的选择性回滚策略,当游戏者结点对产生迟到消息结点感应强度较高时,选择状态回滚,将迟到消息对游戏状态影响的程度降到最低;

基于强度感知的算法优化为:在游戏开始时,游戏者结点间首先利用网络时间协议进行时钟同步,采用时间桶算法的游戏者结点收到消息后会将消息投入相应的桶中以便执行,基于游戏者结点间强度感知对迟到消息选择性回滚的时间桶同步算法优化,游戏者结点在每次执行桶中,保存执行完该桶周期消息后的游戏状态,并定时清理不再需要的状态,当本地游戏者结点对迟到消息产生结点感知等级为理解等级时,迟到的消息对于游戏者结点非常重要,此时将游戏状态回滚到该迟到消息前的桶状态;如果本地游戏者结点对迟到消息产生结点感知等级为其它三个等级时,则直接将迟到的消息抛弃;

基于强度感知选择性回滚的时间桶算法优化后消息处理步骤为:

第一步:游戏开始时通过网络时间协议对各个游戏者结点进行时钟同步;

第二步:判断收到的消息是否已经迟到,如果没迟到则转到第三步,否则将收到的根据设定好的同步延迟投入相应的桶中,转入第五步;

第三步:根据游戏者结点对其它对象的强度感知的计算式计算本结点对产生迟到消息结点的感知强度,并根据感知强度得出感知的等级,决定是否进行状态回滚,如果不进行回滚,则直接将该消息抛弃,如果选择性回滚则转到第四步,否则转入第五步;

第四步:依据迟到消息的时间戳将迟到的消息投入到相应的桶中,并将游戏状态回滚到该桶前一个桶对应的状态,接着将游戏状态快速进行到当前模拟时间;

第五步:判断时钟是否已经到了最新的桶周期,如果是则利用本周期中桶的消息刷新游戏状态,否则返回第一步,进入下一个消息处理周期。

在线游戏中动态延迟优化的稳健同步方法,进一步的,网络状态评价:游戏者结点首先通过网络时间协议对结点进行时钟同步,经过时间同步的结点可基于同一时钟处理消息;在游戏者结点根据当前的同步延迟对收到的消息进行处理时,以Ws为评价周期对网络状态进行评价,同时根据本评价周期中数据的延迟水平来决定下一个评价周期的同步延迟;网络延迟为数据在一个游戏者结点产生到另一个结点接收到该数据包所经历的时间,在时间桶算法中,每个结点在发送数据包前都会写入当前的时间戳,所以网络延迟可通过数据包中的时间戳和收到该数据包时的本地时钟间的差值获取;

游戏者结点对本评价周期网络延迟的量化式:

其中m代表本评价周期中游戏者结点收到的数据包总数,De

中心服务器结点对本评价周期结点间网络延迟量化如式2:

其中n代表游戏者结点的总数目,

最新的同步延迟时间计算如式3:

SyDe

其中SyDe

在线游戏中动态延迟优化的稳健同步方法,进一步的,本发明提出动态同步延迟的时间桶消息处理的优化,在游戏过程中以固定周期对网络状态进行评价,在评价周期中以本周期中收到的所有数据包的延迟为依据,对本周期的延迟进行量化,并根据评价结果对在线游戏的同步延迟做出动态调整;

基于动态同步延迟的消息处理步骤如下:

步骤一:参与游戏的所有结点在评价周期中根据式1对网络状态做出评价;

步骤二:在评价周期结束后,每个游戏结点将本周期的评价结果发送给中心服务器结点,中心服务器结点根据式2对本评价周期中整个游戏者间整体的网络环境做出评价;

步骤三:中心服务器结点根据式3计算出下个评价周期中游戏者结点处理消息的同步延迟,并将同步延迟的计算结果通知给其它所有结点;

步骤四:所有游戏者结点在下个周期中统一采用该同步延迟值来计算收到的消息或者自己本地产生的消息所投放的桶周期;

步骤五:在评价周期中游戏者结点按照本发明不变时间桶同步算法处理步骤处理游戏消息。

在线游戏中动态延迟优化的稳健同步方法,进一步的,在游戏中影响游戏者对周围事物的强度感知主要依赖游戏者游戏角色的视场范围和游戏结点的影响范围,影响游戏角色结点强度感知的因素归结为:

第一,在游戏世界中,角色间的距离对游戏者的强度感知影响最为直接,距离越近,彼此之间强度感知越高,相反距离越远,彼此之间的强度感知也就越低,游戏者在与其他被感知的游戏者对象距离接近的过程中,强度感知会经历察觉、辨认和理解三个阶段;

第二,在三维空间中,游戏者的视场范围也直接影响着游戏者对其他游戏对象的强度感知,游戏者对处于自己视场范围内的角色具有很强的强度感知,在视场范围外的强度感知较弱,影响游戏者视场范围的因素有游戏者的视觉方向、可视角度;

第三,在三维空间中,游戏者对其他对象的强度感知还与被感知对象的大小关联,游戏者对比自己大的对象的强度感知更高;

第四,三维空间中对象的运动方向会对游戏者的强度感知产生影响,如果游戏者的运动方向与被感知对象的运动方向使二者在不久后会相遇,游戏者对该对象的强度感知也会提升;

以上因素对游戏者的强度感知有直接关系,根据以上因素对游戏者的强度感知进行量化。

在线游戏中动态延迟优化的稳健同步方法,进一步的,强度感知数学模型定义:

感知实体:在线游戏中能够感知其它实体的角色,主要属性有实体类型、实体位置、可视角度、视场方向、可视高度、可视距离、作用高度、作用距离,运动速度V(x,y,z);

感知范围:感知实体能够感知到的范围,也是游戏者在游戏的过程中感兴趣的范围;

影响范围:游戏实体在游戏中能够影响的范围;

感知强度:游戏者结点感知其它结点的强力程度;

感知等级:游戏者感知到其它结点的强力程度,即对强度感知进行分级量化,将感知范围划分为:无感知,察觉,辨认、理解四个等级。

在线游戏中动态延迟优化的稳健同步方法,进一步的,强度感知量化算法:

游戏者结点的感知范围是以游戏者结点能够观察到的扇形区域,该扇形区域由游戏者角色的位置、可视高度、可视角度、视场方向以及可视距离决定的扇形柱体,游戏者结点的影响范围则为游戏者角色的当前位置坐标为圆心,作用距离为半径,作用高度为高的圆柱体,假设游戏者结点的位置坐标为Q(x

在线游戏中动态延迟优化的稳健同步方法,进一步的,在游戏世界中,游戏者对其他游戏者的强度感知与本游戏者结点的感知范围以及其他结点的影响范围有很大的关联性,假设游戏中两个游戏者结点X与游戏者结点Y,那么游戏者结点X感知范围与游戏者结点Y的影响范围相交的大小可作为评价游戏者X对游戏者Y强度感知的一个指标;假设游戏者X感知范围与游戏者Y影响范围相交面积为S(SaR,IaR),记f为游戏者Y对游戏者X的作用系数,f的计算式4:

在游戏者结点间,强度感知还与两个结点间的距离有直接的关系,如果游戏者结点Y在在游戏者结点B的感知范围内,那么两个结点距离越近强度感知越高,两个游戏者结点间的距离可作为评价游戏者结点X坐标为Q(x

在实际游戏中还存在的情况是,游戏者结点Y不在游戏者结点X的可视范围内或游戏者结点X的感知范围与游戏者结点Y的影响范围不存在交集,但是根据游戏者结点X和游戏者结点Y的运动规律,在不久之后游戏者结点X很可能与游戏者结点Y会出现相互影响,这种潜在的影响也是游戏者结点X对游戏者结点Y强度感知的一个指标,记w为潜在作用因子,游戏者结点X的速度记为U(u

由以上总结可知,游戏者结点对其它结点的强度感知通过作用系数、距离作用因子、潜在作用因子三个指标进行量化,游戏者结点对其它结点的感知强度PeI表示为式7:

当被感知实体位于感知实体的可视范围内时,感知强度的计算公式为式7中第一个公式,当被感知实体位于感知实体可视范围外时强度感知的计算式为式7中的第二个公式。

在线游戏中动态延迟优化的稳健同步方法,进一步的,划分感知等级:根据感知结点对被感知结点的感知强烈程度,对感知强度进行等级划分,将感知强度划分四个等级:理解等级、辨认等级、察觉等级、无感知等级,设定两个常量p、q,当感知强度PeI(X,Y)<0时感知等级设置为无感知等级,当感知强度0≤PeI(X,Y)≤p时感知等级设置为察觉等级,当感知强度p<PeI(X,Y)≤q时感知等级设置为辨认等级,当感知强度PeI(X,Y)>q时设置为理解等级,p、q根据游戏的要求预先设定。

与现有技术相比,本发明的优势和创新点在于:

第一,本发明提供的在线游戏中动态延迟优化的稳健同步方法,针对不变时间桶同步算法不考虑网络波动,固定同步延迟处理游戏消息而致在线游戏状态同步效率较低的问题,提出了动态同步延迟时间桶算法。当网络条件良好时适当减小同步延迟来提高游戏响应性,条件较差时增加同步延迟来降低消息迟到对游戏一致性的影响,本发明提供的在线游戏中动态延迟优化的稳健同步方法能更好的适应网络的波动,对游戏状态同步具有很强的灵活性,保证游戏状态的可靠性,在实际应用中有很高的利用价值;

第二,本发明提供的在线游戏中动态延迟优化的稳健同步方法,针对时间桶算法对迟到的消息直接抛弃,会导致游戏状态受到破坏,进而导致游戏崩溃的问题,提出了基于感知强度的选择性回滚策略,可以将迟到消息对游戏状态影响的程度降到最低,基于强度感知的选择性回滚优化的时间桶算法能较好的保证游戏数据的一致性,且对在线游戏体验影响较小,是一种优势突出,且具备显著创新性的保证游戏数据一致性的方法;

第三,本发明提供的在线游戏中动态延迟优化的稳健同步方法,对不变时间桶稳健同步算法进行了优化,消息的同步延迟会根据当前网路的状况动态调整,当网络条件良好时适当缩短同步延迟,提高游戏的响应性,而当网络条件较差时适当延长同步延迟,降低消息的迟到率,进而保证在线游戏消息的顺序处理。针对现有技术的时间桶算法对迟到的消息直接抛弃,这会导致游戏状态受到破坏,进而导致游戏崩溃。本发明提出基于强度感知的选择性回滚策略,当游戏者结点对产生迟到消息结点感应强度较高时,选择状态回滚。这样可将迟到消息对游戏状态影响的程度降到最低,游戏的互动性、娱乐性和公平性大幅提高,保证在线游戏的游戏状态在游戏者间状态严格同步,玩家的游戏体验明显变好;

第四,根据对参与实验人员调查,采用本发明提供的在线游戏中动态延迟优化的稳健同步方法未感觉到明显的卡顿,采用基于动态周期时间桶算法的实验人员表示游戏整体流畅性好,虽出现了几次可忍受的卡顿,但比采用不变时间桶算法的流畅性要好很多,采用本发明的方法游戏过程中没有察觉到游戏数据不一致的情况,也没有游戏信息不一致的情况,游戏过程中没有感觉到明显的画面抖动,整体游戏体验有大幅提升。

附图说明

图1是时间桶稳健同步方法的基本原理演示图。

图2是基于动态延迟优化的时间桶稳健同步方法的原理图。

图3是基于强度感知选择性回滚的时间桶算法优化后消息处理步骤图。

具体实施方式

下面结合附图,对本发明提供的在线游戏中动态延迟优化的稳健同步方法的技术方案进行进一步的描述,使本领域的技术人员可以更好的理解本发明并能予以实施。

本发明对不变时间桶稳健同步算法进行了优化,由于网络延迟经常出现波动,如果采用不变时间桶算法,不考虑网络延迟而在整个同步过程中采用不变的同步延迟去处理游戏消息,会使游戏的同步性能严重降低,例如当网络条件良好时,游戏消息能及时传输到其它结点,而结点在收到消息后却得不到及时的处理,陷入无意义的盲目等待。本发明对不变时间桶同步算法优化后,消息的同步延迟会根据当前网路的状况动态调整,当网络条件良好时适当缩短同步延迟,提高游戏的响应性,而当网络条件较差时适当延长同步延迟,降低消息的迟到率,进而保证在线游戏消息的顺序处理。现有技术的时间桶算法对迟到的消息直接抛弃,这会导致游戏状态受到破坏,进而导致游戏崩溃。本发明提出基于强度感知的选择性回滚策略,当游戏者结点对产生迟到消息结点感应强度较高时,选择状态回滚,这样可将迟到消息对游戏状态影响的程度降到最低。

一、基于动态同步延迟对时间桶算法的优化

不变时间桶算法采用不变的同步延迟对游戏状态进行同步,算法不具有灵活性。网络拥塞和链路本身的问题都会影响网络延迟,所以实际环境中网络延迟会出现频繁的波动。如果不变时间桶不考虑根据当前网络状态对同步延迟进行动态调整,必然会造成时间浪费和不必要的同步等待,降低在线游戏的性能。在网络条件良好的情况下适当减小同步延迟来提高游戏的响应性,在网络条件较差时适当延长同步延迟来保证游戏状态的一致性,这样既能在网络良好的对游戏状态进行及时同步,当网络条件较差时又能牺牲一定的响应性来保证在线游戏状态的一致性。

对于在线游戏,因为游戏者的视觉延迟,网络延迟在150ms以下游戏者不会有明显的卡顿感。同步延迟初始值考虑设置为SyDe

(一)网络状态评价

游戏者结点首先通过网络时间协议对结点进行时钟同步,经过时间同步的结点可基于同一时钟处理消息。在游戏者结点根据当前的同步延迟对收到的消息进行处理时,以Ws为评价周期对网络状态进行评价,同时根据本评价周期中数据的延迟水平来决定下一个评价周期的同步延迟。网络延迟为数据在一个游戏者结点产生到另一个结点接收到该数据包所经历的时间,在时间桶算法中,每个结点在发送数据包前都会写入当前的时间戳,所以网络延迟可通过数据包中的时间戳和收到该数据包时的本地时钟间的差值获取。

游戏者结点对本评价周期网络延迟的量化式:

其中m代表本评价周期中游戏者结点收到的数据包总数,De

中心服务器结点对本评价周期结点间网络延迟量化如式2:

其中n代表游戏者结点的总数目,

最新的同步延迟时间计算如式3:

syDe

其中SyDe

(二)动态同步延迟的时间桶消息处理

本发明提出动态同步延迟的时间桶消息处理的优化,在游戏过程中以固定周期对网络状态进行评价。在评价周期中以本周期中收到的所有数据包的延迟为依据,对本周期的延迟进行量化,并根据评价结果对在线游戏的同步延迟做出动态调整。

基于动态同步延迟的消息处理步骤如下:

步骤一:参与游戏的所有结点在评价周期中根据式1对网络状态做出评价;

步骤二:在评价周期结束后,每个游戏结点将本周期的评价结果发送给中心服务器结点,中心服务器结点根据式2对本评价周期中整个游戏者间整体的网络环境做出评价。

步骤三:中心服务器结点根据式3计算出下个评价周期中游戏者结点处理消息的同步延迟,并将同步延迟的计算结果通知给其它所有结点;

步骤四:所有游戏者结点在下个周期中统一采用该同步延迟值来计算收到的消息或者自己本地产生的消息所投放的桶周期;

步骤五:在评价周期中游戏者结点按照本发明不变时间桶同步算法处理步骤处理游戏消息。

基于动态延迟优化后的时间桶方法如图2所示,采用动态同步延迟的时间桶算法可根据网络状况适当调整处理等待时间。

二、基于强度感知选择性回滚的时间桶算法优化

现有技术的时间桶算法会直接抛弃迟到的游戏消息,然而对于采用非C/S架构的在线游戏来说,直接抛弃迟到消息是无法接受的,甚至可能会引发游戏崩溃。如果对于游戏者结点状态影响程度较高的迟到消息进行状态回滚,可以极大的降低游戏迟到消息对游戏状态的影响。在线游戏中游戏角色都有自己的感知范围和影响范围,根据游戏者结点对其它游戏结点强度感知的不同,对迟到的消息进行过滤和选择性回滚,这种优化策略大幅提高在线游戏状态的一致性。

(一)量化强度感知

在线游戏中游戏者结点的任何操作只能影响该游戏结点附件一定范围内的游戏者,同样在线游戏中游戏者结点也只对距离自己一定可视范围内感兴趣,在兴趣范围内的结点,游戏者结点才能感知到其存在,将游戏者感知其它实体的强烈程度定义为强度感知,因为在线游戏,尤其是3D在线游戏游戏者结点的可视范围都有限制,只对兴趣范围内游戏结点产生消息迟到时回滚,可保证游戏状态一致的同时,保证游戏状态的可靠性。

1.影响游戏者强度感知的因素

在游戏中影响游戏者对周围事物的强度感知主要依赖游戏者游戏角色的视场范围和游戏结点的影响范围,影响游戏角色结点强度感知的因素归结为:

(1)在游戏世界中,角色间的距离对游戏者的强度感知影响最为直接,这与现实生活中一样,人与人间的距离越近,彼此之间强度感知越高,相反人与人的距离越远,彼此之间的强度感知也就越低。游戏中游戏者对其他游戏者角色的强度感知同样遵循这一规律,游戏者在与其他被感知的游戏者对象距离接近的过程中,强度感知会经历察觉、辨认和理解三个阶段。

(2)在三维空间中,游戏者的视场范围也直接影响着游戏者对其他游戏对象的强度感知,游戏者对处于自己视场范围内的角色具有很强的强度感知,在视场范围外的强度感知较弱,影响游戏者视场范围的因素有游戏者的视觉方向、可视角度。

(3)在三维空间中,游戏者对其他对象的强度感知还与被感知对象的大小关联,游戏者对比自己大的对象的强度感知更高。

(4)三维空间中对象的运动方向也会对游戏者的强度感知产生影响,如果游戏者的运动方向与被感知对象的运动方向使得二者在不久后会相遇,那么游戏者对该对象的强度感知也会提升。

以上因素对游戏者的强度感知有直接关系,所以可根据以上因素对游戏者的强度感知进行量化。

2.强度感知数学模型定义

(1)感知实体:在线游戏中能够感知其它实体的角色,主要属性有实体类型、实体位置、可视角度、视场方向、可视高度、可视距离、作用高度、作用距离,运动速度V(x,y,z),其中对象类型、可视角度、可视高度、可视距离、作用高度、作用距离在游戏设计中预先设定。

(2)感知范围:感知实体能够感知到的范围,也是游戏者在游戏的过程中感兴趣的范围。

(3)影响范围:游戏实体在游戏中能够影响的范围。

(4)感知强度:游戏者结点感知其它结点的强力程度。

(5)感知等级:游戏者感知到其它结点的强力程度,即对强度感知进行分级量化,将感知范围划分为:无感知,察觉,辨认、理解四个等级。

3.强度感知量化算法

游戏者结点的感知范围是以游戏者结点能够观察到的扇形区域,该扇形区域由游戏者角色的位置、可视高度、可视角度、视场方向以及可视距离决定的扇形柱体。游戏者结点的影响范围则为游戏者角色的当前位置坐标为圆心,作用距离为半径,作用高度为高的圆柱体。假设游戏者结点的位置坐标为Q(x

在游戏世界中,游戏者对其他游戏者的强度感知与本游戏者结点的感知范围以及其他结点的影响范围有很大的关联性。假设游戏中两个游戏者结点X与游戏者结点Y,那么游戏者结点X感知范围与游戏者结点Y的影响范围相交的大小可作为评价游戏者X对游戏者Y强度感知的一个指标。假设游戏者X感知范围与游戏者Y影响范围相交面积为S(SaR,IaR),记f为游戏者Y对游戏者X的作用系数,f的计算式4:

在游戏者结点间,强度感知还与两个结点间的距离有直接的关系,如果游戏者结点Y在在游戏者结点B的感知范围内,那么两个结点距离越近强度感知越高。两个游戏者结点间的距离可作为评价游戏者结点X坐标为Q(x

在实际游戏中还存在的情况是,游戏者结点Y不在游戏者结点X的可视范围内或游戏者结点X的感知范围与游戏者结点Y的影响范围不存在交集,但是根据游戏者结点X和游戏者结点Y的运动规律,在不久之后游戏者结点X很可能与游戏者结点Y会出现相互影响。这种潜在的影响也是游戏者结点X对游戏者结点Y强度感知的一个指标,记w为潜在作用因子,游戏者结点X的速度记为U(u

由以上总结可知,游戏者结点对其它结点的强度感知通过作用系数、距离作用因子、潜在作用因子三个指标进行量化。游戏者结点对其它结点的感知强度PeI表示为式7:

当被感知实体位于感知实体的可视范围内时,感知强度的计算公式为式7中第一个公式,当被感知实体位于感知实体可视范围外时强度感知的计算式为式7中的第二个公式。

4.划分感知等级

根据感知结点对被感知结点的感知强烈程度,对感知强度进行等级划分,将感知强度划分四个等级:理解等级、辨认等级、察觉等级、无感知等级。设定两个常量p、q,当感知强度PeI(X,Y)<0时感知等级设置为无感知等级,当感知强度0≤PeI(X,Y)≤p时感知等级设置为察觉等级,当感知强度p<PeI(X,Y)≤q时感知等级设置为辨认等级,当感知强度PeI(X,Y)>q时设置为理解等级,p、q根据游戏的要求预先设定。

(二)基于强度感知的算法优化

在游戏开始时,游戏者结点间首先利用网络时间协议进行时钟同步,采用时间桶算法的游戏者结点收到消息后会将消息投入相应的桶中以便执行。由于现有技术时间桶对收到的迟到消息直接抛弃,导致游戏状态受到破坏进而出现游戏崩溃的现象,本发明提出基于游戏者结点间强度感知对迟到消息选择性回滚的时间桶同步算法优化,游戏者结点在每次执行桶中,保存执行完该桶周期消息后的游戏状态,并定时清理不再需要的状态。当本地游戏者结点对迟到消息产生结点感知等级为理解等级时,迟到的消息对于游戏者结点非常重要,此时将游戏状态回滚到该迟到消息前的桶状态。如果本地游戏者结点对迟到消息产生结点感知等级为其它三个等级时,则直接将迟到的消息抛弃。

基于强度感知选择性回滚的时间桶算法优化后消息处理步骤为:

第一步:游戏开始时通过网络时间协议对各个游戏者结点进行时钟同步;

第二步:判断收到的消息是否已经迟到,如果没迟到则转到第三步,否则将收到的根据设定好的同步延迟投入相应的桶中,转入第五步;

第三步:根据游戏者结点对其它对象的强度感知的计算式计算本结点对产生迟到消息结点的感知强度,并根据感知强度得出感知的等级,决定是否进行状态回滚,如果不进行回滚,则直接将该消息抛弃,如果选择性回滚则转到第四步,否则转入第五步;

第四步:依据迟到消息的时间戳将迟到的消息投入到相应的桶中,并将游戏状态回滚到该桶前一个桶对应的状态,接着将游戏状态快速进行到当前模拟时间;

第五步:判断时钟是否已经到了最新的桶周期,如果是则利用本周期中桶的消息刷新游戏状态,否则返回第一步,进入下一个消息处理周期。

基于强度感知选择性回滚的时间桶算法优化后消息处理步骤流程图如图3所示。

三、时间桶同步算法优化实验与结果分析

(一)实验场景

在Unity3D中建立一个游戏场景,该场景中有三个角色,18台客户端分为两组,每组9个客户端,第一组采用不变时间桶算法,第二组采用本发明基于动态同步延迟且采取基于强度感知选择性回滚的时间桶算法对收到的游戏时间进行处理。每组在游戏的过程中,每个游戏者控制着一个游戏角色在一个大小为180*180的地图中运动,这样可以保证三个角色一直在同一个视野范围内,同步效果可直接观察到。其次将地图划分为90*90的格子,每次角色只能移动一个格子,游戏者可通过键盘上的W、A、S、D控制角色的移动,角色在移动的过程中可以对其他两个角色进行攻击,但是攻击频率限制在一分钟9次以内。为保证实验结果的可靠性,两组游戏者同时在同一网络环境下进行游戏。

(二)方法性能评价指标

本次实验目的在于验证优化后的时间桶同步算法是否能在保证游戏状态一致性的前提下,提高在线游戏的性能。所以需要对游戏的性能客观和准确的评价。本发明提出以下评价指标。

1.主观评价指标

一是参与实验人员在游戏的过程中对游戏响应性的感受,实验人员是否有明显的卡顿感;二是参与实验人员在游戏过程中是否察觉到游戏数据不一致的情况,以及游戏信息不一致的情况;三是参与实验人员在游戏过程中是否感觉到明显的画面抖动,以及抖动发生的频率是否能接受。

2.客观评价指标

一是消息等待处理的时间,基于动态延迟的时间桶算法的消息处理时间会动态变化;二是消息的迟到数,由于网络延迟的存在,消息经常出现迟到的现象,消息的迟到严重影响在线游戏的同步性能;三是游戏状态的回滚次数,基于强度感知选择性回滚的时间桶算法会对游戏状态进行回滚,回滚的频繁程度影响游戏者的体验。

(三)实验结果分析

实验在局域网中完成,将18台客户机分为两组。第一组采用现有技术的不变时间桶同步算法,第二组采用本发明优化后的时间桶同步算法。通过实验参与人员的主观切身感受和客观的各个指标对每种算法进行客观评价。为保证实验的严密性,两组客户端除了采用的消息处理算法外其它一切指标都相同。保证游戏实验结果具有可靠性,游戏进行时间保证在60分钟以上,且消息的交互量要在18000次以上。

实验一:

实验对象:不变时间桶同步算法与采用动态同步延迟优化后的时间桶算法。

实验目的:对比两种算法在的消息处理响应时间和消息的迟到数目,以便评价基于动态延迟优化后的时间桶算法与传统算法的性能优化效果。

实验参数:用Clumsy软件模拟不同的网络状态,使网络延迟可以在100ms到210ms内变化。

实验结果:根据对参与实验人员调查得出以下结论,两组实验人员都未感觉到明显的卡顿,采用基于动态周期时间桶算法的实验人员表示游戏整体流畅性好,但是出现了几次可忍受的卡顿。采用不变时间桶算法的实验人员表示游戏的流畅性勉强能够接受,但有待进一步提高。

优化后的算法与现有技术的算法相比在网络条件良好时二者的消息迟到数相差无几,但是当网络延迟在140ms以上时,本发明优化后的算法消息迟到数有了明显的下降,而现有技术的算法消息迟到数呈直线上升,由此得出一个结论:基于动态同步延迟优化的时间桶算法有效降低了游戏的迟到率。在网络延迟小于130ms时,优化后的算法处理消息的比例明显高于现有技术的不变时间桶算法处理消息的比例,而且优化后的算法有1/2的消息能在125ms内得到执行。

综合参与实验的人员的主观感受和分析得出以下结论:一是基于动态同步延迟优化的时间桶算法能保证较好游戏的一致性;二是基于动态同步延迟优化的时间桶算法有效降低了消息的迟到率,并提高了在线游戏的响应性。

实验二:

实验对象:现有技术的不变时间桶同步算法与本发明基于强度感知的选择性回滚的时间桶算法。

实验目的:对比两个算法在的游戏中数据、状态的准确性,消息迟到数目,游戏状态的回滚次数,以便评价基于强度感知选择性回滚的时间桶算法与现有技术算法的性能优化效果。

实验参数:用Clumsy软件模拟不同的网络状态,使网络延迟在100ms到210ms内变化。

实验结果:根据对参与实验人员调查得出以下结论,两组实验人员都未感觉到明显的卡顿,采用基于强度感知的选择性回滚的实验人员表示出现过几次较小的游戏画面抖动,但在可接受的范围内。采用不变时间桶算法的实验人员表示游戏过程中出现了游戏结果与预期不符的情况,在一定程度上影响了游戏体验。

得出不是每出现一个消息迟到就会对游戏状态进行一次回滚,也不是将迟到的消息直接抛弃,而是进行了选择性回滚。游戏状态的回滚次数大概占到迟到数的1/3,通过对参与实验人员的调查可知,采用不变时间桶算法的实验人员有多次的游戏结果与预期不符的情况,但采用本发明优化后的算法的实验人员没有此类反应,采用优化后的算法人员反应有游戏画面抖动的情况,但是次数很少,在可接受范围内。

通过以上分析得出以下结论:基于强度感知的选择性回滚优化的时间桶算法能较好的保证游戏数据的一致性,且对在线游戏体验影响较小。

本发明对时间桶同步算法的优化总结为:针对不变时间桶同步算法不考虑网络波动,而采用不变同步延迟处理游戏消息导致游戏状态同步效率低的问题,提出如下的优化策略,如果当网络条件良好,适当减小同步延迟来提高游戏的响应性;当网络条件较差时,适当延长同步延迟来保证与游戏状态的一致性,这样游戏状态既能在网络良好时对游戏状态进行及时同步,当网络条件较差时又可以牺牲一定的响应性来保证游戏状态的一致性。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号