策划数据是什么
游戏中有一类数据,策划人员制作,调整之后就不怎么变,比如关卡数据,敌人的数据等等。这些数据在日本这边叫master data,国内不知道叫什么名字,暂时就叫他策划数据好了。
策划数据怎么管理
日本手游大厂Gree在他们的技术博客上记载了自家的管理流程。
http://labs.gree.jp/blog/2015/12/15368/

原文是日文的,在这里只翻译一下主要流程
1.策划人员将游戏剧情文字,参数等输入到Excel。
2.在保存Excel文件的同时自动输出csv文件(用hook实现的,上图的①)
3.策划人员将将Excel文件和csv文件push到专用的git仓库(上图的②)
4.Jenkins用hook来生成自动转化的job (上图的③)
5.job使用脚本将csv转化为json (上图的④)
6.策划数据(在这里是json文件)被自动push到自己的仓库 (上图的⑤)
7.Jenkins再次用hook生成检查的job (上图的 ⑥)
8.检查脚本对json文件进行检查(上图的 ⑦)
9.结果将自动发送到聊天工具(比如slack之类的)(上图的⑧)
10.客户端 / 服务器程序员将策划数据(也是客户端 / 服务器仓库的submodule)pull下来
在这样的流程中,他们做了以下几个改进:
1.Excel(xlsx等文件)发生的变化因为是二进制的,很难阅读,所以输出了csv文件
2.由于策划人员有可能输入错误的值,所以用ruby做了检查脚本
3.即使多个Excel文件同时编辑,最后生成的json文件也可以是同一个,这样策划人员就可以并行工作
策划数据管理解决的问题
上面的例子,我总结出需要解决的问题:
1.客户端和服务器的数据时刻保持一致
2.人为输入错误的自动检查
3.数据更新的自动通知
4.多个策划同时工作
5.Excel文件在git体系里的可读性
Unity做单机游戏应该怎么管理策划数据
我自己是不做社交手游的,所以没有服务器。至于单机游戏如何管理策划数据。想了一下,得出下面的流程,抛砖引玉。

我认为未来的游戏制作策划也应该学会用游戏引擎,比如Unity。所以这里统称为游戏制作人员。
策划数据需要解决问题都解决了:
1.只有客户端,所以没有一致性问题
2.人为输入错误检查在scriptable object转化的时候完成
3.github有hook可以通知聊天软件
4.因为scriptable object实际上是yaml文本文件,所以同时编辑出现冲突时不难解决
5.scriptable object具有可读性
这个做法最大的好处是没有jenkins等CI工具,缺点是策划必须会用Unity,但是现在不会用游戏引擎只会写文档的策划已经落后与时代了,除非你是专注写剧情的。