手游开发中大多通过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是为了保持前后端配置数据一致。
2、生成的Lua和PHP,支持是否格式化
开发环境可以格式化Lua和PHP后阅读起来很方便,但是生成的文件包含了很多tab符及空格符等,导致文件容量比较大。生产环境去掉格式化,最小化文件容量。
3、支持指定csv及指定csv的某些字段是否导出Lua或PHP
某些csv文件只有前端或后端需要,某个csv的某些字段只有前端或后端需要,通过这个功能,保证前端或后端不会导出无用的配置。
922



被折叠的 条评论
为什么被折叠?



