1.本发明涉及网络游戏技术领域,具体涉及一种基于确定性的高精度同步预测回滚方法。
背景技术:2.网络游戏是一种多人联机的实时性、互动性软件产品,每一位玩家通过操作一个游戏客户端来体验游戏,每一玩家的各客户端之间通过互联网网络来实现互联,即通过网络传输来实现各客户端间的数据同步,以此来实现在不同的客户端上呈现出一致的游戏体验。
3.网络游戏的一个特点是依赖于网络传输。玩家通过客户端的输入装置产生指令,指令需要且必须经网络传输给服务器,服务器经校验、计算后会产生新的指令返回给客户端,客户端收到检验计算过的新指令后才能产生对玩家输入指令的反馈。网络游戏中这种从指令的产生到指令的生效的时长,称为指令响应时延。
4.如图1所示,指令响应时延 = 1.指令发出时长 + 2.指令上行传输时长 + 3.服务器处理时长 + 4.指令下行传输时长 + 5.指令生效时长。
5.其中1.指令发出时长、5.指令生效时间与客户端网络模块架构实现有关,是一个稳定的固定时长,在极致的优化下可以减少到毫秒级(ms)。3.服务器处理时长与服务端架构实现有关,是一个稳定的固定时长,在极致优化下也可以减少到毫秒级(ms)。而2.指令上行传输时长、4.指令下行传输时长与网络环境有关。
6.首先,无论是上行传输时间还是下行传输时间,在目前的网络环境下传输时长本身是一个几百毫秒级的时长,此时长远远高于1、3、5的时长。网络传输的这个特性被称为高时延,意思是数据从一个端通过网络传输到另一端的时长较长。
7.其次,上行与下行传输时间是一个不稳定的时间,较好网络环境下的传输时长与较差网络环境下的传输时长可能会差出几倍,例如100ms~800ms间,上下限的差距是八倍。网络传输的这个特性被称为高抖动,意思是传输时长忽快忽慢,而不是稳定时长。
8.数据的上行传输时长与下行传输时长的和,也称为 rtt(round trip time)。
9.在客户端与服务器架构都优化良好的情况下,指令响应时延主要取决于2.上行传输时间与4.下行传输时间,而1.指令发出时间、3.服务器处理时长、5.指令生效时长的影响则较小。
10.网络游戏是一个高实时性互动性软件产品,玩家通过客户端的输入装置来触发指令,通过指令来改变游戏走势获得胜利。网络游戏产品要求对于玩家产生的每一个指令能够给予快速的响应,所以营造网络游戏良好体验的一个关键点就是降低指令响应时延。在一个高时延、高抖动的网络传输环境里,玩家在触发一个指令后,无法迅速且连续地看到指令的执行结果,会对游戏的实时性与互动性带来巨大的影响,严重降低网络游戏产品的体验。
11.在无优化的网络游戏产品里,当玩家产生一个指令,需要等待指令响应时长的时
间后,才能在客户端上看到指令的反馈。而在等待的这段时间里,玩家在客户端上看不到任何与该指令相关的反馈。例如玩家产生一个释放技能指令,而技能需要经历“指令响应时长”后,才能在客户端上进行释放,而在此等待期间,玩家看不到自己角色有任何动作。此种未经优化的处理方法,在高时延、高抖动的网络下,会给玩家造成游戏响应滞后的糟糕体验。
12.因此,在网络游戏产品中,一般有两种的缓解网络传输高时延、高抖动特性对游戏体验影响的解决方案。
13.现有方案一:前摇动画。
14.前摇动画是众多网络游戏选择并实施的一个应对高时延、高抖动网络环境的解决方案,此方案可以用于优化高时延、高抖动网络环境下的部分动画相关的体验,如技能的释放体验。
15.在前摇动画的方案里,通过播放一种叫前摇动画的动画,来缓解这种指令响应的滞后感。当玩家产生一个指令时,指令同样会被发送到远程服务器。但与此同时客户端会立即播放一段与此指令相关的动画,这段动画通常会是一个技能动作的起手动画,也被叫做前摇动画。因为有了前摇动画,所以玩家在触发一个指令后,能够立即在客户端上看到指令的响应(即前摇动画),而无需在经历指令响应时延后才能看到指令的响应。
16.前摇动画方案是在原本的指令处理流程上,多播放了一段前摇动画。而这段前摇动画,是一段数值无关动画,即前摇动画的播放并不会影响游戏的结果。在前摇动画结束前,如果客户端收到了指令的回包,则再执行真正的指令响应。所以前摇动画,填补了指令响应时延期间客户端无反馈的问题。通过这样一种方式,让玩家在感观上觉得自己产生的指令被立即得到的执行,使得网络传输的高时延、高抖动带来的响应滞后问题得到缓解。
17.现有方案二:表现与计算分离。
18.表现与计算分离也是众多网络游戏产品使用的一个应对高时延、高抖动问题的技术方案。在这种方案里,表现与计算完全分离。
19.在原始的指令处理流程里,指令经服务器检验计算后再返回客户端后,客户端才能执行指令的响应(如播放技能动画)。也就是数据与表现一一对应,必须数据上确实执行了一个指令,客户端才能在画面上展现此指令的结果。
20.表现与计算分离的方案则打破了这个原则。首先客户端架构上拆分为表现层与计算层,表现层为各客户端独有数据,无须同步;而计算层为所有客户端的同步数据,所有客户端上一致。
21.当玩家产生一个指令时,首先客户端同样将指认发往服务器进行校验计算,但与此同时客户端表现层无需理会服务器对指令的校验计算处理,立即执行此指令的表现。当后续客户端收到经校验计算的指令后,客户端计算层再执行数据层的更新。
22.表现与计算分离的方案,本质上是将客户端数据中的表现相关且无需同步的数据剥离了出来,形成了一层新的表现层。因表现层与计算层分离,所以表现层对指令的执行,并不会影响到游戏最终的结果。而表现层对指令的立即执行,能够消除高时延、高抖动的网络环境带给玩家的滞后感。
23.但是上述两种方案都存在一定的瑕疵:一、前摇动画方案的缺陷。
24.1. 瑕疵的动画体验。
25.如图2所示,前摇动画如果时间太短,则在前摇动画结束与指令实际执行期间,会留有一段无响应时长。对玩家而言,则看到的是动画间断,即前摇动画与指令动画中间有断层,未衔接在一起。这段间断时间,称为空白间隙。所以前摇动画不能太短。
26.如图3所示,前摇动画如果时间太长。首先,会产生与上面类似的问题。即前摇动画未播放完时,就被打断转去播放指令动画,导致动画与指令动画间有一个有一个硬切不连贯,降低动画质量。其次,过长的前摇动画,同样会给玩家的带来指令滞后响应的感受。所以动画不能太长。
27.综上前摇动画既不能太短,也不能太长。但无论前摇动画设计为多长,都会出现上述空白间隙以及重叠间隙的问题,无法避免。
28.2.缓解程度有限。
29.当网络时延较高呈中重度时,即前摇动画时长远小于网络时时延,空白间隙问题将会大规模发生。前摇动画已完全无法掩盖网络时延的影响,玩家同样面对着糟糕的体验。
30.所以,前摇动画方案仅能够缓解一般的高时延、高抖动网络传输问题,面对中重程序的高时延、高抖动问题,前摇动画无能为力。
31.3.应用范围有限。
32.前摇动画方案仅能缓解动画上的时延问题,无法缓解其它与动画无关的计算时延的问题。例如,角色移动,小兵ai,以及碰撞检测的计算。
33.二、表现与计算分离方案的缺陷。
34.在表现与计算分离的方案中,整个游戏数据被拆分为非同步的表现层数据与同步的核心数据。表现层与计算层完全分离,且独立工作。这就造成了表现层与核心数据间的数据不一致问题。
35.以技能释放为例,表现层完全不理会计算层对指令的校验计算,不理会指令的生效与否,表现层直接在本客户端的屏幕上展示新指令的表现。所以会出现并且高频出现,在客户端画面上明明看看到角色对野怪释放了一个技能,但野怪却并未掉血的现象。即播了一个技能动画,但计算层确并未计算。
36.如图3所示,玩家高频触发指令时,就会看到英雄会不停地攻击野怪,但野怪的掉血却与英雄的攻击动画并不一致。极端情况下玩家可能会地看到,英雄攻击了野怪n次,但野怪只掉了1次血的情景。
37.在这种方案里,画面与数据并不一致。游戏设计者强设玩家不要求精确的表现效果。在竞技型的网络游戏中,如moba类网络游戏,玩家要求画面上精确的展现出数据层的状态,此种表现与计算分享的技术方案将无法被接受。
38.有鉴于此,本发明人针对现有网络游戏中存在的上述问题进行深入思考,且积极研发,遂产生本案。
技术实现要素:39.针对现有技术存在的问题,本发明的目的在于提出一种确定性的高精度预测回滚方法,以解决网络游戏在面对中重度高延时、高都懂环境下的响应迟滞问题,以此提升用户体验。
40.为实现上述目的,本发明采用的技术方案是:一种基于确定性的高精度同步预测回滚方法,当客户端产生用户指令时,该用户指令发送服务器处理,与此同时,客户端对用户指令进行预测,并计算出预测世界状态;客户端的预测及计算如下:步骤1、客户端对用户指令进行分帧处理,得到预测帧指令;步骤2、对于每一预测帧指令,进行如下处理:根据该预测帧指令和前一帧的世界状态进行计算,得到当前的预测世界状态;步骤3、当客户端收到服务器发送的第n个权威帧指令时,回滚到第n
‑
1帧世界状态,然后依据第n个权威帧指令和第n
‑
1帧世界状态计算出第n帧世界状态,其中,n≥1;将第n帧世界状态作为基础,获取第n+1以及后续的预测帧指令,重复步骤2
‑
步骤3。
41.所述客户端的预测帧指令与权威帧指令之间存在数据相关指令时,客户端停止对数据相关指令的预测,仅预测数据无关指令。
42.一种基于确定性的高精度同步预测回滚系统,其包括输入模块,用于将用户操作进行处理,并生成用户指令;分帧模块,用于将用户指令按其生成时间分别归入不同的帧中,形成预测帧指令;计算模块,根据每一预测帧指令和前一帧的权威世界状态或者预测世界状态进行计算,得到当前帧的预测世界状态;回滚模块,用于在客户端收到服务器发送的第n个权威帧指令时,回滚到第n
‑
1帧世界状态,其中,n≥1;回滚完成后,所述计算模块依据第n个权威帧指令和第n
‑
1帧世界状态计算出第n帧世界状态,然后将第n帧世界状态作为基础,获取第n+1以及后续的预测帧指令继续计算出世界状态;显示模块,用于获取最新的世界状态进行显示。
43.客户端的预测帧指令与权威帧指令之间存在数据相关指令时,客户端停止对数据相关指令的预测,仅预测数据无关指令。
44.采用上述方案后,本发明的预测回滚方法及系统,都够极大程度的缓解因网络的高时延、高抖动特性带来的游戏响应迟滞的问题。在部分情形下,能够完全消除网络高时延、高抖动给游戏带来的影响。
附图说明
45.图1为指令响应时延示意图;图2为前摇动画过短时的示意图;图3为前摇动画过长时的示意图;图4为表现与计算分离方案存在的缺陷示意图;图5为本发明的预测回滚系统的原理框图;图6为输入模块的示意图;图7为分帧模块的示意图;图8为计算模块的示意图;图9为服务器接收指令和下发帧指令的示意图;图10为客户端和服务器之间的交互示意图;
图11为单人联机游戏模式下的权威帧和预测帧之间的对比示意图;图12为多人联机游戏模式下的权威帧和预测帧之间的对比示意图;图13为不相关指令的预测结果比较图;图14为本发明的回滚示意图;图15为本发明方法流程图;图16
‑
1至16
‑
3为本发明预测回滚方法示意图。
具体实施方式
46.如图5所示,本发明揭示了一种基于确定性的高精度同步预测回滚系统,该系统是一个有运算功能的整体,它接受一个输入,并对输入进行运算,运算后再给出一个输出。
47.如果一个系统对于给定的输入,无论何时都运算出一个同样的输出,则称这样的系统叫确定性系统。本发明的同步预测回滚系统就是一个确定性系统,其应用于客户端,包括输入模块、分帧模块、回滚模块、计算模块和显示模块。
48.如图6所示,输入模块的输入为用户的操作,如点击屏幕、滑动屏幕、移动鼠标、敲击键盘等,输入模块的输出为用户指令(logiccommand)。
49.输入模块是一个确定性系统,对于给定的用户操作,经它运算后输出相同的用户指令。
50.输入模块有两个作用:1)将离散不规范的用户操作,转化为统一规范的用户指令。
51.2)过滤掉无效的用户操作。
52.帧(frame)代表的是一段时间间隔,以及该时间间隔内的用户指令。帧时间间隔可以为任意值,例如,1秒30帧,则帧间隔即为 1/30秒。帧是有序的,每个一帧有一个惟的一帧号,游戏初始帧设置为第0帧,其后帧的帧号依次递增,所以帧代表着游戏的时间进程。所有的帧按其帧号有序的组织在一起。
53.如图7所示,本发明中分帧模块为紧接输入模块的下一个模块,它的输入为用户指令,而它的输出为帧。分帧系统的作用在于将输入系统生成的用户指令,并按其生成时间分别归入不同的帧中。
54.游戏产品是一个软件,软件的本质是数据+计算。游戏产品构造一个虚拟的世界,游戏世界的核心数据通过显示技术展现出来就是一个虚拟的世界。游戏世界的核心数据也叫世界状态(worldstatus),一个世界状态惟一表示了一局游戏的进展。
55.因此,本发明中的计算模块是为了计算出世界状态的。如图8所示,该计算模块是一个双输入模块,其输入之一为帧,输入之二为世界状态。计算模块的输出即为新的世界状态。
56.计算模块的输入之一为帧,当一个帧被计算系统计算过后,此帧便被抛弃。这意味着计算模块运算的次数不会大于游戏的总帧数。实际上要求更严格一些,计算模块运算的次数严格等于游戏总帧数。
57.帧按帧序号递增的顺序组织在一起,同样的帧也按帧序号递增的顺序喂给计算模块。
58.计算系统的输入之二与输出皆为世界状态,计算模块承担着整个游戏的核心计算
逻辑,它定义了一个游戏的规则。计算模块是一个确定性系统,对于给定的用户指令、世界状态,其产生惟一确定的世界状态。
59.把计算模块流程反过来看可以发现确定性计算系统的一个关键特性。一个当前的世界状态,惟一取决于前一个世界状态,以及当前帧的内容。
60.游戏的计算模块可以抽象为一个函数 f,其输入变量为世界状态以及帧指令,即f(世界状态,帧指令)。
61.则可以递推出如下等式:第n帧世界状态 = f(第n
‑
1帧世界状态,第n帧指令)第n
‑
1帧世界状态 = f(第n
‑
2帧世界状态,第n
‑
1帧指令)
……
第1帧世界状态 = f(第0帧世界状态,第1帧指令)其中,第0帧世界状态,即为游戏的初始世界状态。在拥有相同计算规则的情况下,如果游戏的初始世界状态相等,且每一帧的指令相等,则必然能够得到相同的游戏结果,且整个游戏过程中的每一帧均相等,这个特性就叫做确定性。
62.如图9所示,本发明通过上述的确定性恒等式来实现游戏数据同步。具体实施规则如下:1)将确定性的游戏计算模块放置于所有游戏客户端以及游戏服务器上,这保证了参与游戏的所有端上均有一致的游戏计算规则。
63.2)所有客户端及服务器赋予世界状态统一的初始值。例如加载同一张地图,这保证了所有终端上均有一致的初始世界状态。
64.3)各游戏客户端上运行输入模块,用于将用户的输入转化为规范化的指令,并将指令上报给服务器。
65.4)服务器收集所有客户端的指令,并通过运行分帧系统将指令转化为统一的帧数据,生成的帧数据被下发给服务器的计算模块、以及所有客户端的计算模块,以驱动游戏的运行。这保证了所有端上的计算系统,均拥有相同的帧序列。
66.通过上述的系统,即可实现数据游戏完美同步。至此已构造出一个确定性游戏系统,这意味着,无论何时何地以何种速度运行游戏,均会得到完全一致的游戏过程及结果。
67.在上述游戏系统中,各客户端的帧序列来源于服务器的分帧系统。这意味着当某一客户端上产生一个用户指令时,指令不能被立即执行,而需要经过服务器的分帧处理再转回给客户端后,才能被响应。所以此游戏系统同样受网络的高时延、高抖动的影响。
68.考虑到此游戏系统是确定性的,而客户端的指令必然会被打包进帧被各客户端的计算模块执行。所以当一个用户指令产生时,本客户端如果提前执行,即可提前看到指令响应结果。
69.如图10所示,由于计算模块的输入为帧而不是指令,所以本地客户端上需要加上一个分帧系统,需要被提前执行的本地指令会被本地分帧系统打包进本地帧内,使得能被喂给计算模块进行提前计算。本地帧也就是预测帧(predicted frame),相对应的经服务器收集颁发的帧,叫做权威帧(authorized frame)。
70.将当前预测帧和当前世界状态喂给计算系统,就计算得到当前帧对应的预测世界状态。如果预测的世界状态与权威的世界状态一致,则为预测成功。
71.预测的第n+1帧世界状态 = f(第n帧世界状态,预测的第n+1帧指令);权威的第n+1帧世界状态 = f(第n帧世界状态,权威的第n+1帧指令)。
72.根据上面的等式,可以得出预测的世界状态的正确性依赖于预测帧的正确性。如果预测帧与权威帧完全一致,则预测的世界状态将与权威的世界状态完全一致。
73.单人联机游戏属于网络游戏的一种,参与游戏的客户端仅有一位,客户端的指令需要发送给服务器校验计算后,才能够被执行。单人联机游戏与单机游戏的区别是,单机游戏的指令可立即执行而无须发送给服务器校进行校验计算。所以单人联机游戏也面临网络的高时延、高抖动特性的影响。
74.在此种情形下,当这惟一客户端产生指令时,一份发送给服务器用于产生权威帧,一份发送给本地分帧系统用于产生预测帧。服务器所收集的用户指令全部来源于这惟一的客户端,所以此客户端本地产生的预测帧将完全等同于服务端产生的权威帧。如图11所示,因为预测帧完全等于同权威帧时,所以由计算系统预测出的世界状态必然完全等同于权威世界状态。
75.因为预测的第n帧指令=权威的第n帧指令,所以,预测的第n帧世界状态=f(第n
‑
1帧世界状态,预测的第n帧指令)=f(第n
‑
1帧世界状态,权威的第n帧指令)=权威的第n+1帧状态。
76.因此,在单人联机模式下的预测系统,将拥有完全的预测正确率。
77.当单人联机情况下面对高时延、高抖动网络状况时,本地客户端都能立即生成并执行预测帧以给予玩家反馈,并且这个预测的结果和权威结果完全一致。所以单人联机的情况下,无论网络时延多高,本预测系统都能够完全预测,而通过本预测技术将网络高时延、高抖动去游戏的影响完全去除。
78.在多人联想机的情形下,参与游戏的客户端由一位变成了多位,权威帧的内的指令将由多个客户端共同贡献。而本地客户端的预测帧内仅包含本地的指令,所以预测帧不再与权威帧相等,如图12所示。
79.在此种情形下,预测帧于仅包含了本地客户客户端的指令。
80.参照图12所示,如果指令1与指令2依赖同一份数据,则称指令1与指令2数据相关;如果指令1与指令2,分别依赖不同的数据,则称指令1与指令2数据无关。
81.当两个指令数据相关时,如果我们仅对一个指令进行预测,则可能会预测失败,也可能会预测成功。即一个概率性的预测结果,也可以叫近似正确的预测结果。例如指令1让英雄1到a位置,而指令2让英雄到b位置。如果指令1、指令2依次执行,则权威结果为英雄到b位置。在此种情况下,仅对指令2预测,则预测成功。仅对1预测,则预测失败。如果指令2、指令1依次执行,则权威结果为英雄到a位置。在此种情况下,仅对指令2预测,则预测失败。仅对1预测,则预测成功。
82.如图13所示,当两个指令数据无关时,我们可以得到一个完全正确的部分预测。例如有两个指令,指令1让英雄1移动到a位置,而指令2让英雄2移动到b位置。其权威结果为:为英雄1移动到了a位置,且英雄2移动到了b位置。
83.而当仅有部分指令时的预测结果为:当仅对指令1预测时,英雄1移动到了正确的位置,而英雄2没有移到正确的位置。当仅对指令2预测时,英雄2移动到了正确的位置,而英雄1没有移到正确的位置。
可以看到,当两个指令不相关时,我们对部分指令的预测结果是正确的,只是这个预测结果仅包括权威结果的部分状态。
84.所以,在多人联机模式下,如果仅对数据相关指令进行预测,将得到一个近似正确的预测结果;如果仅对数据无关指令进行预测,将得到一个完全正确的但仅包含部分状态的正确结果;如果对数据相关、数据无关指令均做预测,将得到一个预测正确率介于完全正确与近似正确两之者间的高预测准备率的结果。
85.在多人联机模式下,无论如何预测,都仅能得到一个近似权威世界状态的预测的世界状态。所以在多人联机情形下,当收到服务器下发的权威帧后,必须重新计算以得到权威世界状态。
86.如图14所示,设客户端从权威的第n帧预测到了权威的第n+1帧,则此时客户端的世界状态在第n+1帧。当客户端收到权威的第n+1帧后,首先需要将客户端的世界状态回滚到第n帧,然后再基于权威的第n+1帧的指令计算得到权威的第n+1帧世界状态。
87.在核心数据层,预测的世界状态直接过渡到权威的世界状态,这必然导致数据的变化。所以显示模块需要在表现层上给数据的过渡加上一个插值(lerp),使在画面上世界状态由预测的第n+1帧平滑过渡到权威的第n+1帧。
88.在实际应用中,因为帧是连续的,所以当客户端收到权威的第n+1时,往往已经预测到了第n+t帧(t是任意值)。所以在实际应用中,往往是先由n+t帧回滚到第n帧,进而再计算出权威的第n+1帧,最后再基于权威的第n+1帧计算出预测的第n+t帧。
89.考虑下当多人联机场景下遇到高时延、高抖动的网络环境时的表现。可以看到,在多人联机场景下无论网络时延与抖动有多高,预测系统都会立即执行,给予用户迅速的反馈。同时回滚系统也不在间断的修正预测的世界状态,使得客户端总是能基于最新的权威帧得到一个最接近的预测世界状态。
90.当网络时延越来越大时,预测帧将缺少越来越多的其它客户端的指令,所以预测帧与权威帧之间的差别将越来越大。也即意味着,当网络时延越来越大时,预测的正确性会逐渐降低。在极端的网络环境下,可以停止对数据相关指令的预测,而仅对数据无关指令预测,这样即能够得一个完全正确的部分预测。
91.本发明的预测回滚系统,都够极大程度的缓解因网络的高时延、高抖动特性带来的游戏响应迟滞的问题。在部分情形下,能够完全消除网络高时延、高抖动给游戏带来的影响。
92.对于单人联机游戏,预测完全正确,无需回滚,可完全消除网络高时延、高抖动问题。
93.对于多人联机游戏,仅预测数据无关指令的情形,预测完全正确,需要回滚,可缓解严重程度的高时延、高抖动网络环境问题。
94.或者对于多人联机游戏,预测所有指令的情形,预测近似正确,预测包含所有数据,需要回滚,可缓解中高程度的高时延、高抖动网络环境问题。
95.如图15所示,基于以上系统,本发明还揭示了一种基于确定性的高精度同步预测回滚方法,当客户端产生用户指令时,该用户指令发送服务器处理,与此同时,客户端对用户指令进行预测,并计算出预测世界状态。其中,客户端的预测及计算如下:步骤1、客户端对用户指令进行分帧处理,得到预测帧指令;
步骤2、对于每一预测帧指令,进行如下处理:根据该预测帧指令和前一帧的世界状态进行计算,得到当前的预测世界状态;步骤3、当客户端收到服务器发送的第n个权威帧指令时,回滚到第n
‑
1帧世界状态,然后依据第n个权威帧指令和第n
‑
1帧世界状态计算出第n帧世界状态,其中,n≥1;将第n帧世界状态作为基础,获取第n+1以及后续的预测帧指令,重复步骤2
‑
步骤3。
96.在客户端向服务器发送用户指令后,如图16
‑
1所示,当服务器向客户端下发第1权威帧指令时,客户端根据本地的预测帧已预测到第n1帧的世界状态;此时客户端将世界状态从第n1帧回滚到第0帧,然后依据第0帧世界状态和第1权威帧指令计算出第1帧权威世界状态。客户端在该第1帧权威世界状态的基础上,结合第2及后续的本地预测帧继续计算世界状态。
97.如图16
‑
2所示,当服务器向客户端下发第2权威帧指令时,客户端预测到第n2帧的世界状态。此时,客户端将世界状态从第n2帧回滚到第1帧,然后依据第1帧权威世界状态和第2权威帧指令计算,得到第2帧权威世界状态。客户端在该第2帧权威世界状态的基础上,结合第3及后续的本地预测帧继续计算世界状态。
98.以此类推,如图16
‑
3所示,当服务器向客户端下发第n权威帧指令时,客户端预测到第nn帧的世界状态。此时,客户端将世界状态从第nn帧回滚到第n
‑
1帧,然后依据第n
‑
1帧权威世界状态和第n权威帧指令,计算出第n权威世界状态。若还有新的用户指令,则在第n权威世界状态的基础上继续进行预测。
99.本发明基于通过使用预测回滚技术来缓解高时延、高抖动网络环境下的网络游戏响应迟滞问题。而前摇动画方案以及表现与计算分离方案,完全没有使用到预测以及回滚技术。
100.无论是前摇动画方案,还是表现与计算分离方案,都仅仅是客户端的一种表现上的优化技术,与服务器毫无关系,也即与数据毫无关系。此两种方案本质上并未对数据进行任何的预测(预计算),也即此两种方案完全没用使用预测回滚技术来缓解高时延、高抖动的网络传输问题。
101.本发明能够高准确率地预测并预表现各类型数据,如技能的释放,角色移动,小兵ai,以及碰撞检测的计算。
102.本发明在单人联机游戏的情形下,能够提供完全精准的预测及预表现,来完全解决因网络传输高时延、高抖动带来的响应迟滞问题,表现与数据完全一致。在多人联机游戏的情形下,能够提供高准确率的预测及预表现,来大幅缓解因网络传输高时延、高抖动带来的响应迟滞问题,表现与数据基本一致。
103.本发明能够缓解从一般程度至重度的高时延、高抖动网络传输问题,并保证表现与数据的一致性。
104.以上所述,仅是本发明实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。