【更新】完善 README.md 文档

main
walon 2021-07-07 10:04:45 +08:00
parent 2f14949c6e
commit 36645bd6f8
3 changed files with 55 additions and 102 deletions

View File

@ -8,7 +8,7 @@
![icon](docs/images/icon.png) ![icon](docs/images/icon.png)
## [README - English Version](./README.en-us.md) ## [README - English](./README.en-us.md)
## 介绍 ## 介绍
@ -29,25 +29,18 @@ Luban适合有以下需求的开发者
====**如果觉得不错烦请点个star你的支持会给予我们巨大动力 ^_^**==== ====**如果觉得不错烦请点个star你的支持会给予我们巨大动力 ^_^**====
## 支持和联系
有使用方面的疑问请及时加QQ群询问随时有人帮助解决。
- QQ 群: 692890842
- 邮箱: taojingjian#gmail.com
## 文档 ## 文档
- [主页](https://focus-creative-games.github.io/luban/index.html) - [主页](https://focus-creative-games.github.io/luban/index.html)
- [特性](docs/traits.md) - [特性](docs/traits.md)
- [快速上手](docs/install.md)
- [Excel 配置数据简介](docs/data_excel.md) - [Excel 配置数据简介](docs/data_excel.md)
- [文档目录](docs/catalog.md) - [文档目录](docs/catalog.md)
- [常见问题](docs/faq.md)
- [快速上手及进阶](docs/start_up.md)
- [[TODO] 完整手册](docs/manual.md) - [[TODO] 完整手册](docs/manual.md)
- **[====>强烈推荐查看:示例项目 <====](https://github.com/focus-creative-games/luban_examples)** - **[====>强烈推荐查看:示例项目 <====](https://github.com/focus-creative-games/luban_examples)**
- 支持与联系
- QQ群: 692890842 Luban开发交流群。有使用方面的疑问请及时加QQ群询问随时有人帮助解决。
- 邮箱: taojingjian#gmail.com
## 特性 ## 特性
- 支持增强的excel格式可以在excel里比较简洁填写出任意复杂的数据 - 支持增强的excel格式可以在excel里比较简洁填写出任意复杂的数据
- 支持excel族、json、xml、lua 多种数据格式,基本统一了游戏内的配置数据 - 支持excel族、json、xml、lua 多种数据格式,基本统一了游戏内的配置数据
@ -480,8 +473,7 @@ luban同时支持两种级别的分组
配置: 配置:
![如图](docs/images/adv/def_41.png) ![如图](docs/images/adv/def_41.png)
### 多数据源 ### 多数据源

View File

@ -2,19 +2,42 @@
## 安装 ## 安装
1. dotnet sdk 5.0 (已安装的可跳过) 1. dotnet sdk 5.0
2. 下载 luban.client&luban.server ,来自[luban_examples](https://github.com/focus-creative-games/luban_examples) 的 Tools目录 1. 下载luban_examples项目
3. 启动 luban.server
直接双击 运行即可。运行生成脚本需要连接到 luban.server,请保持它运行。
下载项目 [luban_examples](https://github.com/focus-creative-games/luban_examples)。
项目中包含测试配置、最新的luban_client&luban_server工作以及大量的示例项目。为方便起见后续提及到的文件默认都指这个项目中的文件。
1. 部属 luban-server
- 基于 docker
docker run -d --rm --name luban-server -p 8899:8899 focuscreativegames/luban-server:latest
- 基于 .net 5 runtime 推荐win平台使用可跨平台不需要重新编译
- 从[示例项目](https://github.com/focus-creative-games/luban_examples/tree/main/Tools/Luban.Server)拷贝 Luban.Server**可跨平台即使在linux、mac平台也不需要重新编译**
- 在Luban.Server目录下运行 dotnet Luban.Server.dll
1. 使用 luban-client
- 基于 docker (推荐 linux、mac平台使用)
docker run --rm -v $PWD/.cache.meta:/bin/.cache.meta focuscreativegames/luban-client <参数>
提醒! .cache.meta这个文件用于保存本地生成或者提交到远程的文件md5缓存**强烈推荐** 添加-v 映射不然每次重新计算所有涉及文件的md5,这可能在项目后期会造成多达几秒的延迟。
- 基于 .net 5 runtime 推荐win平台使用可跨平台不需要重新编译
- 从[示例项目](https://github.com/focus-creative-games/luban_examples/tree/main/Tools/Luban.Client)拷贝 Luban.Client**可跨平台即使在linux、mac平台也不需要重新编译**
- 在Luban.Client目录下运行 dotnet Luban.Client.dll <参数>
1. 设置全局环境变量
set_global_envs.bat 脚本文件,它会设置全局环境变量 LUBAN_SERVER_IP 为 127.0.0.1。如果你在其他机器上部属luban-server请将LUBAN_SERVER_IP改为相应地址。
## 创建游戏配置 ## 创建游戏配置
1. 创建目录结构 1. 创建目录结构
config 为根目录,下面创建两个子目录 Datas 和 Defines分别用于 存放策划 excel 及各种配置数据 以及 配置定义。 config 为根目录,下面创建两个子目录 Datas 和 Defines分别用于 存放策划 excel 及各种配置数据 以及 配置定义。
![如图](images/install/install_01.png) ![如图](images/install/install_01.png)
2. 在 Defines 目录下创建 root.xml 根定义文件 2. 在 Defines 目录下创建 \_\_root__.xml 根定义文件
![如图](images/install/install_02.png) ![如图](images/install/install_02.png)
可以直接从 demo 项目拷贝这个文件。 可以直接从 [示例配置](https://github.com/focus-creative-games/luban_examples/tree/main/DesignerConfigs/Defines) 拷贝这个文件。
这个 root 文件描述了: 这个 root 文件描述了:
3. 生成代码的默认顶层命名空间为 cfg 3. 生成代码的默认顶层命名空间为 cfg
@ -29,7 +52,12 @@
8. 添加物品表 excel 文件 8. 添加物品表 excel 文件
我们可以直接在 Datas 目录下添加 物品表.xlsx 文件,不过如果所有表都放到 Datas 目录下,查找起来很不方便。 我们可以直接在 Datas 目录下添加 物品表.xlsx 文件,不过如果所有表都放到 Datas 目录下,查找起来很不方便。
为了方便,我们按模块组织配置文件,在 Datas 目录下新建一个 item 目录,目录下创建一个 “物品表.xlsx” 文件。 为了方便,我们按模块组织配置文件,在 Datas 目录下新建一个 item 目录,目录下创建一个 “物品表.xlsx” 文件。
![如图](images/install/install_03.png) ![文件内容如下](images/install/install_04.png)
![如图](images/install/install_03.png)
文件内容如下
![配置](images/install/install_04.png)
- 第 1 行是 meta 行。有一些关于 excel 文件的元描述,默认全空,使用默认默认值即可。 - 第 1 行是 meta 行。有一些关于 excel 文件的元描述,默认全空,使用默认默认值即可。
单元格 A1 必须是 ##。表示这是一个有效数据表。 单元格 A1 必须是 ##。表示这是一个有效数据表。
@ -51,17 +79,23 @@
1. 字段类型呢?字段类型怎么没有定义啊? 1. 字段类型呢?字段类型怎么没有定义啊?
2. 生成的代码中相关的类名又在哪儿获得呢? 2. 生成的代码中相关的类名又在哪儿获得呢?
3. 如何导出?最终导出的数据在哪个文件? 导出文件又是啥格式? 3. 如何导出?最终导出的数据在哪个文件? 导出文件又是啥格式?
每个配置表都需要在某个子模块定义文件中添加一个相应的定义描述,每个模块可以包含多个表定义。
我们在 Defines 目录创建 item.xmlitem.xml 是一个子模块定义文件,用于包含物品模块的所有结构,枚举及配表定义。
接着在 item.xml 里添加物品表相关定义。
![文件内容如下](images/install/install_05.png) ---
我们正式开始:
每个配置表都需要在某个子模块定义文件中添加一个相应的定义描述,每个模块可以包含多个表定义。
我们在 Defines 目录创建 item.xmlitem.xml 是一个子模块定义文件,用于包含物品模块的所有结构,枚举及配表定义。接着在 item.xml 里添加物品表相关定义。
文件内容如下:
![定义](images/install/install_05.png)
- 简略介绍一下定义: - 简略介绍一下定义:
- table 是表定义,每个表都有一个对应的表定义。 - table 是表定义,每个表都有一个对应的表定义。
- name 表名。推荐采取 TbXXXX 这种名字约定。 - name 表名。推荐采取 TbXXXX 这种名字约定。
- value 记录的类型。即配置表里每行记录的类型。 - value 记录的类型。即配置表里每行记录的类型。
- index 以 value 的哪个字段为主键。这里用 Item 结构里的 id 字段做主键 - index 以 value 的哪个字段为主键。这里用 Item 结构里的 id 字段做主键。可为空,默认为第一个字段。
- input 数据源。这个表的数据文件来源,相对 Datas 目录。可以是多个,以英文分号 ; 分割。 - input 数据源。这个表的数据文件来源,相对 Datas 目录。可以是多个,以英文分号 ; 分割。
- bean 用于定义公用结构,同时也用于定义表记录结构。 - bean 用于定义公用结构,同时也用于定义表记录结构。
- name 类型名。 这儿取 Item最终生成的 c#代码会使用 cfg.item.Item 这样的类名。 - name 类型名。 这儿取 Item最终生成的 c#代码会使用 cfg.item.Item 这样的类名。
@ -109,7 +143,7 @@
如果一切正常,会产生一系列日志,最终一行是 == succ == 。 如果一切正常,会产生一系列日志,最终一行是 == succ == 。
![类似这样](images/install/install_07.png) ![类似这样](images/install/install_07.png)
如果遇到 类似这样的错误,说明服务器未启动。 双击启动 luban.server 即可。 如果遇到 类似这样的错误,说明服务器未启动。 启动 luban-server 即可。
![错误例子](images/install/install_08.png) ![错误例子](images/install/install_08.png)
@ -122,10 +156,10 @@
```c# ```c#
var tables = new cfg.Tables(file => var tables = new cfg.Tables(file =>
new Bright.Serialization.ByteBuf( new Bright.Serialization.ByteBuf(
System.IO.File.ReadAllBytes( < --output_data_dir > + “/” + file))); System.IO.File.ReadAllBytes( <output_data_dir > + "/" + file)));
``` ```
![例如下图如示](images/install/install_09.png) ![代码](images/install/install_09.png)
4. 使用加载后的配置表 4. 使用加载后的配置表
cfg.Tables 里包含所有配置表的一个实例字段。 cfg.Tables 里包含所有配置表的一个实例字段。

View File

@ -1,73 +0,0 @@
# 快速上手
## 准备工作
1. 安装 .net 5 dsk
1. 下载luban_examples项目
下载项目 [luban_examples](https://github.com/focus-creative-games/luban_examples)。
项目中包含测试配置、最新的luban_client&luban_server工作以及大量的示例项目。为方便起见后续提及到的文件默认都指这个项目中的文件。
1. 设置全局环境变量
set_global_envs.bat 脚本文件,它会设置全局环境变量 LUBAN_SERVER_IP 为 127.0.0.1。如果你在其他机器上部属luban.server可以将LUBAN_SERVER_IP改为相应地址。
1. 启动luban.server
运行 run_luban_server.bat 脚本文件启动luban.server程序。由于luban工具使用client/server的工作
模块必须有一个运行中的luban.server程序才能完成生成工作**请保持luban.server持续运行**。
新手测试时可以在本机启动luban.server实际开发中建议**一个项目部属一个luban.server**。
## 创建起始的游戏配置目录结构
1. 创建配置根目录
创建一个目录来存放所有游戏配置相关的文件。假设目录名为 Config名字随意。 目录下将包含数据目录、定义文件目录、检查脚本、高级自定义检查工程。
1. 在Config目录下创建数据目录Datas(名字随意)。将来用于存放所有游戏原始数据文件。
1. 在Config目录下创建定义目录Defines(名字随意)。目录下将包含根定义及各个模块子定义文件。
1. 在Defines目录下创建\_\_root__.xml 文件。文件内容如下:
```xml
<root>
<topmodule name="cfg"/> 额外的顶层命名空间
<group name="c" default="1"/> client 分组
<group name="s" default="1"/> server 分组
<group name="e" default="1"/> editor分组
<import name="."/> 从当前目录导入所有子模块定义文件
<service name="server" manager="Tables" group="s"/> 输出目标 server包含s分组的表和字段
<service name="client" manager="Tables" group="c"/> 输出目标 client包含c分组的表和字段
<service name="all" manager="Tables" group="c,s,e"/> 输出目标 editor包含c,s,e分组的表和字段
</root>
```
也可以直接拷贝 luban_examples项目的 config/Defines/\_\_root__.xml。
1. 在配置根目录下,创建 check.bat内容如下
```bat
set WORKSPACE=..
set GEN_CLIENT=%WORKSPACE%\Tools\Luban.Client\Luban.Client.exe
set CONF_ROOT=%WORKSPACE%\DesignerConfigs
set DEFINE_FILE=%CONF_ROOT%\Defines\__root__.xml
<luaban.client.exe> -h %LUBAN_SERVER_IP% -j cfg --^
-d Defines\__root__.xml^
--input_data_dir Datas ^
--output_data_dir output_data ^
--gen_types data_bin ^
-s all ^
--export_test_data
pause
```
执行 check.bat如果输出最后为
```
== succ ==
```
表明命令行是正确的。
## 创建第一个表
# 进阶