游戏设计中,很多数据来源策划的设定,一般研发团队,都会使用Excel来配置,当然我也见过手写XML,Json,还有CSV。

我相信策划的最爱还是Excel,Excel是可以保存颜色和间距以及记忆。

然后再用一个程序去解析Excel生成程序所用的格式文件。这个过程称之为导表,解析程序就是导表工具。

一个稳定好用的导表工具,可降低策划上手难度和日常工作烦恼。

先来聊一下生成的格式

标准CSV会是一个不错的选择

  1. 相比PB、AMF3等二进制格式的文件可读性好
  2. 相比XML、Json等文件格式冗余字符少很多,文件就小
  3. 可以直接使用Excel打开,方便排查
  4. 各种语言都会有开源类库,方便使用


再聊一下工具实现

需求:

Sheet名用来生成文件名来使用,非以.ptl结束的作为策划自用Sheet,例 item.ptl
1. 第一行,标题行,定义此列功能名称(英文名),注意此行修改必需通知程序修改代码.
2. 第二行,注释行,用来描述此列作用的说明文字,可随意修改,主要为策划能个直观的理解此列作用
3. 第三行(包含)以后的作为数据行,用来配置相关模板数据的区域

高级功能:
- 整个Sheet支持公式,颜色,间距,字体大小等功能的使用
- 数据区域,可以使用空行或空列来分隔,也可以在不写标题的列输入策划的小九九内容。
- 如果有不想删除的数据,可以在此行第一列使用//来注掉此行数据

语言选择:

Golang用来写写这种工具绝对首选

  1. 拥有第三方开源类库
  2. 不要依赖其他运行环境
  3. 最好是一个独立的程序

关于是否生成程序代码

我认为生成代码是个鸡肋的功能,首先他会入侵策划的配置表,需要添加一行类型列(我也见过有独立写XML做关联的方案),对策划来说就是个负担

如果你非说策划连类这都不懂 他就不是一个好程序,那我们就没得聊了,不要总让脚趾去干大脑做的事嘛~

只要有关联配置,不管是程序还是程序谁改了 大家都要改,那又何必省这几分钟呢?

我发现有好多程序更本不知道策划配置了什么,只知道生成代码引用,功能完成后,维护过程会改出一堆Bug

我还想吐嘈下那些生成父类,自己写子类实现解析的设计,何必呢…

开源项目

传送 >> 导表工具

使用

// 加载全部数据
List<ItemTemplate> itemplates = templateLoader.loadAll(ItemTemplate.class);

// 返回Map类型的结果
Map<Integer, ItemTemplate> itemplates = templateLoader.loadAll(ItemTemplate.class, ItemTemplate::getId);
Map<String, ItemTemplate> itemplates = templateLoader.loadAll(ItemTemplate.class, ItemTemplate::getName);
 

此加载方式为Noark2中模板加载功能,Java解析CSV的简单封装

程序简洁,策划开心,数值大爷点赞 0.0

转载请注明原地址: http://blog.noark.xyz/article/2017/6/13/聊一聊策划配置表问题/