一种用于实现不分线无缝游戏世界的方法和装置制造方法及图纸

技术编号:25040928 阅读:21 留言:0更新日期:2020-07-29 05:32
本申请提供了一种用于实现不分线无缝游戏世界的方法和装置,该方法包括:将多人在线游戏的服务器中每帧都需执行的计算逻辑归纳为多个逻辑类别,并根据所述多个逻辑类别,确定线程池对应的多个阶段;线程池在每帧中根据所述多个阶段来按阶段执行,其中,当一个阶段开始,线程池激活所有线程,每个线程执行当前阶段对应的逻辑类别中的计算逻辑,且当执行完当前阶段对应的计算逻辑后,检测本线程的无锁队列中是否有等待异步执行的异步逻辑数据,若有则执行所述异步逻辑数据以进行数据同步,当每个线程均执行完当前阶段对应的计算逻辑并且每个线程都不存在等待异步执行的异步逻辑时,开始下一个阶段,直至所述多个阶段执行完毕。

【技术实现步骤摘要】
一种用于实现不分线无缝游戏世界的方法和装置
本申请涉及计算机
,尤其涉及一种用于实现不分线无缝游戏世界的技术方案。
技术介绍
现有技术中,MMORPG(MassiveMultiplayerOnlineRole-PlayingGame,多人在线游戏)通常仅能通过分线来在一个场景中承载大量玩家。分线是指将切分后的每个地图场景再复制出多个一模一样的附属地图场景分别运行在不同的场景服务进程或者线程中,基于分线来在一个场景中承载大量玩家的方案,在相同位置,不同线的人相互看不到对方,玩家如果想在同一个地方看到对方,必须约定登陆进同一个线或者选择切换到同一个线,这无疑会给玩家带来诸多不便,游戏体验较差。
技术实现思路
本申请的目的是提供一种用于实现不分线无缝游戏世界的技术方案。根据本申请的一个实施例,提供一种用于实现不分线无缝游戏世界的方法,其中,所述方法包括:将多人在线游戏的服务器中每帧都需执行的计算逻辑归纳为多个逻辑类别,并根据所述多个逻辑类别,确定线程池对应的多个阶段;线程池在每帧中根据所述多个阶段来按阶段执行,其中,当一个阶段开始,线程池激活所有线程,每个线程执行当前阶段对应的逻辑类别中的计算逻辑,且当执行完当前阶段对应的计算逻辑后,检测本线程的无锁队列中是否有等待异步执行的异步逻辑数据,若有则执行所述异步逻辑数据以进行数据同步,当每个线程均执行完当前阶段对应的计算逻辑并且每个线程都不存在等待异步执行的异步逻辑时,开始下一个阶段,直至所述多个阶段执行完毕。根据本申请的另一个实施例,还提供了一种用于实现不分线无缝游戏世界的装置,其中,所述装置包括:将多人在线游戏的服务器中每帧都需执行的计算逻辑归纳为多个逻辑类别,并根据所述多个逻辑类别,确定线程池对应的多个阶段;线程池在每帧中根据所述多个阶段来按阶段执行,其中,当一个阶段开始,线程池激活所有线程,每个线程执行当前阶段对应的逻辑类别中的计算逻辑,且当执行完当前阶段对应的计算逻辑后,检测本线程的无锁队列中是否有等待异步执行的异步逻辑数据,若有则执行所述异步逻辑数据以进行数据同步,当每个线程均执行完当前阶段对应的计算逻辑并且每个线程都不存在等待异步执行的异步逻辑时,开始下一个阶段,直至所述多个阶段执行完毕。根据本申请的另一个实施例,还提供了一种设备,其中,所述设备包括:存储器,用于存储一个或多个程序;一个或多个处理器,与所述存储器相连,当所述一个或多个程序被所述一个或者多个处理器执行时,使得所述一个或多个处理器执行如下操作:一种用于实现不分线无缝游戏世界的方法,其中,所述方法包括:将多人在线游戏的服务器中每帧都需执行的计算逻辑归纳为多个逻辑类别,并根据所述多个逻辑类别,确定线程池对应的多个阶段;线程池在每帧中根据所述多个阶段来按阶段执行,其中,当一个阶段开始,线程池激活所有线程,每个线程执行当前阶段对应的逻辑类别中的计算逻辑,且当执行完当前阶段对应的计算逻辑后,检测本线程的无锁队列中是否有等待异步执行的异步逻辑数据,若有则执行所述异步逻辑数据以进行数据同步,当每个线程均执行完当前阶段对应的计算逻辑并且每个线程都不存在等待异步执行的异步逻辑时,开始下一个阶段,直至所述多个阶段执行完毕。根据本申请的另一个实施例,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序可被处理器执行如下操作:一种用于实现不分线无缝游戏世界的方法,其中,所述方法包括:将多人在线游戏的服务器中每帧都需执行的计算逻辑归纳为多个逻辑类别,并根据所述多个逻辑类别,确定线程池对应的多个阶段;线程池在每帧中根据所述多个阶段来按阶段执行,其中,当一个阶段开始,线程池激活所有线程,每个线程执行当前阶段对应的逻辑类别中的计算逻辑,且当执行完当前阶段对应的计算逻辑后,检测本线程的无锁队列中是否有等待异步执行的异步逻辑数据,若有则执行所述异步逻辑数据以进行数据同步,当每个线程均执行完当前阶段对应的计算逻辑并且每个线程都不存在等待异步执行的异步逻辑时,开始下一个阶段,直至所述多个阶段执行完毕。与现有技术相比,本申请具有以下优点:能够将多人在线游戏的服务器中每帧都需执行的计算逻辑归纳为多个逻辑类别,并根据所述多个逻辑类别,确定线程池对应的多个阶段,之后使线程池每帧按阶段执行,由于只有在阶段切换时才同步不同线程间的数据,使得能极大地降低同步数,以有限的阶段同步数去最大限度的利用CPU(centralprocessingunit,中央处理器)多核性能,并且,通过在多人在线游戏中按帧按阶段同步线程间逻辑,能够充分利用好每个线程的顺序执行能力,尽可能的减少线程之间的锁的行为,且进一步地通过使用无锁队列来用于线程间的数据传递,能够实现数据同步并保证同步效率和安全性,从而达到不分线来实现多人在线游戏无缝世界的目的,提高玩家的游戏真实体验;此外,通过使用本申请中关于计算逻辑相关类的编程规范,也即计算逻辑中的数据和方法的相关规范,能够以简单的规范实现在多线程间降低数据交互量的技术目的,以实现具有更高的实时交互效率的不分线无缝世界,进一步提高玩家的游戏真实体验。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1示出了本申请一个实施例的用于实现不分线无缝游戏世界的方法的流程示意图;图2示出了本申请一个实施例的用于实现不分线无缝游戏世界的装置的结构示意图;图3示出了可被用于实施本申请中所述的各个实施例的示例性系统。附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。在上下文中所称“设备”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的程序指令来执行预定处理过程,或是由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)等硬件执行预定处理过程,或是由上述二者组合来实现。本申请的技术方案主要由计算机设备来实现。其中,所述计算机设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本申请,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本申请。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN本文档来自技高网...

【技术保护点】
1.一种用于实现不分线无缝游戏世界的方法,其中,所述方法包括:/n将多人在线游戏的服务器中每帧都需执行的计算逻辑归纳为多个逻辑类别,并根据所述多个逻辑类别,确定线程池对应的多个阶段;/n线程池在每帧中根据所述多个阶段来按阶段执行,其中,当一个阶段开始,线程池激活所有线程,每个线程执行当前阶段对应的逻辑类别中的计算逻辑,且当执行完当前阶段对应的计算逻辑后,检测本线程的无锁队列中是否有等待异步执行的异步逻辑数据,若有则执行所述异步逻辑数据以进行数据同步,当每个线程均执行完当前阶段对应的计算逻辑并且每个线程都不存在等待异步执行的异步逻辑时,开始下一个阶段,直至所述多个阶段执行完毕。/n

【技术特征摘要】
1.一种用于实现不分线无缝游戏世界的方法,其中,所述方法包括:
将多人在线游戏的服务器中每帧都需执行的计算逻辑归纳为多个逻辑类别,并根据所述多个逻辑类别,确定线程池对应的多个阶段;
线程池在每帧中根据所述多个阶段来按阶段执行,其中,当一个阶段开始,线程池激活所有线程,每个线程执行当前阶段对应的逻辑类别中的计算逻辑,且当执行完当前阶段对应的计算逻辑后,检测本线程的无锁队列中是否有等待异步执行的异步逻辑数据,若有则执行所述异步逻辑数据以进行数据同步,当每个线程均执行完当前阶段对应的计算逻辑并且每个线程都不存在等待异步执行的异步逻辑时,开始下一个阶段,直至所述多个阶段执行完毕。


2.根据权利要求1所述的方法,其中,所述方法还包括:
创建所述线程池,其中,所述线程池中的线程数是根据CPU核心数确定的。


3.根据权利要求1所述的方法,其中,所述将多人在线游戏的服务器中每帧都需执行的计算逻辑归纳为多个逻辑类别,并根据所述多个逻辑类别,确定线程池对应的多个阶段,包括:
将多人在线游戏的服务器中每帧都需执行的计算逻辑划分为管理数据逻辑和角色数据逻辑;
将管理数据逻辑归纳为多个管理逻辑类别,将角色数据逻辑归纳为多个角色逻辑类别;
根据所述多个管理逻辑类别和所述多个角色逻辑类别,确定线程池对应的多个阶段,其中,一个阶段对应一个管理逻辑类别和/或一个角色逻辑类别。


4.根据权利要求3所述的方法,其中,所述将多人在线游戏的服务器中每帧都需执行的计算逻辑归纳为多个逻辑类别,并根据所述多个逻辑类别,确定线程池对应的多个阶段,还包括:
将角色数据逻辑按照角色数量平分到线程池的各个线程中,其中,每个角色在生命周期内唯一绑定至一个线程;
将管理数据逻辑按照场景数量平分到线程池的各个线程中,其中,每个场景在生命周期内唯一绑定至一个线程。


5.一种用于实现不分线无缝游戏世界的装置,其中,所述装置...

【专利技术属性】
技术研发人员:郭鹏
申请(专利权)人:完美世界北京软件科技发展有限公司
类型:发明
国别省市:北京;11

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

1