forked from datawhale/whale-town-front
新增: - 开发规范.md (翻译自CLAUDE.md) 重命名为中文: - project_structure.md 项目结构说明.md - naming_convention.md 命名规范.md - code_comment_guide.md 代码注释规范.md - git_commit_guide.md Git提交规范.md - api-documentation.md API接口文档.md - network_manager_setup.md 网络管理器设置.md - setup.md 项目设置指南.md - testing_guide.md 测试指南.md - web_deployment_guide.md Web部署指南.md - module_development.md 模块开发指南.md - performance_optimization.md 性能优化指南.md - scene_design.md 场景设计规范.md - auth/form_validation.md auth/表单验证规范.md - auth/testing_guide.md auth/认证测试指南.md 删除总结性文档: - final_update_summary.md - web_deployment_changelog.md - CLAUDE.md
378 lines
12 KiB
Markdown
378 lines
12 KiB
Markdown
# 🐋 Whale Town - 像素游戏前端客户端
|
||
|
||
> 一个基于 Godot 4.5 引擎开发的现代化 2D 像素风游戏前端,采用模块化架构设计,集成完整的用户认证系统、实时通信和游戏核心功能。
|
||
|
||
[](https://godotengine.org/)
|
||
[](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/index.html)
|
||
[](./LICENSE)
|
||
[](https://godotengine.org/download)
|
||
|
||
## 🎯 项目简介
|
||
|
||
Whale Town 是一个功能完整的像素游戏前端客户端,采用模块化架构设计:
|
||
|
||
- 🔐 **用户认证系统** - 完整的登录、注册、密码管理、邮箱验证界面
|
||
- 🎮 **游戏核心功能** - 角色系统、战斗系统、对话系统、背包系统
|
||
- 🌐 **实时通信** - WebSocket集成,支持实时多人交互
|
||
- 🎨 **现代化UI** - 响应式界面设计,支持多分辨率适配
|
||
- 🧪 **完整测试体系** - UI测试、API测试、性能测试全覆盖
|
||
- 📱 **跨平台支持** - Windows、Linux、macOS、移动端
|
||
- 🔧 **模块化架构** - 高度解耦的组件系统,易于扩展和维护
|
||
|
||
---
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 📋 环境要求
|
||
|
||
- **Godot Engine** >= 4.5.0 (推荐 4.5.1)(https://godotengine.org/download)
|
||
- **Python** >= 3.7.0 (用于API测试,可选)
|
||
- **Git** >= 2.0.0
|
||
|
||
### 🛠️ 安装与运行
|
||
|
||
```bash
|
||
# 1. 克隆项目
|
||
git clone <repository-url>
|
||
cd whale-town
|
||
|
||
# 2. 使用Godot编辑器打开项目
|
||
# 双击 project.godot 文件或在Godot编辑器中导入项目
|
||
|
||
# 3. 运行项目
|
||
# 按F5或点击"运行"按钮启动游戏
|
||
```
|
||
|
||
🎉 **游戏启动成功!** 进入认证界面开始体验
|
||
|
||
### 🧪 快速测试
|
||
|
||
```bash
|
||
# API接口测试
|
||
python tests/api/simple_api_test.py
|
||
|
||
# 完整功能测试
|
||
python tests/api/api_test.py --verbose
|
||
```
|
||
|
||
**测试内容:**
|
||
- ✅ 用户认证流程测试
|
||
- ✅ API接口连通性测试
|
||
- ✅ 错误处理和边界条件测试
|
||
- ✅ 网络通信功能测试
|
||
|
||
---
|
||
|
||
## 🎓 新开发者指南
|
||
|
||
### 第一步:了解项目规范 📚
|
||
|
||
**⚠️ 重要:在开始开发前,请务必阅读以下文档**
|
||
|
||
1. **[项目结构详解](./docs/project_structure.md)** 🏗️
|
||
- 理解模块化架构设计
|
||
- 掌握目录组织规则
|
||
- 学习组件通信机制
|
||
|
||
2. **[命名规范](./docs/naming_convention.md)** 📝
|
||
- 场景、脚本、节点命名规则
|
||
- 资源文件命名标准
|
||
- 变量和函数命名约定
|
||
|
||
3. **[代码注释规范](./docs/code_comment_guide.md)** 💬
|
||
- 注释标准和最佳实践
|
||
- AI辅助开发指南
|
||
- 文档生成规范
|
||
|
||
4. **[Git提交规范](./docs/git_commit_guide.md)** 🔄
|
||
- 提交信息格式标准
|
||
- 分支管理策略
|
||
- 代码审查流程
|
||
|
||
### 第二步:熟悉项目架构 🏗️
|
||
|
||
```
|
||
whaleTown/
|
||
├── 🎬 scenes/ # 游戏场景
|
||
│ ├── auth_scene.tscn # 🔐 用户认证场景
|
||
│ ├── main_scene.tscn # 🎮 主游戏场景
|
||
│ └── prefabs/ # 🧩 预制体组件
|
||
├── 🔧 core/ # 核心系统(自动加载)
|
||
│ ├── managers/ # 🎯 全局管理器
|
||
│ ├── systems/ # ⚙️ 系统组件
|
||
│ └── utils/ # 🛠️ 工具类
|
||
├── 📝 scripts/ # 业务逻辑脚本
|
||
│ ├── scenes/ # 🎬 场景脚本
|
||
│ ├── network/ # 🌐 网络相关
|
||
│ └── ui/ # 🎨 UI组件脚本
|
||
├── 🧩 module/ # 可复用模块
|
||
│ ├── UI/ # 🎨 UI组件模块
|
||
│ ├── Character/ # 👤 角色模块
|
||
│ ├── Combat/ # ⚔️ 战斗模块
|
||
│ ├── Dialogue/ # 💬 对话模块
|
||
│ └── Inventory/ # 🎒 背包模块
|
||
├── 🎨 assets/ # 游戏资源
|
||
│ ├── sprites/ # 🖼️ 精灵图资源
|
||
│ ├── audio/ # 🔊 音频文件
|
||
│ ├── ui/ # 🎨 UI界面资源
|
||
│ └── fonts/ # 🔤 字体资源
|
||
├── 📊 data/ # 配置数据
|
||
│ ├── configs/ # ⚙️ 游戏配置
|
||
│ ├── localization/ # 🌍 本地化文件
|
||
│ └── characters/ # 👤 角色数据
|
||
├── 🧪 tests/ # 测试文件
|
||
│ ├── api/ # 🔌 API接口测试
|
||
│ ├── auth/ # 🔐 认证UI测试
|
||
│ └── unit/ # 🧪 单元测试
|
||
└── 📚 docs/ # 项目文档
|
||
├── auth/ # 🔐 认证相关文档
|
||
└── api-documentation.md # 📖 API接口文档
|
||
```
|
||
|
||
**架构特点:**
|
||
- 🏗️ **模块化设计** - 按功能而非技术组织代码
|
||
- 🔄 **事件驱动** - 通过EventSystem实现组件间通信
|
||
- 📦 **清晰分层** - 场景层 → 业务层 → 核心层
|
||
- 🧪 **测试友好** - 完整的测试覆盖和文档
|
||
|
||
### 第三步:体验核心功能 🎮
|
||
|
||
1. **用户认证系统** 🔐
|
||
- 邮箱验证码注册
|
||
- 多方式登录(用户名/邮箱/手机号)
|
||
- 密码重置功能
|
||
|
||
2. **游戏核心系统** 🎮
|
||
- 场景管理和切换
|
||
- 角色状态管理
|
||
- 实时网络通信
|
||
|
||
3. **开发工具** 🛠️
|
||
- 内置测试场景
|
||
- API测试脚本
|
||
- 性能监控工具
|
||
|
||
### 第四步:开始贡献 🤝
|
||
|
||
1. **Fork项目** 到你的账户
|
||
2. **创建功能分支**:`git checkout -b feature/your-feature`
|
||
3. **遵循规范开发**(参考文档)
|
||
4. **添加测试用例**:确保功能正确性
|
||
5. **提交代码**:`git commit -m "feat:添加新功能"`
|
||
6. **创建Pull Request**
|
||
|
||
---
|
||
|
||
## <20>[️ 技术栈
|
||
|
||
### 🎮 游戏引擎
|
||
- **Godot Engine** `4.5.1` - 开源游戏引擎,支持2D/3D开发
|
||
- **GDScript** - Godot专用脚本语言,Python风格语法
|
||
- **Forward Plus** - 现代渲染管线,支持高质量光照
|
||
|
||
### 🏗️ 架构设计
|
||
- **模块化架构** - 按功能组织的可复用组件系统
|
||
- **事件驱动** - 基于EventSystem的松耦合通信
|
||
- **单例管理器** - GameManager、SceneManager等全局管理器
|
||
- **状态机模式** - 游戏状态和角色状态管理
|
||
|
||
### 🌐 网络通信
|
||
- **RESTful API** - 标准HTTP接口通信
|
||
- **JSON数据格式** - 轻量级数据交换格式
|
||
- **WebSocket** - 实时双向通信支持
|
||
- **错误处理** - 完整的网络异常处理机制
|
||
|
||
### 🎨 UI系统
|
||
- **响应式设计** - 支持多分辨率自适应
|
||
- **主题系统** - 统一的UI风格管理
|
||
- **动画系统** - 流畅的界面过渡效果
|
||
- **本地化支持** - 多语言界面切换
|
||
|
||
### 🧪 测试框架
|
||
- **Godot内置测试** - 场景和组件测试
|
||
- **Python测试脚本** - API接口自动化测试
|
||
- **性能监控** - 帧率和内存使用监控
|
||
- **错误追踪** - 完整的日志和错误报告
|
||
|
||
### 📱 跨平台支持
|
||
- **桌面平台** - Windows、Linux、macOS
|
||
- **移动平台** - Android、iOS(规划中)
|
||
- **Web平台** - HTML5导出支持(规划中)
|
||
|
||
---
|
||
|
||
## 🏗️ 核心功能
|
||
|
||
### 🔐 用户认证系统 (scenes/auth_scene.tscn)
|
||
- **多方式登录** - 用户名/邮箱/手机号
|
||
- **邮箱验证** - 完整的验证码流程和倒计时
|
||
- **密码安全** - 强度验证和安全提示
|
||
- **错误处理** - 友好的错误提示和状态管理
|
||
- **响应式UI** - 自适应布局和动画效果
|
||
|
||
### 🎮 游戏核心系统 (core/)
|
||
- **GameManager** - 全局游戏状态管理(LOADING、AUTH、IN_GAME等)
|
||
- **SceneManager** - 场景切换和生命周期管理
|
||
- **EventSystem** - 全局事件通信系统
|
||
- **StringUtils** - 字符串处理工具集
|
||
|
||
### 🧩 模块化组件 (module/)
|
||
- **UI组件** - 可复用的界面组件和动画
|
||
- **角色系统** - 角色数据和行为管理
|
||
- **战斗系统** - 战斗逻辑和技能系统
|
||
- **对话系统** - 对话树和文本显示
|
||
- **背包系统** - 物品管理和交互
|
||
|
||
### 🌐 网络通信 (scripts/network/)
|
||
- **API集成** - RESTful接口调用封装
|
||
- **实时通信** - WebSocket连接管理
|
||
- **数据同步** - 客户端服务器数据同步
|
||
- **离线处理** - 网络异常和离线模式
|
||
|
||
### 🧪 测试体系 (tests/)
|
||
- **API测试** - 完整的接口功能测试
|
||
- **UI测试** - 交互式界面测试场景
|
||
- **单元测试** - 组件和函数级别测试
|
||
- **集成测试** - 完整业务流程测试
|
||
- **性能测试** - 帧率和内存性能监控
|
||
|
||
---
|
||
|
||
## 📊 开发与测试
|
||
|
||
### 🔧 开发命令
|
||
|
||
```bash
|
||
# 启动Godot编辑器
|
||
godot --editor
|
||
|
||
# 运行项目(无编辑器)
|
||
godot --main-pack game.pck
|
||
|
||
# 导出项目
|
||
godot --export "Windows Desktop" game.exe
|
||
|
||
# 运行测试
|
||
godot --headless --script tests/run_tests.gd
|
||
```
|
||
|
||
### 🧪 测试命令
|
||
|
||
```bash
|
||
# API接口测试
|
||
python tests/api/simple_api_test.py
|
||
|
||
# 完整功能测试
|
||
python tests/api/api_test.py --verbose
|
||
|
||
# 自定义服务器测试
|
||
python tests/api/simple_api_test.py https://your-server.com
|
||
|
||
# UI交互测试
|
||
# 在Godot编辑器中运行 tests/auth/auth_ui_test.tscn
|
||
```
|
||
|
||
### 📈 测试覆盖率
|
||
- **API测试**: 17个接口全覆盖 ✅
|
||
- **UI测试**: 认证流程完整测试 ✅
|
||
- **错误处理**: 边界条件和异常测试 ✅
|
||
- **性能测试**: 帧率和内存监控 ✅
|
||
|
||
---
|
||
|
||
## 🌍 部署配置
|
||
|
||
### 开发环境(默认)
|
||
```bash
|
||
# 本地开发配置
|
||
API_BASE_URL=http://localhost:3000
|
||
DEBUG_MODE=true
|
||
LOG_LEVEL=debug
|
||
```
|
||
|
||
### 生产环境
|
||
```bash
|
||
# 生产环境配置
|
||
API_BASE_URL=https://your-api-server.com
|
||
DEBUG_MODE=false
|
||
LOG_LEVEL=info
|
||
ENABLE_ANALYTICS=true
|
||
```
|
||
|
||
### 导出设置
|
||
- **Windows**: 64位可执行文件
|
||
- **Linux**: AppImage格式
|
||
- **macOS**: .app应用包
|
||
- **Android**: APK安装包(规划中)
|
||
|
||
---
|
||
|
||
## 📚 文档中心
|
||
|
||
### 🎯 新手必读
|
||
1. **[项目结构详解](./docs/project_structure.md)** - 架构设计和组织规则
|
||
2. **[命名规范](./docs/naming_convention.md)** - 代码和资源命名标准
|
||
3. **[代码注释规范](./docs/code_comment_guide.md)** - 注释标准和AI辅助
|
||
4. **[Git提交规范](./docs/git_commit_guide.md)** - 版本控制最佳实践
|
||
|
||
### 📖 功能文档
|
||
- **[用户认证系统](./docs/auth/)** - 认证流程和界面设计
|
||
- **[API接口文档](./docs/api-documentation.md)** - 完整的API使用指南
|
||
- **[测试指南](./tests/api/README.md)** - 测试用例和使用方法
|
||
|
||
### 🏗️ 开发指南
|
||
- **[模块开发指南](./docs/module_development.md)** - 如何创建新模块
|
||
- **[场景设计规范](./docs/scene_design.md)** - 场景架构和最佳实践
|
||
- **[性能优化指南](./docs/performance_guide.md)** - 性能调优技巧
|
||
|
||
---
|
||
|
||
## 🤝 贡献者
|
||
|
||
感谢所有为项目做出贡献的开发者!
|
||
|
||
### 🏆 核心团队
|
||
- **[moyin](https://gitea.xinghangee.icu/moyin)** - 核心开发者
|
||
- **[jianuo](https://gitea.xinghangee.icu/jianuo)** - 核心开发者
|
||
- **[angjustinl](https://gitea.xinghangee.icu/ANGJustinl)** - 核心开发者
|
||
|
||
查看完整贡献者名单:[docs/CONTRIBUTORS.md](./docs/CONTRIBUTORS.md)
|
||
|
||
### 🌟 如何贡献
|
||
|
||
我们欢迎所有形式的贡献:
|
||
|
||
1. **🐛 Bug修复** - 发现并修复问题
|
||
2. **✨ 新功能** - 添加有价值的功能
|
||
3. **📚 文档改进** - 完善项目文档
|
||
4. **🧪 测试用例** - 提高代码覆盖率
|
||
5. **🎨 UI/UX改进** - 提升用户体验
|
||
6. **⚡ 性能优化** - 优化游戏性能
|
||
|
||
**贡献流程:**
|
||
1. Fork项目 → 2. 创建分支 → 3. 开发功能 → 4. 提交PR
|
||
|
||
---
|
||
|
||
## 📞 联系我们
|
||
|
||
- **项目地址**: [Gitea Repository](https://gitea.xinghangee.icu/datawhale/whale-town)
|
||
- **问题反馈**: [Issues](https://gitea.xinghangee.icu/datawhale/whale-town/issues)
|
||
- **功能建议**: [Discussions](https://gitea.xinghangee.icu/datawhale/whale-town/discussions)
|
||
|
||
## 📄 许可证
|
||
|
||
本项目采用 [MIT License](./LICENSE) 开源协议。
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
|
||
**🐋 Whale Town - 让像素世界更精彩!**
|
||
|
||
Made with ❤️ by the Whale Town Team
|
||
|
||
[⭐ Star](https://gitea.xinghangee.icu/datawhale/whale-town) | [🍴 Fork](https://gitea.xinghangee.icu/datawhale/whale-town/fork) | [📖 Docs](./docs/) | [🐛 Issues](https://gitea.xinghangee.icu/datawhale/whale-town/issues)
|
||
|
||
</div>
|