# 🐋 Whale Town - 像素游戏前端客户端 > 一个基于 Godot 4.5 引擎开发的现代化 2D 像素风游戏前端,采用模块化架构设计,集成完整的用户认证系统、实时通信和游戏核心功能。 [![Godot](https://img.shields.io/badge/Godot-4.5.1-blue.svg)](https://godotengine.org/) [![GDScript](https://img.shields.io/badge/GDScript-Latest-green.svg)](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/index.html) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) [![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey.svg)](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 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** --- ## �[️ 技术栈 ### 🎮 游戏引擎 - **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) 开源协议。 ---
**🐋 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)