游戏运行方法和装置、电子设备及存储介质

文档序号:706959 发布日期:2021-04-16 浏览:24次 >En<

阅读说明:本技术 游戏运行方法和装置、电子设备及存储介质 (Game running method and device, electronic equipment and storage medium ) 是由 韩宏毅 于 2020-12-21 设计创作,主要内容包括:本申请提供的游戏运行方法和装置、电子设备及存储介质,涉及游戏技术领域。在本申请中,首先将多个游戏场景对象分别与多个场景计算服务进程建立绑定关系。其次,分别通过每一个场景计算服务进程,基于绑定的游戏场景对象的游戏数据执行游戏操作,得到每一个游戏场景对象对应的游戏处理数据。然后,将每一个游戏场景对象的对象标识数据和游戏关联数据,分别通过游戏场景对象绑定的场景计算服务进程,发送给其他的每一个场景计算服务进程。基于上述方法,可以改善现有的游戏技术中游戏运行过程容易出现卡顿的问题。(The application provides a game running method and device, electronic equipment and a storage medium, and relates to the technical field of games. In the application, a plurality of game scene objects are respectively bound with a plurality of scene computing service processes. And secondly, executing game operation based on the game data of the bound game scene objects through each scene computing service process to obtain game processing data corresponding to each game scene object. Then, the object identification data and the game association data of each game scene object are respectively sent to each other scene computing service process through the scene computing service process bound by the game scene object. Based on the method, the problem that the game running process is easy to be jammed in the existing game technology can be improved.)

游戏运行方法和装置、电子设备及存储介质

技术领域

本申请涉及游戏技术领域,具体而言,涉及一种游戏运行方法和装置、电子设备及存储介质。

背景技术

在现有的游戏技术中,一般会将游戏场景(如地图)分为多个部分,然后,分别对每个部分进行单独控制。如此,在用户控制的游戏角色集中于少数的部分时,就会容易出现卡顿的问题。

发明内容

有鉴于此,本申请的目的在于提供一种游戏运行方法和装置、电子设备及存储介质,以改善基于现有的游戏技术进行的游戏运行过程容易出现卡顿的问题。

为实现上述目的,本申请实施例采用如下技术方案:

一种游戏运行方法,应用于电子设备,该电子设备配置有多个场景计算服务进程,该游戏运行方法包括:

将多个游戏场景对象分别与所述多个场景计算服务进程建立绑定关系,其中,每一个所述场景计算服务进程绑定有至少一个游戏场景对象;

分别通过每一个所述场景计算服务进程,基于绑定的游戏场景对象的游戏数据执行游戏操作,得到每一个游戏场景对象对应的游戏处理数据;

将每一个游戏场景对象的对象标识数据和游戏关联数据,分别通过该游戏场景对象绑定的场景计算服务进程,发送给其他的每一个场景计算服务进程,其中,该游戏关联数据为对应游戏处理数据中的属于不同场景计算服务进程的游戏场景对象之间具有关联关系的数据。

在本申请实施例较佳的选择中,在上述游戏运行方法中,所述分别通过每一个所述场景计算服务进程,基于绑定的游戏场景对象的游戏数据执行游戏操作,得到每一个游戏场景对象对应的游戏处理数据的步骤,包括:

针对每一个所述场景计算服务进程,将该场景计算服务进程绑定的多个游戏场景对象与对应的多个第一计算服务线程建立绑定关系,其中,该多个第一计算服务线程预先针对所述场景计算服务进程配置形成,且每一个所述第一计算服务线程绑定有至少一个游戏场景对象;

分别通过每一个所述第一计算服务线程,基于绑定的游戏场景对象的游戏数据执行游戏操作,得到每一个游戏场景对象对应的游戏处理数据。

在本申请实施例较佳的选择中,在上述游戏运行方法中,所述分别通过每一个所述场景计算服务进程,基于绑定的游戏场景对象的游戏数据执行游戏操作,得到每一个游戏场景对象对应的游戏处理数据的步骤,包括:

针对每一个所述场景计算服务进程,分别为该场景计算服务进程包括的多个游戏计算任务配置对应的第二计算服务线程,其中,该第二计算服务线程与该游戏计算任务之间具有一一对应关系;

分别通过每一个所述第二计算服务线程,基于所属的场景计算服务进程绑定的游戏场景对象的游戏数据,执行对应的游戏计算任务,得到每一个游戏场景对象对应的游戏处理数据。

在本申请实施例较佳的选择中,在上述游戏运行方法中,所述电子设备还配置有场景同步服务进程,所述将每一个游戏场景对象的对象标识数据和游戏关联数据,分别通过该游戏场景对象绑定的场景计算服务进程,发送给其他的每一个场景计算服务进程的步骤,包括:

将每一个所述游戏场景对象的对象标识数据和游戏关联数据,分别通过绑定的场景计算服务进程,发送给所述场景同步服务进程;

通过所述场景同步服务进程,将每一个所述游戏场景对象的对象标识数据和游戏关联数据,发送给该游戏场景对象绑定的场景计算服务进程以外的每一个场景计算服务进程。

在本申请实施例较佳的选择中,在上述游戏运行方法中,所述电子设备还配置有场景存储服务进程,该方法还包括:

通过所述场景同步服务进程,将每一个所述游戏场景对象的对象标识数据和游戏关联数据,发送给所述场景存储服务进程;

其中,所述场景存储服务进程用于存储所述对象标识数据和所述游戏关联数据,且在接收到任意一个所述场景计算服务进程的数据恢复请求信息时,将该对象标识数据和该游戏关联数据发送给该场景计算服务进程。

在本申请实施例较佳的选择中,在上述游戏运行方法中,所述电子设备还配置有场景交互服务进程,该方法还包括:

通过所述场景计算服务进程,将目标游戏场景对象的位置更新信息发送给所述场景交互服务进程,其中,该目标游戏场景对象为该场景计算服务进程绑定的游戏场景对象;

通过所述场景交互服务进程,基于所述位置更新信息对所述目标游戏场景对象进行可视关系更新计算处理,以确定与该目标游戏场景对象之间具有可视关系的其他游戏场景对象;

通过所述场景交互服务进程,对每一个目标第一视野容器中的游戏场景对象分别进行更新处理,并将更新处理的结果发送给该目标第一视野容器对应的游戏场景对象绑定的场景计算服务进程,其中,每一个所述目标第一视野容器为预先针对所述目标游戏场景对象、与该目标游戏场景对象在位置信息被更新之前具有可视关系的其他游戏场景对象、与该目标游戏场景对象在位置信息被更新之前具有可视关系的其他游戏场景对象,在该场景交互服务进程中分别配置的第一视野容器;

接收到所述更新处理的结果的每一个场景计算服务进程,分别基于对应的更新处理的结果,对对应游戏场景对象在绑定的场景计算服务进程中配置的第二视野容器中的游戏场景对象,进行更新处理。

本申请实施例还提供了一种游戏运行装置,应用于电子设备,该电子设备配置有多个场景计算服务进程,该游戏运行装置包括:

绑定关系建立模块,用于将多个游戏场景对象分别与所述多个场景计算服务进程建立绑定关系,其中,每一个所述场景计算服务进程绑定有至少一个游戏场景对象;

游戏操作执行模块,用于分别通过每一个所述场景计算服务进程,基于绑定的游戏场景对象的游戏数据执行游戏操作,得到每一个游戏场景对象对应的游戏处理数据;

游戏数据发送模块,用于将每一个游戏场景对象的对象标识数据和游戏关联数据,分别通过该游戏场景对象绑定的场景计算服务进程,发送给其他的每一个场景计算服务进程,其中,该游戏关联数据为对应游戏处理数据中的属于不同场景计算服务进程的游戏场景对象之间具有关联关系的数据。

在本申请实施例较佳的选择中,在上述游戏运行装置中,所述游戏操作执行模块包括:

关系建立单元,用于针对每一个所述场景计算服务进程,将该场景计算服务进程绑定的多个游戏场景对象与对应的多个第一计算服务线程建立绑定关系,其中,多个第一计算服务线程预先针对所述场景计算服务进程配置形成,每一个所述第一计算服务线程绑定有至少一个游戏场景对象;

操作执行单元,用于分别通过每一个所述第一计算服务线程,基于绑定的游戏场景对象的游戏数据执行游戏操作,得到每一个游戏场景对象对应的游戏处理数据。

在上述基础上,本申请实施例还提供了一种电子设备,包括:

存储器,用于存储计算机程序;

与所述存储器连接的处理器,用于执行该存储器存储的计算机程序,以实现上述的游戏运行方法。

在上述基础上,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被执行时,实现上述的游戏运行方法。

本申请提供的游戏运行方法和装置、电子设备及存储介质,通过将多个游戏场景对象与预先配置的多个场景计算服务进程之间建立绑定关系,使得可以分别基于不同的场景计算服务进程对不同游戏场景对象执行游戏操作,然后,再将得到的游戏处理数据中的游戏关联数据发送给其他场景计算服务进程,使得各场景计算服务进程之间,可以实现数据的同步。基于此,由于各场景计算服务进程之间可以实现数据的同步,而且不需要对游戏场景(如地图)进行划分,即可实现分别控制,从而避免由于对游戏场景进行划分而导致容易出现游戏场景对象在某一个控制中集中,进而导致游戏运行过程因游戏场景对象过于集中而在资源不是特别充足的情况下导致出现卡顿的问题,即可以改善基于现有的游戏技术进行的游戏运行过程容易出现卡顿的问题,使得具有较高的实用价值。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

图1为本申请实施例提供的电子设备的结构框图。

图2为本申请实施例提供的游戏运行方法的流程示意图。

图3为本申请实施例提供的场景计算服务进程与电子设备上部署的各服务端之间的信息交互示意图。

图4为图2中步骤S120包括的子步骤的流程示意图。

图5为图2中步骤S120包括的其它子步骤的流程示意图。

图6为本申请实施例提供的场景计算服务进程与场景同步服务进程之间的信息交互示意图。

图7为图2中步骤S130包括的其它子步骤的流程示意图。

图8为本申请实施例提供的游戏运行方法的其它步骤的流程示意图。

图9为本申请实施例提供的游戏运行装置的方框示意图。

图标:10-电子设备;12-存储器;14-处理器;100-游戏运行装置;110-绑定关系建立模块;120-游戏操作执行模块;130-游戏数据发送模块。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本申请的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

如图1所示,本申请实施例提供了一种电子设备10,可以包括存储器12、处理器14和游戏运行装置100。

其中,所述存储器12和处理器14之间直接或间接地电性连接,以实现数据的传输或交互。例如,相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述游戏运行装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器12中的软件功能模块。所述处理器14用于执行所述存储器12中存储的可执行的计算机程序,例如,所述游戏运行装置100所包括的软件功能模块及计算机程序等,以实现本申请实施例提供的游戏运行方法(如后文所述)。

可选地,所述存储器12可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。

并且,所述处理器14可以是一种通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)等。

可以理解,图1所示的结构仅为示意,所述电子设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。例如,所述电子设备10还可以包括用于与其它设备(如手机等终端设备)进行信息(如获取用户输入的游戏操作信息等)交互的通信单元。

其中,在一种可以替代的示例中,所述电子设备10可以是一种具有数据处理能力的服务器。

结合图2,本申请实施例还提供一种游戏运行方法,可应用于上述电子设备10。其中,该电子设备10配置有多个场景计算服务进程,该游戏运行方法有关的流程所定义的方法步骤,可以由所述电子设备10实现。

下面将对图2所示的具体流程,进行详细阐述。

步骤S110,将多个游戏场景对象分别与所述多个场景计算服务进程建立绑定关系。

在本实施例中,所述电子设备10可以与所述游戏场景中的多个游戏场景对象分别与预先配置的多个场景计算服务进程建立绑定关系。

其中,每一个所述场景计算服务进程绑定有至少一个游戏场景对象。

步骤S120,分别通过每一个所述场景计算服务进程,基于绑定的游戏场景对象的游戏数据执行游戏操作,得到每一个游戏场景对象对应的游戏处理数据。

在本实施例中,在基于步骤S110建立所述绑定关系之后,所述电子设备10可以分别通过每一个所述场景计算服务进程,基于绑定的游戏场景对象的游戏数据执行游戏操作,如此,可以得到每一个游戏场景对象对应的游戏处理数据。

也就是说,针对每一个所述场景计算服务进程,可以通过该场景计算服务进程对该场景计算服务进程绑定的游戏场景对象的游戏数据进行处理(即执行游戏操作),如此,可以得到每一个游戏场景对象对应的游戏处理数据(即基于游戏数据执行游戏操作,可以得到游戏处理数据)。

步骤S130,将每一个游戏场景对象的对象标识数据和游戏关联数据,分别通过该游戏场景对象绑定的场景计算服务进程,发送给其他的每一个场景计算服务进程。

在本实施例中,在基于步骤S120得到每一个所述游戏场景对象对应的游戏处理数据之后,所述电子设备10可以将每一个游戏场景对象的对象标识数据和游戏处理数据中的游戏关联数据,分别通过该游戏场景对象绑定的场景计算服务进程,发送给其他的每一个场景计算服务进程。

其中,所述游戏关联数据为对应游戏处理数据中属于不同场景计算服务进程的游戏场景对象之间具有关联关系的数据。

也就是说,针对每一个游戏场景对象,可以通过该游戏场景对象绑定的场景计算服务进程,就爱能够该游戏场景对象的对象标识数据和游戏关联数据,发送给该场景计算服务进程以外的每一个场景计算服务进程。

基于上述方法,由于各场景计算服务进程之间可以实现数据的同步,而且不需要对游戏场景(如地图)进行划分,即可实现分别控制,从而避免由于对游戏场景进行划分而导致容易出现游戏场景对象在某一个控制中集中,进而导致游戏运行过程因游戏场景对象过于集中而在资源不是特别充足的情况下导致出现卡顿的问题,即可以改善基于现有的游戏技术进行的游戏运行过程容易出现卡顿的问题。

第一方面,对于步骤S110需要说明的是,建立绑定关系的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,结合图3,所述电子设备10上还预先安装有全局服务端,该全局服务端可以用于确定所述游戏场景对象与所述场景计算服务进程之间的绑定关系,即实现将多个游戏场景对象按照一定的规则(如均衡等规则)分别绑定给不同的场景计算服务进程。

其中,考虑到所述场景计算服务进程可以用于执行游戏操作,因而,对于绑定的游戏场景对象属于用户控制的角色时,为了获得用户输入的游戏操作信息(作为一种游戏数据)等,所述电子设备10上还预先安装有网关服务端,该网关服务端还可以用于获取各用户对应的游戏客户端发送的游戏操作信息等,然后,再将该游戏操作信息等基于对应的游戏场景对象分别发送给绑定的场景计算服务进程,从而执行游戏操作等。

并且,考虑到在游戏中一般还会具有用户道具、用户任务等游戏系统信息,因而,需要对该游戏系统信息进行处理。基于此,在本实施例中,所述电子设备10预先安装有逻辑服务端,用于对该游戏系统信息进行处理。

其中,对于对游戏系统信息进行处理的结果或依据,可能基于一定的需求,需要与所述场景计算服务进程之间进行交互,如此,为了使得该交互的有效进行,所述电子设备10还预先安装有消息队列服务端,用于对该场景计算服务进程与该逻辑服务端之间的交互进行信息转发等。

并且,对于所述消息队列服务端,在一种可以替代的示例中,还可以用于对所述场景计算服务进程与其他服务端之间进行信息交互,例如,对于一些需要进行持久化的游戏数据,所述场景计算服务进程可以通过该消息队列服务端与数据库服务端进行信息交互,而获得或存储该游戏数据(如场景对象的等级、血量、属性等数据)。同样地,所述逻辑服务端也可以基于该消息队列服务端与该数据库服务端进行信息交互(如用户道具、用户装备、用户任务等数据)。

第二方面,对于步骤S120需要说明的是,通过所述场景计算服务进程执行游戏操作的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,对于属于同一个场景计算服务进程的游戏场景对象,可以基于同一线程进行处理,如此,针对每一个所述场景计算服务进程可以分别配置一个线程,用于执行游戏操作。

又例如,在另一种可以替代的示例中,对于属于同一个场景计算服务进程的游戏场景对象,也可以基于不同的线程进行处理,如此,可以保证执行游戏操作的可靠性和稳定性。也就是说,在此示例中,针对每一个所述场景计算服务进程可以分别配置多个线程。

其中,针对在一个场景计算服务进程中配置多个线程的示例,其具体配置方式不同,可以导致执行游戏操作的具体方式也会不同。

例如,在一种可以替代的示例中,结合图4,步骤S120可以包括步骤S121和步骤S122,具体内容如下所述。

步骤S121,针对每一个场景计算服务进程,将该场景计算服务进程绑定的多个游戏场景对象与对应的多个第一计算服务线程建立绑定关系。

在本实施例中,在基于步骤S110建立场景计算服务进程与游戏场景对象之间的绑定关系之后,考虑到一个场景计算服务进程绑定的游戏场景对象一般会有多个,且对应有多个第一计算服务线程,因而,还可以针对每一个所述场景计算服务进程,将该场景计算服务进程绑定的多个游戏场景对象与对应的多个第一计算服务线程建立绑定关系,如此,使得每一个所述第一计算服务线程绑定有至少一个游戏场景对象。

其中,所述多个第一计算服务线程可以基于预先针对所述场景计算服务进程配置形成(可以是基于该场景计算服务进程绑定的多个游戏场景对象之间在一些执行逻辑上可以并行、拆分的应用,形成多个第一计算服务线程以分别对多个游戏场景对象的游戏数据进行并行处理,例如,对于游戏场景对象的基础数据,如场景对象的坐标、血量、战力、攻击力等,可以分别进行更新)。也就是说,可以预先针对每一个所述场景计算服务进程,为该场景计算服务进程配置对应的多个第一计算服务线程。

步骤S122,分别通过每一个所述第一计算服务线程,基于绑定的游戏场景对象的游戏数据执行游戏操作,得到每一个游戏场景对象对应的游戏处理数据。

在本实施例中,在基于步骤S121建立游戏场景对象与第一计算服务线程之间的绑定关系之后,可以分别通过每一个所述第一计算服务线程,基于该第一计算服务线程绑定的游戏场景对象的游戏数据执行游戏操作,如此,可以得到每一个游戏场景对象对应的游戏处理数据。

也就是说,针对每一个所述第一计算服务线程,可以通过该第一计算服务线程,基于该第一计算服务线程绑定的游戏场景对象的游戏数据(可以包括存储的数据,如游戏场景对象的等级数据,以及实时获取的数据,如用户输入的游戏操作信息)执行操作。

又例如,在另一种可以替代的示例中,结合图5,步骤S120可以包括步骤S123和步骤S124,具体内容如下所述。

步骤S123,针对每一个所述场景计算服务进程,分别为该场景计算服务进程包括的多个游戏计算任务配置对应的第二计算服务线程。

在本实施例中,在基于步骤S110建立场景计算服务进程与游戏场景对象之间的绑定关系之后,考虑到一个场景计算服务进程中可能会存在多个游戏计算任务,而不同的游戏计算任务之间相对独立运行,因而,针对每一个所述场景计算服务进程,可以分别为该场景计算服务进程包括的多个游戏计算任务配置对应的第二计算服务线程,如此,可以得到每一个场景计算服务进程对应的多个第二计算服务线程。

其中,所述第二计算服务线程与所述游戏计算任务之间具有一一对应关系。也就是说,每一个第二计算服务线程可以用于执行一个场景计算服务进程中的一个游戏计算任务,例如,寻路任务(如根据起始点坐标和终止点坐标,获取一条可走路径)、碰撞检查任务(如计算一个物体从起始点到终止点的直线上与游戏场景中哪些对象相交)。

步骤S124,分别通过每一个所述第二计算服务线程,基于所属的场景计算服务进程绑定的游戏场景对象的游戏数据,执行对应的游戏计算任务,得到每一个游戏场景对象对应的游戏处理数据。

在本实施例中,在基于步骤S123为每一个所述游戏计算任务配置对应的第二计算服务线程之后,可以分别通过每一个所述第二计算服务线程,基于所属的场景计算服务进程绑定的游戏场景对象的游戏数据,执行对应的游戏计算任务,即执行该游戏计算任务对应的游戏操作,如此,可以得到每一个游戏场景对象对应的游戏处理数据。

也就是说,针对每一个所述第二计算服务线程,可以基于该第二计算服务线程所述的场景计算服务进程绑定的游戏场景对象的游戏数据,执行该第二计算服务线程对应的游戏计算任务。

第三方面,对于步骤S130需要说明的是,通过所述场景计算服务进程发送所述对象标识数据和所述游戏关联数据的具体方式不受限制,可以根据实际应用需求进行选择。

例如,在一种可以替代的示例中,所述场景计算服务进程之间可以直接进行通信,即该场景计算服务进程可以将所述对象标识数据和所述游戏关联数据直接发送给其他的场景计算服务进程。

又例如,在另一种可以替代的示例中,考虑到所述场景计算服务进程一般数量较多,为了保证所述对象标识数据和所述游戏关联数据发送的有效性,结合图6和图7,所述电子设备10还配置有场景同步服务进程,步骤S130可以包括步骤S131和步骤S132,具体内容如下所述。

步骤S131,将每一个所述游戏场景对象的对象标识数据和游戏关联数据,分别通过绑定的场景计算服务进程,发送给所述场景同步服务进程。

在本实施例中,在基于步骤S120得到每一个所述游戏场景对象对应的游戏处理数据之后,可以将每一个游戏场景对象的对象标识数据和游戏处理数据中的游戏关联数据,通过该游戏场景对象绑定的场景计算服务进程,发送给所述场景同步服务进程。

步骤S132,通过所述场景同步服务进程,将每一个所述游戏场景对象的对象标识数据和游戏关联数据,发送给该游戏场景对象绑定的场景计算服务进程以外的每一个场景计算服务进程。

在本实施例中,在基于步骤S131将每一个所述游戏场景对象的对象标识数据和游戏关联数据发送给所述场景同步服务进程之后,可以通过该场景同步服务进程,将每一个所述游戏场景对象的对象标识数据和游戏关联数据,发送给该游戏场景对象绑定的场景计算服务进程以外的每一个场景计算服务进程,如此,可以实现各所述场景计算服务进程之间对每一个所述游戏场景对象的对象标识数据和游戏关联数据的同步。

可以理解的是,在上述示例中,限定的对象标识数据可以是指,需要发送至游戏客户端进行处理(如显示)的数据,可以包括,但不限于游戏场景对象的类型数据(如玩家角色、非玩家控制角色、静态对象、动态对象等)、唯一标识数据(Unique Identify)、外观数据、坐标数据、血量或其他属性数据。

其中,在上述示例中,玩家角色可以是指用户可以控制的角色。非玩家控制角色(NPC)可以只是非用户可以控制的角色。静态对象(Scene Static Object)可以是指游戏场景中不能移动的对象,可以是预设或在游戏过程中添加的,如房屋等。动态对象(SceneMovement Object)可以是指游戏场景中可以移动的对象,可以由玩家角色或非玩家控制角色产生的一些需要改变位置的对象,如子弹、技能例子等。

对于所述游戏关联数据,如前文所述,该游戏关联数据可以为对应游戏处理数据中属于不同场景计算服务进程的游戏场景对象之间具有关联关系的数据,例如,可以包括但不限于,用于对战斗中的伤害值进行计算的数据、游戏场景对象之间的仇恨值等。

可以理解的是,为了便于通过所述场景同步服务进程在不同的进程之间,如场景计算服务进程之间,进行数据的同步处理,在本实施例中,还可以配置数据不同的机制。

例如,在一种可以替代的示例中,可以将所有的场景计算服务进程加入至同一个数据同步组中,如此,可以实现该数据不同步组中对数据的有效同步,如所述场景同步服务进程在接收到任何一个场景计算服务进程发送的对象标识数据和游戏关联数据之后,可以将该对象标识数据和游戏关联数据同步至对应数据同步组中的每一个(其他的)场景计算服务进程。

其中,对于其他类型的数据或者其他进程之间的数据同步方式,可以根据实际应用需求进行配置,在此不再一一赘述。

在上述示例的基础上,经过本申请发明人的进一步研究发现,在基于多个场景计算服务进程执行游戏操作的过程中,可能部分场景计算服务进程会因宕机等因素而丢失数据,因而,需要进行数据恢复操作。

基于此,为了实现游戏操作的有效执行,所述电子设备10还配置有场景存储服务进程,所述游戏运行方法还可以包括以下步骤:

通过所述场景同步服务进程,将每一个所述游戏场景对象的对象标识数据和游戏关联数据,发送给所述场景存储服务进程。

其中,所述场景存储服务进程用于存储所述对象标识数据和所述游戏关联数据,且在接收到任意一个所述场景计算服务进程的数据恢复请求信息时,将该对象标识数据和该游戏关联数据发送给该场景计算服务进程。

可以理解的是,对上述数据恢复的过程,在一种具体的应用示例中,可以基于以下步骤实现:

所述场景计算服务进程可以向所述场景同步服务进程发送同步数据请求,在该场景同步服务进程接收到该同步数据请求之后,该场景同步服务进程会向该场景计算服务进程发送一个同步消息号ID,且通知所述场景存储服务进程向该场景同步服务进程返回数据(通知的信息中包括该同步消息号ID),然后,该场景存储服务进程会将回复数据发送给该场景同步服务进程(该回复数据中包括该同步消息号ID)。然后,该场景计算服务进程在接收到该同步消息号ID之后,可以记录该同步消息号ID,如此,该场景计算服务进程在接收到该场景同步服务进程的转发的回复数据之后,可以先进行存储,如此,可以进一步基于该同步消息号ID,将该同步消息号ID之前的存储的所有数据丢弃,仅保留包括该同步消息号ID的回复数据。

进一步地,考虑到游戏场景一般会较大,而对于不同的游戏场景对象所处的位置不同,使得不同的游戏场景对象会具有不同的游戏视野(即难以将游戏场景的全部内容都作为每一个游戏场景对象的有效视野),因此,一般会对不同的游戏场景对象形成不同的视野容器(可以理解为,游戏场景对象之间的实时关系数据,即游戏场景对象在视野范围内可以看到的其他游戏场景对象)。基于此,为了有效地对游戏场景对象的视野容器(对应的数据)进行更新等处理,结合图8,所述游戏运行方法还可以包括步骤S140、步骤S150、步骤S160和步骤S170,具体内容如下所述。

步骤S140,通过所述场景计算服务进程,将目标游戏场景对象的位置更新信息发送给所述场景交互服务进程。

在本实施例中,所述电子设备10还配置有场景交互服务进程,基于此,所述电子设备10可以通过所述场景计算服务进程,将目标游戏场景对象的位置更新信息发送给该场景交互服务进程(例如,在一种可以替代的示例中,可以所述场景计算服务进程可以通过所述场景同步服务进程,将该位置更新信息发送给该场景交互服务进程)。

其中,所述目标游戏场景对象为所述场景计算服务进程绑定的游戏场景对象,且该游戏场景对象的位置需要或者已经发生更新或变化。

步骤S150,通过所述场景交互服务进程,基于所述位置更新信息对所述目标游戏场景对象进行可视关系更新计算处理,以确定与该目标游戏场景对象之间具有可视关系的其他游戏场景对象。

在本实施例中,在基于步骤S140将所述位置更新信息发送给所述场景交互服务进程之后,所述电子设备10可以通过该场景交互服务进程,基于该位置更新信息对所述目标游戏场景对象进行可视关系更新计算处理,如此,可以确定与该目标游戏场景对象之间具有可视关系的其他游戏场景对象(例如,在一种可以替代的示例中,可以确定该目标游戏场景对象在一定半径范围或视野范围内的其他游戏场景对象)。

步骤S160,通过所述场景交互服务进程,对每一个目标第一视野容器中的游戏场景对象分别进行更新处理,并将更新处理的结果发送给该目标第一视野容器对应的游戏场景对象绑定的场景计算服务进程。

在本实施例中,在基于步骤S150确定与所述目标游戏场景对象之间具有可视关系的其他游戏场景对象之后,所述电子设备10可以通过所述场景交互服务进程,对每一个目标第一视野容器中的游戏场景对象分别进行更新处理,并将更新处理的结果发送给该目标第一视野容器对应的游戏场景对象绑定的场景计算服务进程(例如,在一种可以替代的示例中,也可以是基于所述场景同步服务进程进行转发)。

其中,每一个所述目标第一视野容器为预先针对所述目标游戏场景对象、与该目标游戏场景对象在位置信息被更新之前具有可视关系的其他游戏场景对象、与该目标游戏场景对象在位置信息被更新之前具有可视关系的其他游戏场景对象,在该场景交互服务进程中分别配置的第一视野容器。

步骤S170,接收到所述更新处理的结果的每一个场景计算服务进程,分别基于对应的更新处理的结果,对对应游戏场景对象在绑定的场景计算服务进程中配置的第二视野容器中的游戏场景对象,进行更新处理。

在本实施例中,在基于步骤S160将更新处理的结果发送给对应的游戏场景对象绑定的场景计算服务进程之后,所述电子设备10可以通过接收到所述更新处理的结果的每一个场景计算服务进程,分别基于对应的更新处理的结果,对对应游戏场景对象在绑定的场景计算服务进程中配置的第二视野容器中的游戏场景对象,进行更新处理,如此,可以实现在场景计算服务进程中对视野容器(即视野数据)的更新。

在上述示例的基础上,为了便于对视野容器的更新进行理解,本实施例还提供一种具体的应用示例,具体内容如下所述:

首先,场景计算服务进程1在确定游戏场景对象A位置发生更新时,可以将该更新对应的位置更新信息(如更新后的位置坐标信息)发生给场景交互服务进程;

其次,场景交互服务进程在接收到位置更新信息之后,可以基于该位置更新信息进行可视关系更新计算处理,如确定游戏场景对象A在可视范围内有游戏场景对象B和游戏场景对象C,并基于确定是否到达可视数量的上限(此步骤在其它示例中可以不配置),如达到该可视数量,可以仅选择部分游戏场景对象,如仅将游戏场景对象B作为与游戏场景对象A具有可视关系的其他游戏场景对象,如此,将游戏场景对象B加入至游戏场景对象A的第一视野容器中,并将游戏场景对象A加入至游戏场景对象B的第一视野容器中(即实现对第一视野容器的更新),并通知游戏场景对象A绑定的场景计算服务进程(即场景计算服务进程1)和游戏场景对象B绑定的场景计算服务进程(如尝尽计算服务进程2);

然后,游戏场景对象A绑定的场景计算服务进程可以基于通知,将游戏场景对象B加入至游戏场景对象A的第二视野容器中;游戏场景对象B绑定的场景计算服务进程可以基于通知,将游戏场景对象A加入至游戏场景对象B的第二视野容器中(即实现对第二视野容器的更新);

最后,游戏场景对象A绑定的场景计算服务进程和游戏场景对象B绑定的场景计算服务进程,可以分别将上述第二视野容器的更新处理的结果发送对对应的游戏客户端(可以理解的是,此步骤,在游戏场景对象A和游戏场景对象B属于玩家角色时有效)。

进一步地,在上述示例中,考虑到在一台设备上配置过多的场景计算服务进程,可能会导致对该设备的性能需求较高或导致该设备难以有效运行过多的场景计算服务进程,因而,还可以将部分场景计算服务进程在电子设备10以外的其它电子设备上进行部署,且可以在该其它电子设备上部署场景同步代理服务进程,用于实现该其它电子设备上的场景计算服务进程与电子设备10上的场景计算服务进程之间的信息交互。

并且,可以理解的是,上述的多个、多种进程,可以是针对一个游戏场景进行配置的,可以称为一个进程组。也就是说,在一种游戏对应有多种游戏场景(在一种可以替代的示例中,该游戏场景可以理解为是地图)时,可以针对每一个游戏场景分别配置对应的一个进程组。

结合图9,本申请实施例还提供一种游戏运行装置100,可应用于上述电子设备10。其中,该游戏运行装置100可以包括绑定关系建立模块110、游戏操作执行模块120和游戏数据发送模块130。

所述绑定关系建立模块110,可以用于将多个游戏场景对象分别与所述多个场景计算服务进程建立绑定关系,其中,每一个所述场景计算服务进程绑定有至少一个游戏场景对象。在本实施例中,所述绑定关系建立模块110可用于执行图2所示的步骤S110,关于所述绑定关系建立模块110的相关内容可以参照前文对步骤S110的描述。

所述游戏操作执行模块120,可以用于分别通过每一个所述场景计算服务进程,基于绑定的游戏场景对象的游戏数据执行游戏操作,得到每一个游戏场景对象对应的游戏处理数据。在本实施例中,所述游戏操作执行模块120可用于执行图2所示的步骤S120,关于所述游戏操作执行模块120的相关内容可以参照前文对步骤S120的描述。

所述游戏数据发送模块130,可以用于将每一个游戏场景对象的对象标识数据和游戏关联数据,分别通过该游戏场景对象绑定的场景计算服务进程,发送给其他的每一个场景计算服务进程,其中,该游戏关联数据为对应游戏处理数据中的属于不同场景计算服务进程的游戏场景对象之间具有关联关系的数据。在本实施例中,所述游戏数据发送模块130可用于执行图2所示的步骤S130,关于所述游戏数据发送模块130的相关内容可以参照前文对步骤S130的描述。

可选地,在一种可以替代的示例中,所述游戏操作执行模块120可以包括关系建立单元和操作执行单元。

所述关系建立单元,可以用于针对每一个所述场景计算服务进程,将该场景计算服务进程绑定的多个游戏场景对象与对应的多个第一计算服务线程建立绑定关系,其中,多个第一计算服务线程预先针对所述场景计算服务进程配置形成,每一个所述第一计算服务线程绑定有至少一个游戏场景对象。所述操作执行单元,可以用于分别通过每一个所述第一计算服务线程,基于绑定的游戏场景对象的游戏数据执行游戏操作,得到每一个游戏场景对象对应的游戏处理数据。

在上述示例的基础上,基于不同的需求,所述游戏运行装置100还可以包括具有不同功能的其他模块。

例如,在一种可以替代的示例中,所述电子设备10还配置有场景同步服务进程和场景存储服务进程,其他模块可以用于:

通过所述场景同步服务进程,将每一个所述游戏场景对象的对象标识数据和游戏关联数据,发送给所述场景存储服务进程;其中,所述场景存储服务进程用于存储所述对象标识数据和所述游戏关联数据,且在接收到任意一个所述场景计算服务进程的数据恢复请求信息时,将该对象标识数据和该游戏关联数据发送给该场景计算服务进程。

又例如,在另一种可以替代的示例中,所述电子设备10还配置有场景交互服务进程,其他模块也可以用于:

通过所述场景计算服务进程,将目标游戏场景对象的位置更新信息发送给所述场景交互服务进程,其中,该目标游戏场景对象为该场景计算服务进程绑定的游戏场景对象;通过所述场景交互服务进程,基于所述位置更新信息对所述目标游戏场景对象进行可视关系更新计算处理,以确定与该目标游戏场景对象之间具有可视关系的其他游戏场景对象;通过所述场景交互服务进程,对每一个目标第一视野容器中的游戏场景对象分别进行更新处理,并将更新处理的结果发送给该目标第一视野容器对应的游戏场景对象绑定的场景计算服务进程,其中,每一个所述目标第一视野容器为预先针对所述目标游戏场景对象、与该目标游戏场景对象在位置信息被更新之前具有可视关系的其他游戏场景对象、与该目标游戏场景对象在位置信息被更新之前具有可视关系的其他游戏场景对象,在该场景交互服务进程中分别配置的第一视野容器;接收到所述更新处理的结果的每一个场景计算服务进程,分别基于对应的更新处理的结果,对对应游戏场景对象在绑定的场景计算服务进程中配置的第二视野容器中的游戏场景对象,进行更新处理。

在本申请实施例中,对应于上述的游戏运行方法,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序运行时执行上述游戏运行方法的各个步骤。

其中,前述计算机程序运行时执行的各步骤,在此不再一一赘述,可参考前文对所述游戏运行方法的解释说明。

综上所述,本申请提供的游戏运行方法和装置、电子设备及存储介质,通过将多个游戏场景对象与预先配置的多个场景计算服务进程之间建立绑定关系,使得可以分别基于不同的场景计算服务进程对不同游戏场景对象执行游戏操作,然后,再将得到的游戏处理数据中的游戏关联数据发送给其他场景计算服务进程,使得各场景计算服务进程之间,可以实现数据的同步。基于此,由于各场景计算服务进程之间可以实现数据的同步,而且不需要对游戏场景(如地图)进行划分,即可实现分别控制,从而避免由于对游戏场景进行划分而导致容易出现游戏场景对象在某一个控制中集中,进而导致游戏运行过程因游戏场景对象过于集中而在资源不是特别充足的情况下导致出现卡顿的问题,即可以改善基于现有的游戏技术进行的游戏运行过程容易出现卡顿的问题,使得具有较高的实用价值。

在本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:状态同步方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类