项目空间

项目笔记N-206

总览

更新
内容块
24
阅读
约 1 分钟
路径
项目笔记 / CS / 2026.7.7 / AI 模组

本项目没有引入 BehaviorTree.CPP、Unreal Behavior Tree、GOAP 等第三方 AI 框架,也没有用 XML/JSON 配一棵可视化行为树。它采用的是“行为树思想 + 有限状态机 + 优先级选择器 + 导航图”的 C++ 直接实现。

目前采用在每一帧都进行行为逻辑判断

  1. 1.我现在知道什么?
  1. 2.我现在最应该做什么?
  1. 3.我该怎么把这个决定变成动作?

  • •情报层:updateTeamIntel()
  • •战术层:buildRoundPlan()、updateTeamTacticalPlan()
  • •决策层:selectBotIntent()
  • •执行层:executeBotIntent()、followObjective()、engageEnemy()
  • •运动层:findPath()、steerToTarget()、moveToTarget()
  • •武器层:weapon::WeaponSimulator::tryFire()

  • •Selector:选择器,从上到下尝试子节点,谁能处理就执行谁。适合表达“优先级”。
  • •Sequence:顺序节点,多个条件和动作依次通过才算成功。适合表达“先判断、再执行”。
  • •Condition:条件节点,例如“我能看到敌人吗?”
  • •Action:动作节点,例如“开火”“下包”“移动到掩体”。
  • •Blackboard:黑板,所有节点共享的状态数据,例如敌人位置、目标点、当前意图。

调用链

感知 -> 团队计划 -> 个人决策 -> 执行动作 -> 修正世界状态

代码块Plain Text
Game::update(...)
  repairBombInvariant("pre_update")
  updateBots(dt)
    updateTeamIntel()
    updateTeamTacticalPlan()
    for each bot:
      死亡/冻结/回合结束快速处理
      updateBotMemoryAndStuck()
      findVisibleEnemy()
      selectBotIntent()
      executeBotIntent()
  repairBombInvariant("post_bots")