作业信息
| 这个作业属于哪个课程 | 首页 - 计科23级34班 - 广东工业大学 - 班级博客 - 博客园 |
|---|---|
| 这个作业要求在哪里 | 团队作业2-《需求规格说明书》 - 作业 - 计科23级34班 - 班级博客 - 博客园 |
| 这个作业的目标 | 明确团队项目细节 , 熟悉团队git的协作方式 |
项目分析
需求规格说明书
面向用户分析:
- 用户群体:
- 核心用户:15-35岁的休闲游戏玩家,喜欢快节奏的射击游戏
- 次要用户:怀旧玩家(熟悉经典飞机大战游戏)
- 潜在用户:寻求简单娱乐的上班族、学生在短暂休息时间游玩
- 用户特征:
- 技术门槛低:用户期望即开即玩,无需复杂学习
- 时间碎片化:偏好短局游戏(单局3-10分钟)
- 视觉偏好:倾向于简洁明快的界面和流畅的动画效果
- 成就感驱动:希望通过得分和排名获得满足感
- 用户需求:
- 可玩性:多样的敌机类型、武器系统和关卡设计
- 战斗反馈:实时的击中效果、爆炸动画和音效反馈
- 成长系统:通过游戏进度解锁新飞机和能力
- 挑战性:适中的难度曲线,既有挑战又不会过于困难
功能性需求:
- 主界面
- 游戏标题展示
- 开始游戏按钮
- 商城入口
- 排行榜查看
- 设置选项
- 退出游戏按钮
- 控制系统
- 操作逻辑:
- 键盘方向键/WASD控制飞机移动
- 空格键发射普通子弹
- Shift键使用特殊技能(冷却机制)
- ESC键暂停游戏
- 可操控飞机类型:
- 基础飞机:平衡型,普通子弹
- 速度型:移动更快,伤害较低
- 火力型:移动较慢,子弹威力强
- 特殊型:拥有独特技能(如散射、激光等)
- 操作逻辑:
- 敌机系统
- 小型敌机:血量低,移动快,得分少
- 中型敌机:血量中等,有简单攻击模式
- 大型BOSS:关卡结束时出现,有多种攻击模式
- 敌机行为:直线移动、追踪玩家、发射子弹等
- 生命系统
- 玩家初始3条生命
- 与敌机碰撞或中弹扣除1条生命
- 生命值为0时游戏结束
- 每达到一定分数奖励额外生命
- 敌机生命值根据类型设定,受攻击后扣除
- 商城系统
- 金币获取:
- 击落敌机获得金币
- 完成成就奖励金币
- 可购买物品:
- 新飞机解锁
- 飞机皮肤
- 特殊武器
- 生命恢复
- 临时增益道具
- 金币获取:
- 排行榜系统
- 本地排行榜记录最高分
- 显示前10名玩家成绩
- 包含玩家名、分数、达成日期
- 设置系统
- 音频设置:
- BGM音量滑动条(0-100%)
- 音效音量滑动条(0-100%)
- 静音切换按钮
- 游戏设置:
- 画面质量(高/中/低)
- 控制灵敏度调整
- 按键自定义
- 音频设置:
技术需求:
- 开发环境、语言、目标平台
- 开发语言:Python 3.8+
- 游戏引擎:Pygame 2.0+
- 开发环境:VS Code/PyCharm
- 目标平台:Windows 10/11
- 分辨率:支持1920×1080及1366×768等常见分辨率
- 性能要求
- 帧率:稳定60FPS,最低不低于30FPS
- 加载时间:游戏启动时间<5秒
- 响应延迟:用户操作到游戏响应<100ms
- 内存占用:峰值不超过500MB
- 易用性
- 直观的UI界面,重要功能3步内可达
- 清晰的新手引导(首次启动时显示基本操作)
- 统一的视觉风格和交互逻辑
- 稳定性
- 游戏数据自动保存(分数、金币、解锁内容)
- 异常退出时数据恢复机制
- 崩溃日志记录和报告
- 不同分辨率下的界面适配
- 代码可维护性
- 模块化设计,分离游戏逻辑、渲染、数据管理
- 统一的代码规范和注释标准
- 使用配置文件管理游戏参数(便于平衡调整)
- 版本控制使用Git,规范的commit信息
- 错误处理机制完善,避免程序崩溃
预期用户量
项目成品通过网络渠道免费发布 , 游戏玩家预计100+
项目真实性、可用性 以及价值所在
- 真实性: 该项目游戏机制设计符合经典和现代融合的潮流,其核心玩法(躲避敌机、射击得分、生命值机制)被保留并优化,符合目标用户对“真实游戏体验”的期待,同时该项目操作逻辑贴合现实,符合大多数玩家在射击类游戏中的操作习惯,具有一定真实性
- 可用性: 该游戏具有极低的学习门槛,操作难度对各年龄段玩家友好,且有清晰的功能引导和界面布局,在多分辨率适配的同时还保证了性能优化,具有较高的可用性
- 价值: 该游戏可为用户提供一定娱乐价值,基于Python+Pygame的技术栈降低了开发门槛与初期投入,模块化设计支持后续快速迭代
团队项目码云链接:
GDUTteamMANBA/FlyingFight
团队计划
团队项目issue截图

团队项目时间安排表改进
原安排
| 周次 | 主要目标 | 具体任务内容 | 责任人 | 时间估计 | 输出成果 |
|---|---|---|---|---|---|
| 第 9 周 | 建立团队 , 确立团队项目 | 讨论团队项目选题 , 分享队员擅长技术并讨论负责环节 , 编写团队作业文档 , 建立项目GitHub仓库 | 全体成员 | 15h | 团队作业文档 , 团队项目GitHub仓库 |
| 第 10 周 | 分配任务 , 完成项目雏形 | 完成"飞机大战"项目主体部分 , 保证项目主体功能完整性与稳定性 , 以便后续功能扩展能够正常进行 | 全体成员 | 30h | 稳定的项目主体部分 , 项目初步设计文档 |
| 第 11 周 | 添砖加瓦 , 实现额外功能 | 为项目主体部分添加团队额外创意 , 增加项目成品趣味性以及挑战性 , 同时展现出队员们的创意特色 | 全体成员 | 35h | 完善的项目增量细节 , 项目改进文档 |
| 第 12,13 周 | 修复完善 , 进入测试阶段 | 修复bug,确保增加了拓展内容之后软件的稳定性;重新运行之前的测试用例以保证主体功能没有被破坏;进行性能测试和兼容性测试 | 全体成员 | 60h | 汇总测试结果,编写《测试报告》,总结经验和教训,保存测试用例、脚本等用于后续软件的迭代和维护 |
| 第 14 周 | 项目全流程测试 , 验收 | 进行最后的全体成员对项目的共同测试 , 全体测试验证通过后对项目进行编译 , 发布 | 全体成员 | 30h | 完整项目源代码 , 项目成品程序 |
| 第 15 周 | 撰写项目文档 , 团队评价 | 撰写好项目文档,包括项目内主要方法、调用关系等,可接助文档自动化工具来帮助实现。回顾整个项目实现过程中各队员发挥的作用 , 相互给予评价 | 全体成员 | 20h | 用户使用手册 ; 项目团队间评价表 |
改进后安排
| 周次 | 主要目标 | 具体任务内容 | 责任人 | 时间估计 | 输出成果 |
|---|---|---|---|---|---|
| 第 9 周 | 建立团队 , 确立团队项目 | 讨论团队项目选题 , 分享队员擅长技术并讨论负责环节 , 编写团队作业文档 , 建立项目GitHub仓库 | 全体成员 | 15h | 团队作业文档 , 团队项目GitHub仓库 |
| 第 10 周 | 讨论项目细节 , 确定需求规格 | 讨论项目的各种实现细节 , 包括项目具体需要的完成度以及统一实现所用编程语言和git工具 . 同时明确各成员分工 | 全体成员 | 35h | 团队项目需求规格说明书 , 更新的团队时间安排表和分工表 |
| 第 11,12 周 | 完成项目主体的基本部分 , 完成各模块功能的开发与磨合 | 团队成员根据分工开始开发与讨论 , 对项目主体的基本部分进行开发 , 协调各模块在项目中的作用以及在项目中的数据交换与配合 , 构成一个稳定的主体以便下一阶段能够顺利开发 | 全体成员 | 70h | 项目完善的基本部分 , 对项目额外功能的开发安排表 |
| 第 13 周 | 在项目的基本部分上开发额外功能 , 为项目添加更多内容 | 在完善的模块化设计项目基本部分上增加额外扩展内容进行内容特色丰富化 , 同时对过程中的bug进行修复 , 保证新增内容的稳定性和对基本的维护性 | 全体成员 | 40h | 未经完全测试的项目完成体 , 项目开发流程报告 |
| 第 14 周 | 项目全流程测试 , 验收 | 通过测试用例测试各模块稳定性与以主体的稳定性 ; 进行性能测试和兼容性测试 , 进行最后的全体成员对项目的共同测试 , 全体测试验证通过后对项目进行编译 , 发布 | 全体成员 | 35h | 完整项目源代码 , 项目成品程序 |
| 第 15 周 | 撰写团队项目文档 , 团队评价 | 撰写好项目文档,包括项目内主要方法、调用关系等,可接助文档自动化工具来帮助实现。回顾整个项目实现过程中各队员发挥的作用 , 相互给予评价 | 全体成员 | 20h | 用户使用手册 ; 项目团队间评价表 |
矫正计算方法
通过团队内成员讨论 , 项目主体部分的开发作为项目最基本最重要部分 , 为后续扩展开发提供接口的部分 , 应该延长一周时间进行开发 , 保证主体部分完善与稳定 , 才方便后续的进一步开发 . 同时项目大体完成后的测试部分也可压缩至一周 .
团队成员分工
| 团队成员 | 团队分工 | 完成情况 | 个人感想 |
|---|---|---|---|
| 区泽明 | 项目协调与核心架构:负责制定开发计划、组织会议、模块整合与最终打包发布;主导游戏主循环、碰撞检测等核心逻辑设计 | 已明确各模块的数据流动以及游戏主体框架设计 | 认识到各模块功能接口协调配合保证数据流正确传递的重要性 , 也体会到团队开发的统一性和组织性的重要性 |
| 袁智燊 | 敌机系统与关卡逻辑:设计并实现各类敌机及其行为模式;负责关卡流程控制与BOSS战机制开发 | 已初步建立思路框架以及方案设计 | 团队合作呦西大大滴好 |
| 郭涛 | UI界面与场景管理:开发游戏所有界面(开始、商城、排行榜、设置);处理场景切换与用户输入响应 | 初步完成了UI的界面构思和切换逻辑 | 对图形用户界面设计有了更深的理解,增强了我的团队合作精神 |
| 韦立凡 | 艺术设计与资源管理:负责所有视觉素材创作,包括角色、UI、动画特效;管理资源加载与性能优化 | 整理了部分必要素材,初步设计了方案和框架 | 开始入门游戏UI设计,就是素材有点难找比较烦 |
| 廖杰 | 玩家系统与核心战斗:实现玩家飞机移动、射击、技能系统:管理生命值、得分等实时数据与HUD界面显示 | 负责玩家系统与核心战斗模块的搭建,目前已按计划完成了基础框架的构建 | 在这次小组作业中,我研究了移动、射击等基础功能的架构设计,体会到团队协作的重要性 |
| 程思远 | 数据管理与持久化:负责玩家存档、排行榜数据读写;实现游戏设置保存与异常数据恢复机制 | ||
| 梁法恩 | 音频系统与系统测试:集成游戏背景音乐与音效;负责功能测试、性能调优与兼容性保障 | 已初步建立思路和测试方案 | 对即将到来的团队合作感到巨大压力和些许兴奋,对自己能否胜任工作感到忐忑 |