本申请涉及计算机技术和游戏领域,特别是涉及一种游戏数据访问方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:
1、游戏开发过程中,需要利用到游戏引擎。目前主流游戏引擎的数据对象模型,都是通过一个基础对象,例如ue4的uobject,或者是unity的gameobject,通过继承的关系,表达出游戏世界中的所有数据。
2、基于继承的数据对象模型虽然可以大大简化游戏引擎编程,但是当面对一个复杂度特别高的游戏类型时,面向对象的模式就会出现相应的问题。首先,随着现有游戏功能的极度复杂化,基础类型的复杂度和继承链条的复杂度也在逐渐提高。这就要求任意一个开发者需要理清大量的父类的运作机制和细节,随着引擎和游戏的规模扩大,开发者的心智负担会愈发加重。其次,由于基础对象类型变得日益臃肿且体积扩大,cpu访问大量对象时的效率也会有明显下降,这是由于大部分的访问内存只是访问了基础对象中的一小部分数据,从而导致cpu的缓存未命中(cache-miss)率较高。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够降低游戏开发难度的游戏数据访问方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本申请提供了一种游戏数据访问方法。所述方法包括:
3、获取当前游戏运行中实体的实体标识;
4、根据所述实体标识,确定所述实体的组件原型,所述实体的组件原型通过对所述实体配置多个维度的组件,并组合各维度的组件得到;
5、获取运行指令所指定的目标组件类型;
6、从所述组件原型对应的数据容器中,访问所述目标组件类型的数据,其中,所述数据容器中的各组件原型的数据,按组件类型分别存储。
7、第二方面,本申请还提供了一种游戏数据访问装置。所述装置包括:
8、运行模块,用于获取当前游戏运行中实体的实体标识;
9、组件原型模块,用于根据所述实体标识,确定所述实体的组件原型,所述实体的组件原型通过对所述实体配置多个维度的组件,并组合各维度的组件得到;
10、所述运行模块,还用于获取运行指令所指定的目标组件类型;
11、访问模块,用于从所述组件原型对应的数据容器中,访问所述目标组件类型的数据,其中,所述数据容器中的各组件原型的数据,按组件类型分别存储。
12、第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
13、获取当前游戏运行中实体的实体标识;
14、根据所述实体标识,确定所述实体的组件原型,所述实体的组件原型通过对所述实体配置多个维度的组件,并组合各维度的组件得到;
15、获取运行指令所指定的目标组件类型;
16、从所述组件原型对应的数据容器中,访问所述目标组件类型的数据,其中,所述数据容器中的各组件原型的数据,按组件类型分别存储。
17、第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
18、获取当前游戏运行中实体的实体标识;
19、根据所述实体标识,确定所述实体的组件原型,所述实体的组件原型通过对所述实体配置多个维度的组件,并组合各维度的组件得到;
20、获取运行指令所指定的目标组件类型;
21、从所述组件原型对应的数据容器中,访问所述目标组件类型的数据,其中,所述数据容器中的各组件原型的数据,按组件类型分别存储。
22、第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
23、获取当前游戏运行中实体的实体标识;
24、根据所述实体标识,确定所述实体的组件原型,所述实体的组件原型通过对所述实体配置多个维度的组件,并组合各维度的组件得到;
25、获取运行指令所指定的目标组件类型;
26、从所述组件原型对应的数据容器中,访问所述目标组件类型的数据,其中,所述数据容器中的各组件原型的数据,按组件类型分别存储。
27、上述游戏数据访问方法、装置、计算机设备、存储介质和计算机程序产品,实体的组件原型是由多个维度的组件组合得到的,即游戏开发过程中,游戏引擎提供的构建实体的方式是组合多个不同维度的组件,便于对对象模型进行管理,不需要复杂的编程即可实现,降低了游戏开发难度。此外,一个组件原型对应一个数据容器,即一个数据容器中只有关于该实体的感兴趣数据,在对于一个组件原型的各组件类型的数据进行访问时,只需要访问一个数据容器,而数据容器中的各组件原型的数据,按组件类型分别存储,在访问数据容器中该组件的数据时,能够做到对组件原型的数据访问的连续性。
1.一种游戏数据访问方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据容器中的各组件原型的数据,按组件类型以链表单节点方式存储。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述实体标识,确定所述实体所属的世界分区;
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.一种游戏数据访问装置,其特征在于,所述装置包括:
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。