一种管理游戏配置的代码生成方法及配套工具与流程

文档序号:15312181发布日期:2018-08-31 22:07阅读:191来源:国知局
本发明涉及计算机科学
技术领域
:,特别涉及一种管理游戏配置的代码生成方法及配套工具。
背景技术
::当前市场上的计算机游戏在其开发阶段通常需要频繁地增删,修改数据文件,而由于计算机游戏系统越来越复杂的特性,新的功能和需求以及bug修复的迭代周期越来越短,团队协作的开发效率就显得格外重要,这时对于项目配置数据文件的管理成为了影响开发效率和质量的关键因素。然而,当前已知的游戏数据管理系统存在着以下不足:(1)数据文件目录结构杂乱,维护成本较高目前的数据管理工具大都仅仅关心数据文件本身的增删改,而对于项目文件的目录结构却没有一个高效的管理模式,由此引出了一系列问题:文件搜寻困难,数据冗余严重,需花大量时间手动维护目录结构,这一问题在团队开发时尤其严重,文件的版本同步问题也无法得到很好地解决。(2)数据文件缺乏统一的格式,数据缺乏严格的类型校验目前大多数游戏数据的编辑通过excel等表格或文本编辑器,虽然比较容易上手,但是毕竟不是专门为了游戏数据编辑而开发的软件,对于逻辑复杂,模块之间高度关联的游戏业务来说,数据格式的正确性高度影响了游戏整体的稳定性,所以在频繁地修改数据文件时,数据的正确性非常有必要得到保证,但是人工校验数据的效率实在太低。(3)游戏中直接读取配置文件严重影响游戏运行速度传统的游戏配置数据以文本文件的形式读取,io操作会极大地影响程序的运行速度,同时这种直接读取文本文件的形式,需要复杂的读取逻辑,伴随着极大的bug隐患。(4)使用二进制文件存储配置数据严重影响游戏开发效率如果为了解决读取文本配置文件导致游戏运行缓慢这一问题,而单纯地改为使用二进制文件代替文本文件来存储,读取配置数据,那么这些配置数据就极大地降低了可读性,策划编辑数据时就需要顾及程序读取的种种条件与约束,使得整个数据编辑过程枯燥繁杂,并且极有可能导致策划与程序在修改同一份配置文件上互相影响,产生问题。因此,为了解决上述问题,需要能够提高了整个过程高度自动化,具有较高灵活性与可控性,缩短了工作流程,降低了编辑文件过程出错概率的一种管理游戏配置的代码生成方法及配套工具。技术实现要素:本发明的一个方面在于提供一种管理游戏配置的代码生成方法,特所述方法包括如下步骤:a)创建配置描述文件,所述配置描述文件包括数据二维表和特殊二维表,其中,所述数据二维表用于定义数据结构,所述特殊二维表用于汇总使用的所述数据二维表。b)根据所述配置描述文件,生成文件目录结构,在每个目录下生成对应的excel文件;c)以所述excel文件的表头为模板,通过键值对的形式创建自定义数据文件,使用excel插件或shell可视化数据编辑工具对所述自定义数据文件进行编辑;d)使用代码生成组件从生成的excel文件和编辑后的自定义数据文件读取数据,并输出程序使用的数据文件,生成程序代码。优选地,所述excel文件生成过程中通过解析配置描述文件中的table属性,将每一个字段转换为excel的一列数据,生成excel文件。优选地,每一个字段转换为excel的一列数据中,根据字段属性生成特殊的excel数据单元格,用于填写enum、bool、mask数据类型。优选地,所述excel文件生成过程包括检测同名文件,若所述同名文件存在,则将所述同名文件的内容转移至生成的所述excel文件中。优选地,编辑所述自定义数据文件时,统一相同类型的自定义数据文件的格式。优选地,所述自定义数据文件编辑完成后保存在各自对应的目录结构下。优选地,所述程序代码的生成包括生成源文件版本代码文件和二进制版本代码文件,其中,所述源文件版本代码文件用于开发调试使用,所述二进制版本代码文件用于发布使用。本发明的另一个方面在于提供一种用于管理游戏配置的代码生成方法的配套工具,所述配套工具包括:excel插件、shell可视化数据编辑工具和代码生成组件,其中,所述excel插件,用于对所述自定义数据文件进行编辑;所述shell可视化数据编辑工具,用于对所述自定义数据文件进行编辑;所述代码生成组件,用于从生成的excel文件和编辑后的自定义数据文件读取数据,并输出程序使用的数据文件,生成程序代码。优选地,所述excel插件对所述自定义数据文件进行编辑包括:新建模板、表头的更新、刷新索引、刷新数据、查看复选、锁定/解锁、查看解锁、提交文件和导出差异。优选地,所述shell可视化数据编辑工具对所述自定义数据文件进行编辑包括:高级属性索引,以及在多窗口对所述自定义数据文件编辑。本发明提供的一种管理游戏配置的代码生成方法及配套工具,通过预先针对不同具体功能编写相应配置描述文件,定义文件格式和数据格式,并有组织的生成一系列对应的excel文件,使用excel插件或者可视化工具编辑自定义数据文件后,使用代码生成组件一键生成程序代码;在各个重要环节都增加了众多可选配置项,使得整个过程高度自动化的同时,灵活性与可控性都非常高,使得本游戏配置数据文件的整个管理流程都无需人工监督与校验,缩短了工作流程,也降低了编辑文件过程出错的概率。同时本发明还使用了版本管理工具来实现文件版本管理,如svn,git等,并将版本管理工具的常用操作集成至excel插件和shell可视化数据编辑工具中,更加适合团队协作开发,为整个游戏开发流程提高效率。应当理解,前述大体的描述和后续详尽的描述均为示例性说明和解释,并不应当用作对本发明所要求保护内容的限制。附图说明参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下描述得以阐明,其中:图1示意性示出了本发明一种管理游戏配置的代码生成方法的流程框图;图2示出了本发明用于一种管理游戏配置的代码生成方法的配套工具的结构框图。具体实施方式通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。在下文中,将参考附图描述本发明的实施例,相关技术术语应当是本领域技术人员所熟知的。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤,除非另有说明。下面通过具体的实施例对本发明的内容进行说明,为了使本发明的内容得以更加清晰的阐释,需要说明的是本发明所涉及的游戏包括市面上大部分计算机游戏,包含pc,移动端等多个平台与类型。本发明用于编辑自定义数据文件的excel插件是基于vsto(visualstudiotoolsforoffice)开发的,其中vsto是一套用于创建自定义office应用程序的visualstudio工具包。如图1所示本发明一种管理游戏配置的代码生成方法的流程框图,根据本发明的实施例,一种管理游戏配置的代码生成方法包括以下方法步骤:s101、创建配置描述文件根据本发明,实施例中创建配置描述文件,配置描述文件包括数据二维表和特殊二维表,其中,数据二维表用于定义数据结构,特殊二维表用于汇总使用的数据二维表。根据本发明实施例中,创建的配置描述文件格式包括两类:数据二维表,用于定义数据结构;特殊二维表,用于汇总使用的数据二维表。数据二维表及其生成的代码根据用途分为三大类:策划数据配置,程序配置代码和程序数据文件。一般地,配置描述文件将分布于层级结构清晰的目录中,例如:物品配置/礼包,其中礼包目录下的配置描述文件,决定了其下已存在所有子目录或新创建的自定义数据文件的数据项与数据类型。配置描述文件具有确定的文件格式和数据格式,数据格式包括但不仅限于数据项名,数据类型,注释,默认值,不同的数据类型有不同的类型校验方法,针对不同的具体功能需要编写相应配置描述文件,数据配置描述文件所含元素需要根据实际需要进行增减。下面以xml文件为例对本发明配置描述文件的数据二维表和特殊二维表进行说明:通过配置描述文件内的父子节点包含关系来表现配置描述文件在游戏配置文件的目录结构中的位置:例如特殊二维表meta.xml:其中:conf为根元素,package属性表示程序代码对应根目录;import为其包含的xml文件,file属性为包含的xml文件名;idspace为id空间,space属性为id空间的名字;table为根据xml文件自动生成的配置表,id属性为配置表起始id,name属性为配置表对应名。例如数据二维表card.xml:其中特殊元素:conf元素为xml文件根元素,name属性为程序代码对应包名,为空时表示代码全部生成在代码根目录下;alias属性为excel文件所属子目录,为空则表示excel全部生成在excel根目录下。table为配置表定义元素,name为程序代码表名;alias为excel文件名;base为父表名,填写后继承对应表所有字段;export为导出目标集合,表示是否导出至游戏客户端(client)或服务器(server)。var为字段类型定义元素,name为程序代码中的字段名;alias为excel文件中的列名;type为字段类型,支持大多数基本类型和自定义类型;valuetype和size属性只有当type=list时有效,分别表示列表中元素类型和列表长度;probsum属性为字段的特殊归一化处理,生成代码数据时使用。其余元素:enum为枚举定义元素,mask为复选定义元素,bean为自定义结构元素,const为常量定义元素,stringtable为字符串表和其他元素,以上元素含有属性含义接近,name为该元素在程序代码中的名字,alias为excel文件中的列选项名,export同table中的export属性。如表一所示数据二维表中所包含的元素及元素对应的元素描述,需要指出的是,数据二维表中的元素种类不限于表一中所陈列的元素种类,本领域技术人员可以添加本领域所公知的元素种类。表一:数据二维表中所含元素及元素对应的元素描述元素元素描述confxml文件根元素table配置表定义元素enum枚举定义元素mask复选定义元素bean自定义结构元素const常量定义元素stringtable字符串表var字段类型定义元素如表二所示特殊二维表中所包含的元素及元素对应的元素描述,需要指出的是,特殊二维表中的元素种类不限于表二中所陈列的元素种类,本领域技术人员可以添加本领域所公知的元素种类。表二:特殊二维表中所包含的元素及元素对应的元素描述元素元素描述confxml文件根元素import包含的其他xml文件idspaceid空间table自动生成的配置表s102、生成excel文件根据配置描述文件,生成文件目录结构,在每个目录下生成对应的excel文件。根据配置描述文件的父子结点包含关系,生成相应的文件目录结构,并在每个对应目录下通过使用apachepoi提供的java操作execl接口来生成对应的excel文件。根据本发明的实施例,在生成execl文件时,excel文件生成过程通过解析配置描述文件中的table属性,将每一个字段转换为excel的一列数据,生成excel文件。进一步地,每一个字段转换为excel的一列数据中,根据字段属性生成特殊的excel数据单元格,用于方便地填写enum、bool、mask数据类型。根据本发明,实施例中excel文件生成过程包括检测同名文件,若所述同名文件存在,则将所述同名文件的内容转移至生成的所述excel文件中相应位置,以此实现数据内容与数据格式分离操作,互不影响。本发明中生成的excel文件只含有表头,不含有实际数据,以excel文件的表头为模板创建的自定义数据文件都将拥有相同的数据项并且根据配置描述文件的定义赋予初始值。在上述excel文件生成的同时,生成的部分代码为:对应于处理以excel文件为模板的模板数据项的代码,比如对于不同数据类型需要有不同的输入输出方法,以及维护这些数据结构的函数。s103、创建自定义数据文件以excel文件的表头为模板,通过键值对的形式创建自定义数据文件。根据本发明,实施例中以excel文件的表头为模板,通过键值对的形式创建自定义数据文件,自定义数据文件存放大部分配置数据(游戏配置数据),对于特殊的配置数据直接存放在excel文件中。s104、对自定义数据文件进行编辑使用excel插件或shell可视化数据编辑工具对自定义数据文件进行编辑。编辑自定义数据文件时,统一相同类型的自定义数据文件的格式。根据本发明,实施例中对自定义数据文件进行编辑时,根据不同数据类型自动进行相应数据类型校验,相同类型的自定义数据文件格式统一,支持批量操作,由于自定义数据文件的数据编辑以创建的零散自定义数据文件为载体,搭配版本管理工具,整个数据编辑的工作流十分灵活。本领域技术人员应当理解,上述对于自定义数据文件编辑包含但不仅限于:创建,查看,修改,删除,搜索,部分版本管理工具操作等行为。根据本发明,可以采用excel插件对自定义数据文件进行编辑,也可以采用shell可视化编辑工具对自定义数据文件进行编辑。使用excel插件编辑自定义数据文件时,自动更新文件版本库上的自定义数据文件,保持文件版本一致;对于修改完的文件进行数据校验,避免非法数据的出现;针对游戏数据管理的特性,插件支持文件模板复选,导出差异等特殊功能。使用shell可视化工具编辑自定义数据文件时,根据工作流特性,在集成并简化高频率的操作菜单中具有excel插件的所有功能,并且支持可视化操作,可扩展定制化的特殊操作,包含但不仅限于:严格数据类型检查,高级属性搜索,批量版本管理工具操作,多窗口编辑等。自定义数据文件编辑完成后保存在各自对应的目录结构下,并由版本管理工具进行文件版本控制,针对团队开发,实施例中可以添加批量文件版本比对,一键检验并提交所有与文件版本库存在差异的本地文件等功能。s105、生成程序代码使用代码生成组件从生成的excel文件和编辑后的自定义数据文件读取数据,并输出程序使用的数据文件,生成程序代码。根据本发明,实施例使用dom4j(开源xml解析包)作为代码生成组件,解析xml文件的配置描述文件中的文件格式和数据格式(数据结构、数据类型以及语法等信息),所有生成的网络游戏的服务器/客户端代码、excel表格文件都由这些信息决定。在配置描述文件中,根据使用情况定义了table、var、enum、const等数据结构(元素),通过对上述数据结构信息的解析、转换、处理后可以生成符合网络游戏的服务器/客户端使用的语言类型的代码文件。代码文件支持c++、java、lua等语言的代码自动生成,并且可扩展支持其他语言。生成代码的主要特征是含有对应语言或者对应平台所需的格式与语法,以及对应的辅助函数等,可直接供网络游戏的客户端,服务器端使用。本发明生成代码类型可根据输入参数与配置灵活修改,可以根据需要增加生成特殊情况下的数据校验代码。根据本发明,实施例中在编辑完自定义数据文件后,代码生成组件根据配置描述文件从编辑后对应的自定义数据文件和excel文件中读取数据,并输出程序使用的数据文件,生成程序代码。对于输出的程序使用的数据文件包括但不仅限于xml文件、lua文件、bcfg文件等。特别地,由于lua这种脚本语言本身的属性以及在客户端应用中的特性,数据以及代码可以同时生成在一个lua文件中。进一步地,程序代码生成时会增加特殊情况下的数据校验代码,根据配置的不同可选生成两个版本的代码文件,即:程序代码的生成包括生成源文件版本代码文件和二进制版本代码文件,其中,源文件版本代码文件用于开发调试使用,方便程序员查看配置对象的属性;二进制版本代码文件用于发布使用,针对内存占用与读取速度进行优化与平衡,通过对应的读取规则,可以更快速的读取其中的数据,极大的提高了客户端对数据文件操作性能。管理游戏配置的代码生成方法时采用了相关的配套工具,如图2所示本发明用于一种管理游戏配置的代码生成方法的配套工具的结构框图,根据本发明,实施例中一种用于管理游戏配置的代码生成方法的配套工具100,所述配套工具包括:excel插件101、shell可视化数据编辑工具102和代码生成组件103,其中,excel插件101,用于对自定义数据文件进行编辑。excel插件101对自定义数据文件进行编辑包括:新建模板、表头的更新、刷新索引、刷新数据、查看复选、锁定/解锁、查看解锁、提交文件和导出差异。新建模板:在当前表格中新建指定数量的自定义数据文件,根据新建自定义数据文件所处目录结构中的位置,具有不同的数据项并赋默认值,同时根据配置描述文件中对所有数据的索引,为新建自定义数据文件分配id,新建自定义数据文件将会同时在文件版本库上创建记录并锁定,方便后续的修改与提交。更新表头:从配置描述文件中获取最新的数据定义,并对比当前列头/数据项与最新的定义是否相同,如果不同则将改动同步至当前文件。刷新索引:从文件版本库目录对应文件读取最新索引信息并将所有文件内容按照配置好的模板填写数据到对应的列中。刷新数据:读取选中文件或者所有文件的索引数据,读取对应文件内容中的有效数据,并填充到相应的单元格中。查看复选:根据配置描述文件中的信息,显示当前选中的单元格的复选项,并进行选择操作,将选择操作的结果按照指定格式填入原位置。锁定/解锁:在更新文件版本数据后锁定选定文件/确认是否有改动后解除锁定文件,如发现本地文件存在修改或与文件版本库存在差异,则支持快捷输入日志并提交功能。查看锁定:从文件版本库获取锁定文件列表,并与本地文件进行比对,将所有锁定文件以醒目的颜色和字体标识。提交文件:提交选定的已锁定文件,并输入日志。导出差异:导出本地修改差异文件。excel插件101新建自定义数据文件,在excel中嵌入新的自定义工具栏,整合大部分游戏项目中对excel数据表的操作需求,并在此基础上优化了处理效率,简化了操作;同时在编辑数据时自动更新文件版本库上的模板定义及模板数据,避免提交非法数据,并且可以根据策划的需求实现模板复选操作,导出差异等特殊功能,可扩展性极强。shell可视化数据编辑工具102,用于对所述自定义数据文件进行编辑。shell可视化数据编辑工具102对自定义数据文件进行编辑包括:基本编辑、高级属性索引,以及在多窗口对所述自定义数据文件编辑。基本编辑:shell可视化数据编辑工具含有excel插件的所有基本编辑功能,例如创建,查看,修改,删除,搜索,部分版本管理工具操作等。相比于excel插件依赖于excel的编辑形式,shell可视化数据编辑工具的可视化图形界面和快捷菜单使得编辑的效率更高也更易于上手。高级属性搜索:shell数据编辑工具102支持多条件复杂搜索,并使用图形化界面封装了正则表达式,根据设定好的若干条件,在文件目录下逐个比对文件内容进行搜索。多窗口编辑:shell可视化数据编辑工具103独有的子窗口分离功能,使得可以在多个子窗口中同时编辑自定义数据文件。shell可视化数据编辑工具103用于编辑、管理自定义数据文件,集常用的模板操作于一身,并且不受限于excel的种种限制,采用轻量级框架开发以简化操作流程,使用可视化图形界面提高工作效率;在原有excel及其插件的功能基础上,额外添加了多种特殊功能,包含但不仅限于:严格数据类型检查,高级属性搜索,批量版本管理工具操作,多窗口编辑等,是一款市面上少有的高质量针对于游戏业务的数据编辑管理工具。代码生成组件103,用于从生成的excel文件和编辑后的自定义数据文件读取数据,并输出程序使用的数据文件,生成程序代码。代码生成组件103包括选择性代码导出和二进制代码导出。选择性代码导出:代码生成组件103定义时指定某些字段是否导出至客户端,若不导出,则服务器端数据不导出至客户端。导出时支持变长数组,即对于某些数组,如果只填写了前部的部分项,则只导出已经填写了数据的项。二进制代码导出:代码生成组件103不但支持文本型,还支持二进制型的代码导出,文本型数据代码方便调试,而在游戏发布时,使用二进制数据代码,以减小包体大小并且加快读取速度;代码生成组件103将自定义数据文件生成对应的一系列组织结构清晰的代码文件,在配置了特定的语言类型和代码格式后可直接用于相应的网络游戏客户端与服务器端,可以根据需要增加生成特殊情况下的数据校验代码,十分灵活,高效。本发明提供的一种管理游戏配置的代码生成方法及配套工具,通过对配置描述文件的分析,生成文件以及相应的excel文件,有效缩短了维护项目配置路径的时间,减少了人工操作出错的概率,本发明在数据编辑的过程中对自定义数据文件进行自动化的格式/类型校验,在生成代码时根据需要可以额外生成特殊情况下的数据校验代码,大大提高了配置数据管理的效率和正确性。本发明有效减少了策划与程序工作交接上可能产生的问题,保证了自动化生成的程序数据代码可直接供项目使用。本发明在各个环节以及各个组件都可配置可扩展,每个步骤之间耦合度较低,做较小的改动就可以使用到其他项目中,十分灵活。同时本发明采用相关文件版本工具进行版本管理和文件合并,实现文件改动的安全性与可恢复性,降低了整个工作流程出错的概率,大大提高了开发效率。结合这里披露的本发明的说明和实践,本发明的其他实施例对于本领域技术人员都是易于想到和理解的。说明和实施例仅被认为是示例性的,本发明的真正范围和主旨均由权利要求所限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1