个人数值设计规范
实现下文所需的功能,需要的知识:
面向对象编程思想基础知识+数据库基础+精通EXCEL公式+熟悉VBA
树状多表引用结构
多层树状表格关系结构:
可以根据系统层级进行分类,首层应该只有一张表,决定游戏最核心的体验参数。末层应该有3张表。除了末层之外,都属于设计表。下面对上图中的四种种表进行简单分类说明:
设计表:
储存基于各个层级的设计数据。设计数据应该只储存在相应层级,如果各个不同系统之间有强关联,应该用一个上级层级表来规划系统之间的关系和结构。
数据表:
和程序的接口,用于程序读取数据使用,但是也需要策划对该表的检测识别,查错等。
数据表说明表:
用于记录数据表的约定规范,该说明表应当保证数据表的可读性。
枚举表:
约定而成的枚举,用于储存基本的分类和结构,但不是设计数据。
引用和数据管理规则
基于数据库规范的数据管理。只做简单介绍,详细自行学习数据库范式
原子数据:
应当要求设计表中所有数据都是原子性的,一个用于设计的单元格只储存一个数据,用于计算的过程组装数据则不需要适用,同样,末层数据表不需要适用、
0冗余:
同一个信息的数据应当采用引用,而不应该出现在2个地方,对于表格维护有灾难性后果,引用应当符合表格层级关系,下一层级只能引用上一层级数据,如果跨层引用,应当给每个层级都拷贝数据引用区域。
主键关系:
(适用于vlookup)查询关系只依赖于主键:对于range区域(矩阵),应该拥有唯一主键,并且查询关系只依赖主键,同数据库第二范式。同样目标为了明确数据关系,并且更容易配合excel函数lookup系列。
巴斯-科德范式:
每一个码都是完全函数依赖,任何非主属性不能对主键子集依赖,该范式对于数据表是否会出现空数据等情况有良好的改善,适用于大范围不同枚举类型的通用性公式。
表结构
设计表
可读的分组表
设计表表中就应该拥有明确的分类规划,增加可读性并且明确数据影响范围。数据表主要有如下三类数据,分别为参数,曲线,举证。
参数:
决定游戏内某个部分关键数据,该数据是独立的。不受其他数据影响的。
曲线:
决定各类数据的趋势数据,该曲线应该部分由参数决定,如首尾数据,如积分数据,在各类成长系统,线性,离散的不同等级的部分都会用到。曲线常见应该是一个2列或者2行的数据区域。
矩阵:
最常用的数据区域,在excel里占用一个range。是设计表的一个子表。可以独立成为一张小表。该表格会决定各类枚举的设计分布,如不同职业属性。矩阵在过程中也常用于储存数据。
计算过程:
参数+曲线→计算后的曲线
参数+矩阵→计算后的矩阵
曲线+矩阵→计算后的矩阵
计算规则:
数据储存规则:区分原设计数据和计算数据,用不同的颜色区分,在调整数据时应该只修改原设计数据。
数据计算规则:数据计算应该充分考虑各种极端情况以及报错情况,对报错情况进行标识处理,主要是有2个目的,1:暴露错误,不把错误带入下一层级计算。2:优化错误,使允许的错误不影响下一层级计算。
数据表
表格通用信息:
表格名称,表格英文名称,表格类型,
表格所属系统,表格所属模块
表格预留表头前空白区域储存这些信息,方便在各处整理归纳,以及跳转,目录等功能的实现。
关系型数据表
Excel的表格常规是普通二维表格,我们需要通过对字段的管理增加表格关系,从而把它改造成关系型数据表。主要的部分是对字段的规范以及自定义的外键部分。
唯一识别码:
每个字段在所有的表里应该拥有唯一识别码。常用的唯一识别码是:表格名_字段名。该名称应该是唯一的并且和表格中的每个字段意义对应,从而可以树立不同数据之间的关联关系。在有了关联关系之后,就可以对关系的检查以及跳转,大大增加了表格的可读性以及查错能力。
主键:
每张表格应该有唯一主键字段
对于主键的ID应该有一套完整的基于系统结构的ID规范,使ID出现时可以快速了解ID所代表的含义,可读性的ID对于程序报错时查错有非常好的指导意义。但是不要在主键的ID中隐藏信息和机制,如:用ID最后2位代表等级,省去了等级字段,并且还节约了等级遍历的操作。这种行为破坏了数据的原子性,可以在最终的数据表出现,但是任然不建议出现,尽可能的不要在设计表出现,对于数据的拆分组装回变成一个繁琐的工作。对于小型项目,节约程序成本而采用的ID带有大量信息的行为要客观看待,在工作量和可扩展性中做出平衡。
外键:
实现方法
规范化表头:规范化表头主要是为了实现字段的可读性,可是别性,同时可以提供字段之间的关系(外键),用于方便纠错和跳转。
字段类型:主要是用于说明字段的作用,用来区分于其他字段,如:功能,数值,美术,音效,文案
字段说明:和字段外键共同使用,2边格式保持相同,主要是对字段外键的一种说明。
字段外键:使用字段的唯一识别码,和字段的实际结构相同,用于识别院子数据的来源,方便查错和跳转。
字段英文名:程序使用的,也是表内的唯一名称,是主要的字段标记。
字段中文名:同字段英文名,在一般情况下,优先使用英文名。
字段数据类型:用于程序识别的字段类型,可以是标准的数据类型:如INT,LONG,STRING,BOOL等,也可以是程序自定义的如Array,或者程序自定义的类。
规范化名称管理
在公式引用数据时,应该大量采用名称管理器。在大量的跨表的字母加数字的公式参数是几乎没有可读性的。灵活使用名称管理器可以解决公式可读性问题。
一个好的名称管理器的命名规范应该符合以下几点
1.识别该名称是否为单一数值还是range区域
2.识别该名称准确位置
3.识别该名称的准确含义
4.在修改数值区域范围时不需要修改名称本身
常用的命名规范
全局参数名称
系统名称_参数名称
全局参数不能过多,才能用最简短的命名方法
局部参数名称
系统名称_模块名称_参数名称
矩阵名称
系统名称_模块名称_矩阵内容_举证起始列名_矩阵大小
注意:
1. 系统名称和模块名称应该和表格名称相关联。方便准确查找名称数据位置。对于采用了名称管理器的区域,应当用特殊颜色区分。
2. 名称区域在右边界和下边界预留两行和两列,方便插入数据不需要改变名称本身,同时也能继承以前的区域格式。
表格纠错
1. 外键查找自动纠错,确保外键内容存在
2. 填写枚举部分数据,采用数据验证部分,检测数据合法性
3. 公式数据采用上面提到的错误处理方法,暴露错误或者处理错误
4. 导出工具提供非法格式检测能力。
表格自动化生成
核心参数
提前准备用于宏观控制整个表的数值方向
资源枚举
文案美术音效枚举
属性结构
各种类型的属性结构提前设计
如:标准模型,职业标准模型,种族标准模型。模型关系
分级结构
对于分级的字段增加限制条件,
如:等级成长模型,星级成长模型,
设计计算方法
可计算属性=F(标记属性)
如,攻击= F(职业标准模型,职业,等级成长模型,等级,种族标准模型,种族)
对于采用标准的设计方法的,末层数据表应该是可以通过VBA和公式进行自动生成的。减少大量的管理成本,可以将主要的经历用在数据本身的设计上。
表格导出
采用程序喜欢的导出格式即可,常用格式不多,并且通用,在此并不多说。
采用vba可以实现一键导出,并且同步版本管理(SVN),以及服务器上传和服务器更新。对于快速纠错提供方便。一组数据的调试修改到表格自动化生产再导出到客户端和服务器部分应该可以在20秒内完成。快速看到数据反馈,你就拥有更多的设计和思考时间。
仪表盘
对于设计数据部分尽可能多采用图标结合的方式,提供更直观简洁的体验,目前没有找到特别好的报表工具等可视化插件,在此不多说,但是excel自带的表格和数据也可以提升很多设计体验。
常用工具
联动查看器。主要采用vlookup函数即可。需要将各类枚举还原成我们最熟悉的语言方便查看。图片部分采用index和Match函数来索引提前准备好的资源枚举。通过名称管理器赋值给图片,来显示即可。图片枚举可能需要批量的导入,可以采用选择性粘贴union编码实现,编码如下:
<table><img
src="图片路径">
可以加入相关参数控制图片大小。
导出
各类格式导出方法,常用的如下
XML,JSON,CSN,TXT,LUA
注意各种编码格式,注意utf-8和ansi的区分,注意有无BOM区分。
附加功能。
1. SVN提交,服务器提交,可以采用shell来调用SV和服务器的文件传输工具即可。
2. 邮件备份,访问指定的邮件接口,添加附加发送邮件即可。
跳转
这里需要用到字段结构标记以及关系型数据表中说到的外键。需要表格中有其他表格ID索引的数值都可以跳转过去。主要是对组装好的数据根据数据格式进行拆解成为原子数据,并且对原子数据的外键查找,在通过搜索找到对应的原子数据的位置,这样可以应用于大量的数据查看工作简化,如,查看英雄,查看技能,跳转到技能部分,查看buff,跳转到buff部分。
目录:
为表格指定的模块提供快速的打开隐藏功能,从而可以在一张表上管理大量的sheet而不会感到困难,可以通过表格的表头规范来自动生成目录部分。
集成:
对于及其常用的功能应该集成到一个通用的用户界面,如:工具箱。
对于需要选择区域的常用功能,应该集成到右键部分,这样可以快速使用。
第三者访问:
表格功能中有大量与路径绑定的部分,
对于路径管理需要有统一的入口,为了方便其他同事对表格的使用,应该提供各类路径设置的功能。不然表格更换机器和路径后功能则会失效。