# （WIP）代号：割草类肉鸽游戏

> 该项目仍在积极开发中。

## 一、项目简介

TODO

## 二、项目架构

该项目的大致架构如下：

```text
项目根目录
├─Arts
├─Client
│  ├─Assets
│  ├─Library
│  └─其他文件（夹）
├─Docs
└─Tools
```

分别对各部分进行简要说明：

- `Arts`：存放所有美术资源。注意：请将需要用到的美术资源提前放入`Client/Assets`文件夹中再使用。
- `Client`：存放 Unity 客户端。
- `Docs`：存放文档，包括开发文档和策划案等。
- `Tools`：存放开发时所用到的工具，如 ProtoBuf。

## 三、项目规范

为规范开发流程，我们制定了以下几条规则：

1. 提交更改时，评论文本格式应为`(PART) COMMENT`。
   - `PART`表明更改部分，如`client`（表明更改的是客户端部分）和`tools`（表明更改的是工具部分）等。
   - `COMMENT`表明更改详情，用简练的语言描述更改内容。
     - 如果提交性质符合以下几种，则评论格式如下：
     - 功能添加：`feat:xxx`
     - 漏洞修复：`fix:xxx`
     - 日常维护：`chore:xxx`
2. 请确保你的提交为原子提交（即不可再分割成数个部分的提交），以便项目维护。
3. 除策划案等此类文档（一般这类文档使用 Word 撰写），其他类型文档请使用 Markdown 撰写。

## 四、工具及其版本

1. Git：方便多人协作开发。
   - 版本：尽量最新。截至撰写本自述文档时，Git 最新版本为`2.50.0`。
2. Unity Editor：Unity 编辑器。
   - 版本：`6000.1.10f1`。如无特殊缘由不得更改。
3. Rider（Visual Studio）：编写客户端 Unity C#脚本。
   - 使用 Rider 的原因是，它可以给出比 Visual Studio 多很多的代码建议，也可以帮助开发者格式化代码，有助于提高代码质量。当然这不是强制的，你实在不想用 Rider 也可以。
   - 版本：Rider 为`2025.1.x`，Visual Studio 为`17.14.x`。
4. ProtoBuf：生成协议，方便客户端与服务端之间的交流。
   - 版本：暂定`31.1`。如后续无其他问题，则可在后续考虑跟进新版本（若有发布）或固定在本版本。
   - TODO：由于生成的 C++协议代码与 ProtoBuf 运行时版本严格绑定，而截至撰写本自述文档时`vcpkg`与`conan`上的 ProtoBuf 运行时皆非最新版本。因此，若后续确定引入 C++，则需要根据具体运行时版本下载使用其对应的`protoc`。否则，请在后续删掉本 TODO 信息。
5. Visual Studio Code（或其他轻量级文本编辑器）：编辑文件。
   - 版本：尽量最新。
