策划配置表的处理方法及装置与流程

文档序号:12462926阅读:1082来源:国知局
策划配置表的处理方法及装置与流程

本发明涉及计算机领域,具体而言,涉及一种策划配置表的处理方法及装置。



背景技术:

在游戏项目开发过程中,游戏策划人员的所有游戏产出都是通过excel或csv等配置表来配置完成的,然后再将配置表转换成游戏代码脚本配置文件以体现在最终的游戏中。游戏策划人员产出的配置表中的具体配置项涉及到游戏的数值规划、道具产出、游戏剧情和战斗数值等游戏核心体验,其为游戏开发过程中的关键环节。由于游戏代码配置文件属于程序开发范畴,从专业性角度出发不允许为游戏策划人员提供直接操作的权限,因此,从配置表的配置操作到导出游戏代码提交的流程涉及到多个职能之间的操作,涉及中间操作环节较多,同时还需要考虑多人协同工作过程中的同步问题。配置表提交流程中可能存在的问题可以包括但不限于以下至少之一:

(1)因策划配置格式问题导致配置表无法正常转换成游戏代码;

(2)因策划配置内容出错导致游戏代码配置与预期内容不一致;

(3)策划配置表版本内容与游戏代码配置版本不一致;

(4)因多个游戏策划人员同时编辑一份配置表导致最终导出的游戏代码内容互相覆盖。

为了规范管理策划配置表导出提交管理流程,每个游戏开发项目组都会制定与项目配套的配置表管理流程和工具,其中,较为常见的配置表管理流程在于:游戏策划人员配置完成配置表并提交,再告知技术开发人员执行导表操作或自动触发工具执行导表操作,由策划配置转换成游戏代码配置;由技术开发人员对游戏代码配置检查无误后发布到游戏代码中;游戏策划人员更新游戏代码,进入游戏体验相应的配置是否符合预期,如果游戏策划人员对配置结果不满意,则需要再重复上述流程。

由此可见,上述配置表管理流程存在如下缺陷:游戏策划人员从编辑完成配置表到进入游戏体验效果需要等待其他职能人员的操作环节全部完成才能够进行游戏体验。当游戏策划人员需要频繁地修改配置表时,易造成游戏策划人员体验配置效果的时间成本过长,其他职能人员也需要对提表操作进行反复检查确认和提交,由此增加其他相关人员的重复劳作,工作效率低下。

因此,提高一个跨职能流程操作效率最直接有效的技术手段在于:减少各职能人员之间交叉操作的环节,解耦各职能操作步骤,以达到流程操作中尽可能地减少职能间操作相互等待时间和重复操作次数,进而提高工作效率。游戏配置表发布流程作为游戏开发过程中操作最为频繁的流程,简化其操作流程以及并配备相关技术支持对游戏开发效率至关重要。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种策划配置表的处理方法及装置,以至少解决相关技术中所提供的配置表管理流程较为繁琐,工作效率低下的技术问题。

根据本发明实施例的一个方面,提供了一种策划配置表的处理方法,包括:

第一终端对策划配置表执行导表操作,导出游戏代码配置文件,其中,游戏代码配置文件包括:与游戏客户端对应的第一部分游戏代码配置文件以及与游戏服务器进程对应的第二部分游戏代码配置文件;第一终端将第一部分游戏代码配置文件同步至游戏客户端以及将第二部分游戏代码配置文件同步至游戏服务器进程;第一终端根据第一部分游戏代码配置文件对游戏客户端执行配置更新以及触发游戏服务器进程根据第二部分游戏代码配置文件执行配置更新。

可选地,第一终端对策划配置表执行导表操作,导出游戏代码配置文件包括:第一终端获取游戏策划人员选取的策划配置表;第一终端对策划配置表执行表检查操作,其中,表检查操作的输入信息包括:在策划配置表中待检查的配置表数据以及与配置表数据对应的检查规则,表检查操作的输出信息包括:策划配置表的检查结果;第一终端在检查结果未提示异常时,执行导表操作,导出游戏代码配置文件。

可选地,第一终端在对策划配置表执行表检查操作之前,还包括:第一终端分别为预先设定的多个检查规则中的每个检查规则配置对应的检查插件;第一终端对每个检查规则和对应的检查插件进行注册。

可选地,第一终端执行导表操作,导出游戏代码配置文件包括:第一终端根据游戏代码配置文件的类型从本地代码版本管理目录中确定与类型对应的分级子目录,其中,本地代码版本管理目录是按照游戏代码版本管理目录的设置方式创建的,游戏代码版本管理目录存储于版本管理服务器;第一终端将游戏代码配置文件导出至确定的分级子目录。

可选地,第一终端将第一部分游戏代码配置文件同步至游戏客户端包括:第一终端向第二终端发送第一请求消息,触发第二终端根据第一请求消息从版本管理服务器获取第一部分游戏代码配置文件,其中,第一请求消息中携带有与第一部分游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号,第二终端用于运行预设打包脚本对第一部分游戏代码配置文件进行打包,生成供游戏客户端下载的资源包,资源包包括:第一部分游戏代码配置文件;第一终端从第二终端下载资源包。

可选地,第一终端将第二部分游戏代码配置文件同步至游戏服务器进程包括:第一终端向第二终端发送第一请求消息,触发第二终端根据第一请求消息从版本管理服务器获取第二部分游戏代码配置文件,其中,第一请求消息中携带有与第二部分游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号。

可选地,在第一终端对第一部分游戏代码配置文件和第二部分游戏代码配置文件进行更新操作之后,还包括:第一终端向第二终端发送第二请求消息,其中,第二请求消息用于经由第二终端请求第三终端发布游戏代码配置文件,且第二请求消息携带有与游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号,以使第三终端根据第二请求消息从版本管理服务器获取游戏代码配置文件,以及将对游戏代码配置文件与游戏代码版本管理目录中对应的最新版本配置文件进行比对无误后,对游戏代码配置文件进行发布。

可选地,在第一终端向第二终端发送第二请求消息之后,还包括:第一终端经由第二终端接收第三终端返回的通知消息,其中,通知消息用于表示成功发布游戏代码配置文件。

根据本发明实施例的另一方面,还提供了一种策划配置表的处理装置,该装置应用于第一终端,该装置包括:导表模块,用于对策划配置表执行导表操作,导出游戏代码配置文件,其中,游戏代码配置文件包括:与游戏客户端对应的第一部分游戏代码配置文件以及与游戏服务器进程对应的第二部分游戏代码配置文件;同步模块,用于将第一部分游戏代码配置文件同步至游戏客户端以及将第二部分游戏代码配置文件同步至游戏服务器进程;处理模块,用于根据第一部分游戏代码配置文件对游戏客户端执行配置更新以及触发游戏服务器进程根据第二部分游戏代码配置文件执行配置更新。

可选地,导表模块包括:获取单元,用于获取游戏策划人员选取的策划配置表;检查单元,用于对策划配置表执行表检查操作,其中,表检查操作的输入信息包括:在策划配置表中待检查的配置表数据以及与配置表数据对应的检查规则,表检查操作的输出信息包括:策划配置表的检查结果;导出单元,用于在检查结果未提示异常时,执行导表操作,导出游戏代码配置文件。

可选地,导表模块还包括:配置单元,用于分别为预先设定的多个检查规则中的每个检查规则配置对应的检查插件;注册单元,用于对每个检查规则和对应的检查插件进行注册。

可选地,导出单元包括:确定子单元,用于根据游戏代码配置文件的类型从本地代码版本管理目录中确定与类型对应的分级子目录,其中,本地代码版本管理目录是按照游戏代码版本管理目录的设置方式创建的,游戏代码版本管理目录存储于版本管理服务器;导出子单元,用于将游戏代码配置文件导出至确定的分级子目录。

可选地,同步模块,用于向第二终端发送第一请求消息,触发第二终端根据第一请求消息从版本管理服务器获取第一部分游戏代码配置文件,其中,第一请求消息中携带有与第一部分游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号,第二终端用于运行预设打包脚本对第一部分游戏代码配置文件进行打包,生成供游戏客户端下载的资源包,资源包包括:第一部分游戏代码配置文件;同步模块,还用于从第二终端下载资源包。

可选地,同步模块,用于第一终端向第二终端发送第一请求消息,触发第二终端根据第一请求消息从版本管理服务器获取第二部分游戏代码配置文件,其中,第一请求消息中携带有与第二部分游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号。

可选地,上述装置还包括:发送模块,用于向第二终端发送第二请求消息,其中,第二请求消息用于经由第二终端请求第三终端发布游戏代码配置文件,且第二请求消息携带有与游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号,以使第三终端根据第二请求消息从版本管理服务器获取游戏代码配置文件,以及将对游戏代码配置文件与游戏代码版本管理目录中对应的最新版本配置文件进行比对无误后,对游戏代码配置文件进行发布。

可选地,上述装置还包括:接收模块,用于经由第二终端接收第三终端返回的通知消息,其中,通知消息用于表示成功发布游戏代码配置文件。

在本发明实施例中,采用第一终端对策划配置表执行导表操作,导出包括与游戏客户端对应的第一部分游戏代码配置文件以及与游戏服务器进程对应的第二部分游戏代码配置文件的游戏代码配置文件,然后第一终端再将第一部分游戏代码配置文件同步至游戏客户端以及将第二部分游戏代码配置文件同步至游戏服务器进程的方式,通过第一终端根据第一部分游戏代码配置文件对游戏客户端执行配置更新以及触发游戏服务器进程根据第二部分游戏代码配置文件执行配置更新,达到了整个导表体验过程无须经过技术开发人员的操作介入的目的,从而实现了减少配置表发布流程中的跨职能操作等待、提高工作效率的技术效果,进而解决了相关技术中所提供的配置表管理流程较为繁琐,工作效率低下的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的策划配置表的处理方法的流程图;

图2是根据本发明优选实施例的游戏代码配置文件提交流程管理方法的流程图;

图3是根据本发明优选实施例的执行策划配置表检查过程的流程图;

图4是根据本发明优选实施例的将游戏策划人员导出的游戏代码配置文件同步到后台策划游戏体验服务器与本地游戏客户端的操作过程流程图;

图5是根据本发明优选实施例的技术开发人员对游戏策划人员发布的文件与游戏代码内最新版本文件进行文本对比确认过程的流程图;

图6是根据本发明优选实施例中的技术开发人员对发布文件进行svn提交到游戏代码svn过程的流程图;

图7是根据本发明实施例的策划配置表的处理装置的结构框图;

图8是根据本发明优选实施例的策划配置表的处理装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术开发人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种策划配置表的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的策划配置表的处理方法的流程图,如图1所示,该方法包括如下步骤:

步骤S10,第一终端对策划配置表执行导表操作,导出游戏代码配置文件,其中,游戏代码配置文件包括:与游戏客户端对应的第一部分游戏代码配置文件以及与游戏服务器进程对应的第二部分游戏代码配置文件;

步骤S12,第一终端将第一部分游戏代码配置文件同步至游戏客户端以及将第二部分游戏代码配置文件同步至游戏服务器进程;

步骤S14,第一终端根据第一部分游戏代码配置文件和第二部分游戏代码配置文件执行更新操作。

通过上述步骤,可以采用第一终端对策划配置表执行导表操作,导出包括与游戏客户端对应的第一部分游戏代码配置文件以及与游戏服务器进程对应的第二部分游戏代码配置文件的游戏代码配置文件,然后第一终端再将第一部分游戏代码配置文件同步至游戏客户端以及将第二部分游戏代码配置文件同步至游戏服务器进程的方式,通过第一终端根据第一部分游戏代码配置文件对游戏客户端执行配置更新以及触发游戏服务器进程根据第二部分游戏代码配置文件执行配置更新,达到了整个导表体验过程无须经过技术开发人员的操作介入的目的,从而实现了减少配置表发布流程中的跨职能操作等待、提高工作效率的技术效果,进而解决了相关技术中所提供的配置表管理流程较为繁琐,工作效率低下的技术问题。

具体地,在游戏配置与提交流程中,游戏策划人员可以通过本地终端上配置的导表工具对策划配置表执行导表操作,导出游戏代码配置文件,并通过导表工具同步将游戏代码配置文件导出至本地游戏客户端和策划体验游戏服务器(相当于上述游戏服务器),再通过导表工具对策划体验服务器和游戏客户端的配置文件执行热更新操作即可直接体验配置效果,因此,整个导表体验过程无须经过技术开发人员的操作介入,从而减少配置表发布流程中的跨职能操作等待。

可选地,在步骤S10中,第一终端对策划配置表执行导表操作,导出游戏代码配置文件可以包括以下执行步骤:

步骤S101,第一终端获取游戏策划人员选取的策划配置表;

步骤S102,第一终端对策划配置表执行表检查操作,其中,表检查操作的输入信息包括:在策划配置表中待检查的配置表数据以及与配置表数据对应的检查规则,表检查操作的输出信息包括:策划配置表的检查结果;

步骤S103,第一终端在检查结果未提示异常时,执行导表操作,导出游戏代码配置文件。

在优选实施例中,游戏策划人员首先可以在本地编辑策划配置表,其编辑形式可以采用但不限于:excel/csv;其次,游戏策划人员对策划配置表执行导表操作,将策划配置表中的内容转换为游戏代码配置文件,进而导出到游戏策划人员本地指定目录;然后,游戏策划人员将导出的游戏代码配置文件分别同步到本地游戏客户端和后台策划游戏体验服务器,并对游戏代码配置文件执行热更新操作;最后,游戏策划人员在策划游戏体验服务器上体验配置效果,如果配置效果未满足预期实现效果,则可以重新编辑策划配置表,并重复执行上述步骤。

需要说明的是,游戏策划人员导出的游戏代码配置文件中通常既包含有属于服务端的代码配置,也包含有属于游戏客户端的代码配置。那么,游戏策划人员体验配置更新的效果必须要实现服务端的配置代码与客户端的配置代码进行同步更新,这样才能够完整地体验到更新后的游戏效果,否则可能会因为服务端的配置文件与客户端的配置文件不一致而出现异常。

为了规范以上配置表发布流程的操作步骤、提高操作效率以及支持多个游戏策划人员和技术开发人员协同并发执行导表、同步、体验和发布等工作流程,本发明提供一套配置表发布流程管理装置,支持以上功能需求,包括:

在游戏策划人员本地工作的个人计算机(PC)环境(相当于上述第一终端)上部署一个导表工具,游戏策划人员在整个操作流程中的全部操作都需要通过导表工具来完成。导表工具指引并规范游戏策划人员在整个操作流程上的操作步骤,游戏策划人员每次执行导表操作时,都需要按序完成以下各项操作:

(1)选择策划配置表;

(2)对策划配置表执行表检查;

(3)对策划配置表进行导表;

(4)对导出的游戏代码配置文件进行svn提交;

(5)同步svn提交的代码配置文件到本地客户端和策划游戏体验服务器;

(6)发布已同步代码配置文件,并通知技术开发人员提交到游戏代码svn内。

导表工具的具体执行功能可以包括但不限于:

游戏策划人员通过导表工具选择本地策划配置表目录下需要执行导表操作的策划配置表,其中,每次导表操作可以选择一个或多个策划配置表;

导表工具内集成了配置表检查组件,游戏策划人员在执行导表操作前,该导表工具会强制对策划配置表执行表检查,其检查结果通过导表工具提示给游戏策划人员,如果检查结果提示策划配置表存在异常,则游戏策划人员将停止继续执行导表操作,并根据错误提示重新编辑策划配置表,以便于在导表操作源头即可及时发现策划配置表中存在的问题;

表检查组件是针对策划配置表的静态检查,该表检查组件的输入信息是策划配置表内数据以及需要检查的规则参数,输出结果为检查结果信息,其中,策划配置表采用excel/csv的格式加以配置,配置数据均以二维矩阵的形式加以展示。表检查组件可以制定的检查规则主要针对二维矩阵相关的数值规则,可以包括但不限于:最大最小值限制、行列数值变化规律、配置单元格数值类型检查;

具体的检查实例如下:检查道具产出配置表内的产出概率是否符合预期,假设产出概率配置在excel表的特定一列数据中,按照游戏策划人员的配置意图来看,该列概率数值需要按照列号从小到大对应的道具愈发珍贵,产出概率预期是愈发减小,因此,此处可以为该策划配置表的概率设计的检查规则可以包括但不限于以下至少之一:概率配置列内所有概率值最大值不超过1,最小值不低于0,概率值随列号增加而随之递减,概率值配置数据格式必须为数字。

游戏策划人员在表检查操作执行完毕后,通过导表工具内集成的导表组件执行导表操作,导表组件执行过程的输入信息为策划配置表,输出结果为转换后的游戏代码配置文件,其中,导表逻辑设计按照与策划配置表约定的配置格式和游戏代码配置文件的配置格式加以实现。

可选地,在步骤S102,第一终端对策划配置表执行表检查操作之前,还可以包括以下执行步骤:

步骤S104,第一终端分别为预先设定的多个检查规则中的每个检查规则配置对应的检查插件;

步骤S105,第一终端对每个检查规则和对应的检查插件进行注册。

每一个检查规则需要分别对应编写一个检查逻辑,其可以设计成插件的形式,表检查组件初始化运行时将所有检查规则和对应的插件进行注册,策划配置表需要执行哪些检查规则以及对应哪些数据内容需要进行检查可以通过检查配置的形式加以保存,对策划配置表执行检查时,通过检查配置获取策划配置表需要执行的检查规则和数据提取参数,利用检查规则获取对应的检查逻辑,利用数据提取参数获取策划配置表内需要检查的数据内容,并将需要检查的数据内容传入检查逻辑,以最终输出检查结果,在导表工具上将检查结果显示给游戏策划人员。

可选地,在步骤S103中,第一终端执行导表操作,导出游戏代码配置文件可以包括以下执行步骤:

步骤S1031,第一终端根据游戏代码配置文件的类型从本地代码版本管理目录中确定与类型对应的分级子目录,其中,本地代码版本管理目录是按照游戏代码版本管理目录的设置方式创建的,游戏代码版本管理目录存储于版本管理服务器(例如:svn服务器);

步骤S1032,第一终端将游戏代码配置文件导出至确定的分级子目录。

为了对游戏策划人员导出的游戏代码配置文件进行版本管理与控制,游戏项目会专门创建一个svn仓库目录来管理游戏策划人员通过导表工具导出的游戏代码配置文件,此处称该目录为策划代码svn目录。策划代码svn目录对应游戏代码svn目录下的脚本根目录,策划代码svn目录下可以创建分级子目录,对应游戏代码svn脚本目录下的各级目录,游戏策划人员在部署导表工具环境时需要在本地检出(checkout,即,将存储在svn服务器上的资源目录下载到本地工作目录,然后通过在本地工作目录上执行svn操作指令,可以将本地目录下的各种文件修改同步到svn服务器对应的资源上)一份策划代码svn目录,游戏策划人员执行导表操作时导出的游戏代码配置文件可以根据导出文件类型导出到本地策划代码svn目录下的相应分级目录内。

可选地,在步骤S12中,第一终端将第一部分游戏代码配置文件同步至游戏客户端可以包括以下执行步骤:

步骤S121,第一终端向第二终端发送第一请求消息,触发第二终端根据第一请求消息从版本管理服务器获取第一部分游戏代码配置文件,其中,第一请求消息中携带有与第一部分游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号,第二终端用于运行预设打包脚本对第一部分游戏代码配置文件进行打包,生成供游戏客户端下载的资源包,资源包包括:第一部分游戏代码配置文件;

步骤S122,第一终端从第二终端下载资源包。

另外,导表工具上还集成了相应的svn操作功能,其可以包括但不限于:文件提交,文件回滚。游戏策划人员在将游戏代码配置文件导出到本地策划代码svn目录下之后,游戏策划人员对游戏代码配置文件执行svn提交操作。

游戏策划人员对导出的游戏代码配置文件执行svn提交操作后,可以通过导表工具上集成的同步操作功能,将已提交的游戏代码配置文件同步到本地游戏客户端和后台策划游戏体验服务器上,并对相应的游戏代码配置文件执行热更新操作,其中,属于游戏客户端的代码配置文件可以通过打patch的方式下载到本地游戏客户端。游戏客户端在根据对应的游戏代码配置文件执行同步操作后,可以通过重启客户端来完成代码配置更新,这些可以由游戏策划人员在本地游戏客户端上手动执行。

可选地,在步骤S12中,第一终端将第二部分游戏代码配置文件同步至游戏服务器进程可以包括以下执行步骤:

步骤S123,第一终端向第二终端发送第一请求消息,触发第二终端根据第一请求消息从版本管理服务器获取第二部分游戏代码配置文件,其中,第一请求消息中携带有与第二部分游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号。

除了上述在游戏客户端的配置更新之外,属于策划游戏体验服务器上的代码配置文件可以通过导表工具远程发送网络请求的方式加以执行,该网络请求信息的内容可以包括:相应文件在策划代码svn目录内的路径和版本号,网络接收端在接收到上述网络请求信息后便可以通过获取策划代码svn目录下的对应版本文件,复制到策划游戏体验服务器的对应目录下。在策划游戏体验服务器同步代码配置文件后,可以通过重启服务器或执行服务器热更新指令来完成代码配置更新,其中,服务器重启和热更新执行可以通过导表工具远程发送网络请求来加以执行,在完成代码配置更新后,游戏策划人员便可以登入游戏来体验配置更新效果。

可选地,在步骤S14,第一终端对第一部分游戏代码配置文件和第二部分游戏代码配置文件进行更新操作之后,还可以包括以下执行步骤:

步骤S15,第一终端向第二终端发送第二请求消息,其中,第二请求消息用于经由第二终端请求第三终端发布游戏代码配置文件,且第二请求消息携带有与游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号,以使第三终端根据第二请求消息从版本管理服务器获取游戏代码配置文件,以及将对游戏代码配置文件与游戏代码版本管理目录中对应的最新版本配置文件进行比对无误后,对游戏代码配置文件进行发布。

游戏策划人员确认策划配置表中的数据内容符合检查要求后,会通过导表工具发布游戏代码配置文件,即,导表工具会向技术开发人员发送远程网络请求来请求发布游戏代码配置文件,其中,远程网络请求的内容可以包括:游戏代码配置文件在策划代码svn目录下的路径和版本号。

需要说明的是,导表工具如果希望实现发送远程网络请求执行上述流程操作,需要在策划游戏体验服务器所在的开发机(相当于上述第二终端)上部署一个配置表管理服务器(即,在同一台机器上同时搭建策划游戏体验服务器和配置表管理服务器,以便于策划游戏体验服务器和配置表管理服务器之间相互通信)。配置表管理服务器可以接受导表工具发起的网络连接,接收并处理来自于导表工具的操作请求,将策划代码svn目录下的文件同步到策划游戏体验服务器,执行策划游戏体验服务器进程的编译、启动、关闭和热更新指令,以及发布游戏代码配置文件信息并通知技术开发人员进行提交。

配置表管理服务器与导表工具之间需要建立网络连接,双方必须部署相应的网络组件,其中,在配置表管理服务器上需要部署一个网络服务器,导表工具上需要部署一个网络客户端;导表工具上的网络客户端在与配置表管理服务器上的网络服务器建立连接后,向配置表管理服务器发送网络数据包以请求执行相应操作。

配置表管理服务器不仅可以处理单个导表工具发送的网络请求,还可以同时管理多个游戏策划人员的并发协同操作。配置表管理服务器统一处理多个导表工具的网络连接和操作请求,当各个游戏策划人员同时执行的流程操作不存在相同配置表文件时,配置表管理服务器处理的操作不存在冲突而互相独立,但当同时存在多个游戏策划人员并发操作相同配置文件时,配置表管理服务器需要确保各个游戏策划人员之间的操作不会互相覆盖和发生冲突。例如:当发生两个游戏策划人员A、B同时在本地修改同一张策划配置表,然后均执行过导表操作,将导出的游戏代码配置文件通过配置表管理服务器同步到策划游戏体验服务器上进行体验时,如果游戏策划人员A已经抢先一步同步相关文件到策划游戏体验服务器上进行体验时,配置表管理服务器会记录相关的同步文件,此时,游戏策划人员B如果希望同步相同的文件到策划游戏体验服务器时,配置表管理服务器会拒绝游戏策划人员B的操作请求,以防止游戏策划人员B同步的配置文件覆盖游戏策划人员A同步的文件,进而导致游戏策划人员A无法正常体验游戏配置效果。而只有等到游戏策划人员A的游戏体验结束后,才允许游戏策划人员B同步相关文件到策划游戏体验服务器。

当游戏策划人员发布游戏代码配置文件时,导表工具会向配置表管理服务器发送网络请求,配置表管理服务器会广播该网络请求,通知技术开发人员对游戏代码配置文件执行提交操作,为此,需要技术开发人员在本地工作环境(相当于上述第三终端)部署一个提表工具,其中,提表工具的具体功能可以包括但不限于:

提表工具包含一个网络客户端组件,技术开发人员在本地启动提表工具后,网络客户端组件与配置表管理服务器建立连接,双方可以进行正常通信。

技术开发人员在本地部署提表工具时需要在本地checkout一份游戏代码svn目录,技术开发人员在进行配置文件对比检查和svn提交时都需要通过该本地游戏代码svn目录进行相关操作。

配置表管理服务器在接收到游戏策划人员的游戏代码配置文件的发布请求后,通过网络消息向所有已经连接上网络的提表工具广播发布请求,其中,发布请求中可以包括:游戏代码配置文件在策划代码svn目录下的路径和版本号。

提表工具在接收到待提交的游戏代码配置文件后,会在提表工具的界面内加以显示,技术开发人员可以通过提表工具选择相应的文件进行检查和提交到游戏代码svn。

技术开发人员在提交游戏代码配置文件之前,需要先对发布文件与游戏代码svn内对应的最新版本文件进行对比检查,以确保游戏策划人员发布的游戏代码配置文件不存在语法和内容上的错误,并在确认对比内容没问题后,将发布配置文件复制到本地游戏代码svn目录下对应的文件位置,然后通过svn提交操作将发布文件提交到对应游戏代码svn上,上述所有操作都集成在提表工具内。

需要说明的是,svn对于文件的提交操作都是在本地的工作目录上进行的,如果存在更新后的游戏代码配置文件需要提交到svn上,则需要先将更新后的游戏代码配置文件存放至本地以替换原文件,然后再对更新后的文件通过svn提交指令进行提交。即,当需要将游戏策划人员发布的游戏代码配置文件提交到游戏代码svn上时,需要先通过svn输出指令将游戏策划人员发布的游戏代码配置文件输出(复制)到本地游戏代码svn目录下,然后再采用svn提交指令来完成提交操作。

可选地,在步骤S15,第一终端向第二终端发送第二请求消息之后,还可以包括以下执行步骤:

步骤S16,第一终端经由第二终端接收第三终端返回的通知消息,其中,通知消息用于表示成功发布游戏代码配置文件。

游戏策划人员在确认配置内容后,发布游戏代码配置文件,通知技术开发人员对导出的游戏代码配置文件进行提交;技术开发人员对游戏策划人员发布的游戏代码配置进行检查,并在确认后提交到游戏代码的svn内。技术开发人员在本地通过svn提交指令完成游戏代码配置文件的提交操作后,由提表工具发送确认消息来通知配置表管理服务器相关游戏配置代码文件已经成功提交,配置表管理服务器广播通知游戏策划人员与其他技术开发人员的游戏代码配置文件已经成功提交的消息。

下面将结合图2至图6所示的优选实施方式对上述优选实施过程做进一步地详细描述。

本发明实施例所提供的技术方案通过一个配置表管理服务器和各策划本地部署的导表工具和各技术开发人员本地部署的提表工具三者组成的装置来协助各职能人员完成整个配置表管理流程,各工具之间的交互全部依靠网络通信实现,其中,导表工具负责配置表的检查、导表,提表工具负责配置文件的对比检查和提交,配置表管理服务器负责管理各配置文件各流程状态以及同步各人员间的协同并发操作。

在策划配置表管理流程中,需要在一台持续工作的Linux开发机上部署一个配置表管理服务器进程CtrlServer、一个游戏服务器进程GameServer以及一个客户端资源打patch包工程PatchCtrl(即在执行打包操作时,可以通过执行打包脚本,调用相关打包工具对游戏代码配置文件进行打包生成patch资源包)。CtrlServer可以拥有如下操作权限:

(1)改变游戏服务器所在代码目录下的代码;

(2)编译游戏服务器的引擎代码;

(3)启动游戏服务器进程;

(4)关闭游戏服务器进程;

(5)热更新游戏服务器进程代码文件。

CtrlServer可以调用PatchCtrl下的相应打patch包脚本执行将游戏代码配置文件打包成游戏客户端可下载的patch资源包,供游戏客户端下载并更新脚本资源文件。配置表管理服务器和游戏服务器都是在后台运行,配置表管理服务器需要搭建一个网络服务器模块,网络服务器IP地址和端口固定,接受网络客户端的连接与通信。在优选实施例中,网络通信设计采用的通信协议可以为传输控制协议(TCP),TCP协议是一种面向连接的、可靠的基于字节流的通信协议,采用TCP协议进行通信连接可以确保所有连接建立后的长连接特性,以便于网络服务器和网络客户端建立连接后保持一个固定通信连接,进而提高双方通信过程的效率。

在优选实施例中,GameServer的作用在于:提供一个游戏体验环境供游戏策划人员将导出的游戏代码配置文件更新到游戏服务器上进行配置文件修改效果体验,其中,游戏策划人员本地进行体验的游戏客户端也需要连接到GameServer上,GameServer所在代码目录下的配置文件更新及文件热更新操作可以由CtrlServer通过shell指令来实现。

在优选实施例中,PatchCtrl的作用在于:提供一系列与游戏客户端脚本文件打包成patch资源包的工程目录,游戏策划人员在本地进行游戏体验,游戏客户端的配置文件进行更新时,需要下载的patch资源包即为通过PatchCtrl对游戏代码配置文件进行打包后生成的,并将生成的patch资源包放置在后台超文本传输协议(HTTP)服务器下供游戏客户端通过HTTP访问下载patch资源包,PatchCtrl的打包操作是通过CtrlServer调用shell指令触发。

在优选实施例中,各个职能人员与CtrlServer的交互都是通过网络通信的方式进行的,CtrlServer所有网络通信均是由TCP网络服务器TcpSvr负责,TcpSvr侦听客户端的socket连接,其中,侦听的IP地址和端口是固定的;TcpSvr负责周期性轮循各连接网络客户端socket的收包缓存获取网络收包,塞进收包队列中;以及负责从发包队列里获取将要发送给各连接客户端的网络包,并通过socket的发包接口进行发送。

消息处理组件负责从网络管理组件的收包队列中获取各连接网络客户端的网络包进行解包,根据消息协议号查找对应的消息处理函数,并调用消息处理函数来处理各连接网络客户端的网络请求内容。

发包处理组件负责将TcpSvr需要发送给各网络连接客户端的消息内容序列化为网络包,并塞入网络发送队列中,以等待网络管理器组件将其发送给需要发送的网络连接客户端。

游戏策划人员通过本地部署的导表工具与CtrlServer进行通信,技术开发人员通过本地部署的提表工具与CtrlServer进行通信,然后,CtrlServer分别由策划连接管理器DesignMng和技术连接管理器TechMng管理游戏策划人员和技术开发人员的网络连接。

游戏策划人员和技术开发人员与CtrlServer的交互内容都是与导出的游戏代码配置文件相关svn信息相关的,其中,游戏策划人员与CtrlServer的交互可以包括:游戏策划人员向CtrlServer发送同步文件请求,以及向CtrlServer发送发布文件请求;技术开发人员与CtrlServer的交互可以包括:技术开发人员向CtrlServer发送已提交的文件,以及CtrlServer向技术开发人员广播发布文件。所有这些交互内容都只需要通过发送文件在svn目录下的路径和对应的svn版本号即可满足让对方获取到文件内容,因此,这三者间的交互内容都是文件的相关svn信息。另外,CtrlServer还需要负责管理相应配置文件在管理流程中所处的环节,对应的CtrlServer包含同步文件管理器SyncMng、发布文件管理器PubMng以及提交历史记录管理器HisMng。

在优选实施例中,CtrlServer进程只需在后台运行,而无需GUI界面,并且可以使用python语言来实现,其中,网络通信可以使用python自带的网络库来实现。

游戏策划人员需要在本地PC机上部署相应的导表环境,包括:

(1)策划excel/csv配置表svn目录在本地checkout的工作目录ResDir,游戏策划人员执行导表操作的配置表都需要存放在此工作目录下,游戏策划人员编辑完成的配置表也需要在这个目录下进行svn提交;

(2)对游戏策划人员导出的游戏代码配置文件进行svn版本管理的策划代码svn目录在本地checkout的工作目录DesignDir,游戏策划人员在执行导表操作后导出的游戏代码配置文件都需要存储在此工作目录下进行svn提交,策划代码svn目录中包括:服务器配置文件代码目录和客户端配置文件代码目录,每个目录的文件夹层级和游戏代码svn目录下的层级是一致的,以便于后续操作从策划代码svn目录下复制文件到游戏代码svn目录下;

(3)部署在游戏策划人员PC端本地的debug版游戏体验客户端GameClient,游戏体验客户端是游戏策划人员在本地导出游戏代码配置文件后用来体验效果的;

(4)部署在策划PC端本地上的导表工具应用程序ExportTool,其中,ExportTool可以利用任何PC端支持的应用程序开发语言来实现,在该优选实施例中,可以使用python+pyqt语言进行脚本语言开发,并通过py2exe工具打包成应用程序;游戏策划人员所有流程相关操作都是集成在ExportTool上进行的,ExportTool提供相应的GUI操作界面,引导游戏策划人员依照流程步骤执行相应的导表操作。

游戏策划人员在整个工作流程中涉及到本地部署的ResDir和DesignDir目录下文件的操作,因此,ExportTool在游戏策划人员本地部署时需要配置以上目录相应的路径,然后在ExportTool工作时便可以根据配置的目录路径通过以上目录执行相应的文件操作。

ExportTool程序架构可以包含一个TCP网络客户端TcpClient,其组件可以包括:网络管理组件、消息处理组件和发包处理组件;在ExportTool启动后,TCP网络客户端组件便会自行启动。

具体地,网络管理组件负责TCP网络客户端创建socket以连接CtrlServer,其中,待连接的IP地址与端口都是预先配置完成的,与CtrlServer的侦听IP地址和端口一致;负责TCP客户端周期性轮循socket的收包缓存获取从CtrlServer接收到的网络包,并塞进收包队列中;负责从发包队列内获取将要发送给CtrlServer的网络包,并通过socket的发包接口进行发送。

消息处理组件负责从网络管理组件的收包队列中获取接收到的网络包进行解包,根据消息协议号查找对应的消息处理函数,并调用消息处理函数来处理相应的消息内容。

发包处理组件负责将TCP客户端要发送给各网络连接客户端的消息内容序列化为网络包,并塞入网络发送队列中,以等待网络管理器组件发送给CtrlServer。

游戏策划人员在ExportTool上执行的操作可以包括但不限于:配置表检查,配置表导出游戏代码配置文件,svn操作代码配置文件,将游戏代码配置文件同步到策划游戏体验服务器和游戏客户端,以及发布已同步的游戏代码配置文件,其中,ExportTool程序架构中包含配置表检查组件ResChecker来实现配置表检查,包含导表组件ResExporter来实现从策划配置表中导出游戏代码配置文件,包含svn操作组件SvnCtrl来执行对导出的游戏代码配置文件进行svn提交回滚等操作,包含游戏体验服控制组件GameCtrl来实现同步代码配置文件到游戏体验服和发布已同步的代码配置文件并通知技术开发人员进行提交,以及操作策划游戏体验服务器代码更新、执行策划游戏体验服务器的热更新或重启、编译策划游戏体验服务器引擎等行为。

在优选实施过程中,技术开发人员需要在本地PC端上部署相应的提表环境,包括:

(1)游戏代码配置文件svn目录在本地checkout的工作目录DataDir,技术开发人员需要将游戏策划人员发布的游戏代码配置文件进行svn提交操作的过程:先将发布的文件输出到本地的DataDir对应路径下再执行svn提交操作;

(2)部署在技术开发人员本地PC端上的提表工具应用程序CommitTool,其中,CommitTool可以采用任何PC端支持的应用程序开发语言来实现;在该优选实施例中,可以使用python+pyqt语言进行脚本语言开发,并通过py2exe工具打包成应用程序;技术开发人员执行的所有流程相关操作都集成在CommitTool上进行,CommitTool提供相应的GUI操作界面,以引导技术开发人员按照流程步骤执行相应的提表操作。

技术开发人员提表过程涉及到对本地DataDir目录的操作,因此CommitTool在技术开发人员本地部署时需要配置上述目录相应的路径,然后CommitTool工作时便可以根据配置的目录路径通过以上目录执行相应的文件操作。

CommitTool程序架构包含一个TCP网络客户端TcpClient,其组件可以包括:网络管理组件、消息处理组件和发包处理组件;在CommitTool启动后TCP网络客户端组件便可自行启动。

其中,网络管理组件负责TCP网络客户端创建socket去连接CtrlServer,其中,待连接的IP地址与端口都是预先配置完成的,与CtrlServer的侦听IP地址和端口一致;负责TCP客户端周期性轮循socket的收包缓存获取从CtrlServer接收到的网络包并塞进收包队列中;负责从发包队列中获取将要发送给CtrlServer的网络包,并通过socket的发包接口进行发送。

消息处理组件负责从网络管理组件的收包队列中获取接收到的网络包并进行解包,然后再根据消息协议号查找对应的消息处理函数,以及调用消息处理函数来处理相应的消息内容。

发包处理组件负责将TCP客户端要发送给各网络连接客户端的消息内容序列化为网络包,并塞入网络发送队列中,以等待网络管理器组件发送给CtrlServer。

技术开发人员在CommitTool上执行的操作可以包括但不限于:待提交配置文件的对比查看和svn提交配置文件,其中,CommitTool程序架构包含配置文件对比查看组件DiffChecker来实现待提交配置文件与现有游戏配置文件对比查看差异的功能,还包含svn操作组件SvnCtrl来实现技术开发人员对游戏代码配置文件的svn提交回滚等操作。

图2是根据本发明优选实施例的游戏代码配置文件提交流程管理方法的流程图。如图2所示,该流程可以包括以下处理步骤:

步骤S202:游戏策划人员需要启动ExportTool,该ExportTool上的TcpClient与CtrlServer上的TcpSvr建立网络连接。在连接成功后,游戏策划人员在ExportTool登陆界面上输入自己的工作账号和密码进行身份验证。在通过身份验证后,ExportTool向CtrlServer发送导表工具身份标识以及游戏策划人员的身份信息唯一性标识,游戏策划人员的身份标识用来区分不同游戏策划人员,在游戏策划人员开始在ExportTool上登录自己的工作账号后,ExportTool便可以获取到登录者身份标识,该策划人员的身份标识可以是游戏策划人员的工作账号名,在CtrlServer确认连接的TcpClient属于导表工具后,将TcpClient连接的socket以及所属游戏策划人员的身份唯一标识封装为一个ClientObj对象添加至DesignMng进行管理。

步骤S204:技术开发人员启动CommitTool,CommitTool上的TcpClient与CtrlServer上的TcpSvr建立网络连接。在连接成功后,技术开发人员在CommitTool登录界面上输入自己的工作账号和密码进行身份验证。在通过身份验证后,CommitTool向CtrlServer发送提表工具身份标识以及技术开发人员的身份信息唯一标识,技术开发人员的身份信息唯一标识可以是技术开发人员的工作账号名。在CtrlServer确认连接的TcpClient属于提表工具后,将TcpClient连接的socket以及所属技术开发人员的身份唯一标识封装为一个ClientObj对象添加至TechMng进行管理。

需要说明的是,上述步骤S202和步骤S204没有严格的执行先后顺序,另外,还支持多个游戏策划人员和多个技术开发人员各自在本地PC端同时开启多个ExportTool和CommitTool执行上述步骤。

当任一ExportTool/CommitTool关闭进程或由于网络异常导致与CtrlServer断开网络连接时,CtrlServer检测到断线信息后便会执行连接清理工作,将网络连接相应的ClientObj对象从DesignMng/TechMng中移除。而且,ExportTool/CommitTool为了确保与网络连接共存,当网络连接断开时,ExportTool/CommitTool也会结束进程。

步骤S206:游戏策划人员在ResDir目录下编辑完成excel/csv策划配置表后,通过ExportTool的GUI界面上打开ResDir目录下文件列表选择需要执行导表的策划配置表。ExportTool支持一次性选择多个策划配置表进行导表操作,每个策划配置表在导表过程中相互独立,互不影响,在选择待导表的一个或多个策划配置表后,ExportTool便会记录下策划配置表的路径列表,供后续步骤操作时从路径列表中获取各个策划配置表的路径。

步骤S208:游戏策划人员在ExportTool上执行策划配置表检查操作,配置表检查模块ResChecker对策划配置表路径列表中的每个文件都执行一次检查,并将每个策划配置表的检查结果输出到ExportTool的GUI界面上进行显示。

ResChecker的检查逻辑为了便于适应游戏开发过程中策划配置表配置规则迭代较为频繁的特点,ResChecker对每一个配置表进行检查的逻辑变化也会较为频繁,因此,在优选实施例中,在ResChecker检查逻辑架构设计上遵循文件检查独立不耦合、检查规则独立易扩展的原则,将ResChecker的检查内容拆分为多个独立的检查规则,每个检查规则逻辑的实现设计为一个独立的插件,以提供统一的检查调用接口供ResChecker调用执行检查,各检查规则之间相互独立不耦合,以便于各检查规则逻辑的迭代维护和扩展。而且,每个检查规则插件在ResChecker启动时都会调用统一的注册接口向ResChecker注册,ResChecker执行规则检查时可以通过规则名索引到对应的检查插件,调用插件相应检查接口,传入策划配置表相应检查规则需要检查的数据内容,对策划配置表执行相应的规则检查。最终,检查结果信息将会按照统一规范返回给ResChecker。

在策划配置表执行检查过程中具体需要执行哪些检查规则,以及检查规则需要获取哪些数据进行检查,在该优选实施例中以配置的方式加以实现,其配置内容以json/xml等形式进行保存。一个策划配置表可以配置多个检查规则对该策划配置表进行检查,检查规则配置信息为规则名加检查数据范围索引,ResChecker通过规则名可以索引到检查插件,通过检查数据范围索引可以获取到策划配置表中待检查的数据范围。策划配置表数据内容可以由工作表名以及工作表内单元格行列值索引到策划配置表中任何位置配置的数据。在该优选实施例中,策划配置表的检查数据范围索引即由excel/csv策划配置表内的工作表名,策划配置表内的行数范围值和列数范围值这三者即可定位到需要检查的数据范围。另外,策划配置表中的数据内容读取可以采用python的xlrd库来实现。

检查规则插件的扩展以及迭代修改由相关技术进行维护,所有检查规则插件对应的代码文件都放置在游戏策划人员本地部署的导表工具内的规定目录下,并通过svn版本管理。配置表检查配置文件也是由相关技术进行维护,同样放置在游戏策划人员本地部署的导表工具规定目录下,并通过svn版本管理。游戏策划人员在本地执行配置表检查时,ResChecker都会通过svn更新最新版本的规则检查插件代码文件和配置表检查配置文件。

检查规则的制定以及对应检查插件的逻辑开发在设计上遵循通用性的原则,即尽量适用于所有策划配置表的检查,以提高检查规则的利用率,例如:比较通用的检查规则可以是最大最小值限制、行列数值变化规律、配置单元格数值类型检查,每个检查规则执行检查时,检查接口也可能需要根据不同配置表配置规则传入额外参数,这些参数同样是在每个策划配置表的检查配置文件内进行配置。

在优选实施过程中,图3是根据本发明优选实施例的执行策划配置表检查过程的流程图。如图3所示,该流程可以包括以下处理步骤:

步骤S302:游戏策划人员在本地启动ExportTool后,ResChecker随之启动,执行初始化操作,通过svn更新检查规则插件目录下所有插件代码文件到最新svn版本,调用插件存放目录下所有插件文件的检查规则注册接口,将检查插件注册到ResChecker,并可以通过检查规则名索引到相关插件执行对象。

步骤S304:策划执行配置表检查操作,配置表文件路径传入ResChecker里,ResChecker通过svn更新配置表检查配置文件到最新svn版本,加载解析配置文件内容,获取配置文件名所配置的所有检查规则类型及对应的数据范围索引参数,通过python的xlrd库从配置表文件路径读取配置表内容。

步骤S306:ResChecker获取为策划配置表配置的每个检查规则对应的检查插件对象,并调用检查插件对象的检查接口。通过检查规则对应配置的策划配置表数据范围索引参数,通过xlrd相关数据获取接口获取策划配置表相应范围的数据,作为参数传入检查接口以执行检查,其检查结果按照规范输出到ExportTool的GUI界面进行显示。

步骤S308:所有被选择导表的策划配置表执行完检查后,游戏策划人员可以通过ExportTool查看检查结果,如果检查结果存在错误提示信息,则游戏策划人员可以根据错误提示检查策划配置表的相关配置内容,停止后续操作步骤,并等到修复完配置错误后再重新执行导表操作;如果检查结果未出现错误提示信息,则游戏策划人员可以执行下一步导表操作。

步骤S210:游戏策划人员在ExportTool上执行导表操作,ExportTool调用SvnCtrl组件先执行svn更新DesignDir目录到svn最新版本,导表组件ResExporter对策划配置表路径列表中的每个文件都执行导表操作。ResExporter采用python的xlrd库读取配置表数据,根据事先约定的策划配置表配置规则转换策划配置表内数据生成游戏代码配置文件,其转换逻辑采用python脚本语言来实现,其生成的游戏代码配置文件按照预设规则输出到DesignDir内对应配置文件所在的各级目录下。SvnCtrl组件执行svn状态查看所有导出的游戏代码配置文件的svn状态,并显示在ExportTool上,ExportTool会根据各个导出的游戏代码配置文件的svn状态判断哪些文件发生改变,如果游戏代码配置文件状态显示为正常状态,则游戏代码配置文件未发生修改;如果游戏代码配置文件状态显示为新增或修改,则说明游戏代码配置文件发生过改变或者在原来svn目录下不存在,这种游戏代码配置文件需要进行svn提交,如果游戏代码配置文件状态显示为存在冲突等异常状态,则导出的游戏代码配置文件无法执行svn提交,而需要执行svn回滚操作,游戏策划人员会根据ExportTool上显示的各导出游戏代码配置文件的svn状态信息执行相应操作。

步骤S212:如果导出的所有游戏代码配置文件都是没发生改变或新增的,则游戏策划人员本次执行的导表操作没有更新文件,无须执行后续操作,整个流程便可结束;如果导出的游戏代码配置文件中存在状态为svn冲突等异常状态时,说明游戏策划人员本地DesignDir目录存在版本问题,游戏策划人员需要调用SvnCtrl执行DesignDir目录的svn回滚操作,回退所有导出的游戏代码配置文件,重新开始执行导表流程;如果导出的游戏代码配置文件中只存在正常、新增或改变状态的文件,则游戏策划人员可以对其中的新增和改变文件执行svn提交操作,游戏策划人员通过ExportTool的GUI界面执行提交操作。ExportTool首先通过SvnCtrl对ResDir下当前执行过导表的游戏代码配置文件进行svn提交操作,如果svn提交操作提示失败,则说明导表源头的策划配置表内容已经被其他游戏策划人员执行过svn提交更新,本次导表操作导出的游戏代码配置文件并非对应最新版本的策划配置表,SvnCtrl回滚导出的游戏代码配置文件,结束整个流程;如果策划配置表svn提交成功,则接下来SvnCtrl对这些导出的游戏代码配置文件执行svn提交操作,并在执行完svn提交操作后,ExportTool会记录当前提交的文件在DesignDir的相对路径和提交svn版本号,相关信息记录在一个版本提交列表中。

步骤S214:游戏策划人员需要将本次导表操作发生更新的游戏代码配置文件同步到真实游戏环境下进行效果体验,以确认本次策划配置表的修改结果是否符合自己预期,导表导出的游戏代码配置文件中的一部分是属于游戏客户端的游戏代码配置文件,而另一部分则是属于策划游戏体验服务器的游戏代码配置文件,此处需要将属于游戏客户端的游戏代码配置文件同步到本地GameClient下,将属于策划游戏体验服务器的游戏代码配置文件同步到后台策划游戏体验服务器GameServer上。

在优选实施过程中,图4是根据本发明优选实施例的将游戏策划人员导出的游戏代码配置文件同步到后台策划游戏体验服务器与本地游戏客户端的操作过程流程图。如图4所示,该流程可以包括以下处理步骤:

步骤S402:游戏策划人员在ExportTool上执行游戏代码配置文件同步操作,ExportTool上的GameCtrl组件通过TcpClient向后台CtrlServer发送本次导表的版本提交列表信息,CtrlServer通过TcpSvr接收到的版本提交列表信息获取版本提交列表中每个配置文件在DesignDir下的相对路径和svn版本号,从DesignMng里获取连接对象的ClientObj中获取相应策划的身份标识,并将每个待同步文件的相关信息打包加入到同步文件管理器SyncMng中,其中,每个配置文件打包的同步信息包括:文件路径、svn版本号、游戏策划人员身份标识。

SyncMng会对加入的同步文件信息进行校验检查,而只有通过校验才可以将同步文件信息加入至SyncMng中,其具体检查步骤可以包括:

第一步,检查游戏策划人员同步的文件信息是否已经存在于SyncMng中。如果游戏策划人员同步的文件信息当前已经存在于SyncMng中,并且同步操作的执行人员为另外一名游戏策划人员时,为了确保另外一名游戏策划人员已经同步的文件在进行相应游戏体验时,其同步文件不被其他游戏策划人员执行的更新操作而影响自身游戏体验,此时的文件同步操作不予执行,CtrlServer会通知ExportTool该同步文件暂时不可同步;如果游戏策划人员同步的文件信息当前已经存在于SyncMng中,且先前同步信息的执行者为同一名策划人员,则会校验当前同步信息svn版本号是否比现有SyncMng中的svn版本号新,如果前者比后者大,则SyncMng更新对应同步信息中svn版本号到当前版本号,并广播同步文件更新信息给DesignMng下所有当前连接的游戏策划人员的本地ExportTool,否则,同步操作不予执行,CtrlServer发送错误提示通知ExportTool。

第二步,当游戏策划人员请求CtrlServer同步文件时,同步的文件如果已经存在于PubMng或HisMng中时,同步文件的svn版本号要求比PubMng和HisMng中对应存在文件的版本号都要新才能够执行更新操作。如果当前待同步的文件信息不存在于SyncMng中,那么相应文件信息还可以存在后续操作会存放的PubMng中和HisMng中。同理,当校验到当前同步文件svn版本号如果存在于PubMng或HisMng中且当前同步版本比其中任何一个管理器中存在的版本号旧,则同步操作不予执行,CtrlServer发送错误提示通知ExportTool,除此之外,将当前同步文件信息加入SyncMng中,并广播同步文件更新信息给DesignMng下所有当前连接的游戏策划人员本地ExportTool。

步骤S404:游戏策划人员执行同步的所有游戏代码配置文件中如果有被SyncMng拒绝执行的文件,则游戏策划人员本地的ExportTool会接收到CtrlServer相应的提示信息,并在ExportTool GUI上进行显示;如果能够成功被同步并更新到SyncMng,则所有游戏策划人员本地开启的ExportTool上都能够接受到CtrlServer广播的成功同步的文件信息,游戏策划人员在本地ExportTool接收到同步成功信息后,在ExportTool上显示同步文件信息,其可以包括:同步文件路径、文件svn版本号和执行同步策划身份信息。

如果SyncMng广播文件同步信息时存在游戏策划人员本地的ExportTool未启动,而未能够接收到相应的同步信息,但是游戏策划人员启动ExportTool并通过网络连接上CtrlServer时,CtrlServer会向ExportTool发送当前SyncMng下所有同步文件信息。

步骤S406:SyncMng成功更新同步文件信息后,会根据文件类型分别做同步处理,如果同步的文件是属于服务器代码文件,则CtrlServer通过执行svn输出操作根据同步文件信息中的文件路径和svn版本号从策划代码svn目录下获取相应路径文件的版本输出到GameServer的配置代码目录下的对应位置覆盖原有的文件,然后CtrlServer通过shell指令发送热更新指令给当前运行的GameSever进程,以使其热更新相应更新的游戏代码配置文件,使得游戏代码配置文件的修改在GameServer上生效;如果同步的文件是属于客户端代码文件,则CtrlServer通过svn输出操作同步文件信息里的文件路径和svn版本号从策划代码svn目录下获取相应路径文件的版本输出到patch打包工程PatchCtrl的打包目录下,然后CtrlServer调用执行PatchCtrl的打包脚本对更新的配置文件进行patch打包,打包成功后的资源包放置在HTTP服务器上供游戏客户端进行下载更新配置文件。

步骤S408:游戏策划人员在本地重启GameClient,GameClient通过HTTP请求下载最新patch包,更新本地客户端的配置文件,进入游戏体验配置更新效果,如果配置效果不满意,游戏策划人员可以通过ExportTool向CtrlServer发送回退已同步文件请求,CtrlServer在接收到同步文件回退请求后将SyncMng下对应的文件信息移除,广播同步文件移除信息给各游戏策划人员本地的ExportTool,并将待回退文件通过svn回滚操作在GameServer和PatchCtrl的相应代码配置目录下对这些文件执行回滚到之前原版本,然后重新执行GameServer的热更新和PatchCtrl的patch打包,恢复配置文件修改前的游戏环境。游戏策划人员在重新修改策划配置表后重启导表操作流程;如果游戏策划人员满意配置效果,则可以通过ExportTool发送发布请求以请求CtrlServer发布已同步的文件,并通知技术开发人员提交发布的文件。

由于在游戏体验过程中游戏策划人员可能还需要对GameServer执行更新所有服务器最新代码、重启服务器、重新编译服务器等操作,这些操作都需要在ExportTool集成到GameCtrl组件下,并通过向CtrlServer发送请求来加以执行。

步骤S216:游戏策划人员通过ExportTool发送发布请求将自己所同步的位于SyncMng下的同步文件信息进行发布,CtrlServer将SyncMng下该游戏策划人员所同步的文件信息加入到发布文件管理器PubMng下,并从SyncMng中移除相应的文件信息。在文件信息从SyncMng移除后,CtrlServer广播移除信息给所有DesignMng下管理的已连接ExportTool,ExportTool在接收到移除信息后,在ExportTool的GUI上更新信息。另外,在CtrlServer将配置文件信息加入到PubMng后,将通知各技术开发人员进行提交,其通知方式为:向TechMng下所有已连接的CommitTool广播已发布文件信息,发送信息为加入到PubMng下各文件信息的文件路径、svn版本号和游戏策划人员身份标识。

步骤S218:技术开发人员本地开启的CommitTool在接收到CtrlServer发送的发布文件信息后,在CommitTool的GUI上会以可选择列表的方式显示已收到的各个发布文件信息,文件显示信息可以包括文件路径、文件svn版本号和游戏策划人员身份标识。技术开发人员通过可选择列表点选一个或多个发布文件进行操作,并在流程中需要执行的主要操作便是将游戏策划人员发布的配置文件从策划代码svn输出到本地的游戏代码配置文件svn工作目录下,并执行svn提交。另外,在技术开发人员提交配置文件到游戏代码svn之前必须要执行版本对比检查,即技术开发人员需要将游戏策划人员需要发布的配置文件和当前游戏代码svn内对应文件的最新版本的文本内容差异进行确认。

在优选实施过程中,图5是根据本发明优选实施例的技术开发人员对游戏策划人员发布的文件与游戏代码内最新版本文件进行文本对比确认过程的流程图。如图5所示,该流程可以包括以下处理步骤:

步骤S502:技术开发人员通过CommitTool发布文件列表选择一个或多个文件,在CommitTool上执行对比操作,CommitTool对每个文件分别调用对比组件DiffChecker执行对比操作。

步骤S504:CtrlServer向技术开发人员的CommitTool广播发布文件信息后,CommitTool上便记录有每个发布文件在策划代码svn目录下的路径和版本号,因此,当技术开发人员在CommitTool上选择发布文件做对比时,DiffChecker便可以直接在CommitTool上获取每个待对比文件在策划代码svn下的路径和版本号,更新相应文件在本地游戏代码工作目录DataDir下对应文件到最新svn版本。如果发布文件在DataDir目录下找不到对应文件,则说明发布文件是新增文件,无需更新svn版本,DiffChecker通过svn输出操作将根据发布文件路径和版本号将发布文件输出到本地临时工作目录,DiffChecker读取DataDir下文件文本内容和临时工作目录下文件文本内容,通过执行对比算法获取两个文本内容间的差异信息,如果发布文件为新增,则DiffChecker无需执行对比算法,直接可以获取到对比差异结果。

步骤S506:DiffChecker中对比差异内容的获取可以是直接采用svn的diff指令来实现,当然也可以是借助现有的开源文本对比工具,现有的文本对比工具都是按照文本内容逐行进行内容对比,并标识文本中哪一行对比存在差异。在DiffChecker获取到差异结果后,CommitTool的GUI界面上会显示差异结果,技术开发人员通过查看差异结果确认发布文件相对于当前游戏代码里对应文件的最新版本的修改内容是否存在异常。

步骤S220:技术开发人员如果确认游戏策划人员发布的配置文件存在异常不能提交到游戏代码svn目录上,则选中不予提交的文件,并在CommitTool的GUI上编辑不予提交原因,然后再通过CommitTool向CtrlServer发送撤销发布请求以及原因内容。CtrlServer在接收到技术开发人员撤销发布请求后,读取待撤销发布的文件路径、版本号,从PubMng中根据文件路径和版本号索引出相应文件信息,获取发布游戏策划人员身份标识,并移除该文件信息,然后再向TechMng下所有连接的CommitTool广播移除文件信息,技术开发人员在本地CommitTool接收到发布文件移除信息后,从CommitTool的发布文件显示列表中移除相应的文件信息,CtrlServer从DesignMng中根据游戏策划人员身份标识索引到游戏策划人员连接的ExportTool,发送技术不予提交原因给对应的游戏策划人员本地ExportTool,游戏策划人员在本地ExportTool接收到相应技术开发人员不提交发布文件的原因后,在GUI界面上加以显示,游戏策划人员可以根据技术开发人员的反馈意见重新执行导表操作。

技术开发人员如果确认游戏策划人员发布的游戏代码配置文件可以提交,则通过在CommitTool发布文件列表中选择待提交的文件信息进行svn提交到游戏代码svn中。

在优选实施过程中,图6是根据本发明优选实施例中的技术开发人员对发布文件进行svn提交到游戏代码svn过程的流程图。如图6所示,该流程可以包括以下处理步骤:

步骤S602:技术开发人员在CommitTool上选择需要提交的文件,CommitTool的SvnCtrl组件根据被选择文件在策划代码svn目录下的路径和版本号通过svn输出操作将发布文件从策划代码svn目录输出到本地DataDir下的对应文件路径。

步骤S604:SvnCtrl对输出到DataDir下的文件执行svn提交操作,如果提交成功,则将文件信息加入到成功提交列表;如果在svn提交过程中报错,则是由于在执行svn提交时本地DataDir目录文件当前版本已经不是svn最新版本,可能是其他技术开发人员已经抢先一步执行过对同一个文件的svn提交操作,这时SvnCtrl会对本地DataDir目录执行svn回滚操作,并更新DataDir目录到最新版本。当前技术开发人员执行的svn提交操作无效,结束提交过程。

步骤S606:SvnCtrl将成功提交列表中的文件通过CommitTool发送给CtrlServer,CtrlServer在接收到文件列表后,从PubMng中索引相应文件,将文件信息加入到HisMng中,如果HisMng中已有相同文件,则更新已有文件信息版本号到当前提交版本,将文件信息从PubMng中移除,并向TechMng下所有连接的CommitTool广播移除文件信息。技术开发人员的本地CommitTool在接收到发布文件移除信息后,从CommitTool的发布文件显示列表中移除相应的文件信息;从DesignMng中根据游戏策划人员身份标识索引到游戏策划人员连接的ExportTool,发送文件提交成功消息给对应的游戏策划人员本地ExportTool。游戏策划人员的本地ExportTool在接收到相应提示后,游戏策划人员便能够确认其导出的游戏代码配置文件被成功提交到游戏代码svn目录中,整个策划配置表发布流程结束。

通过上述优选实施方式,支持在游戏开发过程中由游戏策划人员进行自主导表和游戏调试体验,并在配置体验确认后才通知技术开发人员进行代码提交,由此降低了策划配置表发布流程中游戏策划人员和技术开发人员之间的操作耦合,提高了各职能人员的工作效率。

根据本发明实施例,提供了一种策划配置表的处理装置的实施例,图7是根据本发明实施例的策划配置表的处理装置的结构框图,该装置应用于第一终端,如图7所示,该装置包括:导表模块10,用于对策划配置表执行导表操作,导出游戏代码配置文件,其中,游戏代码配置文件包括:与游戏客户端对应的第一部分游戏代码配置文件以及与游戏服务器进程对应的第二部分游戏代码配置文件;同步模块20,用于将第一部分游戏代码配置文件同步至游戏客户端以及将第二部分游戏代码配置文件同步至游戏服务器进程;处理模块30,用于根据第一部分游戏代码配置文件对游戏客户端执行配置更新以及触发游戏服务器进程根据第二部分游戏代码配置文件执行配置更新。

可选地,图8是根据本发明优选实施例的策划配置表的处理装置的结构框图,该装置应用于第一终端,如图8所示,导表模块10可以包括:获取单元100,用于获取游戏策划人员选取的策划配置表;检查单元102,用于对策划配置表执行表检查操作,其中,表检查操作的输入信息包括:在策划配置表中待检查的配置表数据以及与配置表数据对应的检查规则,表检查操作的输出信息包括:策划配置表的检查结果;导出单元104,用于在检查结果未提示异常时,执行导表操作,导出游戏代码配置文件。

可选地,如图8所示,导表模块10还可以包括:配置单元106,用于分别为预先设定的多个检查规则中的每个检查规则配置对应的检查插件;注册单元108,用于对每个检查规则和对应的检查插件进行注册。

可选地,导出单元104包括:确定子单元(图中未示出),用于根据游戏代码配置文件的类型从本地代码版本管理目录中确定与类型对应的分级子目录,其中,本地代码版本管理目录是按照游戏代码版本管理目录的设置方式创建的,游戏代码版本管理目录存储于版本管理服务器;导出子单元(图中未示出),用于将游戏代码配置文件导出至确定的分级子目录。

可选地,如图8所示,同步模块20,用于向第二终端发送第一请求消息,触发第二终端根据第一请求消息从版本管理服务器获取第一部分游戏代码配置文件,其中,第一请求消息中携带有与第一部分游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号,第二终端用于运行预设打包脚本对第一部分游戏代码配置文件进行打包,生成供游戏客户端下载的资源包,资源包包括:第一部分游戏代码配置文件;同步模块20,还用于从第二终端下载资源包。

可选地,如图8所示,同步模块20,用于第一终端向第二终端发送第一请求消息,触发第二终端根据第一请求消息版本管理服务器获取第二部分游戏代码配置文件,其中,第一请求消息中携带有与第二部分游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号。

可选地,如图8所示,上述装置还可以包括:发送模块40,用于向第二终端发送第二请求消息,其中,第二请求消息用于经由第二终端请求第三终端发布游戏代码配置文件,且第二请求消息携带有与游戏代码配置文件关联的位于版本管理服务器上供游戏策划人员使用的策划代码版本管理目录中的路径和版本号,以使第三终端根据第二请求消息从版本管理服务器获取游戏代码配置文件,以及将对游戏代码配置文件与游戏代码版本管理目录中对应的最新版本配置文件进行比对无误后,对游戏代码配置文件进行发布。

可选地,如图8所示,上述装置还可以包括:接收模块50,用于经由第二终端接收第三终端返回的通知消息,其中,通知消息用于表示成功发布游戏代码配置文件。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术开发人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1