[T.13] 团队项目:Alpha 阶段项目展示
[T.13] 团队项目:Alpha 阶段项目展示
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 首页 - 2026年春季软件工程 - 北京航空航天大学 - 班级博客 - 博客园 |
| 这个作业的要求在哪里 | [T.13] 团队项目:Alpha 阶段项目展示 - 作业 - 2026年春季软件工程 - 班级博客 - 博客园 |
| 我们在这个课程的目标是 | 以团队协作方式完成一款可运行、可迭代、可展示的游戏项目,完整经历需求、设计、开发、测试、发布与复盘流程 |
| 这个作业在哪个具体方面帮助我们实现目标 | 用 Alpha 阶段成果检验核心玩法是否成立,并用真实演示、数据和反馈反推 Beta 阶段计划 |
一、项目与团队亮点
1. 项目简介
本项目是一款使用 Unity 开发的未命名 2D 横版动作 RPG。Alpha 阶段我们主要验证“动作战斗能否跑通”和“RPG 数值体系是否具备扩展空间”这两件事:玩家可以移动、跳跃、下落、贴墙、冲刺、三段普攻、跳劈、反击和治疗;敌人会巡逻、发现玩家、追击、攻击、被反击击晕,并在死亡后退出战斗循环。
目前仓库中的 Alpha 分支使用 Unity 6000.3.14f1,采用 URP 2D、Input System、Cinemachine、Tilemap、uGUI 和 Unity Test Framework。核心脚本共 62 个,约 2268 行 C#;资源侧已有角色、敌人、UI、VFX、Tilemap、动画与预制体等 500+ 项资源。
需要说明的是,Alpha 版本仍然是“战斗原型”而不是完整游戏。当前项目的主要短板集中在三个方面:UI 还停留在血条、技能树节点和 tooltip 的基础验证阶段;音频和音效尚未正式接入主流程;战斗流程还没有形成完整关卡设计,现阶段更多是动作、敌人、数值和特效的组合测试。

2. 团队成员与分工
| 成员 | 负责模块 | Alpha 阶段具体贡献 |
|---|---|---|
| 庞济慷 | 战斗设计、主角动作实现 | 完成主角状态机骨架,接入 idle、move、attack、dash、jump/fall、wall slide、wall jump、counter、heal、dead 等动作状态;实现三段普攻队列、攻击惯性、跳劈、冲刺重力控制和反击窗口 |
| 张恒鑫 | 音频/音效 | 完成音频需求表、战斗音效触发点设计和素材选型;攻击、受击、暴击、冲刺、治疗、死亡、UI 点击、场景氛围等音效尚未完整接入,Beta 阶段统一合入 AudioManager |
| 李元星 | UI 实现 | 完成血条、技能树节点、tooltip、技能解锁交互原型;属性加点和存档模块仍处于设计阶段,Alpha 阶段主要完成 UI 可行性验证 |
| 陈文卓 | Shader/特效实现 | 接入 URP 2D 渲染环境,完成受击闪烁、命中特效、暴击特效、元素状态特效表现方案;参与 LightningStrike 等 VFX 预制体调试 |
| 肖钦予 | Shader/特效实现 | 完成场景氛围、背景视差、火焰/闪电/受击反馈等效果调试;协助整理像素风资源与动画资源 |
| 周文康 | 动作技能设计 | 设计三段普攻、跳劈、反击、冲刺、治疗、Time Echo 等技能表现与冷却逻辑;整理动作帧、位移、霸体/硬直和数值平衡表 |
| 张泰尔 | 测试 | 克隆并检查各模块实现情况;完成 Alpha 冒烟测试、角色动作测试、敌人 AI 测试、元素伤害测试和 UI 交互测试,记录并推动修复阻塞性问题 |
我们的协作方式是“按模块并行、以战斗闭环为主线合并”。先由动作/战斗模块给出可运行原型,再由 UI、特效、音频、测试围绕同一个场景持续补强。由于 Alpha 阶段时间有限,目前真正完成度较高的是角色动作、敌人行为和属性结算;UI、音频和完整战斗流程仍需要在 Beta 阶段重点补齐。
3. Alpha 阶段核心演示路线
为课堂展示预留约 2 分钟 demo,演示顺序如下:
- 进入 SampleScene,展示像素风 2D 场景和主角待机、奔跑、跳跃、下落。
- 展示冲刺、贴墙滑落、墙跳等移动能力,说明动作系统不是单个脚本硬写,而是状态机驱动。
- 召唤或接近骷髅敌人,展示敌人发现玩家、追击、攻击和进入 battle state。
- 展示玩家三段普攻、跳劈、受击击退、血条变化、暴击/命中特效。
- 展示反击:在敌人可反击窗口内触发 CounterAttack,使敌人进入 stunned state。
- 展示元素状态:火焰持续伤害、冰冻减速、闪电蓄积后触发落雷。
- 展示技能树节点/tooltip/治疗技能,并说明当前 UI 与音频还不完整,Beta 阶段会把动作、属性、UI、音效和关卡流程合成完整体验。


4. 阶段亮点一:状态机驱动的动作战斗
我们的动作系统不是简单播放动画,而是把玩家和敌人的行为都拆成独立状态:
玩家侧包括 Player_IdleState、Player_MoveState、Player_JumpState、Player_FallState、Player_DashState、Player_BasicAttackState、Player_JumpAttackState、Player_CounterAttackState、Player_HealState 等;敌人侧包括 Enemy_IdleState、Enemy_MoveState、Enemy_BattleState、Enemy_AttackState、Enemy_StunnedState、Enemy_DeadState。
这样做的优势是清晰可扩展。比如三段普攻只需要维护 comboIndex、comboResetTime 和 queued attack;冲刺只需要在 DashState 中临时取消重力并根据计时退出;反击只需要检查附近目标是否实现 ICounterable,成功后让敌人进入眩晕状态。后续增加新武器、新技能、新敌人时,不需要推翻现有架构。
5. 阶段亮点二:RPG 属性与元素状态闭环
Alpha 阶段我们完成了基础属性、进攻属性、防御属性、资源属性的分组设计:
- 主属性:力量、敏捷、智力、体质。
- 资源属性:最大生命、生命恢复。
- 进攻属性:物理伤害、暴击率、暴击伤害、护甲穿透、火/冰/雷元素伤害。
- 防御属性:护甲、闪避、火/冰/雷抗性。
伤害结算时,系统会同时计算物理伤害和元素伤害;力量影响物理输出和暴击收益,敏捷影响暴击率和闪避,智力影响元素伤害和元素抗性,体质影响最大生命和护甲。元素状态也已经进入战斗闭环:火焰造成持续伤害,冰冻造成减速,闪电积累电荷并在达到阈值后触发落雷。

6. 阶段亮点三:敌人 AI 与可扩展关卡基础
敌人目前以骷髅为 Alpha 验证对象。它具备三层行为:
- 非战斗状态:待机、移动、巡逻。
- 发现玩家后:保存玩家 Transform,进入 battle state,并根据距离追击或攻击。
- 战斗反馈:受击击退、被反击眩晕、死亡后切换 dead state。
此外,EnemyProducerController 已经可以围绕目标随机生成敌人,并限制最大数量。这使我们在 Beta 阶段可以快速制作战斗房间、刷怪波次、Boss 前置小怪等内容。

7. 视听与美术风格
美术方向采用像素风横版 RPG。Alpha 分支中已包含主角待机、奔跑、跳跃、下落、冲刺、贴墙、三段攻击、跳劈、治疗、死亡等多组动画帧,以及骷髅的待机、行走、攻击、受击、死亡动画。场景侧使用 Tilemap 铺设,配合 URP 2D 和视差背景营造横版地牢/遗迹氛围。
音频模块目前完成了需求整理和素材选型,但尚未正式接入主流程。这也是 Alpha 版本最明显的不足之一:攻击、受击、暴击、反击、治疗和敌人预警都缺少声音反馈,导致战斗确认感不足。Beta 阶段计划统一加入 AudioManager,再把普通攻击、暴击、反击成功、治疗、敌人进入战斗、UI 点击和场景氛围音逐步接入。

8. 用户场景与当前不足
Alpha 阶段的目标用户是喜欢横版动作 RPG、愿意尝试偏硬核战斗手感的玩家。我们预设的典型场景是:
理想情况下,玩家第一次进入游戏,应该先用移动、跳跃和冲刺穿过短平台区域;随后遇到第一只骷髅敌人,通过普攻理解攻击距离,通过受击理解血条与击退,通过反击理解“看准窗口”的战斗节奏;最后通过治疗、元素状态和技能树节点看到角色成长方向。
但 Alpha 阶段还没有把上述流程完整设计成关卡。现在的 SampleScene 更像一个功能测试场:能验证角色动作、敌人行为和伤害结算,但缺少明确的新手引导、战斗节奏安排、胜利/失败目标、音频提示和完整 UI。当前版本主要用于内部试玩和课堂展示,还不是面向大众的正式发布版本。
二、项目与团队总结
1. 项目管理
Alpha 阶段我们采用模块责任制。战斗模块先定义主角/敌人状态机接口;UI、特效、音频围绕战斗事件接入;测试成员从玩家动作、敌人行为、数值结算和场景运行四个角度反复验证。这样可以让每个成员有清晰产出,也能避免“每个人都在等别人”的情况。
我们使用 GitHub 分支记录阶段进展。feat/battle 分支目前有 3 个关键提交:
| 日期 | 提交 | 内容 |
|---|---|---|
| 2026-04-24 | 103561a |
本地 Unity 项目首次提交 |
| 2026-05-09 | 80f5cc8 |
实现战斗和部分属性系统 |
| 2026-05-12 | f05a896 |
贴图更新,属性系统丰富 |
项目管理上的主要教训是:Unity 项目资源多、场景文件大,如果太晚统一命名和目录,会明显增加合并成本。因此我们在 Alpha 后期固定了 Scripts/Player、Scripts/Enemy、Scripts/General、Scripts/UI、Graphics、Prefab、Data 等目录边界,Beta 阶段会继续补充资源命名规范和提交说明模板。
2. 团队贡献
| 名字 | 角色 | 团队贡献分 | 具体的、可衡量的、可验证的贡献 |
|---|---|---|---|
| 庞济慷 | 战斗/动作开发 | 18 | 实现主角核心动作状态与战斗原型,完成三段普攻、冲刺、跳劈、反击、治疗等主要动作;目前完整战斗流程仍需继续设计 |
| 张恒鑫 | 音频/音效 | 12 | 完成 8 类音频需求梳理和素材选型,设计攻击、受击、暴击、冲刺、治疗、死亡、UI、BGM 的触发点;Alpha 阶段尚未完整接入 |
| 李元星 | UI/属性/存档 | 14 | 实现血条、技能树节点、tooltip 原型;设计属性加点与存档交互流程,Alpha 阶段主要完成 UI 原型和接口验证 |
| 陈文卓 | Shader/特效 | 13 | 完成 URP 2D 渲染配置、受击反馈、命中/暴击特效接入,参与元素状态视觉方案调试 |
| 肖钦予 | Shader/特效 | 13 | 整理像素资源和动画资源,完成场景氛围、背景视差、火焰/闪电等效果调试 |
| 周文康 | 动作技能策划 | 14 | 设计技能表、动作帧逻辑、冷却与数值平衡;协助调试三段攻击、反击窗口、Time Echo/Heal 技能数据 |
| 张泰尔 | 测试 | 16 | 完成 Alpha 冒烟测试和专项测试,覆盖移动、战斗、敌人 AI、元素伤害、UI 交互;记录 15 个问题并推动修复 10 个 |
贡献分按照“可运行代码/资源产出、文档和测试产出、对展示闭环的直接影响、协作响应情况”综合给出。测试分数较高,是因为 Alpha 后期大量问题来自 Unity 场景配置、碰撞层、动画触发器和预制体引用,测试同学实际承担了稳定展示版本的工作。
3. 用户日活与反馈
Alpha 阶段我们进行了两轮内部试玩,共邀请 18 名同学体验,其中 13 人完成至少 5 分钟试玩,8 人完成“移动、接敌、普攻、受击、击败敌人”的基础流程,5 人尝试了反击或元素状态。由于目前还没有公开发布版本,日活数据没有达到商业产品意义上的 DAU;这些数据更多用于判断原型方向,而不是证明产品已经成熟。
试玩反馈中,正向评价主要集中在三点:
- 三段普攻、跳劈和冲刺组合起来后,横版动作手感比较明确。
- 反击成功的收益明显,能够鼓励玩家观察敌人动作。
- 火、冰、雷三种元素状态比单纯扣血更有 RPG 味道。
暴露的问题也很清楚:
- 新手不知道什么时候可以反击,需要更明显的敌人前摇提示。
- 属性系统很有潜力,但当前 UI 还不够完整,玩家看不到“加点后伤害如何变化”。
- 音频尚未合入,战斗反馈少了一层确认感。
- 当前只有 SampleScene,缺少完整关卡目标、战斗流程设计和剧情包装。
这些问题将直接进入 Beta backlog。
4. 特色功能的竞品比较
与常见的横版动作 demo 相比,我们没有只做移动和攻击,而是把“状态机 + 属性系统 + 元素状态 + UI 成长入口”放进了同一个 Alpha 骨架。这个选择让项目从一开始就具备 RPG 扩展能力,但也带来了明显问题:系统骨架多,UI、音频和流程包装跟不上,导致玩家体验还比较像开发测试版。
与偏动作的竞品相比,我们的特色是属性会真实进入伤害结算:力量、敏捷、智力、体质不是面板摆设,而会影响物理伤害、暴击、闪避、元素伤害、抗性、生命和护甲。与偏数值的 RPG 相比,我们又保留了反击、跳劈、冲刺、墙跳等动作判断,因此战斗不是“站桩换血”。
团队自评:Alpha 阶段达到了“核心动作和数值可以跑通”的目标,但还没有达到“完整战斗流程清晰、UI 音频反馈完整、玩家无需讲解即可游玩”的目标。我们愿意把这个阶段定义为战斗原型初步成立,但内容包装和交互反馈明显不足。
5. 软件工程质量
从代码结构看,项目已经具备继续开发的基础:
- 使用状态机拆分玩家和敌人行为,避免把所有输入、动画和物理逻辑堆在一个脚本里。
- 使用接口
IDamageable和ICounterable抽象受击与可反击对象,方便后续添加新敌人。 - 使用 ScriptableObject 保存技能数据和默认属性,便于策划调参。
- 使用属性分组类拆分资源、主属性、进攻、防御,避免数值散落在角色脚本中。
- 使用 Unity Input System 统一管理玩家输入,便于后续支持手柄或自定义键位。
目前的不足也比较明确:
- 自动化测试还没有覆盖核心战斗结算,Unity Test Framework 已接入但测试用例需要补充。
- 场景文件和预制体引用仍依赖人工检查,CI 暂未配置 Unity 自动构建。
- 部分中文注释在不同编码环境下出现乱码,需要统一文件编码为 UTF-8。
- 音频、存档和完整属性 UI 尚未完全合入主分支。
- 战斗流程还没有形成明确的“引导、练习、挑战、奖励”节奏,目前更偏向功能集合。
Beta 阶段我们计划完成以下工程改进:
- 增加 EditMode 测试,覆盖物理伤害、元素抗性、闪避、暴击、状态效果。
- 增加 PlayMode 测试,覆盖玩家攻击敌人、敌人追击、死亡流程。
- 配置 GitHub Actions 或 Unity Cloud Build,至少完成 Windows 包构建检查。
- 统一资源命名、Prefab 命名和脚本编码。
- 将音频、存档、属性面板和关卡目标合入完整演示版本,并重做一版战斗流程。
6. Alpha 阶段经验教训
我们最大的收获是:游戏项目不能只看“功能有没有”,更要看功能之间能不能形成闭环。单独的冲刺、攻击、属性、特效、UI 都不难,但它们必须在同一场战斗里互相支撑,玩家才会感觉这是一个游戏,而不是一堆功能展示。Alpha 阶段我们做出了动作和数值原型,也暴露出 UI、音频和战斗流程设计不足的问题。
第二个教训是:Unity 项目管理需要更早建立资源规范。图片、动画、Prefab、Scene、ScriptableObject 都会迅速膨胀,如果前期不统一目录和命名,后期很容易出现引用丢失或同名资源混乱。
第三个教训是:展示版本要提前冻结。Alpha 后期我们遇到过“代码功能完成,但场景配置没跟上”的问题。Beta 阶段会提前一天冻结课堂展示包,只允许修复阻塞 bug,不再临时加入大功能。
第四个教训是:战斗流程要比单个战斗功能更早设计。反击、元素伤害、治疗、技能树各自能运行,不代表玩家知道什么时候用、为什么用、用了之后有什么收益。Beta 阶段会先画出完整流程,再往流程里放敌人、UI 和音效。
7. Beta 阶段计划
Beta 阶段目标是把 Alpha 的战斗原型包装成一段完整可玩的关卡,重点补齐 UI、音频和战斗流程:
- 重新设计一条 5 到 8 分钟的教学关卡,包含移动教学、战斗教学、反击教学、元素教学和阶段性挑战。
- 合入完整音效和 BGM,提高攻击、受击、技能、敌人预警和 UI 的反馈。
- 完成属性加点面板、技能树解锁、存档读写,让玩家能看懂成长系统。
- 增加至少 2 种敌人或 1 个小 Boss,复用现有敌人状态机。
- 完成 Windows 可执行包发布,补充安装说明和已知问题。
- 建立最低限度 CI/CD:拉取项目、检查 Unity 版本、运行测试、生成构建日志。
最终我们希望 Beta 版本不只是“能演示”,而是能让第一次接触的玩家在没有组员讲解的情况下理解目标、完成战斗、听到反馈、看懂 UI,并愿意给出“还想继续玩”的反馈。
浙公网安备 33010602011771号