项目笔记N-203
总览
- 更新
- 内容块
- 173
- 阅读
- 约 5 分钟
- 路径
- 项目笔记 / CS / 2026.7.7 / 测试模组
Build.bat(构建测试)
作用:构建 Debug 版 build\DesertStrike.exe。
对应标准游戏测试流程里的:
- •Build Verification
- •编译门禁
- •CI 第一关
它会检查:
- 1.CMake 是否存在
- 2.Ninja 是否存在
- 3.MinGW g++ 是否存在
- 4.
build\CMakeCache.txt是否包含旧路径,如F:\Codex\CS2_B_NavGraph
- 5.如果发现旧路径,会删除
build后重新配置
run_test.bat(基础冒烟测试)
它先编译游戏,然后运行 --self-test,快速看看游戏核心系统有没有明显坏掉
build.bat
build\DesertStrike.exe --self-test对应标准游戏测试流程里的:
- •Smoke Test
- •Basic Regression
- •每次改代码后先跑的快速自测
- 1.配置文件加载
- 2.AI profile / weapon profile (配置)是否有效
- 3.地图加载、节点标签、语义节点
- 4.基础相机、鼠标反转、旁观者模式、暂停菜单
- 5.玩家跳跃、移动、复活
- 6.Bot 角色分配、CT 出生点、T RushB、EcoPick、Sniper
- 7.武器后坐力、散布恢复、移动/空中散布、狙击开镜、半自动
- 8.可见敌人伤害、隔墙不能命中
- 9.卡住恢复、补枪距离
- 10.炸弹携带、下包、守包、拆包意图
- 11.简单多回合模拟
run_industrial_qa.bat(长测)
对应标准游戏测试流程里的:
- •Soak Test
- •Stability Test
- •Long Regression
- •Pre-release QA Gate
执行内容:
- 1.连续两次
run_full_acceptance.bat(跑的是下面main中的测试)
- 2.再单独跑各模块 audit
- 3.
--qa-matrix
- 4.
--qa-soak %QA_SOAK_MINUTES%,默认 30 分钟
- 5.输出日志到
logs\industrial_qa_<timestamp>.txt
main中内置检测
对应标准游戏测试流程里的:
- •Full Acceptance Test
- •Feature Regression Suite
- •Release Candidate 自动验收
--map-audit(地图和导航有没有坏)
标准流程对应:
- •Level QA
- •Navigation QA
- •Collision QA
- •Spawn/Timing QA
- 1.
node-standable:所有有效导航点是否可站立
- 2.
nav-edges:导航边是否可通、是否有坏边
- 3.
jump-link-map:JumpLink 是否存在并被路径使用,地图里的跳跃连接是否真的存在并可用
- 4.
nav-components:T、CT、A、B 是否在主连通分量(T 家、CT 家、A 点、B 点是否在同一个可走网络里)
- 5.
T-to-A、T-to-B、CT-to-A、CT-to-BCT-to-MidT-to-LongT-to-Tunnel路线时间(是否可以到达,时间是否合理)
- 6.
route-variety:T/CT 到 A/B 是否至少有多条路线(避免 AI 永远走同一路)
- 7.
mid-first-contact:中路首次接触时间是否合理
- 8.
site-standable:A/B 包点是否可站立
- 9.
outer-wall-closed:外墙是否闭合
--ai-audit(测试 AI 基础行为和关键机制)
标准流程对应:
- •AI Functional Test
- •Bot Navigation Test
- •Objective Logic Test
- •Combat Behavior Test
- •Difficulty Balance Smoke
- 1.
combat-micro:跑打、急停、跳拉
- 2.
spray-transfer:扫射转移
- 3.
jump-link-execution:JumpLink 执行(跳跃导航边)
- 4.
strafe-preaim:横移预瞄(Bot 横移时是否还看着目标,不乱转头)
- 5.
dropped-bomb-recovery:T 掉包后回收,CT 不捡包
- 6.
bomb-invariant:炸弹状态一致性(不能同时 planted 又有人带包)
- 7.
objective-arbitration:Plant/Defuse/Recover 等优先级(多目标冲突)
- 8.
objective-progress-stuck:目标进度卡住检测
- 9.
map-semantics、semantic-route-selection地图是否有 T 家、CT 家、A 点、B 点、中路等语义
- 10.
tactical-planner团队计划是否会根据战术、炸弹、敌情变化
- 11.
defuse-coverCT 拆包时是否有人拆、有人掩护
- 12.
movement/pathingBot 是否正常移动、不进墙、不长期卡住
- 13.
t-spawn-egressT 是否能离开出生点
- 14.
engage/reactionBot 看到敌人后是否进入对枪并造成伤害
- 15.
tactic/rushBRushB 是否形成冲点行为或交火/闪光
- 16.
ct/retake-defuseCT 是否能回防并尝试拆包
- 17.
weapon/styles手枪、SMG、步枪、狙击是否按距离选打法
- 18.
ct-rotate-B-to-A/ct-rotate-A-to-BCT 是否能根据炸弹位置转点
- 19.
difficulty/scalingExpert 是否比 Casual 更强或反应更好
--behavior-audit(测试更高层的行为正确性,AI 战术行为是否更像真实对局)
标准流程对应:
- •AI Behavior QA
- •Tactical Behavior Validation
- •Gameplay Bot Review
- 1.
non-midpoint-engagementAI 不应该只去中点对枪
- 2.
multi-target-priority多个目标同时出现时,优先级要合理
- 3.
bomb-economy-priority围绕炸弹的目标要优先,比如捡包、下包、拆包
- 4.
state-driven-decisionsAI 决策要受情报、声音、人数、炸弹状态影响
- 5.
tactic-preconditions战术出现前要满足前置条件,不要乱放战术
- 6.
tactic-detection能否检测出双拉、fake、包围、回防、保枪等战术倾向
- 7.
priority-oscillation高优先级目标不能来回抖动切换
- 8.
movement-humanization移动不能太机械,要有斜走、横移变化
- 9.
micro-combat-system微观战斗是否有跑打、急停、跳拉、扫射转移
- 10.
team-role-stabilityEntry、Support、Lurker 等角色是否稳定
--ai-playtest(多回合 AI-only 战术模拟,让 AI 自己打几轮,看会不会卡死或没目标)
- 1.多个 seed
- 2.Auto、RushA、RushB、FakeRotate、EcoPick 等战术
- 3.输出 kills、plants、flashes、carrierMinSite、carrierSiteTicks、maxStuck、routeTicks
--qa-matrix(是无窗口模拟,不检查 UI、手感、真实输入)(矩阵测试)
seeds:0,1,2,3,17,42,99,1234
难度:Normal,Hard,Expert
战术:Auto,Default,RushA,RushB,FakeRotate,EcoPick
每组 10 回合
总计 144 case
--qa-soak <minutes>(长时间稳定性测试)(不完全等价真实玩家连续游玩体验)
多 seed
多回合等价模拟
目标事件存在
stuck 不超阈值
无崩溃、死循环、访问冲突
--qa-anomaly [cases](异常探索测试)
作用:批量跑 case,输出到 logs\qa_anomaly_latest.txt,用于找异常模式
--weapon-audit(测试武器配置和手感核心机制,武器后坐力、散布、狙击等是否正常)
config-loaded
sniper-scoped-static
sniper-spread-penalty
rifle-recoil-pattern
--vfx-audit(测试视觉效果和投掷物效果)(不等于全局美术质量)(不替代人工看爆炸、烟雾、闪光是否“舒服”)
枪口火光、曳光弹、墙面弹痕
HE 弹跳、碰撞、滚动、伤害约束
Flash 白屏曲线、真实投掷、OpenGL pixel readback
Smoke 球形遮挡、快速扩散、实战可见度
粒子系统
投掷轨迹预测与真实飞行匹配
--utility-audit(测试 Bot 使用投掷物和战术道具)
Bot 被闪后降低索敌/射击
Support Rush/Execute 丢真实 Flash
Support/Objective 丢 Smoke
HE 打敌人聚集点
多战术下 Flash/Smoke/HE 是否出现
T 出生点墙体探针和离家
Smoke 遮挡、HE 惩罚
Plant/Defuse/Recover 不被道具打断
utility memory 保存/重载
diversity guard 防止固定单一投掷点
--ui-audit(测试 UI、HUD、菜单、雷达和调试信息)
Tab 计分板显示/隐藏
暂停菜单优先级
计分板调试数据
分辨率菜单
鼠标点击暂停菜单
FPS HUD 行
帧率上限选项
固定模拟 tick
小地图玩家朝上、固定缩放、xray
角色可读性
内嵌配置
inventory wheel
--frame-audit( OpenGL 运行表现,帧率上限、VSync、帧时间是否正常)
创建 Win32/OpenGL 窗口
采样 60/120/144 FPS 档
平均 FPS、p95、p99、长帧比例
输出 VSync 状态
(
只采样几个档位,不覆盖 240/300/360 的全部人工体验。
不能完全控制显卡驱动强制 VSync。
不代表复杂实战场景下的长期性能。
)
发布测试验证
在output中单独跑了:(验证发布包在没有外部 config 的情况下,能依赖 embedded fallback 运行)
DesertStrike.exe --self-test
DesertStrike.exe --ui-audit
DesertStrike.exe --map-audit
DesertStrike.exe --ai-audit