一种虚拟对象传送方法、装置、设备及存储介质制造方法及图纸

技术编号:30140381 阅读:19 留言:0更新日期:2021-09-23 15:01
本申请实施例公开了一种虚拟对象传送方法、装置、设备及存储介质,其中该方法包括:通过原场景服务进程,拆分目标虚拟对象对应的原虚拟对象数据得到第一传送数据和第二传送数据,并将第一传送数据和第二传送数据分别发送给消息队列和世界服务进程;通过世界服务进程,根据第二传送数据确定第三传送数据,根据第三传送数据生成传送通知消息,并将传送通知消息发送给目的场景服务进程;通过目的场景服务进程,根据传送通知消息从消息队列中获取第一传送数据,并根据第一传送数据和第三传送数据确定目标虚拟对象对应的目的虚拟对象数据。该方法能够支持较高的虚拟对象传送速度,提高用户所感知的虚拟对象传送体验。用户所感知的虚拟对象传送体验。用户所感知的虚拟对象传送体验。

【技术实现步骤摘要】
一种虚拟对象传送方法、装置、设备及存储介质


[0001]本申请涉及计算机
,尤其涉及一种虚拟对象传送方法、装置、设备及存储介质。

技术介绍

[0002]大型多人在线角色扮演游戏(Massive Multiplayer Online Role Play Game,MMORPG)因具有玩法丰富、游戏情节引人入胜等特点,一直以来深受广大游戏玩家的喜爱。MMORPG的服务端架构通常包括至少一组服务,每组服务中包括若干场景服务(scene)进程和一个世界服务(world)进程;其中,scene进程用于承载对应的地图中的玩法逻辑、以及处于该地图中的各虚拟对象的相关数据;world进程用于管理用户的登录和登出、以及协调虚拟对象传送等。
[0003]目前,MMORPG支持的很多玩法都会涉及虚拟对象传送,所谓虚拟对象传送即是将虚拟对象从游戏世界的一个地图传送至另一个地图。MMORPG的服务端执行虚拟对象传送任务时,用于承载虚拟对象原本所处的地图的scene进程需要将该虚拟对象的虚拟对象数据发送给world进程,world进程基于其接收的虚拟对象数据进行相应的处理后,将该虚拟对象数据发送给用于承载该虚拟对象所要前往的地图的scene进程,如此实现虚拟对象传送。
[0004]然而,执行虚拟对象传送任务时所需传输的虚拟对象数据通常较大,由world进程中转并处理该虚拟对象数据往往需要耗费较多的处理资源;在需要瞬时大规模传送虚拟对象的玩法中,world进程由于需要同时中转并处理大量的虚拟对象数据,往往难以支持较高的虚拟对象传送速度(即单位时间内处理的虚拟对象传送次数较少),用户所感知的虚拟对象传送体验往往也较差。

技术实现思路

[0005]本申请实施例提供了一种虚拟对象传送方法、装置、设备及存储介质,能够支持较高的虚拟对象传送速度,提高用户所感知的虚拟对象传送体验。
[0006]有鉴于此,本申请第一方面提供了一种虚拟对象传送方法,所述方法应用于游戏服务端的服务进程组,所述服务进程组中包括一个世界服务进程和多个场景服务进程,所述方法包括:
[0007]通过原场景服务进程,拆分目标虚拟对象对应的原虚拟对象数据,得到第一传送数据和第二传送数据;所述原场景服务进程用于承载针对所述目标虚拟对象触发传送操作前所述目标虚拟对象所处的原地图;
[0008]通过所述原场景服务进程,将所述第一传送数据发送给消息队列,将所述第二传送数据发送给所述世界服务进程;
[0009]通过所述世界服务进程,根据所述第二传送数据确定第三传送数据;并根据所述第三传送数据生成传送通知消息;
[0010]通过所述世界服务进程,将所述传送通知消息发送给目的场景服务进程;所述目
的场景服务进程用于承载针对所述目标虚拟对象触发传送操作后所述目标虚拟对象所要前往的目的地图;
[0011]通过所述目的场景服务进程,根据所述传送通知消息从所述消息队列中获取所述第一传送数据;并根据所述第一传送数据和所述第三传送数据确定所述目标虚拟对象对应的目的虚拟对象数据。
[0012]本申请第二方面提供了一种虚拟对象传送装置,所述装置包括:
[0013]数据拆分模块,用于通过原场景服务进程,拆分目标虚拟对象对应的原虚拟对象数据,得到第一传送数据和第二传送数据;所述原场景服务进程用于承载针对所述目标虚拟对象触发传送操作前所述目标虚拟对象所处的原地图;
[0014]第一发送模块,用于通过所述原场景服务进程,将所述第一传送数据发送给消息队列,将所述第二传送数据发送给世界服务进程;
[0015]数据处理模块,用于通过所述世界服务进程,根据所述第二传送数据确定第三传送数据;并根据所述第三传送数据生成传送通知消息;
[0016]第二发送模块,用于通过所述世界服务进程,将所述传送通知消息发送给目的场景服务进程;所述目的场景服务进程用于承载针对所述目标虚拟对象触发传送操作后所述目标虚拟对象所要前往的目的地图;
[0017]数据还原模块,用于通过所述目的场景服务进程,根据所述传送通知消息从所述消息队列中获取所述第一传送数据;并根据所述第一传送数据和所述第三传送数据确定所述目标虚拟对象对应的目的虚拟对象数据。
[0018]本申请第三方面提供了一种设备,所述设备包括处理器以及存储器:
[0019]所述存储器用于存储计算机程序;
[0020]所述处理器用于根据所述计算机程序,执行上述第一方面所述的虚拟对象传送方法的步骤。
[0021]本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面所述的虚拟对象传送方法的步骤。
[0022]本申请第五方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面所述的虚拟对象传送方法的步骤。
[0023]从以上技术方案可以看出,本申请实施例具有以下优点:
[0024]本申请实施例提供了一种虚拟对象传送方法,该方法利用服务进程组中的世界服务进程和消息队列协同完成虚拟对象传送任务,从而减少世界服务进程所需传输的数据量,提高虚拟对象传送效率。具体的,在服务进程组将目标虚拟对象从原地图传送至目的地图的过程中,先通过用于承载该原地图的原场景服务进程拆分目标虚拟对象对应的原虚拟对象数据,得到第一传送数据和第二传送数据,将该第一传送数据和该第二传送数据分别发送给消息队列和世界服务进程;然后,通过世界服务进程根据其接收的第二传送数据确定第三传送数据,并根据该第三传送数据生成传送通知消息,将该传送通知消息发送给用于承载目的地图的目的场景服务进程;进而,通过目的场景服务进程,根据该传送通知消息
从消息队列中获取第一传送数据,并根据该第一传送数据和传送通知消息中的第三传送数据,确定目标虚拟对象在目的地图中使用的目的虚拟对象数据。上述方法创新性地将原虚拟对象数据拆分为两部分,一部分是不需要世界服务进程处理的数据(即第一传送数据),另一部分是需要世界服务进程处理的数据(即第二传送数据),利用消息队列中转第一传送数据,利用世界服务进程中转和处理第二传送数据,如此大幅减少世界服务进程所需耗费的处理资源,提高虚拟对象的传送速度和传送效率;在需要瞬时大规模传送虚拟对象的玩法中,上述方法可以在相同时间内传送更多的虚拟对象,对于用户来说其感知的虚拟对象传送体验更好。
附图说明
[0025]图1为本申请实施例提供的虚拟对象传送方法的应用场景示意图;
[0026]图2为本申请实施例提供的一种虚拟对象传送方法的流程示意图;
[0027]图3为本申请实施例提供的另一种虚拟对象传送方法的流程示意图;
[0028]图4为本申请实施例提供的一种示例性的游戏活动列表示意图;
[0029]图5为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚拟对象传送方法,其特征在于,所述方法应用于游戏服务端的服务进程组,所述服务进程组中包括一个世界服务进程和多个场景服务进程,所述方法包括:通过原场景服务进程,拆分目标虚拟对象对应的原虚拟对象数据,得到第一传送数据和第二传送数据;所述原场景服务进程用于承载针对所述目标虚拟对象触发传送操作前所述目标虚拟对象所处的原地图;通过所述原场景服务进程,将所述第一传送数据发送给消息队列,将所述第二传送数据发送给所述世界服务进程;通过所述世界服务进程,根据所述第二传送数据确定第三传送数据;并根据所述第三传送数据生成传送通知消息;通过所述世界服务进程,将所述传送通知消息发送给目的场景服务进程;所述目的场景服务进程用于承载针对所述目标虚拟对象触发传送操作后所述目标虚拟对象所要前往的目的地图;通过所述目的场景服务进程,根据所述传送通知消息从所述消息队列中获取所述第一传送数据;并根据所述第一传送数据和所述第三传送数据确定所述目标虚拟对象对应的目的虚拟对象数据。2.根据权利要求1所述的方法,其特征在于,所述世界服务进程用于管理目标类型的数据;则所述通过原场景服务进程,拆分目标虚拟对象对应的原虚拟对象数据,得到第一传送数据和第二传送数据,包括:通过所述原场景服务进程,将所述原虚拟对象数据中属于所述目标类型的数据作为所述第二传送数据,将所述原虚拟对象数据中不属于所述目标类型的数据作为所述第一传送数据。3.根据权利要求1或2所述的方法,其特征在于,所述世界服务进程管理的第一目标类型的数据为标准数据,所述场景服务进程管理的所述第一目标类型的数据为非标准数据;所述第二传送数据中包括所述原虚拟对象数据中属于所述第一目标类型的数据;则所述通过所述世界服务进程,根据所述第二传送数据确定第三传送数据,包括:通过所述世界服务进程,从所述第二传送数据中提取所述第一目标类型的数据,作为第一待处理数据;获取所述世界服务进程管理的所述目标虚拟对象对应的所述第一目标类型的数据,作为第一参考标准数据;通过所述世界服务进程,对比所述第一待处理数据与所述第一参考标准数据是否一致;若一致,则确定所述第二传送数据作为所述第三传送数据;若不一致,则利用所述第一参考标准数据和所述第二传送数据中除所述第一待处理数据外的其它数据,组成所述第三传送数据。4.根据权利要求1或2所述的方法,其特征在于,所述世界服务进程管理的第二目标类型的数据为非标准数据,所述场景服务进程管理的所述第二目标类型的数据为标准数据;所述第二传送数据中包括所述原虚拟对象数据中属于所述第二目标类型的数据;所述方法还包括:通过所述世界服务进程,从所述第二传送数据中提取所述第二目标类型的数据,作为第二参考标准数据;获取所述世界服务进程管理的所述目标虚拟对象对应的所述第二目标类型的数据,作为第二待处理数据;
通过所述世界服务进程,对比所述第二待处理数据与所述第二参考标准数据是否一致;若不一致,则利用所述第二参考标准数据替换所述世界服务进程管理的所述目标虚拟对象对应的所述第二目标类型的数据。5.根据权利要求1所述的方法,其特征在于,所述通过所述原场景服务进程,将所述第一传送数据发送给消息队列,包括:通过所述原场景服务进程,对所述第一传送数据进行序列化处理,得到第一传送序列数据,并将所述第一传送序列数据发送给所述消息队列;则所述通过所述目的场景服务进程,根据所述传送通知消息从所述消息队列中获取所述第一传送数据,包括:通过所述目的场景服务进程,根据所述传送通知消息从所述消息队列中获取所述第一传送序列数据,对所述第一传送序列数据进行反序列化处理,得到所述第一传送数据。6.根据权利要求1或5所述的方法,其特征在于,所述通过所述原场景服务进程,将所述第一传送数据发送给消息队列,将所述第二传送数据发送给所述世界服务进程,包括:通过所述原场景服务进程,将所述第一传送数据发送给所述消息队列,所述第一传送数据包括所述目标虚拟对象的身份标识;将所述第二传送数据和所述目标虚拟对象的身份标识发送给所述世界服务进程;所述通过所述世界服务进程,根据所述第三传送数据生成传送通知消息,包括:通过所述世界服务进程,根据所述第三传送数据和所述目标虚拟对象的身份标识,生成所述传送通知消息;所述通过所述目的场景服务进程,根据所述传送通知消息从所述消息队列中获取所述第一传送数据,包括:通过所述目的场景服务进程,根据所述传送通知消息中的所述目标虚拟对象的身份标识,从所述消息队列中获取包括所述目标虚拟对象的身份标识的所述第一传送数据。7.根据权利要求1所述的方法,其特征在于,在所述通过所述原场景服务进程,将所述第一传送数据发送给消息队列,将所述第二传送数据发送给...

【专利技术属性】
技术研发人员:任长城
申请(专利权)人:腾讯科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1