# CCCGame
**Repository Path**: nomat/cccgame
## Basic Information
- **Project Name**: CCCGame
- **Description**: lcc-framework框架工程模板。lcc-framework框架是为cocos cerator设计的基于多分包游戏内容组织框架。
- **Primary Language**: TypeScript
- **License**: MIT
- **Default Branch**: 2.4.x
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 21
- **Forks**: 17
- **Created**: 2020-10-30
- **Last Updated**: 2025-02-11
## Categories & Tags
**Categories**: game-dev
**Tags**: None
## README
# **lcc-framework框架工程模板文档**
QQ交流群:861746804
## **什么是lcc-framework框架?**
**lcc-framework**是专门为游戏开发引擎cocos creator设计的游戏开发框架,旨在帮助开发者更方便,更快速,模块化的开发单机或者网络游戏。该框架完整包含三个部分:
1. ### 客户端框架及配套cocos creator插件。
**客户端框架**是基于多分包的模块化游戏内容组织框架,并且提供UI、场景、多语言、配置、数据表、网络等系列便利功能。**配套cocos creator插件**主要为客户端框架服务,提供分包代码声明文件生成、游戏发布时框架裁剪等功能。框架代码提供了非常细致的裁剪功能,可以自定义框架保留的模块,并且对于小型项目也提供自动裁剪功能,即使是小游戏也可以使用该框架。
2. ### 服务器框架及配套服务器发布与控制脚本。
**服务器框架**是基于**客户端框架**开发的与之配套的框架,主要提供配置、数据库、日志、网络、数据表、工作者管理 等系列便利功能。服务器框架API和客户端框架API大部分一致,并且功能通用,比如网络模块是互通的,学习难度不会太高。**配套服务器发布与控制脚本**提供游戏服务器的发布与控制功能。当前游戏服务器使用typescript开发,在运行前是需要编译为javascript的,发布操作就是编译程序代码并且提取资源文件到发布目录。控制脚本可以控制多个服务器的启动和停止。
3. ### 原始资源配置与构建工具。
**原始资源配置**用于在外部配置游戏数据,主要提供数据表Excel表、多语言Excel表、通信协议配置等系列功能。该功能主要提供给策划使用Excel表格配置游戏常量数据,提供给开发者配置客户端和服务器之间通信协议(服务器与服务器之间也可以使用这些通信协议)。**资源构建工具**主要编译**原始资源配置**为客户端和服务器需要的解析格式。
该框架的三部分也可以单独或者部分使用。比如`客户端框架及配套cocos creator插件` + `原始资源配置与资源构建工具`适用于纯单机游戏,`服务器框架及配套服务器发布与控制脚本` + `原始资源配置与资源构建工具`适用于独立服务器,完整三个部分一起适用于网络游戏。
## **lcc-framework框架文档引用**
* [客户端框架插件文档](https://gitee.com/nomat/lcc-framework-client/blob/2.4.x/README.md)
* [客户端框架文档](https://gitee.com/nomat/lcc-framework-client/blob/2.4.x/framework/docs/1.%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%A1%86%E6%9E%B6%E6%96%87%E6%A1%A3.md)
* [服务器框架文档](https://gitee.com/nomat/lcc-framework-server/blob/master/docs/1.%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%A1%86%E6%9E%B6%E6%96%87%E6%A1%A3.md)
* [资源构建脚本文档](https://gitee.com/nomat/lcc-framework-scripts/blob/master/README.md)
## **使用软件安装说明**
* [cocos creator 2.4.x](https://www.cocos.com/creator) 用于客户端。
* [Python3.x](https://www.python.org/) 用于构建脚本工具。并且安装依赖:
* `pip install fonttools` 用于字体裁剪。
* `pip install ply` 用于协议文件解析。
* `pip install xlrd==1.2.0` 用于配置表格读取。
* [Nodejs](http://nodejs.cn/) 用于服务器,安装时最好查以下安装方法。并且安装依赖:
* `npm i typescript -g` 用于使用Typescript进行开发。
* `npm i gulp -g` 用于使用构建操作。
## **工程模板目录文件结构说明**
```
.
├── client (cocos creator 客户端工程目录,目前是测试用例工程)
│ ├── @types (声明文件目录)
│ ├── assets
│ │ ├── lcc-framework (lcc-framework客户端框架)
│ │ └── resources (resources分包目录)
│ │ └── lcc-assets (构建的资源生成目录)
│ ├── settings
│ └── packages
│ └── lcc-framework-client (lcc-framework客户端框架插件)
├── origins (资源配置根目录)
│ └── resources (resource分包配置目录)
│ └── assets (resource分包文字资源目录)
├── lcc-framework-scripts (资源构建脚本工具)
└── server (服务器根目录)
├── assets (服务器资源目录)
│ └── lcc-assets (构建的资源生成目录)
├── config (服务器配置文件目录)
│ └── servers.json (服务器实例配置文件)
└── node (Node服务器目录)
├── lcc-framework-server (lcc-framework服务器框架)
├── test (框架代码自动测试工程)
├── scripts (服务器发布于控制脚本工具)
└── servers (业务服务器目录)
├── _test (测试用例服务器)
└── _template (服务器模板)
```
上面只列出了比较重要的目录文件。并且在使用过程中如果不需要,可以选择移除`client`客户端目录或者`server`服务器目录。
## **工程模板初始化**
1. ### 安装工程模板子模块。
当前工程模板依赖三个子模块:`lcc-framework-client`、`lcc-framework-server`和`lcc-framework-scripts`。
如果你是使用的Git拉取的本工程模板,可以直接在根目录执行Git的命令`git submodule update --init --recursive`,以更新子模块,注意`client/packages/lcc-framework-client`和`lcc-framework-scripts`需要切换到分支`2.4.x`。(如果是Git可视化工具请自行百度用法)
如果你是复制的工程模板,那么就需要进行以下操作:
* 下载Git源码`https://gitee.com/nomat/lcc-framework-client`分支`2.4.x`,解压放入`client/packages`目录。
* 下载Git工程`https://gitee.com/nomat/lcc-framework-server`,解压放入`server/node`目录。
* 下载Git工程`https://gitee.com/nomat/lcc-framework-scripts`分支`2.4.x`,解压放入根目录。
2. ### 初始化服务器
在`server`目录内执行`init`,等待执行结束。
## **服务器发布与控制脚本说明**
1. ### 创建业务服务器
在 `server/node/servers` 目录内存放游戏服务器,可以直接复制服务器模板`_template`直接修改。然后在`server/config/servers.json`文件中配置服务器。在服务器目录内,以 `_` 开始的服务器目录只做本地调试使用,发布时会忽略这个服务器。
例如,创建名为`test`服务器,直接复制一份`_template`,修改为`test`。然后配置`server/config/servers.json`文件如下:
```
{
// GID 整个工程ID,如果一台物理机上运行多个当前工程,那么这个值要不相同。
"GID":"Game",
// 服务器列表
"servers":[
{
// 服务器ID,只要在这个工程中唯一就行
"PID" : "test",
// 启用这个配置
"enable" : true,
// 服务器为 test, server/node/servers/test目录中服务器。
"server" : "test",
// 服务器配置文件
"config" : "${localpath}/server-test.json"
}
]
}
```
`config`服务器配置文件路径,会在服务器创建的时候通过`process.argv[2]`传入。可以在服务器代码里面获取。
`注意`:服务器启动的时候是执行服务器目录下的`bin/main.js`文件。如果不是使用的服务器模板,则要自己创建。
2. ### 服务器工程的发布与控制。
在`server`目录内执行`publishNode`,则会在`server/publish`目录下生成以日期时间命名的发布工程目录。
进入发布工程目录内,执行`install`以安装依赖。
最后,使用`gamectl start`启动所有服务器;`gamectl stop`停止所有服务器;`gamectl restart`重启所有服务器。
3. ### 启动测试用例服务器。
在测试模板客户端用例的时候,需要首先启动测试服务器。
进入`server/node/servers/_test`目录,使用`vscode`打开工作区,使用`ctrl` + `shift` + `B`打开任务列表,选择`build`回车执行,最后使用`F5`调试。如果`vscode`报错请自行百度原因。