Apollo 技术文档Apollo 技术文档
指南
  • 架构概述
  • BigWorld 架构深度解析
  • BigWorld 进程架构与玩家生命周期
  • AOI九宫格系统详解
  • AOI广播与消息去重
  • Base 模块
  • Core 模块
  • Runtime 模块
  • Data 模块
  • Network 模块
  • /modules/actor.html
  • Game 模块
  • BigWorld 模块
服务器应用
API 参考
QA
GitHub
指南
  • 架构概述
  • BigWorld 架构深度解析
  • BigWorld 进程架构与玩家生命周期
  • AOI九宫格系统详解
  • AOI广播与消息去重
  • Base 模块
  • Core 模块
  • Runtime 模块
  • Data 模块
  • Network 模块
  • /modules/actor.html
  • Game 模块
  • BigWorld 模块
服务器应用
API 参考
QA
GitHub
  • MMORPG 架构 QA

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、行为树与仇恨系统实践资料
在 GitHub 上编辑此页
最后更新: 3/20/26, 6:06 AM
贡献者: cuihairu