玩家数据序列化方法、装置和电子设备与流程

文档序号:33643887发布日期:2023-03-29 02:55阅读:44来源:国知局
玩家数据序列化方法、装置和电子设备与流程

1.本发明涉及数据处理技术领域,尤其是涉及一种玩家数据序列化方法、装置和电子设备。


背景技术:

2.游戏策划人员通常通过属性编辑器,对序列化后的玩家数据实时编辑;其中,玩家数据包括游戏内玩家的道具、装备、人物属性等。游戏策划人员对玩家数据进行编辑,可观察玩家数据在不同数值下的游戏效果,从而优化玩家的游戏体验。
3.相关技术中,对玩家数据序列化的方法通常是对所有的类进行序列化,所有类包括游戏中的小怪、地图、道具、装备等等,然后手动筛选出序列化后的类对应的数据中的玩家数据,该手动筛选需要消耗大量的人力成本;同时,对所有类进行序列化需要对所有类进行穷举,耗时较高。


技术实现要素:

4.本发明的目的在于提供一种玩家数据序列化方法、装置和电子设备,以提供玩家数据序列化的效率。
5.第一方面,本发明提供了一种玩家数据序列化方法,该方法包括:从预设的代码文件中,获取包含有预设关键字的玩家数据类;基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型;其中,数据类型用于指示玩家数据对应的序列化方式;根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化处理,得到玩家数据的序列化结果。
6.第二方面,本发明提供了一种玩家数据序列化装置,该装置包括:数据类获取模块,用于从预设的代码文件中,获取包含有预设关键字的玩家数据类;数据类型确定模块,用于基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型;其中,该数据类型用于指示玩家数据对应的序列化方式;数据序列化模块,用于根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化处理,得到玩家数据的序列化结果。
7.第三方面,本发明提供了一种电子设备,该电子设备包括处理器和存储器,该存储器存储有能够被处理器执行的机器可执行指令,该处理器执行机器可执行指令以实现上述玩家数据序列化方法。
8.第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述玩家数据序列化方法。
9.本发明实施例带来了以下有益效果:
10.本发明提供的一种玩家数据序列化方法、装置和电子设备,首先从预设的代码文件中,获取包含有预设关键字的玩家数据类;进而基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型;然后根据玩家数据的数据类型指示的序列化方式,对玩家数
据进行序列化处理,得到玩家数据的序列化结果。该方式在代码文件中通过预设关键字标记玩家数据类,以在玩家数据序列化阶段直接根据预设关键字确定玩家数据类,并仅对玩家数据类进行序列化,该方式无需对代码文件中所有的类进行序列化,降低了序列化运算复杂度,也提高了数据序列化的效率;同时,该方式无需从序列化后的数据中人工筛选出玩家数据,节省了人力成本。
11.本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。
12.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
13.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1为本发明实施例提供的一种玩家数据序列化方法的流程图;
15.图2为本发明实施例提供的另一种玩家数据序列化方法的流程图;
16.图3为本发明实施例提供的另一种玩家数据序列化方法的流程图;
17.图4为本发明实施例提供的一种玩家数据序列化装置的结构示意图;
18.图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
19.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
20.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.游戏策划人员对玩家数据进行编辑,可观察玩家数据在不同数值下的游戏效果,从而优化玩家的游戏体验。具体地,游戏策划人员通常通过属性编辑器,对序列化后的玩家数据实时编辑;其中,玩家数据包括游戏内玩家的道具、装备、人物属性等;序列化是指将数据结构转用特定的方法转换成可以保存或者缓冲的格式,用于网络传输或者文件传输,以便于在另一套环境或者软件中进行恢复的过程。
22.相关技术中,对玩家数据序列化的方法通常是对所有的类(所有类包括游戏中的小怪、地图、道具、装备等等)进行序列化,然后手动筛选出序列化后的类对应的数据中的玩家数据。整个流程如下:
23.(1)扫描代码文件,确定所有类以及类成员变量的关键字;其中类成员变量为类对
应的数据。
24.(2)确定类成员变量的数据类型。
25.(3)遍历所有的类,根据继承关系进行递归,消除嵌套声明,以完成对所有的类成员变量的序列化。
26.(4)人工筛选,确定序列化后的类中的哪些成员变量是玩家数据。
27.上述对玩家数据进行序列化的方法,需要程序参与进来,而且随着版本迭代,类成员变量的关键字也会发生变化,此时需要重新筛选出玩家数据,且手动筛选需要消耗大量的人力成本;同时,递归的过程中会对所有的类进行穷举,复杂度是o(n2),耗时较高。
28.基于上述问题,本发明实施例提供了一种玩家数据序列化方法、装置和电子设备,该技术可以应用于对游戏内的玩家数据进行处理的场景,尤其是对玩家数据进行序列化处理和编辑的场景。
29.为了便于对本发明实施例进行理解,首先对本发明实施例公开的一种玩家数据序列化方法进行详细介绍,如图1所示,该方法包括如下具体步骤:
30.步骤s102,从预设的代码文件中,获取包含有预设关键字的玩家数据类。
31.上述代码文件通常是存储有程序员编写的、游戏运行对应的代码程序的文件。在具体实现时,在代码文件中的代码定义的过程中,需要用预设关键字标记玩家数据类,以在数据序列化过程中根据标记确定玩家数据类;其中,如果类中存在表示玩家数据的成员变量,那么这个类就是玩家数据类。上述预设关键字的具体形式可以根据研发中的代码定义确定,在此不做具体限定,例如,该预设关键字可以是property,也可以是aaaa等。
32.在具体实现时,在代码定义的过程中,用预设关键字标记玩家数据类,也即是用预设关键字对玩家数据类型的成员变量进行声明,具体地,该预设关键字可以对成员变量的变量名称、变量类型和可访问权限进行声明。
33.需要说明的是,代码文件中只有玩家数据类使用预设关键字进行了标记,代码文件中除玩家数据类之外的类均未使用该预设关键字,从而代码文本中只有使用了预设关键字标记的类为玩家数据类,该玩家数据类对应的成员变量为需要进行序列化的玩家数据。
34.步骤s104,基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型;其中,数据类型用于指示玩家数据对应的序列化方式。
35.在具体实现时,代码文件中包含的玩家数据类至少为一个,当代码文本中包含的玩家数据类为多个时,针对每个玩家数据类,根据该玩家数据类对应的预设关键字的声明,可确定该玩家数据类对应的成员变量的变量类型。具体地,成员变量的变量类型也即是玩家数据类对应的玩家数据的数据类型。
36.步骤s106,根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化处理,得到玩家数据的序列化结果。
37.玩家数据的数据类型与序列化结果中数据的存储格式(该存储格式与数据类型指示的序列化方式相对应)相对应,例如,玩家数据的数据类型为int类型,那么序列化后的数据占用8bit字符;玩家数据的数据类型为str类型,那么序列化后的数据占用变长字符;玩家数据的数据类型为float类型,那么序列化后的数据占用32bit。
38.在具体实现时,当代码文本中包含的玩家数据类为多个时,针对每个玩家数据类,根据该玩家数据类对应的玩家数据的数据类型指示的序列化方式,对该玩家数据类对应的
玩家数据进行序列化处理,得到该玩家数据的序列化结果。
39.本发明实施例提供的一种玩家数据序列化方法,首先从预设的代码文件中,获取包含有预设关键字的玩家数据类;进而基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型;然后根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化处理,得到玩家数据的序列化结果。该方式在代码文件中通过预设关键字标记玩家数据类,以在玩家数据序列化阶段直接根据预设关键字确定玩家数据类,并仅对玩家数据类进行序列化,该方式无需对代码文件中所有的类进行序列化,降低了序列化运算复杂度,也提高了数据序列化的效率;同时,该方式无需从序列化后的数据中人工筛选出玩家数据,节省了人力成本。
40.本发明实施例还提供了另一种玩家数据序列化方法,该方法在上述实施例的基础上实现,该方法重点描述基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型的具体过程(具体通过下述步骤s204实现);如图2所示,该方法包括如下具体步骤:
41.步骤s202,从预设的代码文件中,获取包含有预设关键字的玩家数据类。
42.在具体实现时,在从预设的代码文件中,获取包含有预设关键字的玩家数据类之前,需要在代码文件中,通过预设关键字标记玩家数据类。也即是在代码文件中,通过预设关键字对玩家数据类进行声明;其中,预设关键字的声明包括:玩家数据类对应的变量名称、变量类型和可访问权限;该变量类型用于指示玩家数据类对应的玩家数据的数据类型。
43.在实际应用中,首先需要在代码定义过程中使用预设关键字手动标记玩家数据类,然后序列化过程中根据标记确定玩家数据类,直接对玩家数据类对应的玩家数据进行序列化。在代码定义的过程中,可以用预设关键字(变量名称,变量类型,可访问权限)的格式标记玩家数据类的成员变量,该成员变量相当于玩家数据类对应的玩家数据(也即是需要进行序列化的玩家数据);也可以理解为代码文件中只有使用了预设关键字(变量名称,变量类型,可访问权限)的格式的类才是玩家数据类型。
44.为了便于对本发明实施例进行理解,假设预设关键字为property,通过下述表1和表2表示代码定义的流程:
45.表1
46.class player(asset)property(“name”,str,client)property(“level”,int,client)property(“exp”,int,client)
47.表2
48.class assetproperty(“item”,dict,client)property(“item_use_time”,dict,client)property(“item_detail”,dict,client)
49.从上述表1和表2中可知,player类继承自asset类,他们都是玩家数据类。asset类中的property(item,dict,client)标记,声明了字典类型dict的成员变量item,访问权限为客户端client可访问。asset类对象创建的过程中,需要根据声明初始化item成员变量,其他被property标记的类成员变量的含义和item相似。
50.步骤s204,从预设关键字的声明中获取变量类型,将变量类型确定为玩家数据类对应的玩家数据的数据类型。
51.针对每个玩家数据类,从当前玩家类对应的预设关键字的声明中获取变量类型,也即是获取到了当前玩家数据类对应的玩家数据的数据类型。该数据类型用于指示玩家数据的对应的序列化方式,该序列化方式也即是序列化后当前玩家数据对应的玩家数据的存储格式。
52.步骤s206,根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化处理,得到玩家数据的序列化结果。
53.上述玩家数据序列化方法,首先从预设的代码文件中,获取包含有预设关键字的玩家数据类;进而从预设关键字的声明中获取变量类型,将变量类型确定为玩家数据类对应的玩家数据的数据类型;然后根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化处理,得到玩家数据的序列化结果。该方式中,在序列化阶段可根据预设关键字直接确定代码文件中哪些是玩家数据类,直接对玩家数据类对应的玩家数据进行序列化,省去了相关技术中对序列化后的数据进行筛选的环节;同时,该方式从遍历所有类改成了直接遍历玩家数据类,复杂度更低,提高了玩家数据序列化的效率。
54.本发明实施例还提供了另一种玩家数据序列化方法,该方法在上述实施例的基础上实现,该方法重点描述在获取到包含有预设关键字的玩家数据为多个的情况下,根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化处理,得到玩家数据的序列化结果的具体过程(具体通过下述步骤s306-s314实现);如图3所示,该方法包括如下具体步骤:
55.步骤s302,从预设的代码文件中,获取包含有预设关键字的玩家数据类。
56.步骤s304,针对每个玩家数据类对应的预设关键字的声明,确定每个玩家数据类对应的玩家数据的数据类型。
57.步骤s306,判断多个玩家数据类是否存在继承关系;如果不存在继承关系,执行步骤s308;否则,执行步骤s310。
58.在具体实现时,需要遍历从代码文件中获取到的所有的玩家数据类,进而确定所有的玩家数据类中是否存在类的继承关系,这里类的继承关系是指,类之间存在一个类继承了另一个类,其中,被继承的类可称为基类,继承被继承的类的类可称为派生类。
59.步骤s308,针对每个玩家数据类,根据玩家数据类对应的数据类型指示的序列化方式,对玩家数据类对应的玩家数据进行序列化,得到玩家数据类对应的玩家数据的序列化结果。
60.如果从代码文件中获取到的所有的玩家数据类之间不存在类的继承关系,可以直接对玩家数据类进行序列化,也即是直接根据每个玩家数据类对应的数据类型指示的序列化方式,对玩家数据类对应的玩家数据进行序列化,从而得到每个玩家数据的序列化结果。
61.步骤s310,确定多个玩家数据类中的基类和派生类;其中,派生类继承基类。
62.如果从代码文件中获取到的所有的玩家数据类之间存在类的继承关系,需要从所有的玩家数据类中确定出哪些是基类,哪些是派生类,从而先对基类进行序列化,再将基类的序列化结果用于派生类,进而用递归的方法消除继承关系。
63.步骤s312,根据基类对应的数据类型指示的序列化方式,对基类对应的玩家数据
进行序列化,得到基类对应的玩家数据的序列化结果。
64.步骤s314,基于基类对应的玩家数据的序列化结果,确定派生类对应的玩家数据的序列化结果。
65.在具体实现时,针对每个派生类,执行下述操作:确定当前派生类对应的基类;如果当前派生类对应有与当前派生类对应的基类相同的目标玩家数据,将当前派生类的基类对应的目标玩家数据的序列化结果,确定为当前派生类对应的目标玩家数据的序列化结果;然后针对当前派生类中除目标玩家数据之外的其他玩家数据,根据其他玩家数据对应的数据类型指示的序列化方式,对其他玩家数据进行序列化。例如,玩家数据类b继承自玩家数据类a,他们都有成员变量x(也即是都有玩家数据x),那么玩家数据类b中的x可以直接使用玩家数据类a的序列化结果。
66.在实际应用中,如果当前派生类不对应有与当前派生类对应的基类相同的目标玩家数据,直接根据当前派生类对应的玩家数据的数据类型指示的序列化,对玩家数据进行序列化,得到当前派生类对应的玩家数据的序列化结果。
67.上述玩家数据序列化方法,通过预设关键字标记玩家数据类,只有使用了预设关键字声明的类成员变量为玩家数据,该类为玩家数据类;序列化过程中直接对玩家数据类序列化,降低序列化的复杂度。
68.针对上述方法实施例,本发明实施例还提供了一种玩家数据序列化装置,如图4所示,该装置包括:
69.数据类获取模块40,用于从预设的代码文件中,获取包含有预设关键字的玩家数据类。
70.数据类型确定模块41,用于基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型;其中,数据类型用于指示玩家数据对应的序列化方式。
71.数据序列化模块42,用于根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化处理,得到玩家数据的序列化结果。
72.上述玩家数据序列化装置,首先从预设的代码文件中,获取包含有预设关键字的玩家数据类;进而基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型;然后根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化,得到玩家数据的序列化结果。该方式在代码文件中通过预设关键字标记玩家数据类,以在玩家数据序列化阶段直接根据预设关键字确定玩家数据类,并仅对玩家数据类进行序列化,该方式无需对代码文件中所有的类进行序列化,降低了序列化运算复杂度,也提高了数据序列化的效率;同时,该方式无需从序列化后的数据中人工筛选出玩家数据,节省了人力成本。
73.具体地,上述装置还包括标记模块,用于:在从预设的代码文件中,获取包含有预设关键字的玩家数据类之前,在代码文件中,通过预设关键字标记玩家数据类。
74.在具体实现时,上述标记模块,还用于:在代码文件中,通过预设关键字对玩家数据类进行声明;其中,预设关键字的声明包括:玩家数据类对应的变量名称、变量类型和可访问权限;该变量类型用于指示玩家数据类对应的玩家数据的数据类型。
75.进一步地,上述数据类型确定模块41,用于:从预设关键字的声明中获取变量类型,将变量类型确定为玩家数据类对应的玩家数据的数据类型。
76.在具体实现时,上述包含有预设关键字的玩家数据类为多个;上述数据序列化模
块42,还用于:判断多个玩家数据类是否存在继承关系;如果不存在继承关系,针对每个玩家数据类,根据玩家数据类对应的数据类型指示的序列化方式,对玩家数据类对应的玩家数据进行序列化,得到玩家数据类对应的玩家数据的序列化结果。
77.具体地,上述数据序列化模块42,还用于:如果存在继承关系,确定多个玩家数据类中的基类和派生类;其中,派生类继承基类;根据基类对应的数据类型指示的序列化方式,对基类对应的玩家数据进行序列化,得到基类对应的玩家数据的序列化结果;基于基类对应的玩家数据的序列化结果,确定派生类对应的玩家数据的序列化结果。
78.进一步地,上述数据序列化模块42,还用于:针对每个派生类,执行下述操作:确定当前派生类对应的基类;如果当前派生类对应有与当前派生类对应的基类相同的目标玩家数据,将当前派生类的基类对应的目标玩家数据的序列化结果,确定为当前派生类对应的目标玩家数据的序列化结果。
79.本发明实施例所提供的玩家数据序列化装置,其实现原理及产生的技术效果和玩家数据序列化方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
80.本发明实施例还提供了一种电子设备,如图5所示,该电子设备包括处理器和存储器,该存储器存储有能够被处理器执行的机器可执行指令,该处理器执行机器可执行指令以实现上述玩家数据序列化方法。
81.具体地,上述玩家数据序列化方法包括:从预设的代码文件中,获取包含有预设关键字的玩家数据类;基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型;其中,数据类型用于指示玩家数据对应的序列化方式;根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化,得到玩家数据的序列化结果。
82.上述玩家数据序列化方法,在代码文件中通过预设关键字标记玩家数据类,以在玩家数据序列化阶段直接根据预设关键字确定玩家数据类,并仅对玩家数据类进行序列化,该方式无需对代码文件中所有的类进行序列化,降低了序列化运算复杂度,也提高了数据序列化的效率;同时,该方式无需从序列化后的数据中人工筛选出玩家数据,节省了人力成本。
83.在可选实施例中,上述从预设的代码文件中,获取包含有预设关键字的玩家数据类的步骤之前,上述方法还包括:在代码文件中,通过预设关键字标记玩家数据类。
84.在可选实施例中,上述在代码文件中,通过预设关键字标记玩家数据类的步骤,包括:在代码文件中,通过预设关键字对玩家数据类进行声明;其中,预设关键字的声明包括:玩家数据类对应的变量名称、变量类型和可访问权限;该变量类型用于指示玩家数据类对应的玩家数据的数据类型。
85.在可选实施例中,上述基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型的步骤,包括:从预设关键字的声明中获取变量类型,将变量类型确定为玩家数据类对应的玩家数据的数据类型。
86.在可选实施例中,上述包含有预设关键字的玩家数据类为多个;上述根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化处理,得到玩家数据的序列化结果的步骤,包括:判断多个玩家数据类是否存在继承关系;如果不存在继承关系,针对每个玩家数据类,根据玩家数据类对应的数据类型指示的序列化方式,对玩家数据类对应的玩
家数据进行序列化,得到玩家数据类对应的玩家数据的序列化结果。
87.在可选实施例中,上述方法还包括:如果存在继承关系,确定多个玩家数据类中的基类和派生类;其中,派生类继承基类;根据基类对应的数据类型指示的序列化方式,对基类对应的玩家数据进行序列化,得到基类对应的玩家数据的序列化结果;基于基类对应的玩家数据的序列化结果,确定派生类对应的玩家数据的序列化结果。
88.在可选实施例中,上述基于基类对应的玩家数据的序列化结果,确定派生类对应的玩家数据的序列化结果的步骤,包括:针对每个派生类,执行下述操作:确定当前派生类对应的基类;如果当前派生类对应有与当前派生类对应的基类相同的目标玩家数据,将当前派生类的基类对应的目标玩家数据的序列化结果,确定为当前派生类对应的目标玩家数据的序列化结果。
89.进一步地,图5所示的电子设备还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。
90.其中,存储器100可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
91.处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。
92.本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述玩家数据序列化方法,具体实现可参见方法实施例,在此不再赘述。
93.具体地,上述玩家数据序列化方法包括:从预设的代码文件中,获取包含有预设关键字的玩家数据类;基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型;其中,数据类型用于指示玩家数据对应的序列化方式;根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化处理,得到玩家数据的序列化结果。
94.上述玩家数据序列化方法,在代码文件中通过预设关键字标记玩家数据类,以在
玩家数据序列化阶段直接根据预设关键字确定玩家数据类,并仅对玩家数据类进行序列化,该方式无需对代码文件中所有的类进行序列化,降低了序列化运算复杂度,也提高了数据序列化的效率;同时,该方式无需从序列化后的数据中人工筛选出玩家数据,节省了人力成本。
95.在可选实施例中,上述从预设的代码文件中,获取包含有预设关键字的玩家数据类的步骤之前,上述方法还包括:在代码文件中,通过预设关键字标记玩家数据类。
96.在可选实施例中,上述在代码文件中,通过预设关键字标记玩家数据类的步骤,包括:在代码文件中,通过预设关键字对玩家数据类进行声明;其中,预设关键字的声明包括:玩家数据类对应的变量名称、变量类型和可访问权限;该变量类型用于指示玩家数据类对应的玩家数据的数据类型。
97.在可选实施例中,上述基于预设关键字的声明,确定玩家数据类对应的玩家数据的数据类型的步骤,包括:从预设关键字的声明中获取变量类型,将变量类型确定为玩家数据类对应的玩家数据的数据类型。
98.在可选实施例中,上述包含有预设关键字的玩家数据类为多个;上述根据玩家数据的数据类型指示的序列化方式,对玩家数据进行序列化处理,得到玩家数据的序列化结果的步骤,包括:判断多个玩家数据类是否存在继承关系;如果不存在继承关系,针对每个玩家数据类,根据玩家数据类对应的数据类型指示的序列化方式,对玩家数据类对应的玩家数据进行序列化,得到玩家数据类对应的玩家数据的序列化结果。
99.在可选实施例中,上述方法还包括:如果存在继承关系,确定多个玩家数据类中的基类和派生类;其中,派生类继承基类;根据基类对应的数据类型对应的序列化方式,对基类对应的玩家数据进行序列化,得到基类对应的玩家数据的序列化结果;基于基类对应的玩家数据的序列化结果,确定派生类对应的玩家数据的序列化结果。
100.在可选实施例中,上述基于基类对应的玩家数据的序列化结果,确定派生类对应的玩家数据类的序列化结果的步骤,包括:针对每个派生类,执行下述操作:确定当前派生类对应的基类;如果当前派生类对应有与当前派生类对应的基类相同的目标玩家数据,将当前派生类的基类对应的目标玩家数据的序列化结果,确定为当前派生类对应的目标玩家数据的序列化结果。
101.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
102.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
103.最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1