手游开发中大多通过csv配置文件,实现策划及运营人员修改游戏中可变的数据,比如战斗数值、副本数据、Boss数值、图标icon、音效等。
csv文件是用逗号分隔的纯文本文件,可以使用Excel打开进行编辑。
程序员在使用csv数据时,还需要将其转换为便于使用的某种数据格式。转换为什么格式?怎么转换?不同的项目,需求不同,实现方案也不同。
以笔者经历的几个手游项目总结如下:
一、没有csv文件的手游项目
这个比较特殊,需要修改的配置也相对较少,后端直接提供web界面给策划或运营来修改配置。
二、csv文件比较少,配置比较简单的手游项目
前端语言:Lua
csv支持的数据类型:字符串
转换csv的程序:PHP脚本
实现方案:策划或运营修改若干csv文件后压缩成zip,通过后端提供的web界面上传到服务器,由PHP脚本解析成json。游戏登录时会请求服务器,获得json格式的配置数据,实现配置同步。
三、csv文件非常多,配置比较复杂的cocos2d-x手游项目。
前端语言:Lua
csv支持的数据类型:byte、int、float、string及其对应的数组,map等
转换csv的程序:Python实现的工具集
实现方案:策划或运行修改csv文件后提交到SVN,发布版本时前后端会更新csv,各自导出Lua和PHP格式的配置文件。
具体实现的功能有:
1、将csv转换为json、Lua及PHP三种格式的文件
json是转Lua和PHP的中间文件。
将同一份csv转为Lua和PHP是为了保持前后