Files
whale-town/README.md
2025-12-05 19:04:50 +08:00

209 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI Town Game - Godot 多人在线游戏
基于 Godot 4.x 引擎开发的 2D 多人在线 AI 小镇游戏,首个场景为 Datawhale 办公室。
## 项目特性
- 🎮 2D 多人在线游戏
- 🌐 网页版优先HTML5 导出)
- 📱 预留移动端适配
- 💬 实时对话系统
- 🔄 角色在线/离线状态切换
- 🎨 Datawhale 品牌场景
## 技术栈
- **游戏引擎**: Godot 4.5.1
- **客户端语言**: GDScript
- **服务器**: Node.js + TypeScript + WebSocket
- **包管理**: Yarn
- **数据格式**: JSON
## 快速开始
### 1. 环境要求
- Godot 4.5.1+
- Node.js 24.7.0+
- Yarn 1.22.22+
### 2. 安装 Godot 引擎
项目根目录包含 `Godot_v4.5.1-stable_win64.exe.zip` 压缩包,解压后包含两个可执行文件:
1. **Godot_v4.5.1-stable_win64.exe** - Godot 引擎主程序(图形界面版本)
2. **Godot_v4.5.1-stable_win64_console.exe** - 控制台版本(用于命令行操作和调试)
**使用步骤**
1. 解压 `Godot_v4.5.1-stable_win64.exe.zip`
2. 双击运行 `Godot_v4.5.1-stable_win64.exe`(主程序)
3. 在 Godot 项目管理器中点击"导入"
4. 选择本项目根目录(包含 `project.godot` 文件的目录)
5. 点击"导入并编辑"即可开始开发和测试
### 3. 启动服务器
```bash
cd server
yarn install # 安装依赖
yarn build # 编译 TypeScript
yarn start # 启动服务器
```
开发模式(自动重载):
```bash
yarn dev
```
### 4. 运行游戏
1. 启动 Godot 引擎
2. 点击 "导入",选择项目根目录的 `project.godot` 文件
3. 点击 "导入并编辑"
4. 在 Godot 编辑器中按 F5 或点击 "运行项目" 按钮
## 测试游戏
### 快速测试(推荐)
1. 在 Godot 编辑器中打开 `scenes/TestGameplay.tscn`
2.**F6** 运行场景
3. 使用 **WASD** 或方向键移动角色
**预期结果**
- 看到 Datawhale 办公室场景
- 角色可以自由移动
- 相机跟随角色
- 角色被墙壁和家具阻挡
### 运行测试套件
1. 在 Godot 编辑器中打开 `tests/RunAllTests.tscn`
2.**F6** 运行
3. 查看控制台输出,所有测试应该显示 ✅ PASSED
## 游戏控制
### 基础控制
- **移动**: WASD 或方向键
- **交互**: E 键
- **退出**: ESC 键
### 相机控制(调试模式)
- **移动相机**: WASD 或方向键
- **缩放**: 鼠标滚轮
- **重置**: R 键
## 项目结构
```
ai_community/
├── project.godot # Godot 项目配置
├── scenes/ # 游戏场景
│ ├── Main.tscn # 主场景
│ ├── DatawhaleOffice.tscn # Datawhale 办公室
│ └── TestGameplay.tscn # 测试场景
├── scripts/ # GDScript 脚本
├── assets/ # 游戏资源
├── tests/ # 测试文件
├── server/ # WebSocket 服务器
└── .kiro/specs/ # 项目规范文档
```
## 服务器 API
WebSocket 服务器监听端口: `8080`
### 消息格式
```json
{
"type": "message_type",
"data": {},
"timestamp": 1234567890
}
```
### 主要消息类型
- `auth_request` / `auth_response` - 身份验证
- `character_create` - 创建角色
- `character_move` - 角色移动
- `character_state` - 角色状态更新
- `dialogue_send` - 发送对话
- `world_state` - 世界状态同步
详细 API 文档请参考 `server/README.md`
## Web 导出
1. 在 Godot 中打开 "项目" -> "导出"
2. 添加 "HTML5" 导出预设
3. 配置导出选项
4. 点击 "导出项目"
## 开发指南
### 添加新场景
1.`scenes/` 目录创建新场景
2. 使用 TileMap 绘制地图
3. 配置碰撞层
4. 在 WorldManager 中注册场景
### 代码风格
- 变量和函数使用 `snake_case`
- 类名使用 `PascalCase`
- 常量使用 `UPPER_CASE`
- 详细规范请参考 `CODING_STYLE.md`
## 故障排除
### 常见问题
**Q: 角色不显示或不移动?**
A: 确保游戏窗口是激活状态,检查控制台错误信息
**Q: 服务器连接失败?**
A: 确认服务器正在运行(`yarn dev`),检查端口 8080 是否被占用
**Q: 测试失败?**
A: 查看控制台详细错误信息,确保所有文件已保存
## 📚 完整文档
### 用户文档
- **[用户使用手册](USER_MANUAL.md)** - 完整的游戏使用指南
- **[快速测试指南](HOW_TO_TEST.md)** - 测试游戏功能
- **[环境配置指南](SETUP.md)** - 开发环境配置
### 开发文档
- **[开发者技术文档](DEVELOPER_GUIDE.md)** - 完整的技术文档和 API 参考
- **[代码风格指南](CODING_STYLE.md)** - 代码规范和最佳实践
- **[测试指南](tests/TEST_GUIDE.md)** - 测试框架和使用方法
- **[属性测试指南](tests/PROPERTY_TEST_GUIDE.md)** - 属性测试详解
### 运维文档
- **[部署和运维指南](DEPLOYMENT_GUIDE.md)** - 生产环境部署
- **[服务器文档](server/README.md)** - WebSocket 服务器详解
### 项目管理
- **[项目状态](PROJECT_STATUS.md)** - 当前开发状态
- **[演示指南](DEMO_GUIDE.md)** - 项目演示和展示
- **[项目规范](.kiro/specs/godot-ai-town-game/)** - 需求、设计和任务文档
## 🎯 快速导航
| 我想... | 查看文档 |
|---------|----------|
| 🎮 **玩游戏** | [用户使用手册](USER_MANUAL.md) |
| 🧪 **测试功能** | [快速测试指南](HOW_TO_TEST.md) |
| 💻 **开发扩展** | [开发者技术文档](DEVELOPER_GUIDE.md) |
| 🚀 **部署上线** | [部署和运维指南](DEPLOYMENT_GUIDE.md) |
| 📊 **项目演示** | [演示指南](DEMO_GUIDE.md) |
| 🔧 **配置环境** | [环境配置指南](SETUP.md) |
## 许可证
MIT License
## 联系方式
项目相关问题请提交 Issue。