本文档已更新至 v0.3.41,早期版本信息见 Git 历史
- 项目名称: PyCC2 (Python Close Combat 2)
- 目标: 用 Python 从零重写经典 RTT 游戏 Close Combat 2: A Bridge Too Far
- 平台: macOS Apple M1 (ARM64) / Linux / Windows
- 技术栈: Python 3.11+ / Pygame 2 (SDL2) / numpy / pydantic
- 美术路线: 几何原型 → 像素画渐进
- 愿景: 单人即时战术(RTT)游戏,二战"市场花园行动"背景
文档版本: v0.3.41 创建日期: 2026-05-15 最后更新: 2026-06-14 作者: PyCC2 项目组 状态: ✅ Beta Candidate — 全部P0 Bug已修复,游戏可玩 当前版本: v0.3.41 测试总数: ~3513 tests (100% pass rate) CC2还原度: ~88%(视觉85% / 机制92%) P0 Bug数: 0 地图数: 63 单位模板数: 277 下一步: M3 视觉打磨 + 架构优化
- L1 (MVP): 可玩的最小战斗场景 — 10x10地图 + 2v2步兵班 + 选单位/移动/AI反击/射击伤害/胜负
- L2 (Alpha): 完整战斗系统 — 多兵种/支援火力/士气/FoW/多地图
- L3 (Beta): 战役模式 — 多关卡继承/存档读档/音效/UI打磨
- L4 (v1.0): 发布版 — 打包分发/.app/.dmg/性能优化
让 CC2 的核心战术体验在 macOS M1 上重生——连级指挥、真实弹道、士气建模、地形战术,全部用 Python 实现。
- Primary: 开发者本人(CC2 怀旧玩家)
- Secondary: RTT 游戏爱好者社区
- Tertiary: Python 游戏开发学习者
还原度目标 ≥90% 的核心机制,参考 GAP_ANALYSIS.md 和 ISSUES.md
当前还原度: ~88%(视觉85% / 机制92%,详见 GAP_ANALYSIS.md)
原5个P0 Bug已全部修复,当前P0 Bug数为0。
| P0 ID | Bug描述 | 状态 |
|---|---|---|
| ✅ 已修复 (v0.1.1) | ||
| ✅ 已修复 (v0.1.1) | ||
| ✅ 已修复 (v0.1.1) | ||
| ✅ 已修复 (v0.2.0) | ||
| ✅ 已修复 (v0.2.0) |
当前状态: 0个P0 Bug,游戏完全可玩。
基于DevSquad 7维度审查 + 13张CC2原版截图像素级对比 + 38阶段E2E验证的真实评估。
| 维度 | v0.1.1评估值 | v0.3.41评估值 | 说明 |
|---|---|---|---|
| 地图库 | 50% | 95% | 63张地图,纹理已增强 |
| 战役结构 | 30% | 98% | 四层架构+日简报+继承+结束画面 |
| 武器系统 | 70% | 95% | 69种武器,效果已验证 |
| 单位多样性 | 40% | 90% | 277种模板,精灵渲染+炮塔旋转 |
| AI战术 | 15% | 85% | 6大AI类型正常运行 |
| 部署阶段 | 20% | 90% | CC2风格拖放+LOS预览 |
| 视觉质量 | 25% | 85% | 增强像素艺术+阴影+粒子+三面板HUD+CC2色调 |
| 战斗机制 | 20% | 95% | 6级压制+隐蔽+姿态+驻守+建筑窗户弧度 |
| 游戏设置 | 60% | 95% | 5预设+独立经验/补给等级 |
| 音频 | 10% | 92% | 18种武器音效+11环境音+6种BGM |
| 综合还原度 | ~45% | ~88% | 视觉85% / 机制92%,详见 GAP_ANALYSIS.md |
核心进展: v0.3.x 系列完成了M1+M2全部修复、架构重构(DDD+模块化)、幽灵功能审计、视觉打磨、性能优化。~3513个测试100%通过,38阶段E2E验证在真实SDL环境下通过。
标注说明: ❌ = 当前不可用(因P0 Bug阻塞),
⚠️ = 部分可用(代码存在但集成有问题),✅ = 可用
US-COMBAT-001: 作为玩家,我希望命令单位移动到指定位置,以便调整战术部署。
- AC1: 右键点击可通行地面显示移动路径预览
- AC2: 确认后单位沿A*路径移动
- AC3: 移动中单位无法攻击
- AC4: 不同地形移动速度不同
US-COMBAT-002: 作为玩家,我希望命令单位攻击敌方单位,以便消灭敌人。 ❌
- AC1: 右键点击敌方单位显示攻击锁定框
- AC2: 确认后单位自动开火
- AC3: 在射程外攻击时提示"超出射程"
- AC4: 命中时目标HP减少
- AC5: 未命中时产生压制效果
US-COMBAT-003: 作为玩家,我希望看到真实的弹道结算结果,以便理解战斗过程。 ❌
- AC1: 每次射击有命中/未命中判定
- AC2: 命中时有伤害浮动(±20%)
- AC3: 距离越远精度越低
- AC4: 掩体降低被击中概率
- AC5: 穿透力影响对掩体后目标的伤害
US-COMBAT-004: 作为玩家,我希望单位受伤后有明确的视觉反馈,以便掌握战场态势。 ❌
- AC1: HP条实时下降
- AC2: 受伤时单位闪白(1帧)
- AC3: 重伤时单位缩小
- AC4: 死亡时有消失动画
- AC5: 死亡后单位从游戏中移除
US-COMBAT-005: 作为玩家,我希望压制系统能影响敌方行动,以便在不歼灭敌人时也能获得战术优势。 ❌
- AC1: 未命中射击产生压制值
- AC2: 压制累积导致敌方进入SUPPRESSED状态
- AC3: SUPPRESSED状态下敌方命中率下降
- AC4: 压制随时间衰减
- AC5: 高压制可能导致敌方恐慌
US-UNIT-001: 作为玩家,我希望创建和管理步兵班单位,以便构建战术基础。 ❌
- AC1: 步兵班默认10人
- AC2: 有HP/武器/士气属性
- AC3: 可以分配到不同Squad
- AC4: 班长阵亡时其他成员士气大幅下降
US-UNIT-002: 作为玩家,我希望管理机枪组单位,以便提供火力支援。 ❌
- AC1: 机枪组射速高于步枪班
- AC2: 机枪组需要2人操作
- AC3: 射击精度低于步枪(连发散大)
- AC4: 机枪组对步兵压制效果显著
US-UNIT-003: 作为玩家,我希望指挥官单位提供士气加成,以便维持部队凝聚力。 ❌
- AC1: 指挥官在附近时友军士气恢复+10
- AC2: 指挥官阵亡导致全squad额外-25士气
- AC3: 指挥官可以执行"集结"命令加速友军恢复
US-UNIT-004: 作为玩家,我希望通过编组(Squad)管理多个单位,以便高效指挥。 ❌
- AC1: 一个Squad包含2-6个单位
- AC2: Squad有统一的状态(交战/撤退/防御)
- AC3: 可以选择整个Squad下达命令
- AC4: Squad全员阵亡则Squad被歼灭
US-UNIT-005: 作为玩家,我希望载具单位(坦克)有乘员组系统,以便更真实地模拟装甲战。 ❌
- AC1: 坦克有车长/炮手/驾驶员
- AC2: 乘员伤亡影响坦克能力
- AC3: 坦克被毁时乘员可能幸存逃生(P3 Should)
US-AI-001: 作为玩家,我希望敌方AI能自动做出合理的战术决策,以便获得有挑战性的游戏体验。 ❌
- AC1: AI使用行为树(BT)做决策
- AC2: AI会优先攻击视野内威胁最高的目标
- AC3: AI在劣势时会寻找掩体或撤退
- AC4: AI不会瞬间知道玩家位置(受FoW限制)
US-AI-002: 作为玩家,我希望AI的追击和攻击行为合理,以便感觉在与真人对战。 ❌
- AC1: AI追击时会沿路径移动而非穿墙
- AC2: AI进入射程后会开火并保持距离
- AC3: AI同时控制多个单位时有协同(不重叠站位)
- AC4: AI不会每帧改变决策(有决策冷却)
US-AI-003: 作为玩家,我希望AI会受到士气系统的影响,以便AI也有人性化弱点。 ❌
- AC1: AI单位同样受士气规则约束
- AC2: AI单位恐慌时会溃逃
- AC3: AI单位 routing时脱离AI控制
- AC4: AI指挥官阵亡会影响AI squad 行为
US-AI-004: 作为玩家,我希望AI有支援火力呼叫能力(迫击炮),以便AI拥有完整的战术手段。 ❌
- AC1: AI可以呼叫间接火力打击玩家遮蔽位置
- AC2: 迫击炮有落弹延迟(非即时命中)
- AC3: 迫击炮弹药有限
- AC4: 迫击炮组需要暴露位置才能开火(P3 Should)
US-MAP-001: 作为玩家,我希望地图由不同类型的地形瓦片组成,以便产生丰富的战术变化。
- AC1: 至少支持12种地形类型(开阔地/道路/草地/林地/建筑/水域/树篱/墙等)
- AC2: 每种地形有不同的移动代价
- AC3: 林地和建筑提供掩体
- AC4: 水域和实心建筑不可通行
US-MAP-002: 作为玩家,我希望地形影响视线(LOS),以便利用地形进行伏击。
- AC1: 林地和建筑阻挡视线
- AC2: 开阔地视线无遮挡
- AC3: 地形高度差影响视线(未来)
- AC4: 可以查看任意tile的LOS状态(debug)
US-MAP-003: 作为玩家,我希望加载自定义地图文件,以便扩展游戏内容。
- AC1: 地图数据存储为JSON格式
- AC2: JSON包含地形网格/出生点/目标点
- AC3: 加载时进行Schema校验
- AC4: 格式错误时给出明确错误信息
US-MAP-004: 作为玩家,我希望地图上有胜利目标点(Objective),以便有明确的任务目标。 ❌
- AC1: 支持占领型目标(停留一定时间占领)
- AC2: 支援歼灭型目标(消灭区域内敌人)
- AC3: 目标点在HUD上清晰标识
- AC4: 占领进度可视化
US-UI-001: 作为玩家,我希望有清晰的单位信息面板,以便了解选中单位的详细状态。 ❌
- AC1: 左侧面板显示单位名称/类型/HP条
- AC2: HP条颜色随血量变化(绿→黄→红)
- AC3: 显示当前士气值和状态
- AC4: 显示武器信息和剩余弹药
- AC5: 未选中时显示占位提示
US-UI-002: 作为玩家,我希望有小地图(Minimap)显示全局态势,以便掌握战场全局。 ❌
- AC1: 右上角显示140x140小地图
- AC2: 显示已探索区域和当前视野
- AC3: 友军蓝点/敌军红点
- AC4: 视野范围半透明覆盖
- AC5: 可按M键切换显示/隐藏
US-UI-003: 作为玩家,我希望底部有命令栏快速下达常用命令,以便高效操作。 ❌
- AC1: 显示[移动][攻击][停止][烟雾][防御]按钮
- AC2: 每个按钮有快捷键(M/A/S/K/D)
- AC3: 当前不可用的命令置灰
- AC4: 按钮有hover高亮效果
- AC5: 命令栏固定在屏幕底部
US-UI-004: 作为玩家,我希望顶部有状态栏显示任务信息,以便了解当前进度。
- AC1: 左侧显示任务名称
- AC2: 中间显示游戏时间和日期
- AC3: 右侧显示暂停/菜单按钮
- AC4: 暂停时游戏时间冻结
- AC5: 菜单可返回主菜单
US-UI-005: 作为玩家,我希望有Debug Overlay辅助开发调试,以便快速定位问题。 ✅
- AC1: 按~键切换三级debug信息
- AC2: Level 1显示FPS/UPS/Tile坐标/单位数
- AC3: Level 2增加单位状态标签/网格线/A*路径
- AC4: Level 3增加子系统耗时柱状图/内存用量
US-CAMP-001: 作为玩家,我希望有多关卡战役模式,以便体验连续的军事行动。 ❌
- AC1: 战役由多个连续关卡组成
- AC2: 每关结束后单位经验/损失继承到下一关
- AC3: 有战役总进度跟踪
- AC4: 关卡间可选择修整装备(P3 Should)
US-CAMP-002: 作为玩家,我希望可以保存和读取游戏存档,以便随时中断和恢复。
- AC1: 存档保存完整运行时状态
- AC2: 存档文件防篡改(HMAC签名)
- AC3: 读档时验证完整性
- AC4: 支持多个存档槽位
- AC5: 存档列表显示时间/关卡/进度摘要
US-CAMP-003: 作为玩家,我希望战役有关卡胜负条件判定,以便有明确的任务完成标准。 ❌
- AC1: 全歼敌军触发胜利
- AC2: 占领所有目标点触发胜利
- AC3: 我方全军覆没触发失败
- AC4: 超时未完成任务触发失败(P3 Should)
US-AUDIO-001: 作为玩家,我希望关键操作有音效反馈,以便获得操作确认感。 ❌
- AC1: 选中单位时有短促音效
- AC2: 下达命令时有确认音效
- AC3: 射击时有开火音效
- AC4: 命中/未命中有不同音效
- AC5: 单位死亡有特殊音效
US-AUDIO-002: 作为玩家,我希望重要事件有视觉+听觉双重反馈,以便不会错过关键信息。 ❌
- AC1: 士气恐慌时显示"!"图标+警报声
- AC2: 胜利时显示大字VICTORY+胜利音乐
- AC3: 敌方发现时FoW边缘闪烁(P2 Should)
US-AUDIO-003: 作为玩家,我希望背景音乐增强沉浸感,以便更有氛围。 ❌
- AC1: 菜单/暂停界面有BGM
- AC2: 战斗中有紧张BGM
- AC3: BGM音量独立可控(P3 Should)
US-MORALE-001: 作为玩家,我希望士气系统影响单位行为,以便体现心理战要素。 ❌
- AC1: 士气正常值0-100
- AC2: <30进入恐慌状态(无法控制)
- AC3: <10进入溃逃状态(脱离指挥)
- AC4: 友军阵亡/受重创/指挥官 nearby 影响士气
- AC5: 士气自然恢复(远离战斗后)
US-FOW-001: 作为玩家,我希望战争迷雾隐藏敌方位置,以便实现侦察战术。
- AC1: 仅显示己方视野内的敌方单位
- AC2: 已探索但不在视野的区域灰暗显示(可见地形但不见动态)
- AC3: 未探索区域完全黑暗
- AC4: 敌方同样受FoW限制(对称)
- AC5: FoW 每3-5帧更新一次(性能优化)
| 优先级 | 含义 | 功能列表 |
|---|---|---|
| Must | v1.0 必须有 (18项) | 核心战斗(移动/射击/命中/伤害/死亡)、单位编组(选/分组/指挥)、基础AI(追踪/攻击/寻路)、地形地图(12种/加载/LOS)、HUD骨架(面板/命令栏/顶栏)、视野系统、士气系统、存档读档、胜负判定 |
| Should | v1.0 应该有 (9项) | 支援火力(迫击炮)、载具乘员、战役模式(多关/继承)、音效反馈(操作/事件)、A*路径平滑、Debug Overlay三级、小地图、快捷键完整、单位面板详细信息 |
| Could | v1.1/v2.0 候选 (5项) | 回放系统、Mod支持、载具系统完整、物理 debris、天气系统 |
| Won't | 本期不做 (8项) | 多人联机、3D渲染、物理引擎(Physix)、语音聊天、Steam成就、云存档、编辑器工具、Linux/Windows支持 |
- PERF-01: 64x64地图+20单位稳定≥30FPS逻辑帧率
- PERF-02: 128x128地图+50单位稳定≥20FPS
- PERF-03: 启动时间≤3秒(冷启动)
- PERF-04: 内存占用≤500MB
- PERF-05: FPS渲染帧率目标60FPS
- PERF-06: A*寻路(128x128)单次调用≤50ms
- PERF-07: FoW更新(50单位)≤10ms/次
- PERF-08: 存档写入≤1秒/读取≤500ms
- USA-01: 操作响应时间<100ms(输入→视觉反馈)
- USA-02: 新手可在30分钟内学会基本操作
- USA-03: 所有错误有明确的文字/视觉提示
- USA-04: ESC键可随时暂停/退出
- USA-05: HUD信息密度适中(不过载也不缺失)
- MAINT-01: PEP 8 编码规范
- MAINT-02: 所有公共API有类型注解(type hints)
- MAINT-03: 测试覆盖率≥70%
- MAINT-04: 文档覆盖所有公开接口
- MAINT-05: 依赖版本锁定(requirements.lock/pyproject.toml hashes)
- MAINT-06: CI流水线自动跑测试+lint
- SEC-01: 存档文件HMAC-SHA256签名防篡改
- SEC-02: 所有外部JSON输入Pydantic校验
- SEC-03: 地图尺寸上限防止OOM(≤256x256)
- SEC-04: dev-mode参数跳过安全检查用于调试
- SEC-05: 依赖库定期扫描CVE(pip-audit)
- COMP-01: macOS 12+ (Monterey及以后)
- COMP-02: Python 3.11+
- COMP-03: Pygame 2.2+
- COMP-04: 分辨率支持 720p 到 4K
- COMP-05: ARM64 (Apple Silicon) 原生运行
- 技术: Python 3.11+ / Pygame 2 / numpy / 最少外部依赖
- 时间: 18-20 周单人开发
- 资源: 单人 / 无美术资源 / 无音效素材 / M1 Mac硬件
- 美术: 几何原型起步 → 32x32像素画渐进 → 精灵完善
- 内容: 仅二战欧洲战场 "市场花园行动" (1944.9)
列出所有 Must 级功能的量化验收标准:
- GATE-COMBAT-01: 单位移动功能 — 单位能响应右键点击沿A*路径移动到目标位置,路径预览正确显示,不同地形移动速度差异可测(开阔地1.0x / 林地0.6x / 道路1.3x)
- GATE-COMBAT-02: 攻击与命中判定 — 单位能在射程内自动开火,命中率公式可复现(基础命中率 - 距离衰减 + 掩体修正),命中时HP正确减少,伤害浮动范围±20%可验证
- GATE-COMBAT-03: 弹道结算可视化 — 每次射击事件记录完整日志(射手/目标/距离/命中结果/伤害值/是否穿透),未命中时压制值正确累积
- GATE-COMBAT-04: 单位状态反馈 — HP条实时更新<100ms延迟,受伤闪白效果1帧时长,死亡动画200ms内完成,死亡后实体从游戏循环移除无残留
- GATE-COMBAT-05: 压制系统运作 — 连续未命中射击累积压制值>50触发SUPPRESSED状态,该状态下命中率下降30%,压制值每秒衰减10点
- GATE-UNIT-01: 步兵班创建与管理 — 步兵班默认10人配置正确加载,HP/武器/士气属性可查询,班长阵亡事件触发全队士气-30
- GATE-UNIT-02: Squad编组功能 — 单个Squad可容纳2-6个单位,Squad统一状态切换(交战/撤退/防御)生效,批量命令下发到所有成员
- GATE-UNIT-03: 指挥官士气加成 — 指挥官半径3格内友军每tick士气恢复+1(等效+10/s),指挥官死亡广播事件触发全局-25士气惩罚
- GATE-AI-01: 行为树决策 — AI行为树至少包含Selector/Sequence/Condition/Action四种节点类型,决策输出日志可追踪,AI不违反FoW规则(不攻击未发现的敌人)
- GATE-AI-02: 寻路与追击 — AI单位使用A*算法寻路,路径不穿越不可通行地形,追击行为持续至目标离开视野或AI进入射程
- GATE-AI-03: 决策冷却机制 — AI决策间隔≥500ms(不每帧重新评估),多单位协同站位间距≥2格避免重叠
- GATE-MAP-01: 地形瓦片系统 — 至少12种地形类型实现,每种地形移动代价配置可查,掩体等级影响命中率公式参数化
- GATE-MAP-02: LOS视线计算 — Bresenham射线投射算法实现正确,林地/建筑完全阻挡视线(透射率0%),开阔地无遮挡(透射率100%)
- GATE-MAP-03: JSON地图加载 — 地图JSON通过Schema校验(使用data/maps/_schema.json),格式错误时抛出明确异常含行列号,加载失败不崩溃
- GATE-MAP-04: 胜利目标点 — Objective组件支持CAPTURE/ELIMINATE两种类型,占领计时器正确累加(友军在场时+1/tick),HUD显示当前占领百分比
- GATE-UI-01: 单位信息面板 — 左侧面板实时显示选中单位属性(名称/类型/HP/士气/武器),HP条颜色阈值:>70%绿 / 30-70%黄 / <30%红,未选中时显示"Select a unit"占位文本
- GATE-UI-02: 命令栏交互 — 底部固定5个命令按钮(Move/Attack/Stop/Smoke/Defend),快捷键M/A/S/K/D绑定正确,禁用态置灰且不可点击,hover高亮色差明显
- GATE-UI-03: 顶部状态栏 — 任务名左对齐,游戏时间居中显示格式HH:MM,暂停按钮点击后game_loop.freeze()调用成功,菜单按钮弹出确认对话框
- GATE-FOW-01: 战争迷雾实现 — 仅渲染视野内敌方单位(visibility_check通过),已探索区域alpha=128半透明,未探索区域alpha=255全黑,FoW更新频率≤5帧/次(性能达标)
- GATE-SAVE-01: 存档读写完整性 — 存档JSON包含完整运行时快照(units/map/time/state),HMAC-SHA256签名验证通过,读取后游戏状态与保存时刻一致(误差<1tick),支持≥3个存档槽位独立存储
识别需求层面的主要风险及缓解措施:
| ID | 风险描述 | 概率 | 影响 | 缓解措施 |
|---|---|---|---|---|
| RISK-TECH-01 | Pygame性能瓶颈导致大地图掉帧 | 中 | 高 | 提前做prototype benchmark;关键路径用numpy/numba加速;降级策略:减小地图尺寸或单位数量 |
| RISK-TECH-02 | A*寻路在大地图上耗时超标 | 中 | 中 | 实现分层寻路(Hierarchical Pathfinding);缓存常用路径;限制同时寻路请求数 |
| RISK-TECH-03 | FoW实时计算开销过大 | 低 | 高 | 采用分块更新(Chunked Update);降低更新频率至3-5帧;预计算静态遮挡 |
| RISK-TECH-04 | 存档文件体积膨胀导致IO慢 | 低 | 中 | 使用增量存档(Delta Save);压缩JSON(gzip);清理历史存档 |
| RISK-TECH-05 | numpy/numba在ARM64上的兼容性问题 | 低 | 中 | 锁定依赖版本;提前在M1 Mac上验证CI;准备纯Python fallback |
| ID | 风险描述 | 概率 | 影响 | 缓解措施 |
|---|---|---|---|---|
| RISK-RES-01 | 无美术素材导致视觉效果差 | 高 | 中 | 几何原型阶段接受简陋外观;逐步迭代像素画;开源CC2 sprite资源(如有) |
| RISK-RES-02 | 无音效素材导致沉浸感不足 | 中 | 低 | 使用合成音效(pygame生成);P2阶段再引入真实音效;优先保证核心玩法 |
| RISK-RES-03 | 单人开发工期延误 | 高 | 高 | MoSCoW优先级严格排序;Must功能优先砍Could/Won't;每周复盘进度调整计划 |
| ID | 风险描述 | 概率 | 影响 | 缓解措施 |
|---|---|---|---|---|
| RISK-REQ-01 | CC2原版机制理解偏差导致还原度不足 | 中 | 高 | 反复观看原版 gameplay 视频;参考CC2 mod社区文档;保留设计决策记录(ADR) |
| RISK-REQ-02 | 士气系统参数调优困难 | 中 | 中 | 设计可配置的参数表(toml/yaml);提供debug模式实时调参;A/B测试不同参数组合 |
| RISK-REQ-03 | AI行为树复杂度失控 | 中 | 中 | 从最小 viable BT开始(3-4个节点);逐步扩展;单元测试每个BT节点 |
| RISK-REQ-04 | 地形类型扩展需求蔓延 | 低 | 中 | 严格控制在12种以内(Must);新增地形走Could流程;地图编辑器延后 |
| ID | 风险描述 | 概率 | 影响 | 缓解措施 |
|---|---|---|---|---|
| RISK-SCHED-01 | L1 MVP延期导致后续阶段压缩 | 中 | 高 | L1设定硬截止日(Week 4);MVP scope严格冻结;每日站会跟踪阻塞项 |
| RISK-SCHED-02 | Bug修复占用过多开发时间 | 中 | 中 | TDD先行写测试;Code Review自检;预留20%缓冲时间给bug fix |
| RISK-SCHED-03 | 功能镀金(Gold Plating)导致范围膨胀 | 中 | 中 | 每个User Story明确定义Done标准;PR前对照MoSCoW审查;拒绝非优先级需求 |
| 阶段 | 状态 | 说明 | 测试数 |
|---|---|---|---|
| P0-Foundation | ✅ Complete | 基础设施: Vec2/TileCoord/TerrainType/StateMachine/RandomContext/EventBus | ~85 tests |
| P1-Core | ✅ Complete | 核心系统: BallisticEngine/MoraleCalculator/PathFinder/FogOfWar/CombatResolver/BehaviorTree | ~180 tests |
| P1-AI | ✅ Complete | AI对手系统: 行为树决策/寻路追击/决策冷却/FoW限制 | ~45 tests |
| P1-VM | ✅ Complete | 视野与地图: 战争迷雾/LOS视线/12种地形/JSON地图加载/Objective目标点 | ~40 tests |
| P1-HD | ✅ Complete | HUD骨架: 单位信息面板/命令栏/顶部状态栏/Debug Overlay三级 | ~35 tests |
| P1-PixelArt | ✅ Complete | 像素画渲染: 32x32精灵/地形瓦片/单位动画/特效原型 | ~25 tests |
| P1-Integration | ✅ Complete | 集成测试: 存档读写/HMAC签名/完整战斗流程/E2E场景 | ~48 tests |
| P1-SaveLoad | ✅ Complete | 存档系统: SecureIO/HMAC-SHA256/多槽位/防篡改校验 | ~32 tests |
| P1-UIInput | ✅ Complete | 输入系统: InputHandler/CommandBus/鼠标指挥/快捷键绑定 | ~28 tests |
| P1-Campaign | ✅ Complete | 战役模式: 多关卡继承/胜负判定/任务目标/占领计时器 | ~22 tests |
| P1-MoraleFull | ✅ Complete | 士气全量: 事件权重/状态转换(4态)/恐慌传染/tick恢复/clamping | ~30 tests |
| P2-CombatLoop | ✅ Complete | 完整战斗循环: PlayerCommand→_execute_attack→BallisticEngine→UnitAttacked→health.take_damage→pending_effects→spawn_hit_flash/damage_number/muzzle_flash/death_effect | 13 integration tests |
| P2-Audio | ✅ Complete | 程序化音效系统: ProceduralSoundGenerator(8种波形) + SoundSystem(23种SoundType) + UI/战斗/脚步音效 | 21 tests |
| P3-A-Systems | ✅ Complete | 胜利条件评估(VictoryConditionEvaluator 5种条件) + BattleStats战斗统计 + 战后统计面板 + GameLoop集成(9处修改) | 39 tests |
| P3-B-Visual | ✅ Complete | 6种单位动画(UnitAnimator IDLE/WALK/SHOOT/DEATH/HIT_REACT/RELOAD) + ScreenShake屏幕震动 + 增强粒子系统(8种ParticleEmitter类型) + 伤害数字分级渲染 | 52 tests |
| P3-C-Content | ✅ Complete | 3种新单位(TANK/SNIPER/MEDIC含像素精灵+属性模板UNIT_TEMPLATES) + 2种新地形(CRATER/SWAMP含瓦片生成器) + 战役系统(CampaignManager+3关任务定义) | 31 tests |
| P3-D-Save | ✅ Complete | SecureSaveManager(HMAC-SHA256防篡改) + 8槽位JSON存档 + SaveMetaData + GameLoop集成(quick_save/quick_load/list_saves) | 26 tests |
| P3-Fix-Bugs | ✅ Complete | 4个关键Bug修复: BallisticEngine武器补全(3种tank_cannon/sniper_rifle/mortar) + quick_load状态恢复(_restore_state_from_dict) + AI循环边界修复(2处CommanderAI+TacticalAdvisor) + main.py入口点重写(GameLoop无参构造) | 0 new tests (1088 total) |
| P4.1-Decompose | ✅ Complete | GameLoop God Object拆分(880→356行/-59%): RenderPipeline+CombatDirector+InputRouter+SaveController | ~75 new tests |
| P4.1-Settings | ✅ Complete | Settings菜单(4Tab: General/Audio/Controls/Gameplay) + 62测试 | 62 tests |
| P4.1-Security | ✅ Complete | HMAC密钥环境变量化 + 输入边界校验 + secrets.toml模板 | 13 tests |
| P4.2-A-Perf | ✅ Complete | 性能优化: TileCache地形瓦片预缓存 + AI节流10Hz + 粒子对象池 | ~45 tests |
| P4.2-B-Tutorial | ✅ Complete | 教程/提示系统: 首次启动引导TutorialOverlay + 上下文提示HintManager | ~28 tests |
| P4.2-C-Missions | ✅ Complete | 新任务内容: Mission 4 Night Assault夜战 + Mission 5 Armored Column反坦克 | ~35 tests |
| P4.2-D-Maps | ✅ Complete | 新地图数据: night_map.json + road_ambush.json + bridge_assault.json + defense_line.json | ~12 tests |
| P4.3-A-Night | ✅ Complete | 夜战机制: Environment+FogOfWar夜间修正+照明弹+潜行加成 | ~8 tests |
| P4.3-B-Armor | ✅ Complete | 反坦克装甲: 装甲剖面(正/侧/后)+角度穿透计算 | ~19 tests |
| P4.3-C-Visual | ✅ Complete | 视觉增强: WeatherRenderer(雨/雾/夜)+粒子预设(爆炸/血液) | ~15 tests |
| QG-Docs | ✅ Complete | 质量门禁: 文档统一v1.6(14文件三语)+代码质量修复+E2E(+61) | +61 tests |
| P8-MapsCampaign | ✅ Complete | 9+Arnhem战区新地图/四层战役架构(campaign_four_layer.py)/补给线机制(SupplySystem 70%)/部署阶段UI集成 | ~334 tests |
| P9-AI-P0 | ✅ Complete | P0 AI行为(7项): 弹药拾取/武器搜刮/投降/武器卡壳/烟雾部署/班降解/NCO集结 | ~180 tests |
| P9-GameSettings | ✅ Complete | 新游戏设置系统: 5预设(RECRUIT/EASY/NORMAL/HARD/VETERAN)+独立经验/补给等级每方 | ~85 tests |
| P9-Campaign | ✅ Complete | 战役完成: 3 Sectors/7 Operations/29 Battles/28 Maps(全部战役引用已解决) | ~65 tests |
当前版本: v0.3.41 测试总数: ~3513 tests (100% pass rate) 最后更新: 2026-06-14
| Mission ID | 任务名称 | 地图文件 | 难度 | 玩家阵营 | 敌方阵营 | 胜利条件 | 状态 |
|---|---|---|---|---|---|---|---|
| M1 | Tutorial Training | tutorial.json | ⭐ Easy | Allies (US) | Axis (GE) | 占领中心建筑 | ✅ Complete |
| M2 | Bridge Assault | bridge_assault.json | ⭐⭐ Medium | Allies (US) | Axis (GE) | 控制桥梁 + 歼灭敌军 | ✅ Complete |
| M3 | Road Ambush | road_ambush.json | ⭐⭐⭐ Hard | Allies (US) | Axis (GE) | 伏击敌军车队 | ✅ Complete |
| M4 | Night Assault | night_map.json | ⭐⭐⭐ Hard | Allies (US) | Axis (GE) | 夜间突袭占领目标 | ✅ Complete (P4.2-C) |
| M5 | Armored Column | defense_line.json | ⭐⭐⭐⭐ Expert | Allies (US) | Axis (GE) | 反坦克防御战 | ✅ Complete (P4.2-C) |
| M6 | Son | son.json | ⭐⭐⭐ Hard | Allies (US) | Axis (GE) | 占领Son桥梁 | ✅ Complete (P7) |
| M7 | Veghel | veghel.json | ⭐⭐⭐ Hard | Allies (US) | Axis (GE) | 突破Veghel防线 | ✅ Complete (P7) |
| M8 | Grave | grave.json | ⭐⭐⭐⭐ Expert | Allies (US) | Axis (GE) | Grave渡河战 | ✅ Complete (P7) |
| M9 | Nijmegen | nijmegen.json | ⭐⭐⭐⭐ Expert | Allies (US) | Axis (GE) | Waal河强渡 | ✅ Complete (P7) |
| M10 | Arnhem | arnhem.json | ⭐⭐⭐⭐⭐ Legend | Allies (US) | Axis (GE) | Arnhem最后突击 | ✅ Complete (P7) |
Mission 1 - Tutorial Training
- 目标: 新手教学任务,学习基本操作
- 单位: 2x Rifle Squad, 1x MG Team vs 2x Rifle Squad
- 特色: 引导提示系统,逐步教学
Mission 2 - Bridge Assault
- 目标: 攻占并控制战略桥梁
- 单位: 3x Rifle Squad, 1x Sniper, 1x MG Team vs 4x Rifle Squad, 1x MG Team
- 特色: 桥梁控制机制,时间压力
Mission 3 - Road Ambush
- 目标: 在道路伏击敌方补给车队
- 单位: 2x Rifle Squad, 1x Bazooka Team vs 3x Truck Convoy, 2x Escort
- 特色: 伏击战术,动态目标
Mission 4 - Night Assault (P4.2-C 新增)
- 目标: 夜间条件下突袭并占领敌方指挥部
- 单位: 4x Rifle Squad, 2x MG Team, 1x Medic vs 5x Rifle Squad, 2x MG Bunker
- 特色: 视野受限(夜战),潜行机制,照明弹效果
- 测试覆盖: 35 tests (夜战逻辑/视野系统/AI夜间行为)
Mission 5 - Armored Column (P4.2-C 新增)
- 目标: 防御防线抵御敌方装甲部队进攻
- 单位: 3x Rifle Squad, 2x AT Team, 1x Tank vs 4x Tank, 3x Infantry
- 特色: 反坦克战术,载具战斗,阵地防御
- 测试覆盖: 35 tests (反坦克逻辑/载具AI/防御阵型)
| 地图ID | 文件名 | 尺寸 | 地形类型数 | 使用任务 | 特色 | 状态 |
|---|---|---|---|---|---|---|
| MAP-01 | tutorial.json | 20×20 | 8 | M1 Training | 开阔地形,简单布局,教学用 | ✅ Complete |
| MAP-02 | bridge_assault.json | 32×32 | 10 | M2 Bridge Assault | 河流+桥梁,城市废墟 | ✅ Complete |
| MAP-03 | road_ambush.json | 40×24 | 11 | M3 Road Ambush | 林地+道路,伏击地形 | ✅ Complete |
| MAP-04 | night_map.json | 36×36 | 12 | M4 Night Assault | 夜间战场,建筑物密集 | ✅ Complete |
| MAP-05 | defense_line.json | 48×32 | 12 | M5 Armored Column | 开阔平原+防御工事 | ✅ Complete |
| MAP-06 | son.json | 44×36 | 12 | M6 Son | Son小镇+桥梁争夺 | ✅ Complete |
| MAP-07 | veghel.json | 52×40 | 12 | M7 Veghel | Veghel十字路口防御战 | ✅ Complete |
| MAP-08 | grave.json | 48×48 | 12 | M8 Grave | Grave渡河+铁路桥 | ✅ Complete |
| MAP-09 | nijmegen.json | 64×48 | 12 | M9 Nijmegen | Waal河强渡+城市巷战 | ✅ Complete |
| MAP-10 | arnhem.json | 64×64 | 12 | M10 Arnhem | Arnhem最终突击+复杂地形 | ✅ Complete |
| MAP-11~28 | (P8新增18张) | 32×32~64×64 | 12 | 战役各Battle | Arnhem战区地图+战役引用地图(P8补全) | ✅ Complete |
通用特性:
- JSON格式存储,Schema校验通过
_schema.json - 支持12种地形类型 (GRASS/ROAD/WATER/TREE/HEDGE/WALL/BUILDING/SOLID_BUILDING/CRATER/SWAMP/BRIDGE/RUBBLE)
- 每个tile包含:地形类型、移动代价、掩体等级、通行性
- 出生点和目标点预定义
P4.2-D 新增地图详情:
night_map.json (夜战地图)
- 尺寸: 36×36 tiles
- 特色地形: 密集建筑群(30%),狭窄街道,照明区域
- 视野设置: 基础视野-40%,照明弹临时+60%
- AI行为: 巡逻模式,听觉侦测增强
road_ambush.json (道路伏击)
- 尺寸: 40×24 tiles
- 特色地形: 林地走廊(50%),道路贯穿,伏击点
- 战术要素: 高地优势,隐蔽位置
bridge_assault.json (桥梁突击)
- 尺寸: 32×32 tiles
- 特色地形: 河流分割,桥梁瓶颈,两岸建筑
- 战术要素: 桥梁控制,渡河战术
defense_line.json (防御战线)
- 尺寸: 48×32 tiles
- 特色地形: 开阔平原(60%),战壕网络,掩体分布
- 战术要素: 防御纵深,反坦克位置,火力覆盖
基于对原版 Close Combat 2: A Bridge Too Far 的全面对比分析(详见 GAP_ANALYSIS.md):
| 维度 | CC2原版 (1997) | PyCC2当前 | 评级 |
|---|---|---|---|
| 地图库 | 25-30张历史地图 | 63张地图,纹理增强 | ✅ 95% |
| 战役结构 | 四层架构 | 四层架构+日简报+继承+结束画面 | ✅ 98% |
| 武器系统 | ~50种武器 | 69种武器,效果已验证 | ✅ 95% |
| 单位多样性 | 130+单位 | 277种模板+精灵渲染+炮塔旋转 | ✅ 90% |
| AI战术 | 成熟行为树 | 6大AI类型正常运行 | 🟡 85% |
| 部署阶段 | 完整拖放部署 | CC2风格拖放+LOS预览 | ✅ 90% |
| 视觉质量 | 1997像素艺术 | 增强像素艺术+阴影+粒子+三面板HUD+CC2色调 | ✅ 85% |
| 战斗机制 | 基础压制+士气 | 6级压制+隐蔽+姿态+驻守+建筑窗户弧度 | ✅ 95% |
| 游戏设置 | 基础难度选择 | 5预设+独立经验/补给等级 | ✅ 95% |
| 音频 | 完整音效+语音+BGM | 18种武器音效+11环境音+6种BGM | ✅ 92% |
| 综合还原度 | — | ~88% | ✅ 视觉85% / 机制92% |
- P0 Bug清零 — 全部5个P0 Bug已修复,游戏完全可玩
- 幽灵功能审计 — 发现并修复3个幽灵功能(PostProcessingEffects/WeatherOverlay/FadeTransition),所有关键渲染管线已激活
- 架构重构 — EnhancedRenderer拆分(2243→943行)、GameLoop拆分(880→356行)、DDD层解耦(违规-39%)
- 视觉打磨 — 死亡淡出、屏幕闪光、移动平滑、UI过渡动画、天气叠加、弹壳弹出、按钮反馈
- 性能优化 — SurfacePool统一(6/6)、脏矩形渲染、地形缓存、坦克旋转缓存、视口裁剪
- AI战斗修复 — AI单位现在通过CombatDirector正确执行攻击,游戏可对AI进行战斗
- 音频激活 — EnvironmentalAudioSystem 11种环境音效已激活,程序化武器音效扩展至7种
推进计划(详见 ROADMAP.md)
| Phase | 名称 | 目标还原度 | 关键交付物 | 状态 |
|---|---|---|---|---|
| P0-Fix | P0致命Bug修复 | 45%→55% | 修复5个P0 Bug使游戏可玩 | 🟡 3/5已修复 |
| P8 | 地图与战役补全 | 55%→70% | 9+新地图/四层战役/补给线/部署UI | |
| P9 | AI战术提升+新游戏设置 | 70%→80% | P0 AI行为(7项)/5预设游戏设置/战役完成 | |
| P10 | P1 AI行为 | 80%→85% | 战壕挖掘/建筑清理/炮兵呼叫/医疗AI/MG接管/命令服从/夜间潜行/刺刀近战 | 待P0修复后 |
| P11 | 音频与体验 | 85%→90% | MG42声音/语音命令/BGM | 待开始 |
| P12 | 集成与发布 | ≥90% | 系统集成/端到端测试/打包 | 待开始 |
基于DevSquad批判性Review,项目路线图已修订。核心变化:新增P0-Fix阶段,还原度从97%修正为45%。
| 阶段 | 名称 | 目标 | 关键交付物 | 状态 |
|---|---|---|---|---|
| P0-Fix | P0致命Bug修复 | 游戏可玩 | 修复5个P0 Bug(display_name/属性名/AI导入/set_mode/旧UI清理) | 🟡 3/5已修复 |
| P8 | 地图与战役补全 | CC2还原度 55%→70% | 9+新地图/四层战役/补给线/部署UI | |
| P9 | AI战术提升+新游戏设置 | CC2还原度 70%→80% | P0 AI行为(7项)/5预设游戏设置/战役完成 | |
| P10 | P1 AI行为 | CC2还原度 80%→85% | 战壕挖掘/建筑清理/炮兵呼叫/医疗AI/MG接管/命令服从/夜间潜行/刺刀近战 | 待P0修复后 |
| P11 | 音频与体验 | CC2还原度 85%→90% | MG42声音/语音命令/BGM | 待开始 |
| P12 | 集成与发布 | CC2还原度 ≥90% | 系统集成/端到端测试/打包 | 待开始 |
P0-Fix (5个P0 Bug) ──→ P8 (地图+战役集成验证) ──→ P9 (AI+游戏设置集成验证) ──→ P10 (P1 AI) ──→ P11 (音频) ──→ P12 (集成)
🔴 必须先完成 ⚠️ 待验证 ⚠️ 待验证
关键路径: P0-Fix → P8(验证) → P9(验证) → P10 → P11 → P12 (顺序执行)
| 版本 | 代号 | 阶段完成 | 测试目标 | CC2还原度 | 状态 |
|---|---|---|---|---|---|
| v0.5 | Honest Baseline | P0-Fix完成 | ~2770 | ~55% | 🟡 3/5已修复 |
| v0.9 | Oosterbeek | P8验证完成 | ~2900 | ~70% | 待P0修复后 |
| v1.0-rc1 | Playable | P9验证完成 | ~3000 | ~80% | 待开始 |
| v1.0 | A Bridge Too Far | P12完成 | ~3200 | ≥90% | 待开始 |
→ See ROADMAP.md for full details (phase deliverables, gate criteria, risk register) → See ISSUES.md for current problems and countermeasures → See TECH_DEBT.md for technical debt tracking
| 术语 | 全称 | 定义 |
|---|---|---|
| RTT | Real-Time Tactics | 即时战术游戏 genre,强调实时指挥而非动作操作 |
| MVP | Minimum Viable Product | 最小可行产品,具备核心可玩性的最早版本 |
| FoW | Fog of War | 战争迷雾,隐藏未探索区域的游戏机制 |
| LOS | Line of Sight | 视线,单位能否看到目标的几何计算 |
| A* | A-Star Algorithm | 启发式寻路算法 |
| BT | Behavior Tree | 行为树,AI决策的层次化结构 |
| Squad | 编组 | 多个单位的战术集合,统一指挥 |
| Suppression | 压制 | 未命中火力造成的心理压力效果 |
| Morale | 士气 | 单位心理状态数值,影响行为可靠性 |
| AC | Acceptance Criteria | 验收标准,User Story的完成定义 |
| NFR | Non-Functional Requirement | 非功能性需求(性能/安全/可用性等) |
| PRD | Product Requirements Document | 产品需求规格说明书 |
| Gate | 门禁 | 阶段评审的量化准入标准 |
| MoSCoW | Must/Should/Could/Won't | 优先级分类方法 |
| HMAC | Hash-based Message Authentication Code | 基于哈希的消息认证码,用于防篡改 |
| PEP 8 | Python Enhancement Proposal 8 | Python编码风格指南 |
| Schema | 数据模式 | JSON结构定义与校验规范 |
| 组件 | 状态 | 测试数 | 说明 |
|---|---|---|---|
| CampaignState | ✅ Complete | ~45 | 跨战斗状态容器,单位名册/经验/弹药/作战日 |
| BattleResult | ✅ Complete | ~30 | 战斗结果记录: KIA/WIA/弹药消耗/目标占领 |
| UnitVeterancy | ✅ Complete | ~55 | 经验等级: Green→Veteran→Elite→Crack |
| StrategicMap | ✅ Complete | ~40 | Market Garden走廊可视化 |
| OperationTimeline | ✅ Complete | ~35 | Day 1-6作战时间线 |
| P5 合计 | ✅ Complete | ~205 | Campaign系统达到60%还原度 |
| 组件 | 状态 | 测试数 | 说明 |
|---|---|---|---|
| Swiss Cheese Damage | ✅ Complete | ~60 | 概率性伤亡模型(SquadMember) |
| FatigueSystem | ✅ Complete | ~45 | 战斗疲劳衰减与恢复 |
| ExperienceComponent | ✅ Complete | ~40 | 长期经验追踪与老兵加成 |
| AfterActionReport | ✅ Complete | ~35 | 战后统计AAR UI |
| TimeControl | ✅ Complete | ~25 | 暂停/0.5x/1x/2x 速度控制 |
| P6 合计 | ✅ Complete | ~205 | Combat系统达到85%还原度 |
| 内容 | 状态 | 数量 | 说明 |
|---|---|---|---|
| 新任务 M6-M10 | ✅ Complete | 5 missions | Son/Veghel/Grave/Nijmegen/Arnhem |
| 新地图 MAP-06~10 | ✅ Complete | 5 maps | 44×44 到 64×64 尺寸 |
| 历史真实性增强 | ✅ Complete | — | OOB/武器规格/任务简报 |
| P7 合计 | ✅ Complete | ~189 tests | 内容扩展完成 |
- Campaign 还原度: 5% → ~90% (+85%)
- Combat 还原度: 65% → ~140% (+75%, 含P0 AI行为)
- AI 还原度: 20% → ~85% (+65%, 53+ behaviors)
- Overall CC2 Fidelity: ~47% → ~97% (+50%)
- 测试数增量: +667 (P5/P6/P7/P8/P9)
| 行为ID | 行为名称 | 描述 | 触发条件 | 效果 | 测试数 |
|---|---|---|---|---|---|
| AI-P0-01 | 弹药拾取 (Ammo Pickup) | AI单位在弹药耗尽时主动搜索并拾取附近弹药 | ammo_remaining == 0 且附近有弹药箱/阵亡单位 | 单位移动到弹药源并补充弹药 | ~30 |
| AI-P0-02 | 武器搜刮 (Weapon Scavenging) | AI单位在主武器失效时搜刮阵亡单位的武器 | weapon_state == JAMMED/OUT_OF_AMMO 且附近有阵亡单位 | 单位拾取替代武器,战斗力恢复 | ~25 |
| AI-P0-03 | 投降 (Surrender) | AI单位在极端劣势下选择投降 | morale < 5 且 无友军支援 且 被包围 | 单位进入SURRENDERED状态,从战斗中移除 | ~20 |
| AI-P0-04 | 武器卡壳 (Weapon Jam) | 武器有概率在射击时卡壳 | 每次射击 jam_chance 概率触发 | 武器进入JAMMED状态,需要清除故障时间 | ~30 |
| AI-P0-05 | 烟雾部署 (Smoke Deployment) | AI在受压制时部署烟雾掩护 | suppression > 50 且 有烟雾弹 | 在单位位置生成烟雾区域,阻挡LOS | ~25 |
| AI-P0-06 | 班降解 (Squad Degradation) | 班组伤亡导致战斗力非线性下降 | 班组存活率 < 50% | 命中率/士气/移动速度额外惩罚 | ~25 |
| AI-P0-07 | NCO集结 (NCO Rally) | 士官/军士长在附近单位恐慌时执行集结 | 附近有PANIC状态单位 且 NCO存活 | 范围内友军士气恢复+15,恐慌状态解除 | ~25 |
| 设置项 | 类型 | 可选值 | 说明 |
|---|---|---|---|
| 难度预设 | Enum | RECRUIT/EASY/NORMAL/HARD/VETERAN | 5级预设,影响以下所有参数 |
| 盟军经验等级 | Enum | GREEN/VETERAN/ELITE/CRACK | 独立于德军设置 |
| 德军经验等级 | Enum | GREEN/VETERAN/ELITE/CRACK | 独立于盟军设置 |
| 盟军补给等级 | Enum | SCARCE/LIMITED/NORMAL/ABUNDANT | 影响弹药/医疗/增援 |
| 德军补给等级 | Enum | SCARCE/LIMITED/NORMAL/ABUNDANT | 影响弹药/医疗/增援 |
预设对应表:
| 预设 | 盟军经验 | 德军经验 | 盟军补给 | 德军补给 |
|---|---|---|---|---|
| RECRUIT | GREEN | GREEN | ABUNDANT | SCARCE |
| EASY | VETERAN | GREEN | NORMAL | LIMITED |
| NORMAL | VETERAN | VETERAN | NORMAL | NORMAL |
| HARD | VETERAN | ELITE | LIMITED | NORMAL |
| VETERAN | ELITE | CRACK | SCARCE | ABUNDANT |
| 维度 | 数量 | 说明 |
|---|---|---|
| Sectors | 3 | Allied Airborne / XXX Corps / German Defense |
| Operations | 7 | 覆盖Day 1-Day 6全部作战行动 |
| Battles | 29 | 每个Operation含3-5场Battle |
| Maps | 28 | 全部战役引用地图已解决 |
| Weapons | 69 | 含步兵/车载/固定武器 |
| Units | 80 | 含步兵/装甲/支援/特种单位 |
| Mission | 名称 | 历史事件 | Day | 地图尺寸 | 玩家兵力 | 敌方兵力 | 胜利条件 | 状态 |
|---|---|---|---|---|---|---|---|---|
| M1 | Tutorial Training | 基础训练(虚构) | — | 20×20 | 2× Rifle, 1× MG | 2× Rifle | 占领建筑 | ✅ Complete |
| M2 | Bridge Assault | Son桥梁突击(9.17) | D1 | 32×32 | 3× Rifle, 1× Sniper, 1× MG | 4× Rifle, 1× MG | 控制桥梁+歼敌 | ✅ Complete |
| M3 | Road Ambush | Eindhoven伏击(9.17) | D1 | 40×24 | 2× Rifle, 1× AT | 3× Truck, 2× Escort | 歼灭车队 | ✅ Complete |
| M4 | Night Assault | 夜间空降(9.17夜) | D1/N | 36×36 | 4× Rifle, 2× MG, 1× Medic | 5× Rifle, 2× MG Bunker | 潜行占领HQ | ✅ Complete |
| M5 | Armored Column | 反坦克防御(9.18) | D2 | 48×32 | 3× Rifle, 2× AT, 1× Tank | 4× Tank, 3× Infantry | 防线坚守20min | ✅ Complete |
| M6 | Son | Son镇争夺(9.17) | D1 | 44×36 | 5× Rifle, 2× MG, 1× Sniper | 6× Rifle, 3× MG, 2× AT | 占领Son桥梁 | ✅ Complete (P7) |
| M7 | Veghel | Veghel突破(9.18) | D2 | 52×40 | 4× Rifle, 2× Tank, 1× AT, 1× Medic | 8× Rifle, 4× MG, 2× AT, 1× Tank | 突破防线 | ✅ Complete (P7) |
| M8 | Grave | Grave渡河(9.20) | D4 | 48×48 | 3× Rifle, 1× MG, 1× Medic | 10× Rifle, 5× MG, 3× Tank | 渡河生存 | ✅ Complete (P7) |
| M9 | Nijmegen | Waal强渡(9.20) | D4 | 64×48 | 6× Rifle, 3× MG, 2× Tank, 1× Mortar | 12× Rifle, 6× MG, 4× Tank, 2× AT | 夺取北岸 | ✅ Complete (P7) |
| M10 | Arnhem | Arnhem最后突击(9.24-26) | D6 | 64×64 | 8× Rifle, 4× MG, 3× Tank, 2× Mortar | 8× Rifle, 4× MG, 3× Tank | 夺取Arnhem桥 | ✅ Complete (P7) |
文档版本: v0.3.41 创建日期: 2026-05-18 作者: PyCC2 项目组 状态: ✅ Beta Candidate — 全部P0 Bug已修复,游戏可玩 当前版本: v0.3.41 测试总数: ~3513 tests (100% pass rate) 下一步: M3 视觉打磨 + 架构优化
| 版本 | 日期 | 作者 | 变更内容 |
|---|---|---|---|
| v1.0 | 2026-05-15 | PM | 初始版本,33 User Stories, MoSCoW优先级矩阵 |
| v1.1 | 2026-05-18 | PM + 7 Roles | Consensus Review修订: Smoke快捷键X→K, Gate条件对齐 |
| v1.2 | 2026-05-18 | DevSquad | P2阶段完成: 新增Implementation Progress表(13阶段), Combat Loop + Audio System完成, 测试总数940 |
| v1.3 | 2026-05-18 | DevSquad | P3阶段全部完成(4子阶段): Systems+Visual+Content+Save, 新增17个进度条目, 测试总数1088, 版本升级v0.4-complete-edition |
| v1.4 | 2025-05-18 | DocSync | P3-Fix: 4个关键Bug修复, 版本号v0.4-fix1, 文档同步更新 |
| v1.5 | 2026-05-18 | Integration | P4 Week 1 完成: GameLoop Decomposition(4组件) + Settings Menu(4Tab) + Security Hardening, 测试总数1163, 版本升级v0.5-p4w1 |
| v1.6 | 2026-05-19 | Integration | P4 Week 2 完成: 性能优化(TileCache/AI节流/粒子池) + 教程系统(TutorialOverlay/HintManager) + 新任务(Mission 4夜战/Mission 5反坦克) + 新地图(4张), 测试总数1270, 版本升级v0.6-p4w2 |
| v1.7 | 2026-05-19 | PM+CC2 Analysis | CC2差距分析完成: Campaign |
| v1.8 | 2026-05-19 | P5/P6/P7 Complete | P5 Campaign Core完成: CampaignState/BattleResult/UnitVeterancy/StrategicMap/OperationTimeline (~205 tests). P6 Combat Depth完成: Swiss Cheese伤害/Fatigue/AAR/TimeControl ( |
| v2.0 | 2026-05-19 | DocSync+CC2 Analysis | 重大更新: 基于CC2 Wiki和策略指南(Kasey Chang FAQ)重新评估还原度为 |
| v2.1 | 2026-05-20 | P8 Complete | P8 地图与战役补全完成: 9张Arnhem战区新地图(Oosterbeek Caldron/Oosterbeek LZ/Arnhem Rail Bridge等)/四层战役架构(campaign_four_layer.py)/补给线机制(SupplySystem 70%)/部署阶段UI集成(3区域渲染+拖放). CC2还原度从 |
| v3.0 | 2026-05-23 | DevSquad Critical Review | 诚实评估版: 基于DevSquad批判性Review,还原度从声称 |
| v0.1.1 | 2026-05-23 | M1修复更新 | M1紧急修复进展: P0-1(display_name)/P0-2(属性别名)/P0-3(AI导入)/P0-4(set_mode)已修复。测试总数2767(1 failed)。剩余P0-5(旧UI清理)待修复。版本号统一为v0.1.1 |
| v0.3.41 | 2026-06-14 | 文档同步至v0.3.41 | 全面更新: 版本号→v0.3.41, CC2还原度→ |