-
-
Notifications
You must be signed in to change notification settings - Fork 561
feature
支持excel族、json、xml、lua、yaml、unity asset 多种数据格式,基本统一了游戏常见的配置数据。
可以在excel里比较简洁填写出任意复杂的嵌套数据。
可以优雅表达任意复杂的数据结构。
-
基础内置类型
- bool,byte,short,fshort,int,fint,long,flong,float,double,string,text,bytes
- vector2, vector3,vector4
- datetime
-
可空类型
除了容器类型以外的类型,都支持相应的可空数据结构。如 bool?, string?, MyEnum? MyBean? 。
-
自定义枚举 enum
-
自定义结构 bean
- 可以定义所有类型的字段
- 支持无限制的结构继承,对于表达中大型项目的复杂数据(技能,buff,ai 等等) 极其有用。 (比如基类Shape, 子类 Circle,Rectangle
-
支持容器类型 array。 value 可以为内置类型,也可以为自定义类型
-
支持容器类型 list。 value 可以为内置类型,也可以为自定义类型
-
支持容器类型 set。 value 只能为内置类型或者enum类型,不支持 bean 类型
-
支持容器类型 map。 key 只能为内置类型或者enum类型,不支持 bean 类型。 value 可以为内置类型,也可以为自定义类型
- 支持生成protobuf、msgpack、flatbuffers相应的定义文件及相应的数据文件(直接反射导出,高效,并不需要生成代码后再利用生成的代码加载导出)
- 多种导出数据格式支持。支持binary、json、protobuf、msgpack、flatbuffers、lua、xml、erlang、xlsx 及自定义的导出数据格式
- 支持xlsx与json、lua、xml、yaml等格式之间互转
- 导出配置中所有资源字符串列表
支持以下几种组织形式,允许开发者根据情况灵活组织配置文件结构。例如可以一个表对应一个xlsx文件;可以多个表都放到同个xlsx文件;可以一个表对应多个xlsx文件;可以一个表对应一个目录。
- 来自某个excel文件的所有单元薄
- 来自某个excel文件的指定单元薄
- 来自json、xml、lua、yaml文件
- 来自json、xml、lua、yaml子字段 (如root.a.b)
- 来自目录树下所有文件,每个文件对应一个记录
- 以上的随意组合
灵活的分组定义,不仅仅是client和server分组。支持以下分组粒度:
- 表级别分组
- 字段级别分组(任意bean字段粒度,而不仅限于顶层字段)
- ref 。id合法性检查
- path 。资源合法性检查
- range 。 数据范围检查
- set 。 数据集合检查
- size 。 容器大小检查
-
singleton(单例表)
-
map(常规key-value表)
-
list(支持无索引、多主键联合索引、多主键独立索引)
- 支持外部enum类型。你可以在配置中引用现成的enum类,比如UnityEngine.AudioType。
- 支持外部class类型。你可以在配置中引用现成的class类,比如 UnityEngine.Color。
支持数据标签。 可以选择导出符合要求的数据,发布正式数据时策划不必手动注释掉那些测试数据了
-
支持代码模板,可以用自定义模板定制生成的代码格式
-
支持数据模板,可以用模板文件定制导出格式。意味着可以在不改动现有程序代码的情况下,把luban当作配置处理前端,生成自定义格式的数据与自己项目的配置加载代码配合工作。开发已久的项目或者已经上线的老项目,也能从luban强大的数据处理工作流中获益
-
支持时间本地化。datetime类型数据会根据指定的timezone,转换为目标地区该时刻的UTC时间,方便程序使用。
-
支持文本静态本地化。导出时所有text类型数据正确替换为最终的本地化字符串。绝大多数的业务功能不再需要运行根据本地化id去查找文本的内容,简化程序员的工作。
-
支持文本动态本地化。运行时动态切换所有text类型数据为目标本地化字符串。
-
支持 main + patches 数据合并。在基础数据上,施加差分数据,生成最终完整数据,适用于制作有细微不同的多地区的配置数据。
-
[TODO] 【独创】 支持任意粒度和任意类型数据(如int,bean,list,map)的本地化。
-
支持云生成。 利用远程生成缓存,MMORPG这样大型项目也能秒内生成,日志增量生成基本在300ms以内。
-
支持本地生成。支持常规的本地缓存增量生成模式。
-
支持watch监测模式,数据目录变化立即重新生成。
- c++ (11+)
- c# (.net framework 4+. dotnet core 3+)
- java (1.6+)
- go (1.10+)
- lua (5.1+)
- js 和 typescript (3.0+)
- python (2.7,3.0+)
- erlang (18+)
- rust (1.5+)
- 其他protobuf、msgpack、flatbuffers支持的语言
- unity + c#
- unity + tolua、xlua
- unity + ILRuntime
- unity + puerts
- unity + GameFramework
- unity + ET游戏框架
- unreal + c++
- unreal + unlua
- unreal + sluaunreal
- unreal + puerts
- cocos2d-x + lua
- cocos2d-x + js
- skynet
- 微信小程序平台
- 其他家基于js的小程序平台
- 其他所有支持lua的引擎和平台
- 其他所有支持js的引擎和平台