项目笔记N-217
总计
- 更新
- 内容块
- 148
- 阅读
- 约 4 分钟
- 路径
- 项目笔记 / CS / 2026.7.7
1.基础技术栈
- •C++17
- • Win32 + OpenGL
- • CMake + Ninja + MinGW
逻辑模组
武器模组
枪械模组
四种枪械
道具模组
三种道具
地图模组
测试模组
Build.bat(构建测试)
作用:构建 Debug 版 build\DesertStrike.exe。
它会检查:
- 1.CMake 是否存在
- 2.Ninja 是否存在
- 3.MinGW g++ 是否存在
- 4.
build\CMakeCache.txt是否包含旧路径,如F:\Codex\CS2_B_NavGraph
- 5.如果发现旧路径,会删除
build后重新配置
run_test.bat(基础冒烟测试)
- 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(长测)
执行内容:
- 1.连续两次
run_full_acceptance.bat
- 2.再单独跑各模块 audit
- 3.
--qa-matrix
- 4.
--qa-soak %QA_SOAK_MINUTES%,默认 30 分钟
- 5.输出日志到
logs\industrial_qa_<timestamp>.txt
main中内置检测
--map-audit
- 1.
node-standable:所有有效导航点是否可站立
- 2.
nav-edges:导航边是否可通、是否有坏边
- 3.
jump-link-map:JumpLink 是否存在并被路径使用
- 4.
nav-components:T、CT、A、B 是否在主连通分量
- 5.
T-to-A、T-to-B、CT-to-A、CT-to-B等路线时间
- 6.
route-variety:T/CT 到 A/B 是否至少有多条路线
- 7.
mid-first-contact:中路首次接触时间是否合理
- 8.
site-standable:A/B 包点是否可站立
- 9.
outer-wall-closed:外墙是否闭合
--ai-audit(测试 AI 基础行为和关键机制)
- 1.
combat-micro:跑打、急停、跳拉
- 2.
spray-transfer:扫射转移
- 3.
jump-link-execution:JumpLink 执行
- 4.
strafe-preaim:横移预瞄
- 5.
dropped-bomb-recovery:T 掉包后回收,CT 不捡包
- 6.
bomb-invariant:炸弹状态一致性
- 7.
objective-arbitration:Plant/Defuse/Recover 等优先级
- 8.
objective-progress-stuck:目标进度卡住检测
- 9.
map-semantics、semantic-route-selection
- 10.
tactical-planner、defuse-cover
- 11.
movement/pathing、t-spawn-egress
- 12.
engage/reaction
- 13.
tactic/rushB
- 14.
ct/retake-defuse
- 15.
weapon/styles
- 16.
difficulty/scaling
--behavior-audit(测试更高层的行为正确性)
- 1.
non-midpoint-engagement
- 2.
multi-target-priority
- 3.
bomb-economy-priority
- 4.
state-driven-decisions
- 5.
tactic-preconditions
- 6.
tactic-detection
- 7.
priority-oscillation
- 8.
movement-humanization
- 9.
micro-combat-system
- 10.
team-role-stability
--ai-playtest(多回合 AI-only 战术模拟。)
- 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 运行表现)
创建 Win32/OpenGL 窗口
采样 60/120/144 FPS 档
平均 FPS、p95、p99、长帧比例
输出 VSync 状态
(
只采样几个档位,不覆盖 240/300/360 的全部人工体验。
不能完全控制显卡驱动强制 VSync。
不代表复杂实战场景下的长期性能。
)
AI模组
行为树思想 + 有限状态机 + 优先级选择器 + 导航图
渲染模组
性能统计模组
UI模组