[T.6] 团队项目:技术规格说明书(技术设计文档)

[T.6] 团队项目:技术规格说明书(技术设计文档)

项目 内容
这个作业属于哪个课程 首页 - 2026年春季软件工程 - 北京航空航天大学 - 班级博客 - 博客园
这个作业的需求在哪里 [T.6] 团队项目:技术规格说明书 - 作业 - 2026年春季软件工程 - 班级博客 - 博客园
我在这个课程的目标是 通过学习软件工程理论与敏捷开发实践,熟悉产品从立项到交付的全流程,提升团队协作与工程开发经验。
这个作业在哪个具体方面帮助我实现目标 明确2D横版硬核动作游戏的技术架构、接口规范、测试标准与部署流程,为后续的代码实现、敏捷迭代与团队协同提供技术基石。

一、 写作目标

1. 技术规格说明书的目标

本文档旨在为团队的开发人员、测试人员及项目管理者提供一个全局的技术蓝图。具体来说:

  • 指导开发: 明确系统的整体架构、子系统划分及核心模块的技术选型,确保所有开发者在同一技术底座上工作。
  • 规范接口: 统一数据驱动格式与内部系统调用规范,降低模块间的耦合度。
  • 确立标准: 设定明确的性能指标、测试计划与软件出口条件,保障最终交付的动作游戏具备“帧级精准”的体验。

2. 叙述和讨论的范畴与界限

  • 包含范畴: 前端(客户端)架构设计、核心战斗逻辑的技术实现方案、数据存储与加载机制、性能量度与部署环境。
  • 边界: 本文档暂不包含具体的每一行代码级别的逻辑全图,暂不包含美术资产的制作规范。

二、 概念和术语

为避免团队内部沟通歧义,特对以下核心概念进行精确定义:

  • 精确弹反 (Perfect Parry): 在受击判定框(Hitbox)接触玩家受击框(Hurtbox)前的特定物理帧数(如5-8帧)内,玩家输入防御指令触发的特殊状态。该状态下玩家免疫伤害,并触发敌方架势条削减。
  • 顿帧 (Hitstop): 视觉与手感强调技术。当触发“精确弹反”或高强度攻击命中时,将游戏全局时间缩放(Time.timeScale)短暂设为0或极小值,持续若干毫秒,随后恢复正常,以增强“刀剑交锋的打铁感”。
  • 无敌帧 (i-frame / Invincibility Frame): 玩家执行“闪避”动作时,动画中特定的一段帧区间。在此区间内,玩家的受击框被临时禁用,免疫一切常规伤害。
  • 妖气轮回 (NG+): 即多周目系统。每次通关后,读取数据驱动配置文件中的下一级难度系数,对全局敌人进行数值重载与AI逻辑树切换。

三、 技术栈

鉴于本项目为“轻量级2D单机动作游戏”,且追求极致的帧级判定与本地运行效率,我们的技术栈选择如下:

  • 程序设计语言: C#(面向对象,强类型,适合游戏逻辑的高效编写与Unity引擎深度集成)。
  • 应用开发框架/引擎: Unity 2022 LTS (或更高版本)。选用LTS版本以保证开发周期的稳定性。
    • 物理核心: 依托Unity内置的 2D Physics 系统,通过 Kinematic(运动学)结合 Raycast(射线检测)来实现更精准的碰撞,避免纯刚体(Rigidbody2D)可能带来的受力滑步问题。
    • 动画核心: Unity Animator 状态机(配合Animation Event精确控制动作帧与判定帧的同步)。
  • 运行与开发环境:
    • 开发环境: Windows 10/11,Visual Studio 2022 / JetBrains Rider。
    • 部署与运行环境(客户端): Windows 平台,支持 DirectX 11/12 的 x64 架构 PC。

四、 软件架构

为了保证“硬核动作反馈”的高效运行以及“数据驱动”的灵活性,本项目采用表现与逻辑分离的单机游戏架构。

1. 包含的子系统及任务划分

本项目无需服务端,作为纯客户端应用,内部划分为以下核心子系统:

  • Input System (输入子系统): 负责接收玩家的键盘/手柄输入,并将其转化为标准化的指令(如:按下“攻击”、长按“防御”),支持输入缓存(Input Buffer)以提升动作连贯性。
  • Combat System (战斗核心子系统): 负责计算攻击判定、弹反逻辑、无敌帧计算、伤害结算与架势条削减。
  • Entity State Machine (实体状态机): 控制玩家(Player)和四大妖王(Boss)的行为状态轮转(如:Idle -> Attack -> Hitstun -> Dead)。
  • VFX & Audio (视听表现子系统): 监听战斗系统派发的事件(Event),触发屏幕震动、顿帧、粒子特效及打铁音效。

2. 系统交互工作模式与设计原则

  • 内聚/耦合: 采用事件驱动与观察者模式。实现界面与业务逻辑的严格分离s。
  • 信息隐藏: 实体(Entity)的内部属性(如具体HP数值)对外私有,仅暴露受击(TakeDamage)等公共方法。

五、 软件设计和实现

1. 核心代码编写需求

  • 基础控制器构建: 编写具有重力、跳跃、地面检测、平台穿透功能的 2D Character Controller。
  • 战斗逻辑模块: 实现基于 Animation Event 的帧级攻击判定;实现基于接口的伤害传递系统(如 IDamageable 接口)。
  • AI 行为树 / FSM: 为四大妖王编写各自的状态机,包含观察距离、招式冷却、二阶段变异逻辑。
  • 内心道场养成系统: 编写灵魄消耗逻辑、属性计算器(公式化处理升级带来的HP与体力恢复收益),以及技能(咒印)装配切换的UI逻辑。

2. 系统文档编写需求

  • 《配置数据表规范》: 详细说明策划在填写怪物数值、多周目膨胀系数时的字段含义与取值范围。
  • (实现阶段补充)API接口说明: 列出核心单例(如 GameManager, AudioManager)的公共方法,供各模块开发者调用。

3. 异常处理机制

  • 输入假设: 假设所有配置文件读取格式正确。
  • 异常处理: 如果JSON文件损坏或缺失,系统应能捕获 FileNotFoundExceptionJsonSerializationException,并自动加载项目内置的默认(Default)配置回退,并在本地生成错误日志,保证游戏不会直接崩溃死锁。

六、 软件测试和性能量度

1. 测试计划

  • 单元测试 (Unit Testing): 重点测试非表现层的纯数学逻辑。例如“伤害计算器模块”、“属性升级属性计算”、“多周目数值乘区叠加”。确保计算结果严格符合公式设定。
  • 系统边界与压力测试:
    • 在“内心道场”的试炼结界中,同屏生成 50-100 个“怨念碎片”实体,监控帧率波动与内存分配。
    • 极限操作测试:使用脚本模拟极高频率的输入(1秒内按键50次),测试输入缓存机制是否会导致内存溢出或状态机死锁。
  • 真实场景灰度测试(Playtesting):
    • 重点: 寻找动作游戏经验丰富的玩家进行盲测,重点反馈“弹反判定区间是否合理”、“起跳是否有粘滞感”、“大妖攻击前摇是否清晰”。

2. 软件性能量度与技术边界

  • 性能指标: 作为硬核动作游戏,帧率是绝对的生命线。游戏在运行时的量度标准为:在主流配置(如Intel i5 + GTX 1650)下,全局稳定保持 60 FPS(每帧处理时间低于 16.6ms)。
  • 内存占用: 峰值内存控制在 2GB 以内。
  • 能力边界: 受限于2D物理引擎与本项目克制的规模,同屏高复杂度AI实体不宜超过 20 个,超出可能导致物理运算拖慢帧率。

3. 出口条件(Release Criteria)

软件最终版本的硬性技术标准:

  1. 四大妖王的核心行为树与状态机运转无报错。
  2. 精准弹反、闪避的核心博弈闭环测试通过,顿帧表现不引起画面卡死。
  3. 玩家的存档/读档(进度持久化)经过测试无丢失现象。
  4. 打包为 Windows .exe 可执行文件并在至少 3 台不同硬件环境的PC上冷启动成功且帧率达标。

七、 技术风险识别和评估

潜在风险 影响程度 应对策略 / 避免方法
判定精度与帧率耦合 致命 避免在 Update 中进行容易漏帧的快速碰撞检测,采用 FixedUpdate 配合射线的 RaycastNonAlloc 方案;动作判定帧严格绑定动画事件,而非单纯的计时器。
状态机“死锁” 严重 为所有实体状态机设计“强制打断”与“超时退出”机制(Fail-safe),防止怪物卡在“正在攻击”状态且不播放后续动画。

八、 软件部署和维护

  • 构建与部署:
    • 本项目最终交付形态为免安装绿包 (.zip 压缩的文件夹,内含 .exe 及依赖数据)
    • 利用 GitHub Actions 配置轻量级的 CI 自动化流水线。每次合并至 main 分支时,自动触发 Unity 命令行进行 Windows 平台的 Build,并输出打包日志,确保代码合并不会破坏构建。
  • 维护环境: 发布后通过玩家社群收集 Bug 反馈,针对数值不平衡问题,通过修改外部的“数据驱动配置表”快速下发热更新补丁(替换配置文件),而无需重新编译庞大的代码库。
posted @ 2026-04-22 13:12  代码搬运工314  阅读(11)  评论(0)    收藏  举报