发明内容
有鉴于此,本申请实施例提供了一种游戏数据处理方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种游戏数据处理方法,包括:
接收游戏创建请求,根据所述游戏创建请求中携带的游戏标识获取游戏数据配置表;
基于所述游戏数据配置表中所述游戏标识对应的数据分配数值,计算待创建游戏对应的运行内存,并根据所述运行内存配置数据缓冲区;
按照所述数据分配数值在数据库中获取初始游戏数据,将所述初始游戏数据转换为数据块并写入所述数据缓冲区;
基于所述初始游戏数据在数据块中的存储地址,对所述初始游戏数据进行封装,获得数据服务接口。
可选的,所述基于所述游戏数据配置表中所述游戏标识对应的数据分配数值,计算待创建游戏对应的运行内存,包括:
确定所述游戏配置表中所述游戏标识对应的至少一种数据类型,并确定所述至少一种数据类型分别对应的数据分配数值;
根据所述至少一种数据类型以及所述数据分配数值,计算所述运行内存。
可选的,所述根据所述至少一种数据类型以及所述数据分配数值,计算所述运行内存,包括:
确定所述至少一种数据类型分别对应的字节大小;
分别将所述至少一种数据类型对应的字节大小以及数据分配数值进行乘积运算,并将获得的至少一个乘积运算结果进行求和,获得所述运行内存。
可选的,所述根据所述运行内存配置数据缓冲区之后,所述按照所述数据分配数值在数据库中获取初始游戏数据之前,还包括:
确定所述游戏配置表中所述游戏标识对应的至少一种数据类型,并将所述至少一种数据类型按照数据类别进行划分;
确定划分结果中不同数据类别下各数据类型对应的数据分配数值;
按照不同数据类别下各数据类型对应的数据分配数值计算所述各数据类型的偏移地址。
可选的,所述按照所述数据分配数值在数据库中获取初始游戏数据,将所述初始游戏数据转换为数据块并写入所述数据缓冲区,包括:
按照划分结果中不同数据类别下各数据类型对应的数据分配数值在数据库中获取初始游戏数据;
按照所述偏移地址将所述初始游戏数据转换为数据块并写入所述数据缓冲区。
可选的,所述按照不同数据类别下各数据类型对应的数据分配数值计算所述各数据类型的偏移地址,包括:
确定不同数据类别下各数据类型对应的初始游戏数据的预设排列顺序;
根据所述预设排列顺序以及不同数据类别下各数据类型对应的数据分配数值,计算所述各数据类型的偏移地址。
可选的,所述根据所述预设排列顺序以及不同数据类别下各数据类型对应的数据分配数值,计算所述各数据类型的偏移地址,包括:
确定起始地址,将所述起始地址作为所述预设排列顺序中的第一数据类别的偏移地址;以及,
将所述第一数据类别中各数据类型对应的字节大小以及数据分配数值进行乘积运算,并将运算结果与所述起始地址进行求和,获得所述预设排列顺序中与所述第一数据类别相邻的下一数据类别的偏移地址。
可选的,所述获得数据服务接口之后,还包括:
接收数据处理方通过所述数据服务接口提交的数据修改请求;
根据所述数据修改请求中携带的存储地址读取待修改数据;
基于所述数据修改请求中携带的修改信息,对所述待修改数据进行修改,并输出修改结果。
可选的,所述游戏数据处理方法,还包括:
读取所述游戏数据配置表中与所述游戏标识对应的游戏脚本程序;
通过所述游戏脚本程序调用初始化函数,对所述数据块进行游戏数据初始化,并将初始化结果打包发送至客户端。
根据本申请实施例的第二方面,提供了一种游戏数据处理装置,包括:
接收模块,被配置为接收游戏创建请求,根据所述游戏创建请求中携带的游戏标识获取游戏数据配置表;
计算模块,被配置为基于所述游戏数据配置表中所述游戏标识对应的数据分配数值,计算待创建游戏对应的运行内存,并根据所述运行内存配置数据缓冲区;
获取模块,被配置为按照所述数据分配数值在数据库中获取初始游戏数据,将所述初始游戏数据转换为数据块并写入所述数据缓冲区;
封装模块,被配置为基于所述初始游戏数据在数据块中的存储地址,对所述初始游戏数据进行封装,获得数据服务接口。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述游戏数据处理方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述游戏数据处理方法的步骤。
本申请实施例中,通过在预先配置的游戏数据配置表中读取游戏标识对应的数据分配数值,根据数据分配数值计算待创建游戏的运行内存,并根据所述运行内存开出对应大小的数据缓冲区,以实现根据待创建游戏的大小动态配置游戏运行的数据缓冲区,从而有利于减少内存消耗,提高内存空间的利用率。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。
在本申请中,提供了一种游戏数据处理方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示游戏数据处理方法中的步骤。图2示出了根据本申请一实施例的游戏数据处理方法的流程图,包括步骤202至步骤208。
步骤202:接收游戏创建请求,根据所述游戏创建请求中携带的游戏标识获取游戏数据配置表。
由于科技的发展,用户可选择的休闲娱乐方式越来越多,电子游戏就是其中比较受较多用户喜爱的一种,用户可以随时随地的通过电脑、手持设备等智能设备体验各种各样的虚拟的电子游戏,并且越来越多的游戏平台不断推出各类游戏以便于满足各式各样用户的需求。
但现有技术中,为提高游戏开发进度,通常会预先设置固定大小的内存,如果存在待开发游戏需求的运行内存大于或小于固定内存的大小,则会出现游戏开发失败或造成了内存空间的浪费。
基于此,本说明书实施例提供的游戏数据处理方法,应用于服务端,通过接收游戏创建请求,根据所述游戏创建请求中携带的游戏标识获取游戏数据配置表,基于所述游戏数据配置表中所述游戏标识对应的数据分配数值,计算待创建游戏对应的运行内存,并根据所述运行内存配置数据缓冲区,按照所述数据分配数值在数据库中获取初始游戏数据,将所述初始游戏数据转换为数据块并写入所述数据缓冲区,基于所述初始游戏数据在数据块中的存储地址,对所述初始游戏数据进行封装,获得数据服务接口;
通过在预先配置的游戏数据配置表中读取游戏标识对应的数据分配数值,根据数据分配数值计算待创建游戏的运行内存,并根据所述运行内存开出对应大小的数据缓冲区,以实现根据待创建游戏的大小动态配置游戏运行的数据缓冲区,从而有利于减少内存消耗,提高内存空间的利用率。
具体的,服务器端在接收到游戏创建请求后,可根据游戏创建请求中携带的游戏标识获取游戏数据配置表,所述游戏数据配置表中存储有用于创建游戏所需的相关数据类型以及对应的数量。
以待创建游戏为纸牌类游戏A为例,服务端接收到游戏A的创建请求后,根据游戏A的游戏标识获取的游戏配置表如表1所示:
表1
GameType |
数据1 |
数据2 |
数据3 |
数据4 |
…… |
A |
x1 |
x2 |
x3 |
x4 |
…… |
…… |
…… |
…… |
…… |
…… |
…… |
由表1可以看出,游戏配置表中存储有游戏A的多种游戏数据,包括数据1、数据2、数据3、数据4等,其中,这些数据可以包括游戏A的玩家数据、游戏A的游戏脚本等;若所述数据1为玩家数据,则x1即表示开始一局游戏A所需的玩家数量;若所述数据2为游戏脚本,则x2即表示游戏脚本的存储路径。
本说明书实施例仅以表1为例进行示意性说明,实际应用中,游戏配置表中的数据可根据实际需求进行增加、修改或删除等,在此不做任何限制。
步骤204,基于所述游戏数据配置表中所述游戏标识对应的数据分配数值,计算待创建游戏对应的运行内存,并根据所述运行内存配置数据缓冲区。
具体的,所述数据分配数值即用于创建游戏所需的相关数据类型对应的数量,如表1所示,表1中包含的游戏A的数据类型包括:数据1、数据2、数据3以及数据4等,这四种数据类型对应的数量分别为x1、x2、x3以及x4,根据游戏标识对应的各数据类型以及各数据类型的数量即可确定待创建游戏所需的运行内存,确定待创建游戏所需的运行内存后,可根据所述运行内存配置对应大小的数据缓冲区,以用于游戏创建和运行。
具体实施时,基于所述游戏数据配置表中所述游戏标识对应的数据分配数值,计算待创建游戏对应的运行内存,具体可通过以下方式实现:
确定所述游戏配置表中所述游戏标识对应的至少一种数据类型,并确定所述至少一种数据类型分别对应的数据分配数值;
根据所述至少一种数据类型以及所述数据分配数值,计算所述运行内存。
进一步的,根据所述至少一种数据类型以及所述数据分配数值,计算所述运行内存,具体可通过以下方式实现:
确定所述至少一种数据类型分别对应的字节大小;
分别将所述至少一种数据类型对应的字节大小以及数据分配数值进行乘积运算,并将获得的至少一个乘积运算结果进行求和,获得所述运行内存。
具体的,本说明书实施例所述的游戏数据处理方法中,涉及的数据类型包括:布尔型(bool)、单字节型(byte)、短型(short)以及整型(int)数据,其中,布尔型数据占1位,单字节型数据占1字节,短型数据占2字节,整型数据占4字节,因此,确定游戏标识对应的至少一种数据类型,并确定所述至少一种数据类型分别对应的数据分配数值后,还需确定至少一种数据类型分别对应的字节大小,以将至少一种数据类型对应的字节大小以及数据分配数值进行乘积运算,并将获得的至少一个乘积运算结果进行求和,获得待创建游戏对应的运行内存。
以纸牌类游戏A为例,游戏A对应的数据类型包括:布尔型、单字节型、短型以及整型,服务端接收到游戏A的创建请求后,根据游戏A的游戏标识获取的游戏配置表如表2所示:
表2
GameType |
BoolCount |
ByteCount |
ShortCount |
IntCount |
…… |
A |
24 |
1592 |
1 |
290 |
…… |
…… |
…… |
…… |
…… |
…… |
…… |
由表2可知,游戏A对应的布尔型数据的数量为24、单字节型数据的数量为1592、短型数据的数量为1,以及整型数据的数量为290,其中,布尔型数据即占1位,单字节型数据占1字节,短型数据占2字节,整型数据占4字节,因此,将各数据类型对应的字节大小以及数量进行乘积运算,并将获得的至少一个乘积运算结果进行求和,获得待创建游戏对应的运行内存即为:1(位)*24+1(字节)*1592+2(字节)*1+4(字节)*290=2757(字节),确定运行内存后,即可根据运行内存配置对应大小的数据缓冲区。
本说明书实施例仅以表2为例进行示意性说明,实际应用中,游戏配置表中的数据可根据实际需求进行设置,在此不做任何限制。
通过在预先配置的游戏数据配置表中读取游戏标识对应的数据分配数值,根据数据分配数值计算待创建游戏的运行内存,并根据所述运行内存开出对应大小的数据缓冲区,以实现根据待创建游戏的大小动态配置游戏运行的数据缓冲区,从而有利于减少内存消耗,提高内存空间的利用率。
另外,根据所述运行内存配置数据缓冲区之后,所述按照所述数据分配数值在数据库中获取初始游戏数据之前,还包括:
确定所述游戏配置表中所述游戏标识对应的至少一种数据类型,并将所述至少一种数据类型按照数据类别进行划分;
确定划分结果中不同数据类别下各数据类型对应的数据分配数值;
按照不同数据类别下各数据类型对应的数据分配数值计算所述各数据类型的偏移地址。
进一步的,按照不同数据类别下各数据类型对应的数据分配数值计算所述各数据类型的偏移地址,具体可通过以下方式实现:
确定不同数据类别下各数据类型对应的初始游戏数据的预设排列顺序;
根据所述预设排列顺序以及不同数据类别下各数据类型对应的数据分配数值,计算所述各数据类型的偏移地址。
更进一步的,根据所述预设排列顺序以及不同数据类别下各数据类型对应的数据分配数值,计算所述各数据类型的偏移地址,具体可通过以下方式实现:
确定起始地址,将所述起始地址作为所述预设排列顺序中的第一数据类别的偏移地址;以及,
将所述第一数据类别中各数据类型对应的字节大小以及数据分配数值进行乘积运算,并将运算结果与所述起始地址进行求和,获得所述预设排列顺序中与所述第一数据类别相邻的下一数据类别的偏移地址。
具体的,本说明书实施例所述的游戏数据处理方法中,涉及的数据类别包括:公有数据,私有数据以及玩家数据,其中,公有数据即游戏中的每个玩家均可以看到的数据,私有数据即对每个玩家均隐藏的数据,玩家数据即各个玩家自有的数据,每个玩家只可以看到自有的数据以及公有池中的公有数据。
以纸牌游戏A为例,游戏玩家分别为W1、W2和W3,纸牌总数为54,则发牌之后每个玩家均有17张牌,剩余3张牌未发,则对于每个玩家来说,这3张未发的牌即为私有数据,发给每个玩家的牌即为玩家数据,若任一玩家出牌,则出的牌即变为公有数据。
公有数据,私有数据以及玩家数据这三个数据类别下又分别包含四种数据类型,即布尔型(bool)、单字节型(byte)、短型(short)以及整型(int)数据,因此,所述游戏数据配置表中可至少包含12种游戏数据,分别为公有布尔型数据、公有单字节型数据、公有短型数据、公有整型数据、私有布尔型数据……
将游戏数据配置表中的至少一种游戏数据按照数据类别进行划分后,即可按照不同数据类别下各数据类型对应的数据分配数值计算所述各数据类型的偏移地址。
本说明书实施例中,计算偏移地址还需确定不同数据类别下各数据类型对应的初始游戏数据的预设排列顺序,确定起始地址,并按照各数据类型的字节大小确定不同数据类型的偏移地址。
实际应用中,各数据类型对应的初始游戏数据的预设排列顺序依次为:整型、短型、单字节型、布尔型。
仍以纸牌类游戏A为例,游戏A对应的游戏数据包括:公有布尔型数据、公有单字节型数据、公有短型数据、公有整型数据、私有布尔型数据、……,服务端接收到游戏A的创建请求后,根据游戏A的游戏标识获取的游戏配置表如表3所示:
表3
对表3中至少一种数据类型按照数据类别划分为3类,分别为公有数据、私有数据以及玩家数据,其中,由表3可知,游戏A对应的公有数据这一数据类别下,公有布尔型数据的数量为24、公有单字节型数据的数量为1592、公有短型数据的数量为1,以及公有整型数据的数量为290;
由于各数据类型对应的初始游戏数据的预设排列顺序依次为:整型、短型、单字节型、布尔型,因此,若确定起始地址为0,则公有数据中,公有整型数据的偏移地址即为0,预设排列顺序中与公有整型数据相邻的下一数据类别为公有短型数据,则公有数据中公有短型数据的偏移地址为:公有整型数据所占字节数*公有整型数据的数量=4*290=1160,即公有短型数据的偏移地址为1160;公有布尔型数据以及公有单字节型数据的偏移地址、私有数据以及玩家数据中个数据类型的偏移地址的计算方式与之类似,在此不再赘述。
本说明书实施例仅以表3为例进行示意性说明,实际应用中,游戏配置表中的数据可根据实际需求进行设置,在此不做任何限制。
步骤206,按照所述数据分配数值在数据库中获取初始游戏数据,将所述初始游戏数据转换为数据块并写入所述数据缓冲区。
具体的,所述数据块为由一组或几组按顺序连续排列在一起的记录,是主存储器与输入设备、输出设备或外存储器之间进行传输的数据单位。
根据待创建游戏对应的运行内存配置对应大小的数据缓冲区后,即可将初始游戏数据转换为数据块并写入数据缓冲区。
本说明书实施例中,所述初始游戏数据并不具有实际的含义,在实际游戏运行过程中,可由数据处理方根据游戏类型对所述初始游戏数据设置相应的含义。
例如,所述游戏数据配置表中可至少包含12种游戏数据,其中公有短型数据对应的数据分配数值为2,则获取的初始游戏数据可以为:0000 0000 0000 0000,0000 00000000 0001,若根据游戏标识确定待创建游戏为棋牌类游戏B,则所述初始游戏数据00000000 0000 0000、0000 0000 0000 0001分别代表的实际含义可以为东、西;若根据游戏标识确定待创建游戏为棋牌类游戏C,则所述初始游戏数据0000 0000 0000 0000、0000 00000000 0001分别代表的实际含义可以为车、马。
具体实施时,按照所述数据分配数值在数据库中获取初始游戏数据,将所述初始游戏数据转换为数据块并写入所述数据缓冲区,具体可通过以下方式实现:
按照划分结果中不同数据类别下各数据类型对应的数据分配数值在数据库中获取初始游戏数据;
按照所述偏移地址将所述初始游戏数据转换为数据块并写入所述数据缓冲区。
具体的,如前所述,本说明书实施例所述的游戏数据处理方法中,涉及的数据类别包括:公有数据,私有数据以及玩家数据,公有数据,私有数据以及玩家数据这三个数据类别下又分别包含四种数据类型,即布尔型、单字节型、短型以及整型数据,各数据类型对应的初始游戏数据的预设排列顺序依次为:整型、短型、单字节型、布尔型;
因此,将游戏数据配置表中的至少一种游戏数据按照数据类别进行划分,并按照不同数据类别下各数据类型对应的数据分配数值计算所述各数据类型的偏移地址后,即可按照所述偏移地址将各数据类别下的初始游戏数据分别转换为数据块并写入所述数据缓冲区。
本说明书实施例中,计算偏移地址还需确定不同数据类别下各数据类型对应的初始游戏数据的预设排列顺序,确定起始地址,并按照各数据类型的字节大小确定不同数据类型的偏移地址。
步骤208,基于所述初始游戏数据在数据块中的存储地址,对所述初始游戏数据进行封装,获得数据服务接口。
具体的,将数据块写入数据缓冲区后,可基于初始游戏数据在数据块中的存储地址(数据块地址+偏移地址),对所述初始游戏数据进行封装,以获得对外提供服务的数据服务接口,实际应用,所述数据服务接口可用于接收数据查询或数据修改请求,以用于数据处理方进行游戏数据的查询或修改。
另外,服务端配置数据缓冲区,并将数据块写入数据缓冲区后,可对数据块中的游戏数据进行初始化,并将初始化结果下发至客户端,具体可通过以下方式实现:
读取所述游戏数据配置表中与所述游戏标识对应的游戏脚本程序;
通过所述游戏脚本程序调用初始化函数,对所述数据块进行游戏数据初始化,并将初始化结果打包发送至客户端。
具体的,游戏数据配置表中存储有与游戏标识对应的游戏脚本程序的存储路径,服务端可根据所述存储路径查询游戏脚本程序,并通过所述游戏脚本程序并调用初始化函数,对游戏数据进行初始化,将初始化结果打包并下发至各个客户端,打包生成的数据包中还可以包含玩家数据(玩家游戏名称以及玩家头像等数据)。
除此之外,获得数据服务接口之后,服务端可通过接口接收数据处理方提交的数据修改请求,对游戏数据进行修改,具体可通过以下方式实现:
接收数据处理方通过所述数据服务接口提交的数据修改请求;
根据所述数据修改请求中携带的存储地址读取待修改数据;
基于所述数据修改请求中携带的修改信息,对所述待修改数据进行修改,并输出修改结果。
具体的,由于服务端通过将数据块中的初始游戏数据进行封装,并以封装获得的接口对外提供服务,因此数据处理方可基于初始游戏数据在数据缓冲区的存储地址对所述初始游戏数据提交数据修改请求,服务端接收数据修改请求后,根据数据修改请求中携带的存储地址读取待修改数据,并输出修改结果。
本申请实施例提供的游戏数据处理方法,通过在预先配置的游戏数据配置表中读取游戏标识对应的数据分配数值,根据数据分配数值计算待创建游戏的运行内存,并根据所述运行内存开出对应大小的数据缓冲区,以实现根据待创建游戏的大小动态配置游戏运行的数据缓冲区,从而有利于减少内存消耗,提高内存空间的利用率。
图3示出了本申请一实施例的游戏数据处理方法,该游戏数据处理方法以对纸牌类游戏A为例进行描述,包括步骤302至步骤324。
步骤302:接收游戏创建请求,根据所述游戏创建请求中携带的游戏A的游戏标识获取游戏数据配置表。
步骤304:确定所述游戏配置表中所述游戏标识对应的至少一种数据类型,并确定所述至少一种数据类型分别对应的数据分配数值。
步骤306:确定所述至少一种数据类型分别对应的字节大小。
步骤308:分别将所述至少一种数据类型对应的字节大小以及数据分配数值进行乘积运算,并将获得的至少一个乘积运算结果进行求和,获得游戏A对应的运行内存。
步骤310:确定所述游戏配置表中所述游戏标识对应的至少一种数据类型,并将所述至少一种数据类型按照数据类别进行划分。
步骤312:确定划分结果中不同数据类别下各数据类型对应的数据分配数值。
步骤314:按照不同数据类别下各数据类型对应的数据分配数值计算所述各数据类型的偏移地址。
步骤316:按照划分结果中不同数据类别下各数据类型对应的数据分配数值在数据库中获取初始游戏数据。
步骤318:按照所述偏移地址将所述初始游戏数据转换为数据块并写入所述数据缓冲区。
步骤320:基于所述初始游戏数据在数据块中的存储地址,对所述初始游戏数据进行封装,获得数据服务接口。
步骤322:读取所述游戏数据配置表中与所述游戏A对应的游戏脚本程序。
步骤324:通过所述游戏脚本程序调用初始化函数,对所述数据块进行游戏数据初始化,并将初始化结果打包发送至客户端。
本申请实施例中,通过在预先配置的游戏数据配置表中读取游戏标识对应的数据分配数值,根据数据分配数值计算待创建游戏的运行内存,并根据所述运行内存开出对应大小的数据缓冲区,以实现根据待创建游戏的大小动态配置游戏运行的数据缓冲区,从而有利于减少内存消耗,提高内存空间的利用率。
与上述方法实施例相对应,本申请还提供了游戏数据处理装置实施例,图4示出了本申请一个实施例的游戏数据处理装置的结构示意图。如图4所示,该装置400包括:
接收模块402,被配置为接收游戏创建请求,根据所述游戏创建请求中携带的游戏标识获取游戏数据配置表;
计算模块404,被配置为基于所述游戏数据配置表中所述游戏标识对应的数据分配数值,计算待创建游戏对应的运行内存,并根据所述运行内存配置数据缓冲区;
获取模块406,被配置为按照所述数据分配数值在数据库中获取初始游戏数据,将所述初始游戏数据转换为数据块并写入所述数据缓冲区;
封装模块408,被配置为基于所述初始游戏数据在数据块中的存储地址,对所述初始游戏数据进行封装,获得数据服务接口。
可选的,所述计算模块404,包括:
确定子模块,被配置为确定所述游戏配置表中所述游戏标识对应的至少一种数据类型,并确定所述至少一种数据类型分别对应的数据分配数值;
计算子模块,被配置为根据所述至少一种数据类型以及所述数据分配数值,计算所述运行内存。
可选的,所述计算子模块,包括:
确定单元,被配置为确定所述至少一种数据类型分别对应的字节大小;
运算单元,被配置为分别将所述至少一种数据类型对应的字节大小以及数据分配数值进行乘积运算,并将获得的至少一个乘积运算结果进行求和,获得所述运行内存。
可选的,所述游戏数据处理装置,还包括:
划分模块,被配置为确定所述游戏配置表中所述游戏标识对应的至少一种数据类型,并将所述至少一种数据类型按照数据类别进行划分;
确定模块,被配置为确定划分结果中不同数据类别下各数据类型对应的数据分配数值;
偏移地址计算模块,被配置为按照不同数据类别下各数据类型对应的数据分配数值计算所述各数据类型的偏移地址。
可选的,所述获取模块406,包括:
获取子模块,被配置为按照划分结果中不同数据类别下各数据类型对应的数据分配数值在数据库中获取初始游戏数据;
写入子模块,被配置为按照所述偏移地址将所述初始游戏数据转换为数据块并写入所述数据缓冲区。
可选的,所述偏移地址计算模块,包括:
顺序确定子模块,被配置为确定不同数据类别下各数据类型对应的初始游戏数据的预设排列顺序;
偏移地址计算子模块,被配置为根据所述预设排列顺序以及不同数据类别下各数据类型对应的数据分配数值,计算所述各数据类型的偏移地址。
可选的,所述偏移地址计算子模块,包括:
起始地址确定单元,被配置为确定起始地址,将所述起始地址作为所述预设排列顺序中的第一数据类别的偏移地址;
运算单元,被配置为将所述第一数据类别中各数据类型对应的字节大小以及数据分配数值进行乘积运算,并将运算结果与所述起始地址进行求和,获得所述预设排列顺序中与所述第一数据类别相邻的下一数据类别的偏移地址。
可选的,所述游戏数据处理装置,还包括:
修改请求接收模块,被配置为接收数据处理方通过所述数据服务接口提交的数据修改请求;
数据读取模块,被配置为根据所述数据修改请求中携带的存储地址读取待修改数据;
输出模块,被配置为基于所述数据修改请求中携带的修改信息,对所述待修改数据进行修改,并输出修改结果。
可选的,所述游戏数据处理装置,还包括:
脚本程序读取模块,被配置为读取所述游戏数据配置表中与所述游戏标识对应的游戏脚本程序;
数据处理模块,被配置为通过所述游戏脚本程序调用初始化函数,对所述数据块进行游戏数据初始化,并将初始化结果打包发送至客户端。
本申请实施例中,通过在预先配置的游戏数据配置表中读取游戏标识对应的数据分配数值,根据数据分配数值计算待创建游戏的运行内存,并根据所述运行内存开出对应大小的数据缓冲区,以实现根据待创建游戏的大小动态配置游戏运行的数据缓冲区,从而有利于减少内存消耗,提高内存空间的利用率。
需要说明的是,装置权利要求中的各组成部分应当理解为实现该程序流程各步骤或该方法各步骤所必须建立的功能模块,各个功能模块并非实际的功能分割或者分离限定。由这样一组功能模块限定的装置权利要求应当理解为主要通过说明书记载的计算机程序实现该解决方案的功能模块构架,而不应当理解为主要通过硬件方式实现该解决方案的实体装置。
本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的游戏数据处理方法的步骤。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述游戏数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的游戏数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述游戏数据处理方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。