* add catalog.md

* add .travis.yml CI config file
main
walon 2020-10-22 21:12:54 +08:00
parent c700aba868
commit e8aad2dc17
3 changed files with 134 additions and 39 deletions

7
.travis.yml 100644
View File

@ -0,0 +1,7 @@
language: csharp
solution: src/Luban.sln
mono: none
dotnet: 3.1
script:
- dotnet restore

124
docs/catalog.md 100644
View File

@ -0,0 +1,124 @@
* start up
- 下载 dotnet sdk 3.1
- 下载 luban.client&luban.server
- 启动 luban.server
- 创建游戏配置
- root.xml
- 新增一个表定义
- 新增一个excel文件
- 生成
- c# dotnet core
- gen.client 命令行
- c# unity
- c# unity + ILRuntime
- lua unity xlua
- lua unity tolua
- 其他lua
- java
- go
- cpp
- typescript
- python 2.7及3.0
* 进阶
- 游戏配置
- excel 篇
- 标题头定义
- 定义和配置更多基础类型
- 定义枚举
- 定义bean
- 数据格式
- 指定某个或者多个sheet或者文件
- list 或者其他类型
- group 分组导出
- tag
- sep
- multi_rows
- 多级标题头
- 单例表
- 行表与列表
- 可空变量
- datetime
- convert
- 多态bean
- json 篇
- lua
- xml
- 一个同时包含 excel 、 json 配置的项目
- 数据校验
- ref
- path
- 导出格式
- bin 格式
- lua 格式
- 本地化
* gen.client & gen.server 工作模型
* 定义 + 数据的 抽象模型
* 定义
* 根定义文件
* group
* service
* topmodule
* import
* 子模块定义
* 类型系统
- 基础类型
- 可空类型
- 枚举
- const
- bean
- field
- 多态
* table
* module
* 源数据格式
- excel
- json
- lua
- xml
* 导出数据格式
- bin
- json
- lua
- emmylua anntations
* input 多种数据文件来源
* group 数据分组
* tag
* 资源列表导出
* validator 数据检验
* 本地化
* editor 相关。导出符合luban数据约束的文件。
* ide支持
- emmylua anntations
- luban.client 命令行介绍
- luban.client 命令行参数
- job cfg 命令行参数
* 各个语言和引擎及平台下的项目搭建
- c# + dotnet core
- c# + unity
- c# + unity + ILRuntime
- 其他 c# 平台
- lua + unity + tolua
- lua + unity + xlua
- lua + unity + slua
- lua + unreal + unlua
- lua + cocos2dx
- 其他使用 lua 的 平台
- c++ + unreal
- c++ + 其他平台
- go
- java
- python 2.7
- python 3.0
- typescript + 微信小游戏
- typescript + 其他平台
* luban 开发
- git clone 项目
- luban 构建与发布
- 普通构建
- docker
- 代码结构介绍
- 自定义 job

View File

@ -5,49 +5,13 @@
Luban 是一个强大的生成与缓存工具。最初只用于对象生成对象可以是常规代码、配置数据、类似protobuf的消息代码也可以是游戏资源如assetbundle。 Luban 是一个强大的生成与缓存工具。最初只用于对象生成对象可以是常规代码、配置数据、类似protobuf的消息代码也可以是游戏资源如assetbundle。
在大型项目中由于配置或资源数据庞大生成对象可能会花费相当多的时间。比如一个典型的MMORPG项目后期全量生成配置即使用了多线程加速所需时间 在大型项目中由于配置或资源数据庞大生成对象可能会花费相当多的时间。比如一个典型的MMORPG项目后期全量生成配置即使用了多线程加速所需时间
也在10秒的级别。因此使用client/server模式,新增缓存机制来加速生成过程,能将生成时间时间降低到秒级,在项目中后期积少成多,可以帮助节省不少策划和程序的时间 也在10秒的级别。因此使用client/server模式配合缓存机制来大幅加速生成过程
Luban 最初是为了解决传统excel导出工具功能过于薄弱无法很好解决MMORPG游戏复杂配置需求的痛点问题。 自2015年以来经历过 MMORPG、卡牌、SLG 等多个上线项目的考验, Luban 最初是为了解决传统excel导出工具功能过于薄弱无法很好解决MMORPG游戏复杂配置需求的痛点问题。 自2015年以来经历过 MMORPG、卡牌、SLG 等多个上线项目的考验,
实际项目过程中不断迭代和优化,理解逐渐深入,最终由一个增强型的配置工具成为一个 **相对完备的游戏配置数据解决方案**。 实际项目过程中不断迭代和优化,理解逐渐深入,最终由一个增强型的配置工具成为一个 **相对完备的游戏配置数据解决方案**。
## 核心优势 ## 文档
相对于传统excel导表工具Luban的核心优势在于 * 目录 (catalog.md)
* 完备的数据类型系统增强的excel格式支持。
> 策划可以在excel里比较简洁填写出任意复杂的配置比如 equips:list,Equip(包含 int id, string name, float attr) 这样一个复杂结构列表数据。而大多数导表工具
只支持 简单类型的列表,必须拆分为 equip_ids:list,int; equip_names:list,string;equip_attrs:list,float无论对于策划还是程序都非常不友好。
* 支持多态 bean
> 支持定义类似 父类Shape子类 Circle,Rectange 这样的OOP类型体系在表达复杂配置时极为有效对程序友好同时策划也可以比较简洁地配置出Shape数据不必定义
一个通用型的包含所有字段的Shape了对程序不友好而且浪费内存
* 先进的定义 + 数据源的设计,支持多数据源,统一所有游戏配置
> 一个复杂项目中,总有一部分数据(10-20%)不适合excel编辑比如技能、AI、副本等等这些数据一般通过专用编辑器来编辑和导出。遇到的典型问题是这种配置数据是无法
与excel数据统一处理的造成游戏内有多种配置数据加载方案程序需要花费很多时间去处理这些数据的加载问题。另外这些复杂数据无法使用数据检验和分组导出以及本地化
等等excel导表工具的机制。Lunan 能够处理 excel族、xml、json、lua、目录等多种数据源统一导出数据和生成代码所有数据源都能使用数据检验、分组导出等等机制
程序彻底从复杂配置处理中解脱出来。
* 极快,大型项目也能秒级导出
> 使用 client/server模式利用服务器强大的硬件(大内存+多线程),同时配合缓存机制(如果数据和定义未修改,直接返回之前生成过的结果),即使到项目中后期数据规模比较
大也能1秒传统在10秒以上左右生成所有数据并且完成数据校验。考虑策划和程序经常使用生成工具积少成多也能节省大量研发时间。
* 支持主流的游戏开发语言
- c++ (11+)
- c# (.net framework 2+. dotnet core 2+)
- java (1.6+)
- go (1.10+)
- lua (5.1+)
- js 和 typescript (3.0+)
- python (2.7+ 及 3.0+)
* 支持主流引擎
- unity + c#
- unity + tolua,xlua
- unity + ILRuntime
- unreal + c++
- unreal + unlua
- unreal + puerts
- cocos2d-x + lua
- cocos2d-x + js
- 微信小程序平台
- 其他家基于js的小程序平台
- 其他所有支持lua的引擎和平台
- 其他所有支持js的引擎和平台
## 支持和联系 ## 支持和联系