Files
2025-12-05 19:00:14 +08:00

17 KiB
Raw Permalink Blame History

实施计划

任务列表

  • 1. 项目初始化和基础架构

    • 创建 Godot 4.x 项目结构
    • 配置项目设置(分辨率、导出选项)
    • 设置版本控制 (.gitignore)
    • 需求: 8.1, 8.5
  • 1.1 创建核心场景树结构

    • 创建 Main.tscn 主场景
    • 添加 NetworkManager、GameStateManager 节点
    • 创建 UILayer 和 GameWorld 节点
    • 需求: 8.1
  • 1.2 配置输入映射

    • 设置键盘输入动作ui_up, ui_down, ui_left, ui_right, interact
    • 配置 WASD 和方向键映射
    • 需求: 5.1
  • 2. 实现网络管理器

    • 创建 NetworkManager.gd 脚本
    • 实现 WebSocket 客户端连接逻辑
    • 实现消息发送和接收功能
    • 添加连接状态管理(连接、断开、错误处理)
    • 需求: 12.1, 12.2
  • 2.1 实现消息协议

    • 定义消息类型常量
    • 实现 JSON 消息序列化/反序列化
    • 创建消息构建辅助函数
    • 需求: 12.4
  • 2.2 编写属性测试:数据序列化往返

    • 属性 16: 数据序列化往返
    • 验证需求: 7.3, 9.5
  • 2.3 实现断线重连机制

    • 添加自动重连逻辑最多3次
    • 实现指数退避算法
    • 显示重连状态提示
    • 需求: 12.3
  • 3. 实现游戏状态管理器

    • 创建 GameStateManager.gd 脚本
    • 实现状态枚举LOGIN, CHARACTER_CREATION, IN_GAME, DISCONNECTED
    • 实现状态切换逻辑
    • 添加状态变化信号
    • 需求: 10.1
  • 3.1 实现数据持久化

    • 实现玩家数据保存功能JSON 格式)
    • 实现玩家数据加载功能
    • 添加数据验证逻辑
    • 需求: 9.1, 9.2, 9.5
  • 3.2 编写单元测试:状态转换

    • 测试各种状态转换场景
    • 验证状态转换的正确性
    • 需求: 8.2
  • 4. 创建角色数据模型

    • 定义角色数据结构Dictionary
    • 实现角色数据验证函数
    • 创建角色 ID 生成器UUID
    • 需求: 1.5
  • 4.1 编写属性测试:角色创建唯一性

    • 属性 1: 角色创建唯一性
    • 验证需求: 1.5
  • 5. 实现角色控制器

    • 创建 CharacterController.gd 脚本
    • 继承 CharacterBody2D
    • 实现基础移动逻辑move_to 方法)
    • 添加角色属性id, name, is_online, move_speed
    • 需求: 2.1, 2.2
  • 5.1 实现角色动画系统

    • 创建 AnimationPlayer 节点
    • 添加 idle 和 walking 动画
    • 实现动画状态切换逻辑
    • 需求: 5.5
  • 5.2 实现碰撞检测

    • 配置碰撞形状CollisionShape2D
    • 实现障碍物碰撞检测
    • 实现场景边界检测
    • 需求: 2.3, 2.4, 4.5
  • 5.3 编写属性测试:碰撞检测

    • 属性 4: 碰撞检测
    • 验证需求: 2.4
  • 5.4 实现平滑位置插值

    • 实现 set_position_smooth 方法
    • 使用 Tween 实现平滑移动
    • 处理网络延迟的位置同步
    • 需求: 2.2
  • 5.5 编写属性测试:位置更新同步

    • 属性 3: 位置更新同步
    • 验证需求: 2.2
  • 5.6 实现在线/离线状态视觉标识

    • 添加状态指示器Sprite 或 Label
    • 实现 set_online_status 方法
    • 使用颜色或图标区分在线/离线
    • 需求: 11.5
  • 5.7 编写属性测试:角色移动能力

    • 属性 2: 角色移动能力
    • 验证需求: 2.1
  • 6. 实现输入处理器

    • 创建 InputHandler.gd 脚本
    • 实现 get_move_direction 方法(键盘输入)
    • 实现 is_interact_pressed 方法
    • 发射输入信号move_input, interact_input
    • 需求: 5.1
  • 6.1 实现设备检测

    • 检测当前设备类型(桌面/移动)
    • 根据设备类型选择输入方案
    • 需求: 7.5
  • 6.2 编写属性测试:设备类型检测

    • 属性 17: 设备类型检测
    • 验证需求: 7.5
  • 6.3 实现虚拟摇杆(移动端)

    • 创建虚拟摇杆 UI 场景
    • 实现触摸输入处理
    • 实现 setup_virtual_controls 方法
    • 根据设备自动显示/隐藏
    • 需求: 5.2, 7.5
  • 6.4 编写属性测试:触摸输入响应

    • 属性 12: 触摸输入响应
    • 验证需求: 5.2
  • 7. 创建 UI 系统基础

    • 创建 UILayer.tscn 场景
    • 设置 CanvasLayer 属性
    • 创建响应式布局容器
    • 需求: 10.1
  • 7.1 实现登录界面

    • 创建 LoginScreen.tscn
    • 添加输入框(用户名)
    • 添加登录和创建角色按钮
    • 实现按钮点击事件
    • 需求: 10.1
  • 7.2 实现角色创建界面

    • 创建 CharacterCreation.tscn
    • 添加角色名称输入框
    • 实现名称验证2-20字符非空白
    • 添加创建按钮和返回按钮
    • 需求: 1.1, 1.2, 1.3
  • 7.3 编写单元测试:角色名称验证

    • 测试有效名称
    • 测试空白名称(边界情况)
    • 测试长度限制
    • 需求: 1.3
  • 7.4 实现游戏内 HUD

    • 创建 HUD.tscn
    • 添加在线玩家数量显示
    • 添加网络状态指示器
    • 添加交互提示
    • 需求: 10.1
  • 7.5 实现响应式 UI 适配

    • 使用 Container 节点实现自适应布局
    • 实现窗口大小变化监听
    • 动态调整 UI 元素大小
    • 需求: 6.3, 6.4, 7.2
  • 7.6 编写属性测试:响应式布局适配

    • 属性 14: 响应式布局适配
    • 验证需求: 6.3, 7.2
  • 7.7 实现移动端 UI 适配

    • 增大触摸按钮尺寸
    • 调整元素间距
    • 优化字体大小
    • 需求: 10.4
  • 7.8 编写属性测试:移动设备 UI 适配

    • 属性 20: 移动设备 UI 适配
    • 验证需求: 10.4
  • 8. 实现对话系统

    • 创建 DialogueSystem.gd 脚本
    • 实现 start_dialogue 方法
    • 实现 send_message 方法
    • 实现 end_dialogue 方法
    • 添加对话信号dialogue_started, dialogue_ended, message_received
    • 需求: 3.1, 3.3, 3.4
  • 8.1 创建对话框 UI

    • 创建 DialogueBox.tscn
    • 添加消息显示区域RichTextLabel
    • 添加输入框和发送按钮
    • 实现消息历史滚动
    • 需求: 3.2
  • 8.2 编写属性测试:消息传递完整性

    • 属性 7: 消息传递完整性
    • 验证需求: 3.3
  • 8.3 实现对话气泡

    • 创建 ChatBubble.tscn 场景
    • 实现 show_bubble 方法
    • 添加自动消失计时器
    • 实现气泡位置跟随角色
    • 需求: 3.5
  • 8.4 编写属性测试:对话可见性

    • 属性 9: 对话可见性
    • 验证需求: 3.5
  • 8.5 实现对话触发检测

    • 检测角色之间的距离
    • 实现交互范围判定
    • 显示交互提示
    • 需求: 3.1
  • 8.6 编写属性测试:对话触发

    • 属性 6: 对话触发
    • 验证需求: 3.1
  • 9. 实现世界管理器

    • 创建 WorldManager.gd 脚本
    • 实现角色字典管理characters
    • 实现 spawn_character 方法
    • 实现 remove_character 方法
    • 实现 update_character_state 方法
    • 需求: 11.1, 11.2
  • 9.1 实现附近角色查询

    • 实现 get_nearby_characters 方法
    • 使用空间查询优化性能
    • 需求: 3.5
  • 9.2 实现角色上线/下线处理

    • 处理玩家上线事件
    • 处理玩家下线事件
    • 更新角色在线状态
    • 需求: 11.3, 11.4
  • 9.3 编写属性测试:上线状态切换

    • 属性 24: 上线状态切换
    • 验证需求: 11.3
  • 9.4 编写属性测试:下线状态切换

    • 属性 25: 下线状态切换
    • 验证需求: 11.4
  • 10. 创建 Datawhale 办公室场景

    • 创建 DatawhaleOffice.tscn 场景
    • 设置场景尺寸2000x1500
    • 创建 TileMap 节点
    • 需求: 4.1, 4.2
  • 10.1 设计和导入瓦片集

    • 创建或导入地板瓦片
    • 创建或导入墙壁瓦片
    • 创建或导入家具瓦片
    • 配置瓦片碰撞形状
    • 需求: 4.2
  • 10.2 绘制办公室布局

    • 绘制入口区域(门、欢迎标识)
    • 绘制工作区(办公桌、电脑、椅子)
    • 绘制会议区(会议桌、白板)
    • 绘制休息区(沙发、茶水间)
    • 绘制展示区Datawhale logo、成就墙
    • 需求: 4.2
  • 10.3 配置碰撞层

    • 设置 Layer 1: 墙壁和固定障碍物
    • 设置 Layer 2: 家具
    • 设置 Layer 3: 角色
    • 设置 Layer 4: 交互区域
    • 需求: 4.5
  • 10.4 编写属性测试:场景碰撞检测

    • 属性 10: 场景碰撞检测
    • 验证需求: 4.5
  • 10.5 添加 Datawhale 品牌元素

    • 添加 Datawhale logo Sprite

    • 应用品牌色彩方案(蓝色系)

    • 添加品牌标志性元素

    • 需求: 4.3, 4.4

  • 11. 创建角色精灵和动画

    • 创建或导入角色精灵图
    • 创建 4 方向行走帧动画
    • 创建 idle 动画
    • 配置 AnimatedSprite2D 节点
    • 需求: 5.5
  • 11.1 创建玩家角色场景

    • 创建 PlayerCharacter.tscn
    • 继承 CharacterController
    • 添加 Camera2D跟随玩家
    • 配置输入处理
    • 需求: 5.1
  • 11.2 创建远程角色场景

    • 创建 RemoteCharacter.tscn
    • 继承 CharacterController
    • 配置网络同步
    • 添加名称标签
    • 需求: 11.1, 11.2
  • 12. 实现客户端游戏逻辑集成

    • 连接 NetworkManager 和 GameStateManager
    • 实现登录流程
    • 实现角色创建流程
    • 实现进入游戏流程
    • 需求: 1.1, 1.2, 10.1, 12.1
  • 12.1 实现玩家角色控制

    • 连接 InputHandler 和 PlayerCharacter
    • 实现移动输入处理
    • 实现交互输入处理
    • 发送移动数据到服务器
    • 需求: 5.1, 5.2
  • 12.2 编写属性测试:键盘输入响应

    • 属性 11: 键盘输入响应
    • 验证需求: 5.1
  • 12.3 实现网络消息处理

    • 处理 auth_response 消息
    • 处理 character_create 响应
    • 处理 character_move 消息
    • 处理 character_state 更新
    • 处理 world_state 同步
    • 需求: 12.5
  • 12.4 编写属性测试:服务器更新同步

    • 属性 30: 服务器更新同步
    • 验证需求: 12.5
  • 12.5 实现角色生成和管理

    • 接收服务器角色列表
    • 生成本地玩家角色
    • 生成远程角色(在线和离线)
    • 更新角色状态
    • 需求: 11.1, 11.2
  • 12.6 编写属性测试:在线角色显示

    • 属性 22: 在线角色显示
    • 验证需求: 11.1
  • 12.7 编写属性测试:离线角色显示

    • 属性 23: 离线角色显示
    • 验证需求: 11.2
  • 13. 实现错误处理和用户反馈

    • 实现网络错误提示 UI
    • 实现重连提示和按钮
    • 实现操作失败提示
    • 实现加载状态指示器
    • 需求: 10.5, 12.3
  • 13.1 编写属性测试:错误提示显示

    • 属性 21: 错误提示显示
    • 验证需求: 10.5
  • 13.2 编写属性测试:断线重连

    • 属性 28: 断线重连
    • 验证需求: 12.3
  • 14. 开发 WebSocket 服务器Node.js

    • 创建 server 目录
    • 初始化 Node.js 项目package.json
    • 安装 ws 库和相关依赖
    • 创建基础服务器文件server.ts
    • 配置 TypeScript 编译
    • 需求: 12.1
  • 14.1 实现连接管理

    • 实现 WebSocket 连接处理
    • 实现客户端连接池
    • 实现心跳检测
    • 实现连接断开处理
    • 需求: 12.1, 12.2
  • 14.2 编写属性测试:网络连接建立

    • 属性 27: 网络连接建立
    • 验证需求: 12.1
  • 14.3 实现身份验证服务

    • 实现简单的用户名验证
    • 生成会话 token
    • 维护用户会话
    • 需求: 12.2
  • 14.4 实现角色管理

    • 实现角色创建逻辑
    • 验证角色名称唯一性
    • 生成唯一角色 ID
    • 存储角色数据
    • 需求: 1.2, 1.5
  • 14.5 实现世界状态管理

    • 维护所有角色状态
    • 处理角色移动更新
    • 广播状态变化
    • 实现状态同步
    • 需求: 2.2, 9.4
  • 14.6 编写属性测试:状态同步

    • 属性 19: 状态同步
    • 验证需求: 9.4
  • 14.7 实现消息路由

    • 处理不同类型的消息
    • 实现点对点消息
    • 实现广播消息
    • 实现消息确认机制
    • 需求: 12.4
  • 14.8 编写属性测试:操作确认

    • 属性 29: 操作确认
    • 验证需求: 12.4
  • 14.9 实现数据持久化

    • 实现 JSON 文件存储
    • 保存角色数据
    • 保存世界状态
    • 实现数据加载
    • 需求: 9.1, 9.2
  • 14.10 编写属性测试:角色数据持久化

    • 属性 18: 角色数据持久化
    • 验证需求: 9.1, 9.2
  • 15. 测试和优化

    • 运行所有单元测试
    • 运行所有属性测试
    • 修复发现的 bug
    • 修复角色移动问题
    • 优化相机控制体验
    • 修复网络连接超时问题
    • 优化UI通知系统
    • 需求: 所有
  • 15.1 性能测试

    • 测试 10 个角色时的帧率
    • 测试网络延迟
    • 优化性能瓶颈
    • 需求: 6.5
  • 15.2 跨浏览器测试

    • 测试 Chrome 兼容性
    • 测试 Firefox 兼容性
    • 测试 Safari 兼容性
    • 测试 Edge 兼容性
    • 需求: 6.1
  • 15.3 集成测试

    • 测试完整的登录流程
    • 测试角色创建流程
    • 测试多客户端交互
    • 测试对话系统
    • 需求: 所有
  • 16. Web 导出和部署准备

    • 配置 Godot HTML5 导出设置
    • 导出 Web 版本
    • 测试导出的 Web 版本
    • 需求: 6.1, 6.2
  • 16.1 创建部署文档

    • 编写 README.md
    • 说明项目结构
    • 说明运行方法
    • 说明扩展指南
    • 需求: 8.3
  • 16.2 配置服务器部署

    • 配置环境变量
    • 设置 WebSocket 服务器
    • 配置静态文件服务
    • 需求: 12.1
  • 17. 用户体验优化和修复

  • 17.1 修复角色移动问题

    • 诊断角色自动向左移动问题
    • 添加调试信息和日志
    • 修复初始化时的速度设置
    • 防止网络回环导致的移动
    • 需求: 2.1, 2.2
  • 17.2 优化相机控制系统

    • 修复相机重置时的闪现问题
    • 实现平滑的重置动画(缓动效果)
    • 修复相机缩放时的卡顿问题
    • 优化相机边界限制
    • 调整缩放和重置的响应速度
    • 需求: 5.3, 5.4
  • 17.3 完善网络连接处理

    • 添加连接超时机制10秒
    • 优化错误提示信息
    • 移除无效的重试按钮
    • 统一UI通知的字体样式和布局
    • 需求: 12.1, 12.3, 10.5
  • 17.4 UI系统优化

    • 统一所有通知的字体大小18px
    • 确保文字在通知框中居中显示
    • 优化加载指示器的样式一致性
    • 调整自动隐藏时间网络错误8秒普通错误5秒
    • 需求: 10.1, 10.5
  • 18. 最终检查点

    • 确保所有测试通过
    • 验证所有需求已实现
    • 检查代码质量和注释
    • 验证用户体验流畅性
    • 准备交付
    • 需求: 所有
  • 19. 项目优化和完善

  • 19.1 代码重构和优化

    • 重构重复代码,提高代码复用性
    • 优化性能瓶颈,确保流畅运行
    • 统一代码风格和命名规范
    • 添加详细的代码注释和文档
    • 需求: 8.2, 8.3
  • 19.2 用户体验优化

    • 优化加载时间和响应速度
    • 改进错误提示的用户友好性
    • 增强视觉反馈和动画效果
    • 优化移动端触摸体验
    • 需求: 6.2, 10.1, 10.4, 10.5
  • 19.3 安全性增强

    • 实现输入验证和过滤
    • 添加防止恶意攻击的保护措施
    • 实现会话管理和超时机制
    • 加强数据传输安全性
    • 需求: 12.2, 12.4
  • 20. 扩展功能开发

  • 20.1 增强对话系统

    • 实现对话历史记录功能
    • 添加表情符号支持
    • 实现群组对话功能
    • 添加对话过滤和审核机制
    • 需求: 3.2, 3.3
  • 20.2 角色个性化

    • 实现角色外观自定义
    • 添加角色状态和心情系统
    • 实现角色技能和属性系统
    • 添加角色成就和等级系统
    • 需求: 1.4, 5.5
  • 20.3 社交功能扩展

    • 实现好友系统
    • 添加私聊功能
    • 实现角色关系网络
    • 添加社区活动和事件系统
    • 需求: 3.1, 11.1, 11.2
  • 21. AI 集成准备

  • 21.1 AI 对话接口设计

    • 设计 AI 对话 API 接口
    • 实现 AI 响应处理机制
    • 添加 AI 角色行为模式
    • 预留 AI 学习和训练接口
    • 需求: 3.3, 11.2
  • 21.2 智能 NPC 系统

    • 实现离线角色的智能行为
    • 添加 NPC 自动对话功能
    • 实现基于上下文的响应系统
    • 添加 NPC 学习和记忆功能
    • 需求: 11.2, 11.4
  • [-] 22. 数据分析和监控

  • 22.1 用户行为分析

    • 实现用户行为数据收集
    • 添加游戏统计和分析功能
    • 实现性能监控和报警系统
    • 添加用户反馈收集机制
    • 需求: 6.5, 8.3
  • 22.2 系统监控和维护

    • 实现服务器健康检查
    • 添加自动备份和恢复机制
    • 实现日志管理和分析系统
    • 添加系统更新和维护工具
    • 需求: 9.1, 9.2, 12.1
  • 23. 最终交付准备

  • 23.1 文档完善

    • 完善用户使用手册
    • 编写开发者技术文档
    • 创建部署和运维指南
    • 准备项目演示材料
    • 需求: 8.3
  • 23.2 质量保证

    • 进行全面的回归测试

    • 执行压力测试和负载测试

    • 验证所有功能的完整性

    • 确保跨平台兼容性

    • 需求: 6.1, 6.5

  • 23.3 发布准备

    • 准备生产环境部署
    • 配置 CDN 和负载均衡
    • 设置监控和告警系统
    • 准备用户支持和维护计划
    • 需求: 6.1, 6.2, 12.1