Q51: 如何设计 AI 系统?
核心结论
游戏 AI 系统的核心不是“让怪更聪明”,而是让行为在可控成本下更稳定、更可调、更可验证。
真正需要优先设计的是:
- AI 如何感知世界
- AI 如何做决策
- AI 如何驱动移动、技能和仇恨
- AI 在大规模实体下如何控制开销
如果这些边界不清晰,AI 很快就会变成一堆难调试的条件判断。
一、AI 系统真正负责什么
它通常要处理:
- 目标选择
- 巡逻、追击、脱战
- 技能使用
- 仇恨与优先级
- 对环境和事件的响应
所以 AI 更像“感知加决策加执行”的组合系统。
二、先把 AI 拆成三层
1. 感知层
负责回答:
- 看到了谁
- 谁在仇恨范围内
- 自己是否低血
- 周围是否有危险区域
2. 决策层
负责根据当前上下文决定下一步要做什么,例如:
- 保持巡逻
- 切换目标
- 释放技能
- 撤退或召唤支援
3. 执行层
负责把决策真正落成动作,例如:
- 走向目标
- 释放技能
- 进入待机
这三层不分开,AI 会很快写成一团不可维护的流程代码。
三、状态机、行为树、效用系统怎么选
1. 状态机
适合:
- 行为种类少
- 规则简单
- Boss 或小怪状态切换明确
优点是简单直观,缺点是复杂分支一多就会爆炸。
2. 行为树
适合:
- 行为层次较多
- 需要组合和复用判断逻辑
- 中等复杂度 NPC
它比纯状态机更好组织复杂行为。
3. 效用系统或评分决策
适合:
- 多候选动作之间需要动态比较
- AI 需要根据环境权衡行为优先级
但调参会更复杂。
没有哪一种永远最好,关键看敌人种类和团队调试能力。
四、AI 设计最容易忽略的不是“智商”,而是成本
在 MMO 或大场景里,AI 数量往往很多。
真正要考虑的是:
- 感知扫描频率
- 决策更新频率
- 寻路请求频率
- 是否所有怪都需要完整决策
如果每个 AI 都高频全量思考,系统会很快被压垮。
五、AI 和战斗系统、寻路系统必须解耦
AI 应该负责“何时攻击、攻击谁、何时脱战”,而不是自己重新实现:
- 伤害计算
- 命中逻辑
- 路径搜索
更稳妥的结构通常是:
- AI 产生命令
- 战斗系统和寻路系统执行权威逻辑
六、仇恨系统通常是 AI 的关键输入
很多怪物 AI 看起来很“聪明”,其实核心只是在正确使用仇恨信息:
- 谁先打我
- 谁治疗了目标
- 谁距离近但不可达
- 谁处于当前高威胁状态
仇恨系统设计不好,AI 的目标切换就会很怪。
七、工程上更稳妥的设计
常见做法是:
- 感知层产出轻量上下文
- 决策层按频率刷新
- 执行层只调用移动、战斗、技能接口
- 普通怪、精英怪、Boss 用不同复杂度模板
这样能把行为复杂度和性能成本控制在可接受范围。
八、常见误区
1. AI 越复杂越好
不对。很多时候稳定、可预测、可调比复杂更重要。
2. 所有怪物都该用同一套高级行为树
不现实。杂兵、精英、Boss 的复杂度需求通常不同。
3. AI 自己直接改状态最方便
这会把 AI 和战斗、寻路、Buff 系统强耦合。
参考资料
- 各类 MMO / ARPG 怪物 AI、行为树与仇恨系统实践资料
