提高资源配置效率
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
而.xml文件,因为结构和读取方式的原因,通常无法直接复制表格内容,在这种情况下,每个ID的物品可能需要根据不同的参数来对照表格手工一一填入,当遇到ID或参数较多的对象时,工作量就会变得异常庞大。因而这里介绍的一个相对较为有效的方式以供参考。
例如:有一张记录Item信息的Item.xml,其记录方式一般是以Id作为主标识,用所有的内部item用统一的格式来并列配置。可以发现,在记录信息方面,Item.xml和我们手头的资源表格是基本一致,Item.xml文件中的参数就等同于表格中的栏名,不同的仅仅是结构或者说格式。既然如此,我们就可以考虑在Excel新建一张Sheet,根据Item.xml的结构创建出一个这样的结构来,在固定参数名称的地方,我们手工一次性输入,而在需要填写参数值的地方,我们通过索引资源表获得。在创建完一份样本后,我们就可以用拖曳的方式,一次性批量复制出所有的Item,同时,建议在批量复制前赠加一栏特殊标示,用于区分配置方式,可以方便过滤。在完成批量复制后,一张Excel版的Item.xml文件就生成了,接着要做的事就是复制整张Sheet的内容到Item.xml文件中。最后一步,由于从Excel复制过来的文本内容,会存在有空格的问题,只要把这些空格全部替换掉就可以了,如此,一张完美的Item.xml表就生成了,以后如果是局部改动,可以直接手工改动,如果是大批量更改,则只需在Excel中修改完后复制所有内容出来就行。
例如:我们有2张Sheet,Sheet1是等级属性表,上面记录了每个等级阶段的每个属性的标准值,假设A列为等级列,C列为耐久列。而Sheet2是物品的属性表,B列为等级列,F列为耐久列。现在我们想通过索引把Sheet1中和Sheet2同等级的标准耐力值返回到Sheet2的F7位置,那么我们就可以用vlookup(Sheet1!A1:C100,B7,2,false)
A
B
C
D
E
1
2
短剑
1
55
200
49.5
3
长剑
2
69
200
75.9
4
法杖
3
108
220
64.8
5
斧头
4
75
220
112.5
计算基本耐久的公式:IF(OR(B2=1,B2=4),220,200)
这里的OR,枚举了所有可能类型,并将这些类型的返回值指定为220,其余的则是200。
计算实际输出的公式:C2*LOOKUP(C4,{1,2,3,4},{0.9,1.1,0.6,1.5})
参数引用可分为三种:直接引用、间接引用、指定引用。
直接引用
即取表格中某个Sheet内某一个格返回的值,只需使用者直接指定对象单元格即可取到值。
例如:Item!Sheet2!A4。其中,Item表示表格名称,Sheet2表示工作栏名称,A表示列,4表示行,A4则表示单元格位置,其中A4这个值在取到后,往往可以通过直接拖拉公式,根据行的变化进行动态变化。当然,如果希望引用某个固定对象,则可通过加$的方法进行固定引用的申明,加$对于行和列都有效。
1)数值引用
游戏中的数值,通常都是由一定的公式而生成出来的。也就是说是通过几个参数的关联计算,我们可以得到这些结果。那么现在假设,我在表中所需填入的对象只是最终的结果,如果公式发生了变化,往往会导致所有结果的变动,对于这类数值,一般建议不要纯手工输入,而采用函数方式。而采用了函数方式后,最核心的问题就是参数的引用。
提高资源配置的效率
前言
游戏内部的资源配置,对于策划而言是最常见也是工作量最大的一部分。然后不同的项目组一般都有着各自不同的开发环境和开发工具,这决定了策划的工作效率也是相异的。
通常最理想的情况是:一个优秀的游戏引擎,外加几个对应的编辑器(地图、角色、任务等)。在编辑器的支持下,策划可以更有效地对游戏资源进行分配和管理,由于管理的规范化,通常可以在资源使用和协调交接时显得较为便捷。
如此看来,在资源管理过程中,使用频率最高的莫过于Office的Excel了。作为一个以单元格为基本单位的工具,其最基本的功能就是记录和编辑数据,其中最简单同样也是最泛用的就是内容填充、排序、筛选。
对于信息量较小,一次性输入的数据而言只要有针对性地分类填写,通常就能使人一目了然,同样错误率也会比较低。但是,在绝大多数的情况,策划所需要面对的往往是一张有近万个ID,几十列字段的大新信息量表格,其中的信息往往是会根据需求经常变动的,这样一来,效率就成了最大的问题。下文,将针对Excel在使用过程中的不同环节上,如何提高效率进行具体介绍。
Sheet1!A1:C100表示索引对象为Sheet1,范围是A1到C100的区域内,B7表示以当前表格(Sheet2)B7位置的值作为索引值,B列作为索引列,2表示在Sheet1中找到对应值后,在向右数第2列的位置上取值。False为默认值,一般无须变动。这样就能取到希望的值了。
这里需要注意的两点,
2)字符拼接
就是经常提到的拼接字符串,将满足条件的不同位置的字符串按顺序拼接到一个单元格内显示。
一般用得最多的就是CONCATENATE函数,它的基本格式如下:CONCATENATE(A2,B3),但是,CONCATENATE一般只能直接取某个单元格的文字内容,而在更多的情况下,我们可能只需要其中的某几位字符串即可,这个时候就需要用到诸如MID,RIGHT,LEFT之类的字符提取函数,这几个函数都是返回文本字符串中从指定位置开始的特定数目的字符。将他们和CONCATENATE结合起来使用,基本就可以实现各种拼接的需求了。
这里需要注意的是,IF函数的嵌套层级是有上限的,大约为7次,由于多层嵌套会造成代码过于冗长不变与察看编辑,所以一般多层嵌套建议使用Lookup,而条件较多,逻辑较简单的类型则多用or,and,这样基本可以保证满足所有的需求。
例如:我们事先定义了武器的类型,1为短剑,2为长剑,3为法杖,4为斧头,现在我们希望在不同类型的武器有一个发挥度来影响他的伤害输出,此外除了法杖和斧头耐久为220外,其他武器的耐久都是200,于是我们就可以在计算伤害输出和耐久度上使用如下的公式:
这两个索引行数都不可逆向索引,即返回值的位置只能在索引对象的下方或右方,否则则会无法正常取道值。
此外索引值之间必须是一一对应的关系,如果对应对象为多个或不存在,则索引错误。
指定引用
通常使用Lookup函数,基本格式为Lookup(A,{a1,a2,a3…},{b1,b2,b3…}),其功能类似一个印射表,将两组数组一一对应起来,相当于指定a1=b1,a2=b2,a3=b3…,多用于多条件时的结果指定,这个函数经常可以解决IF函数多层嵌套的问题,而且比较直观,所以使用多条件判断时,可以尝试多使用它。
间接引用
即通过一个索引值,和目标Sheet内的值进行比对,返回指定位置的值。
这里一般会用到vlookup(纵向索引)和hlookup(横向索引)这两个函数。通常这个函数在数值引用时用地最多,因为在大部分情况,数值设定都会单独的存在与几个Sheet中,而设定时,一般经济曲线和成长曲线大都以等级作为主要参照对象。于是,印射到我们最终的表格里,等级成为了维系两张表格的关键对象,通过上述的那两个函数,以等级作为比对值,在公式中输入希望返回值的相对列数距离(距离索引列有多少列),即可将数值最终取到表格中。
例如:下表中,在D2单元格中生成物品“断刃”的文字信息,信息需要包含该物品的前缀名+基本名,以及当前的最大耐久度。
A
B
C
D
1
2
精致的
断刃
120/144
精致的断刃,最大耐久为144百度文库
具体实现方法如下:CONCATENATE(A2,B2,",最大耐久为",RIGHT(C2,3)),其中,A2和B2为前缀和名称,",最大耐久为"为自行添加的字符串,RIGHT(C2,3)表示从C2返回右起的三个字符,最终就得到了“精致的断刃,最大耐久为144”。
3)逻辑判断
在获取参数的时候,还有一种情况也会经常遇到,那就是根据不同的引用结果返回不同的值,这样就存在了一个判断和定义的过程。
Excel中使用最多的就是IF,他的基本格式是IF(A,B,C),其中A表示条件,B表示返回的结果,C表示未满足条件时返回的结果。此外,这个公式在A和C部分是可以使用多层嵌套的,即可以在IF里面再套IF。在实际使用时,根据条件的不同,IF通常会搭配其他函数一起使用,如or,and,Lookup等。
下图就是在Excel中的创建示意:
在Excel人为中创建xml的配置格式
4.总结
通过上述几方面的介绍,可以发现,在编辑过程中,策划应该尽可能让手中的表格“活”起来,而“活”的核心就在于善于创建合理的表格架构,灵活运用索引。在结合了Excel中各种功能函数后,相信一定能使自己的工作高效地运转起来。
但是,就目前看来,国内的开发环境参差不齐,大多数的项目团队在开发过程中只是部分使用编辑器,或者更甚没有编辑器。在这样的条件下,除了需要策划人员有极好的耐心和细致外,如何合理有效地使用好手头现有工具,可能是放在策划人员面前一个最为现实的问题。
根据服务器端和客户端读取数据方式的要求,策划经常需要为程序人员提供手工配置格式各异的配置文件,如.txt和.xml文件等。其中占用资源最大的莫过于角色(包括怪物)和道具(各类装备物品)。由于对象功能的不同,字段信息通常也会不一样,所以往往需要为不同功能的资源配置不同的文件以满足服务器端的需求。此外,只要是游戏中的资源,就必然存在信息更新的需求。每次进行重大调整或版本更新,首先,最基层的部分就是资源,而且好多文件的信息是相互关联的。如此一来,多文件,更新周期、关联性,直接决定了资源配置的工作时长。在那么多的环节中,只要有一个地方发生了疏漏,就有可能造成致命的错误,所以,如何尽可能利用工具本身的计算、引用、审核功能,就成了策划的必修之课。
举例:下图是由Bigworld引擎开发的黑暗与光明(Dark & Light),其在游戏制作过程中使用的任务编辑器。策划人员可以通过搜索,调用,来配置任务各个环节所需的资源。而所有和任务关联的资源,都有自己的引用链接。
黑暗与光明(DNL)任务编辑器
分析
使用编辑器显然能令工作事半功倍,相应的代价是需要前期投入一定的时间来熟悉编辑器。通常功能越强大的编辑器复杂程度也会越高。但一旦熟练掌握后,可以极大地提升工作效率,减少逻辑错误(输入过程中还是难免会发生错误的情况)。
这里实际输出是以C2的攻击力作为基数,再乘上武器发挥度所获得,我们在公式中使用了LOOKUP,它通过条件和结果印射,为不同类型武器定义了不同的发挥度。
3.导出
在所有资源都齐备的情况下,就需要进入和程序链接的环节了。目前看来,配置文件主要以.txt和.xml为主。
如果数据库直接以表格结构为依据读取数据的话,会采用.txt的方式,将表格资源整个复制到.txt文件中,而每一栏就成了一个字段。这种情况下,只要确保表格是正确的,一般不太会出错。
提效
通常情况下,策划在处理Excel表格信息流程为:设计—编辑—导出。提效在这三个环节上都可有所作为,特别是在编辑环节。
1.设计
根据对象的功能需求,主要涉及到类型定义、索引标识、数值设定、美术资源、逻辑判断、文字描述等。这个环节主要体现的是策划规划能力以及整合能力,不作赘述。
2.编辑
在此环节,需要策划根据手头所有的资源,对Excel表格进行分栏归类,以ID号作为为参考栏,进行纵向的排列堆砌,将设计环节所涉及的内容依次填入到表格中。通常在这个环节,效率的问题就需要考虑到了。这里挑选数据中最为常见的两种类型进行介绍:数值和文字。
例如:有一张记录Item信息的Item.xml,其记录方式一般是以Id作为主标识,用所有的内部item用统一的格式来并列配置。可以发现,在记录信息方面,Item.xml和我们手头的资源表格是基本一致,Item.xml文件中的参数就等同于表格中的栏名,不同的仅仅是结构或者说格式。既然如此,我们就可以考虑在Excel新建一张Sheet,根据Item.xml的结构创建出一个这样的结构来,在固定参数名称的地方,我们手工一次性输入,而在需要填写参数值的地方,我们通过索引资源表获得。在创建完一份样本后,我们就可以用拖曳的方式,一次性批量复制出所有的Item,同时,建议在批量复制前赠加一栏特殊标示,用于区分配置方式,可以方便过滤。在完成批量复制后,一张Excel版的Item.xml文件就生成了,接着要做的事就是复制整张Sheet的内容到Item.xml文件中。最后一步,由于从Excel复制过来的文本内容,会存在有空格的问题,只要把这些空格全部替换掉就可以了,如此,一张完美的Item.xml表就生成了,以后如果是局部改动,可以直接手工改动,如果是大批量更改,则只需在Excel中修改完后复制所有内容出来就行。
例如:我们有2张Sheet,Sheet1是等级属性表,上面记录了每个等级阶段的每个属性的标准值,假设A列为等级列,C列为耐久列。而Sheet2是物品的属性表,B列为等级列,F列为耐久列。现在我们想通过索引把Sheet1中和Sheet2同等级的标准耐力值返回到Sheet2的F7位置,那么我们就可以用vlookup(Sheet1!A1:C100,B7,2,false)
A
B
C
D
E
1
2
短剑
1
55
200
49.5
3
长剑
2
69
200
75.9
4
法杖
3
108
220
64.8
5
斧头
4
75
220
112.5
计算基本耐久的公式:IF(OR(B2=1,B2=4),220,200)
这里的OR,枚举了所有可能类型,并将这些类型的返回值指定为220,其余的则是200。
计算实际输出的公式:C2*LOOKUP(C4,{1,2,3,4},{0.9,1.1,0.6,1.5})
参数引用可分为三种:直接引用、间接引用、指定引用。
直接引用
即取表格中某个Sheet内某一个格返回的值,只需使用者直接指定对象单元格即可取到值。
例如:Item!Sheet2!A4。其中,Item表示表格名称,Sheet2表示工作栏名称,A表示列,4表示行,A4则表示单元格位置,其中A4这个值在取到后,往往可以通过直接拖拉公式,根据行的变化进行动态变化。当然,如果希望引用某个固定对象,则可通过加$的方法进行固定引用的申明,加$对于行和列都有效。
1)数值引用
游戏中的数值,通常都是由一定的公式而生成出来的。也就是说是通过几个参数的关联计算,我们可以得到这些结果。那么现在假设,我在表中所需填入的对象只是最终的结果,如果公式发生了变化,往往会导致所有结果的变动,对于这类数值,一般建议不要纯手工输入,而采用函数方式。而采用了函数方式后,最核心的问题就是参数的引用。
提高资源配置的效率
前言
游戏内部的资源配置,对于策划而言是最常见也是工作量最大的一部分。然后不同的项目组一般都有着各自不同的开发环境和开发工具,这决定了策划的工作效率也是相异的。
通常最理想的情况是:一个优秀的游戏引擎,外加几个对应的编辑器(地图、角色、任务等)。在编辑器的支持下,策划可以更有效地对游戏资源进行分配和管理,由于管理的规范化,通常可以在资源使用和协调交接时显得较为便捷。
如此看来,在资源管理过程中,使用频率最高的莫过于Office的Excel了。作为一个以单元格为基本单位的工具,其最基本的功能就是记录和编辑数据,其中最简单同样也是最泛用的就是内容填充、排序、筛选。
对于信息量较小,一次性输入的数据而言只要有针对性地分类填写,通常就能使人一目了然,同样错误率也会比较低。但是,在绝大多数的情况,策划所需要面对的往往是一张有近万个ID,几十列字段的大新信息量表格,其中的信息往往是会根据需求经常变动的,这样一来,效率就成了最大的问题。下文,将针对Excel在使用过程中的不同环节上,如何提高效率进行具体介绍。
Sheet1!A1:C100表示索引对象为Sheet1,范围是A1到C100的区域内,B7表示以当前表格(Sheet2)B7位置的值作为索引值,B列作为索引列,2表示在Sheet1中找到对应值后,在向右数第2列的位置上取值。False为默认值,一般无须变动。这样就能取到希望的值了。
这里需要注意的两点,
2)字符拼接
就是经常提到的拼接字符串,将满足条件的不同位置的字符串按顺序拼接到一个单元格内显示。
一般用得最多的就是CONCATENATE函数,它的基本格式如下:CONCATENATE(A2,B3),但是,CONCATENATE一般只能直接取某个单元格的文字内容,而在更多的情况下,我们可能只需要其中的某几位字符串即可,这个时候就需要用到诸如MID,RIGHT,LEFT之类的字符提取函数,这几个函数都是返回文本字符串中从指定位置开始的特定数目的字符。将他们和CONCATENATE结合起来使用,基本就可以实现各种拼接的需求了。
这里需要注意的是,IF函数的嵌套层级是有上限的,大约为7次,由于多层嵌套会造成代码过于冗长不变与察看编辑,所以一般多层嵌套建议使用Lookup,而条件较多,逻辑较简单的类型则多用or,and,这样基本可以保证满足所有的需求。
例如:我们事先定义了武器的类型,1为短剑,2为长剑,3为法杖,4为斧头,现在我们希望在不同类型的武器有一个发挥度来影响他的伤害输出,此外除了法杖和斧头耐久为220外,其他武器的耐久都是200,于是我们就可以在计算伤害输出和耐久度上使用如下的公式:
这两个索引行数都不可逆向索引,即返回值的位置只能在索引对象的下方或右方,否则则会无法正常取道值。
此外索引值之间必须是一一对应的关系,如果对应对象为多个或不存在,则索引错误。
指定引用
通常使用Lookup函数,基本格式为Lookup(A,{a1,a2,a3…},{b1,b2,b3…}),其功能类似一个印射表,将两组数组一一对应起来,相当于指定a1=b1,a2=b2,a3=b3…,多用于多条件时的结果指定,这个函数经常可以解决IF函数多层嵌套的问题,而且比较直观,所以使用多条件判断时,可以尝试多使用它。
间接引用
即通过一个索引值,和目标Sheet内的值进行比对,返回指定位置的值。
这里一般会用到vlookup(纵向索引)和hlookup(横向索引)这两个函数。通常这个函数在数值引用时用地最多,因为在大部分情况,数值设定都会单独的存在与几个Sheet中,而设定时,一般经济曲线和成长曲线大都以等级作为主要参照对象。于是,印射到我们最终的表格里,等级成为了维系两张表格的关键对象,通过上述的那两个函数,以等级作为比对值,在公式中输入希望返回值的相对列数距离(距离索引列有多少列),即可将数值最终取到表格中。
例如:下表中,在D2单元格中生成物品“断刃”的文字信息,信息需要包含该物品的前缀名+基本名,以及当前的最大耐久度。
A
B
C
D
1
2
精致的
断刃
120/144
精致的断刃,最大耐久为144百度文库
具体实现方法如下:CONCATENATE(A2,B2,",最大耐久为",RIGHT(C2,3)),其中,A2和B2为前缀和名称,",最大耐久为"为自行添加的字符串,RIGHT(C2,3)表示从C2返回右起的三个字符,最终就得到了“精致的断刃,最大耐久为144”。
3)逻辑判断
在获取参数的时候,还有一种情况也会经常遇到,那就是根据不同的引用结果返回不同的值,这样就存在了一个判断和定义的过程。
Excel中使用最多的就是IF,他的基本格式是IF(A,B,C),其中A表示条件,B表示返回的结果,C表示未满足条件时返回的结果。此外,这个公式在A和C部分是可以使用多层嵌套的,即可以在IF里面再套IF。在实际使用时,根据条件的不同,IF通常会搭配其他函数一起使用,如or,and,Lookup等。
下图就是在Excel中的创建示意:
在Excel人为中创建xml的配置格式
4.总结
通过上述几方面的介绍,可以发现,在编辑过程中,策划应该尽可能让手中的表格“活”起来,而“活”的核心就在于善于创建合理的表格架构,灵活运用索引。在结合了Excel中各种功能函数后,相信一定能使自己的工作高效地运转起来。
但是,就目前看来,国内的开发环境参差不齐,大多数的项目团队在开发过程中只是部分使用编辑器,或者更甚没有编辑器。在这样的条件下,除了需要策划人员有极好的耐心和细致外,如何合理有效地使用好手头现有工具,可能是放在策划人员面前一个最为现实的问题。
根据服务器端和客户端读取数据方式的要求,策划经常需要为程序人员提供手工配置格式各异的配置文件,如.txt和.xml文件等。其中占用资源最大的莫过于角色(包括怪物)和道具(各类装备物品)。由于对象功能的不同,字段信息通常也会不一样,所以往往需要为不同功能的资源配置不同的文件以满足服务器端的需求。此外,只要是游戏中的资源,就必然存在信息更新的需求。每次进行重大调整或版本更新,首先,最基层的部分就是资源,而且好多文件的信息是相互关联的。如此一来,多文件,更新周期、关联性,直接决定了资源配置的工作时长。在那么多的环节中,只要有一个地方发生了疏漏,就有可能造成致命的错误,所以,如何尽可能利用工具本身的计算、引用、审核功能,就成了策划的必修之课。
举例:下图是由Bigworld引擎开发的黑暗与光明(Dark & Light),其在游戏制作过程中使用的任务编辑器。策划人员可以通过搜索,调用,来配置任务各个环节所需的资源。而所有和任务关联的资源,都有自己的引用链接。
黑暗与光明(DNL)任务编辑器
分析
使用编辑器显然能令工作事半功倍,相应的代价是需要前期投入一定的时间来熟悉编辑器。通常功能越强大的编辑器复杂程度也会越高。但一旦熟练掌握后,可以极大地提升工作效率,减少逻辑错误(输入过程中还是难免会发生错误的情况)。
这里实际输出是以C2的攻击力作为基数,再乘上武器发挥度所获得,我们在公式中使用了LOOKUP,它通过条件和结果印射,为不同类型武器定义了不同的发挥度。
3.导出
在所有资源都齐备的情况下,就需要进入和程序链接的环节了。目前看来,配置文件主要以.txt和.xml为主。
如果数据库直接以表格结构为依据读取数据的话,会采用.txt的方式,将表格资源整个复制到.txt文件中,而每一栏就成了一个字段。这种情况下,只要确保表格是正确的,一般不太会出错。
提效
通常情况下,策划在处理Excel表格信息流程为:设计—编辑—导出。提效在这三个环节上都可有所作为,特别是在编辑环节。
1.设计
根据对象的功能需求,主要涉及到类型定义、索引标识、数值设定、美术资源、逻辑判断、文字描述等。这个环节主要体现的是策划规划能力以及整合能力,不作赘述。
2.编辑
在此环节,需要策划根据手头所有的资源,对Excel表格进行分栏归类,以ID号作为为参考栏,进行纵向的排列堆砌,将设计环节所涉及的内容依次填入到表格中。通常在这个环节,效率的问题就需要考虑到了。这里挑选数据中最为常见的两种类型进行介绍:数值和文字。