CN111973989A - 一种游戏引擎框架、实体创建方法,服务器及存储介质 - Google Patents
一种游戏引擎框架、实体创建方法,服务器及存储介质 Download PDFInfo
- Publication number
- CN111973989A CN111973989A CN202010854142.XA CN202010854142A CN111973989A CN 111973989 A CN111973989 A CN 111973989A CN 202010854142 A CN202010854142 A CN 202010854142A CN 111973989 A CN111973989 A CN 111973989A
- Authority
- CN
- China
- Prior art keywords
- component
- entity
- components
- manager
- game engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种游戏引擎框架、实体创建方法,服务器及存储介质。所述游戏引擎框架包括:实体管理器,用于给实体分配标识;组件管理器,用于基于所述组件的类型,将所述组件进行分组管理;多个功能系统,每个所述功能系统用于通过所述组件管理器执行所述组件管理器中与自身关联的至少一组组件上的业务逻辑。本申请实施例所提供的游戏引擎框架,与现有技术相比,增添了组件管理器。通过组件管理器能够将不同实体的组件,基于组件的类型,对组件进行分组管理,进而使得每个功能系统可以通过组件管理器执行组件管理器中与自身关联的至少一组组件上的业务逻辑,进而提高了处理器缓存命中率,明显提高了游戏引擎效率。
Description
技术领域
本申请涉及游戏开发技术领域,具体而言,涉及一种游戏引擎框架、实体创建方法,服务器及存储介质。
背景技术
现在游戏引擎中大多使用的OOP(Object Oriented Programming,面向对象程序设计)或组件架构设计。这类游戏引擎构建能够快速符合大多程序设计。比如采用OOP设计方式,通常情况下是由每一个实体去组合和管理各自对应的组件的功能,那么系统在需要运行所有实体中的某个组件的功能时,需要去遍历每一个实体中的组件。而处理器运行时通常是遍历连续数组,也即,处理器需要对每个实体中的组件进行遍历,直到找到所需运行的某个组件,该方式导致处理器缓存命中率严重降低,性能上有很大的瓶颈。
发明内容
本申请实施例的目的在于提供一种游戏引擎框架、实体创建方法,服务器及存储介质,以改善“处理器缓存命中率严重降低,性能上有很大的瓶颈”的问题。
本发明是这样实现的:
第一方面,本申请实施例一种游戏引擎框架,包括:实体管理器,用于给实体分配标识;其中,每个所述实体由至少一个类型的组件构成,且相同类型的实体所包含的组件的类型相同;组件管理器,用于基于所述组件的类型,将所述组件进行分组管理;其中,每个分组中的组件标记有对应的实体的标识;多个功能系统,每个所述功能系统用于通过所述组件管理器执行所述组件管理器中与自身关联的至少一组组件上的业务逻辑。
本申请实施例所提供的游戏引擎框架,与现有技术相比,增添了组件管理器。通过组件管理器能够将不同实体的组件,基于组件的类型,对组件进行分组管理,进而使得每个功能系统可以通过组件管理器执行组件管理器中与自身关联的至少一组组件上的业务逻辑,进而提高了处理器缓存命中率,明显提高了游戏引擎效率。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述组件管理器还用于在所述实体管理器对新创建的实体分配标识后,基于所述新创建的实体的类型,确定与所述新创建的实体相关的组件;以及在与所述新创建的实体相关的组件对应的分组中增加一个组件;其中,增加的组件标记有所述新创建的实体的标识。
在本申请实施例中,组件管理器还用于在实体管理器对新创建的实体分配标识后,基于新创建的实体的类型,确定与新创建的实体相关的组件;以及在与新创建的实体相关的组件对应的分组中增加一个组件,进而使得每新增一个实体,依然可以对每个实体所包含的组件进行统一管理。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述组件管理器还用于接收功能系统的第一移除指令,以及移除所述第一移除指令对应的第一组件。
在本申请实施例中,组件管理器还用于接收功能系统的第一移除指令,以及基于第一移除指令,移除第一分组中的第一组件。通过该方式,移除方式更加简单方便,更加便于对组件的统一管理。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述组件管理器还用于查找每个所述组件的数据。
在本申请实施例中,通过组件管理器便可查找每个所述组件的数据,进而便于对组件的统一管理。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述游戏引擎框架还包括:中间系统;所述中间系统用于接收所述功能系统发送的第二移除指令,并将所述第二移除指令发送至所述组件管理器,以使所述组件管理器基于所述第二移除指令移除第二分组中的第二组件;以及基于移除的所述第二组件,确定需要移除与所述第二组件对应的第一实体,并向所述组件管理器发送移除实体指令,以使所述组件管理器基于所述移除实体指令移除所述第一实体。
在本申请实施例中,通过在游戏引擎框架增设中间系统,可以通过中间系统实现对于组件管理器中组件的增添删除,以及实体的删除,而无需各个功能系统去判断是否删除实体。进而降低了各个系统之间的耦合性。使得后续对于每个功能系统的开发和维护难度降低。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,多个所述功能系统可并行更新。
在本申请实施例中,多个功能系统可以进行并行更新,进而节省了所有功能系统更新完成的时间。
第二方面,本申请实施例提供一种实体创建方法,所述方法包括:接收用户的游戏角色创建请求;创建与所述游戏角色对应的目标实体,并向所述目标实体分配第一标识;基于所述目标实体的类型,确定与所述目标实体相关的组件;在与所述目标实体相关的组件对应的分组中增加一个组件;其中,增加的组件标记有所述第一标识。
结合上述第二方面提供的技术方案,在一些可能的实现方式中,所述在与所述目标实体相关的组件对应的分组中增加一个组件之后,所述方法还包括:基于功能系统发送的第三移除指令,移除第三组件,和/或,基于所述功能系统发送的增加指令,在与第四组件对应的分组中增加所述第四组件;其中,所述第四组件标记有所述第一标识。
第三方面,本申请实施例提供一种服务器,包括:处理器和存储器,所述处理器和所述存储器连接;所述存储器用于存储程序;所述处理器用于调用存储在所述存储器中的程序,执行如上述第二方面实施例和/或结合上述第二方面实施例的一些可能的实现方式提供的方法。
第四方面,本申请实施例提供一种存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时执行如上述第二方面实施例和/或结合上述第二方面实施例的一些可能的实现方式提供的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种游戏引擎框架的结构示意图。
图2为本申请实施例提供的实体与组件的包含关系图。
图3为本申请实施例提供的一种组件的分组示意图。
图4为现有技术中采用OOP设计方式下的组件的布局图。
图5为本申请实施例提供的经分组后的组件的布局方式。
图6为本申请实施例提供的另一种游戏引擎框架的结构示意图。
图7为本申请实施例提供的一种实体创建方法的步骤流程图。
图8为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
现在游戏引擎中大多使用的OOP(Object Oriented Programming,面向对象程序设计)或组件架构设计。这类游戏引擎构建能够快速符合大多程序设计。比如采用OOP设计方式,通常情况下是由每一个实体去组合和管理各自对应的组件的功能,那么系统在需要运行所有实体中的某个组件的功能时,需要去遍历每一个实体中的组件。而处理器运行时通常是遍历连续数组,也即,处理器需要对每个实体中的组件进行遍历,直到找到所需运行的某个组件,该方式导致处理器缓存命中率严重降低,性能上有很大的瓶颈。下面举例进行说明,游戏打开后,处理器开始运行游戏,假设当前游戏场景为打怪场景,玩家和怪物之间均由生命值组件构成(玩家和怪物对应构建的实体),在每次使用技能后,玩家和怪物之间的生命值均会产生变换,那么生命值组件对应的生命系统则需要对每个生命值组件进行刷新,而由于每个实体各自管理组件,因此,生命系统需要遍历每一个实体中的组件,直到找到生命值组件进行刷新。
鉴于上述问题,本申请发明人经过研究探索,提出以下实施例以解决上述问题。
请参阅图1,本申请实施例提供一种游戏引擎框架。包括:实体管理器、组件管理器以及多个功能系统。
其中,实体管理器,用于给实体分配标识。需要解释的是,实体表示游戏中的一个单元,具体的可以是角色、怪物、NPC(Non-Player Character,非玩家角色)等。每个实体由至少一个类型的组件构成,比如请参阅图2,实体1对应的组件包括:生命值组件、移动组件、图像组件、技能组件、形态组件和动作组件。实体2对应的组件包括:生命值组件、移动组件和技能组件。实体3对应的组件包括形态组件。也即,实体1由六种不同类型的组件构成、实体2由三种不同类型的组件构成、而实体3仅由一种类型的组件构成。而上述的1,2,3则为实体管理器分配给三个实体的标识,当然,标识还可以是英文,一些字符,或者是英文和数字的组合、数字和字符的组合等的,比如,实体管理器给实体分配的标识为3A,0030*等等,对此,本申请不作限定。
而相同类型的实体所包含的组件的类型相同。比如实体1为角色战士,则后续创建的角色为战士的实体均包括与实体1相同的六种类型的组件。又比如实体2为角色法师,则后续创建的角色为法师的实体均包括与实体2相同的三种类型的组件。
组件管理器,用于基于组件的类型,将组件进行分组管理。其中,每个分组中的组件标记有对应的实体的标识。
为了便于理解,继续在图2创建的实体1、实体2以及实体3的基础上进行说明,请参阅图3,实体管理器管理的三个实体,每个实体均由至少一个类型的组件构成。实体管理器则基于每个组件的类型将组件进行分组,比如先获取生命值组件,然后将所有实体中的生命值组件分为一组、再获取移动组件,将所有实体中的移动组件分为一组,然后以此类推,直至将所有类型的组件都单独归为一组。在分组的同时,每个组件都标记有对应的实体的标识。比如生命值组件的分组中(生命值组件组),第一个生命值组件的标识为1,第一个生命值组件对应实体1;第二个生命值组件的标识为2,第二个生命值组件对应实体2。而移动组件的分组中(移动组件组),第一个移动组件的标识为1,第一个移动组件对应实体1;第二个移动组件的标识为2,第二个移动组件对应实体2。相应的,技能组件的分组中(技能组件组),第一个技能组件的标识为1,第一个技能组件对应实体1;第二个技能组件的标识为2,第二个技能组件对应实体2。相应的,形态组件的分组中(形态组件组),第一个形态组件的标识为1,第一个形态组件对应实体1;第二个形态组件的标识为3,第二个形态组件对应实体3。而由于图形组件和动作组件仅对应于实体1,因此,在图形组件和动作组件的分组中均只包括一个标识为1的组件。
其中,多个功能系统中的每个功能系统用于通过组件管理器执行组件管理器中与自身关联的至少一组组件上的业务逻辑。
上述的功能系统可以包括:生命值系统(或称治愈系统)、技能系统、位移系统、形态系统、动作系统、图形系统等等。每个系统对应至少一组组件,比如生命值系统对应生命值组件和形态组件(不同生命值的角色可能存在形态上的差异)、技能系统对应技能组件等。而每个功能系统用于执行至少一组组件上的业务逻辑,比如技能系统可以使得每个拥有技能组件的实体根据需求执行相应的技能。
而本申请实施例通过上述的组件管理器能够将每个实体所对应的组件进行分组管理,进而使得每个功能系统在执行至少一组组件上的业务逻辑时,仅需依次遍历分组后的对应的分组下的组件即可,而无需依次遍历每个实体内的组件。为了更直观的说明,请参阅图4以及图5,图4为通过OOP设计方式下的组件的布局方式,而图5为分组后的组件的布局方式。由于采用OOP设计方式,是由每个实体去组合和管理各自对应的组件的功能,因此,组件是根据实体进行布局的。因此,实体1对应排列有六个组件,实体2对应排列有三个组件,实体3对应排列有一个组件。而采用组件管理器后,是基于组件的类型进行的分组,进而使得组件的排列也是基于分组进行的排列,也即生命值组件依次排列在一起,移动组件依次排列在一起,技能组件依次排列在一起···通过该方式,使得每个功能系统在执行至少一组组件上的业务逻辑时,仅需依次遍历分组后的对应的分组下的组件即可,而无需依次遍历每个实体内的组件。比如技能系统执行技能组件上的业务逻辑,仅需依次遍历技能组件分组下的每个技能组件即可,而无需在每个实体中去遍历查找到技能组件。
综上所述,本申请实施例所提供的游戏引擎框架,与现有技术相比,增添了组件管理器。通过组件管理器能够将不同实体的组件,基于组件的类型,对组件进行分组管理,进而使得每个功能系统可以通过组件管理器执行组件管理器中与自身关联的至少一组组件上的业务逻辑,进而提高了处理器缓存命中率,明显提高了游戏引擎效率。
可以理解的是,当实体管理器对新创建的实体分配标识后,组件管理器还用于基于新创建的实体的类型,确定与新创建的实体相关的组件;以及在与新创建的实体相关的组件对应的分组中增加一个组件。
下面,举例进行说明,比如新创建一个战士类型的实体,实体管理器会对新创建的实体分配标识,比如标识为4,则在实体管理器对新创建的实体分配标识4后,组件管理器基于新创建的实体的类型,确定与新创建的实体相关的组件。假设实体4与实体1的类型相同,则实体4也具有如图2所示出的六种组件,分别是生命值组件、移动组件、图像组件、技能组件、形态组件和动作组件。相应的,组件管理器会在每个实体4对应的组件所对应的分组中增加一个组件,每个增加的组件的标识均为4。比如,在生命值组件的分组中增加一个标识为4的生命值组件、在移动组件的分组中增加一个标识为4的移动组件等等。
在本申请实施例中,组件管理器还用于在实体管理器对新创建的实体分配标识后,基于新创建的实体的类型,确定与新创建的实体相关的组件;以及在与新创建的实体相关的组件对应的分组中增加一个组件,进而使得每新增一个实体,依然可以对每个实体所包含的组件进行统一管理。
可选地,组件管理器还用于接收功能系统的第一移除指令,以及移除第一移除指令对应的第一组件。
比如,在游戏的进行中,可能存在目标实体丧失某个组件的功能的情况,具体的,可能存在目标实体丧失某个技能的情况,因此,组件管理器用于接收技能系统的第一移除指令,以及基于第一移除指令,移除技能分组中的第一组件。其中,第一组件的标识为目标实体的标识。又比如,随着游戏的进行,可能多个相同类型的目标实体丧失某个技能,因此,组件管理器可以接收技能系统的第一移除指令,以及基于第一移除指令,移除技能分组中的多个第一组件。其中,第一组件的标识对应第一移除指令中需要移除技能的目标实体的标识。
在本申请实施例中,组件管理器还用于接收功能系统的第一移除指令,以及基于第一移除指令,移除第一分组中的第一组件。通过该方式,移除方式更加简单方便,更加便于对组件的统一管理。
当然,于本申请实施例中,组件管理器还用于查找每个组件的数据。比如查找技能组件中技能的范围、伤害,比如移动组件中移动的范围等等。进而便于对组件的统一管理。
相应的,随着游戏的进行,某个实体可能会新获得一些组件,比如实体3随着游戏的进行,拥有了某项技能。因此,组件管理器还用于接收技能系统的增添指令,进而基于增添指令,在技能组件的分组中增添一个组件。其中,增添的组件的标记有实体3的标识。
请参阅图6,可选地,在本申请实施例中,游戏引擎框架还包括中间系统。中间系统用于处理各个功能系统之间的交互,功能系统与实体管理器、组件管理器之间的交互。具体的,中间系统用于接收功能系统发送的第二移除指令,并将第二移除指令发送至组件管理器,以使组件管理器基于第二移除指令移除第二分组中的第二组件;以及基于移除的第二组件,确定需要移除与所述第二组件对应的第一实体,并向所述组件管理器发送移除实体指令,以使所述组件管理器基于所述移除实体指令移除所述第一实体。下面举例进行说明,在游戏的进行中,可能存在实体丧失某个组件的功能的情况,因此,中间系统用于接收功能系统发送的第二移除指令,并将第二移除指令发送至组件管理器,以使组件管理器基于第二移除指令移除第二分组中的第二组件。其中,第二组件的标识为实体的标识。比如,在游戏的进行中,实体1丧失了移动的功能,则中间系统用于接收移动系统发送的第二移除指令,并将第二移除指令发送至组件管理器,以使组件管理器基于第二移除指令移除移动组件分组中的第二组件。第二组件的标识为实体1的标识。
相应的,中间系统还用于基于移除的第二组件,确定需要移除与所述第二组件对应的第一实体,并向所述组件管理器发送移除实体指令,以使所述组件管理器基于所述移除实体指令移除所述第一实体。
比如,当移除的第二组件为生命值组件时,则说明第二组件对应的实体已死亡,此时,应移除第二组件对应的第一实体,则中间系统确定第一实体的生命值组件被移除后,确定需要将第一实体进行移除,进而向组件管理器发送移除实体指令,以使组件管理器基于移除实体指令移除第一实体。又比如,当移除的第二组件为该第一实体所包含的最后一个组件时,则第一实体没有存在的价值了,则当中间系统在确定第二组件被移除后,确定需要将第一实体进行移除,进而向组件管理器发送移除实体指令,以使组件管理器基于移除实体指令移除第一实体。
因此,通过在游戏引擎框架增设中间系统,可以通过中间系统实现对于组件管理器中组件的增添删除,以及实体的删除,而无需各个功能系统去判断是否删除实体。进而降低了各个系统之间的耦合性。使得后续对于每个功能系统的开发和维护难度降低。
由于通过中间系统降低了系统之间的耦合性,因此,多个功能系统可以进行并行更新,比如对每个功能系统的执行逻辑进行并行更新。通过并行更新的方式,节省了所有功能系统更新完成的时间。
请参阅图7,基于同一发明构思,本申请实施例还提供一种实体创建方法,该方法包括:步骤S101-步骤S104。
步骤S101:接收用户的游戏角色创建请求。
步骤S102:创建与所述游戏角色对应的目标实体,并向所述目标实体分配第一标识。
步骤S103:基于所述目标实体的类型,确定与所述目标实体相关的组件。
步骤S104:在与所述目标实体相关的组件对应的分组中增加一个组件;其中,增加的组件标记有所述第一标识。
需要说明的是,上述方法应用于运行该游戏的服务器中,服务器在接收到用户的游戏角色创建请求后,创建与游戏角色对应的目标实体,并向目标实体分配第一标识。比如,分配第一标识为005,然后服务器基于创建的目标实体005的类型,确定与目标实体005相关的组件。比如目标实体005的游戏角色为战士,则确定出与战士相关的组件。最后服务器在与目标实体005相关的组件对应的分组中增加一个组件;其中,增加的组件标记有所述第一标识005。
相应的,在步骤S104在与所述目标实体相关的组件对应的分组中增加一个组件之后,该方法还包括:基于功能系统发送的第三移除指令,移除第三组件,和/或,基于所述功能系统发送的增加指令,在与第四组件对应的分组中增加所述第四组件;其中,所述第四组件标记有所述第一标识。
可以理解的是,上述过程在阐述游戏引擎框架时对游戏进行时如何增添、删除组件均有详细的说明,因此,为了避免累赘,此处不作重复阐述,相同部分互相参考即可。
下面,对服务器的结构进行说明,请参阅图8,服务器100可以包括处理器110和存储器120。
处理器110与存储器120直接或间接地电性连接,以实现数据的传输或交互,例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。处理器110可以在接收到执行指令后,执行计算机程序。
其中,处理器110可以是一种集成电路芯片,具有信号处理能力。处理器110也可以是通用处理器,例如,可以是中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processor,DSP)等可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。此外,通用处理器可以是微处理器或者任何常规处理器等。
存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-OnlyMemory,PROM)、可擦可编程序只读存储器(Erasable Programmable Read-Only Memory,EPROM),以及电可擦编程只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)。存储器120用于存储程序,处理器110在接收到执行指令后,执行该程序。
应当理解,图8所示的结构仅为示意,本申请实施例提供的服务器100还可以具有比图8更少或更多的组件,或是具有与图8所示不同的配置。此外,图8所示的各组件可以通过软件、硬件或其组合实现。
基于同一发明构思,本申请实施例还提供一种存储介质,其上存储有计算机程序,计算机程序在被运行时执行上述实施例中提供的方法。
该存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种游戏引擎框架,其特征在于,包括:
实体管理器,用于给实体分配标识;其中,每个所述实体由至少一个类型的组件构成,且相同类型的实体所包含的组件的类型相同;
组件管理器,用于基于所述组件的类型,将所述组件进行分组管理;其中,每个分组中的组件标记有对应的实体的标识;
多个功能系统,每个所述功能系统用于通过所述组件管理器执行所述组件管理器中与自身关联的至少一组组件上的业务逻辑。
2.根据权利要求1所述的游戏引擎框架,其特征在于,所述组件管理器还用于在所述实体管理器对新创建的实体分配标识后,基于所述新创建的实体的类型,确定与所述新创建的实体相关的组件;以及在与所述新创建的实体相关的组件对应的分组中增加一个组件;其中,增加的组件标记有所述新创建的实体的标识。
3.根据权利要求1所述的游戏引擎框架,其特征在于,所述组件管理器还用于接收功能系统的第一移除指令,以及移除所述第一移除指令对应的第一组件。
4.根据权利要求1所述的游戏引擎框架,其特征在于,所述组件管理器还用于查找每个所述组件的数据。
5.根据权利要求1所述的游戏引擎框架,其特征在于,所述游戏引擎框架还包括:中间系统;
所述中间系统用于接收所述功能系统发送的第二移除指令,并将所述第二移除指令发送至所述组件管理器,以使所述组件管理器基于所述第二移除指令移除第二分组中的第二组件;以及基于移除的所述第二组件,确定需要移除与所述第二组件对应的第一实体,并向所述组件管理器发送移除实体指令,以使所述组件管理器基于所述移除实体指令移除所述第一实体。
6.根据权利要求5所述的游戏引擎框架,其特征在于,多个所述功能系统可并行更新。
7.一种实体创建方法,其特征在于,所述方法包括:
接收用户的游戏角色创建请求;
创建与所述游戏角色对应的目标实体,并向所述目标实体分配第一标识;
基于所述目标实体的类型,确定与所述目标实体相关的组件;
在与所述目标实体相关的组件对应的分组中增加一个组件;其中,增加的组件标记有所述第一标识。
8.根据权利要求7所述的实体创建方法,其特征在于,所述在与所述目标实体相关的组件对应的分组中增加一个组件之后,所述方法还包括:
基于功能系统发送的第三移除指令,移除第三组件,和/或,基于所述功能系统发送的增加指令,在与第四组件对应的分组中增加所述第四组件;其中,所述第四组件标记有所述第一标识。
9.一种服务器,其特征在于,包括:处理器和存储器,所述处理器和所述存储器连接;
所述存储器用于存储程序;
所述处理器用于运行存储在所述存储器中的程序,执行如权利要求7-8中任一项所述的方法。
10.一种存储介质,其特征在于,其上存储有计算机程序,所述计算机程序在被计算机运行时执行如权利要求7-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010854142.XA CN111973989A (zh) | 2020-08-21 | 2020-08-21 | 一种游戏引擎框架、实体创建方法,服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010854142.XA CN111973989A (zh) | 2020-08-21 | 2020-08-21 | 一种游戏引擎框架、实体创建方法,服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111973989A true CN111973989A (zh) | 2020-11-24 |
Family
ID=73442484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010854142.XA Pending CN111973989A (zh) | 2020-08-21 | 2020-08-21 | 一种游戏引擎框架、实体创建方法,服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111973989A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778386A (zh) * | 2021-09-16 | 2021-12-10 | Oppo广东移动通信有限公司 | 组件生成方法、装置、存储介质及电子设备 |
CN113778386B (zh) * | 2021-09-16 | 2024-06-07 | Oppo广东移动通信有限公司 | 组件生成方法、装置、存储介质及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184542A (zh) * | 2005-05-27 | 2008-05-21 | 集特科罗得岛公司 | 速度竞赛游戏和方法 |
CN104573107A (zh) * | 2015-02-02 | 2015-04-29 | 国家计算机网络与信息安全管理中心江苏分中心 | 一种网络安全应用NoSQL数据库与关系型数据库融合接口方法 |
CN105207990A (zh) * | 2015-08-13 | 2015-12-30 | 北京乐动卓越科技有限公司 | 一种访问游戏服务器的方法、服务器和网络游戏系统 |
CN105786998A (zh) * | 2016-02-19 | 2016-07-20 | 创元网络技术股份有限公司 | 数据库中间件系统及利用其处理数据的方法 |
US20190377672A1 (en) * | 2018-06-12 | 2019-12-12 | Unity IPR ApS | Method and system for improved performance of a video game engine |
CN110639207A (zh) * | 2019-09-20 | 2020-01-03 | 北京代码乾坤科技有限公司 | 游戏数据同步方法、装置、存储介质及处理器 |
-
2020
- 2020-08-21 CN CN202010854142.XA patent/CN111973989A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184542A (zh) * | 2005-05-27 | 2008-05-21 | 集特科罗得岛公司 | 速度竞赛游戏和方法 |
CN104573107A (zh) * | 2015-02-02 | 2015-04-29 | 国家计算机网络与信息安全管理中心江苏分中心 | 一种网络安全应用NoSQL数据库与关系型数据库融合接口方法 |
CN105207990A (zh) * | 2015-08-13 | 2015-12-30 | 北京乐动卓越科技有限公司 | 一种访问游戏服务器的方法、服务器和网络游戏系统 |
CN105786998A (zh) * | 2016-02-19 | 2016-07-20 | 创元网络技术股份有限公司 | 数据库中间件系统及利用其处理数据的方法 |
US20190377672A1 (en) * | 2018-06-12 | 2019-12-12 | Unity IPR ApS | Method and system for improved performance of a video game engine |
CN110639207A (zh) * | 2019-09-20 | 2020-01-03 | 北京代码乾坤科技有限公司 | 游戏数据同步方法、装置、存储介质及处理器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778386A (zh) * | 2021-09-16 | 2021-12-10 | Oppo广东移动通信有限公司 | 组件生成方法、装置、存储介质及电子设备 |
CN113778386B (zh) * | 2021-09-16 | 2024-06-07 | Oppo广东移动通信有限公司 | 组件生成方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101677418B1 (ko) | 분산형 스토리지 시스템에서 데이터 재구성의 우선순위화 | |
KR101663215B1 (ko) | 데이터 저장 방법 및 장치 | |
US20160350302A1 (en) | Dynamically splitting a range of a node in a distributed hash table | |
CN111723148A (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN106550014A (zh) | 服务器集群中的节点升级方法及装置 | |
CN108595346B (zh) | 一种特征库文件管理方法和装置 | |
CN111064786B (zh) | 账户标识管理方法及设备 | |
CN107301021B (zh) | 一种利用ssd缓存对lun进行加速的方法和装置 | |
CN109726264A (zh) | 用于索引信息更新的方法、装置、设备和介质 | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
US20150212847A1 (en) | Apparatus and method for managing cache of virtual machine image file | |
CN111973989A (zh) | 一种游戏引擎框架、实体创建方法,服务器及存储介质 | |
CA2391680C (en) | System and method for synchronizing copies of data in a computer system | |
CN106202271A (zh) | Ota的产品数据库的读取方法 | |
CN106681866B (zh) | 一种保证应用一致性的方法、装置及系统 | |
US7908434B2 (en) | Raid apparatus, cache management method, and computer program product | |
CN113609091B (zh) | 日志管理方法、装置、设备及存储介质 | |
CN113132241B (zh) | Acl模板动态配置方法及装置 | |
CN111538520B (zh) | 用于超融合集群的更新方法及装置、终端和存储介质 | |
CN110019113B (zh) | 一种数据库的业务处理方法及数据库服务器 | |
CN109947704B (zh) | 一种锁类型切换方法、装置及集群文件系统 | |
CN111737166A (zh) | 数据对象的处理方法、装置及设备 | |
CN111552458A (zh) | 一种游戏系统架构的构建方法、实现方法、装置及系统 | |
CN110489425A (zh) | 一种数据访问方法、装置、设备及存储介质 | |
CN113722338A (zh) | 一种数据同步方法、数据同步装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |