← 返回能力图谱
SKILL: GAME-AI-DESIGN

🎮 游戏AI设计 🧠

NPC行为系统 · FSM有限状态机 · 行为树 · GOAP目标导向规划 · Utility AI效用系统

游戏AI系统设计指南,涵盖从基础状态机到高级群体AI的完整知识体系。核心区别:学术AI追求"正确",游戏AI追求"有趣"

掌握FSM有限状态机、行为树、GOAP目标导向行动规划、Utility AI效用系统等核心决策架构,以及群体AI、强化学习、动态难度调整等高级话题。

NPC行为系统

🔀 有限状态机 (FSM)

  • 状态定义与转换 精通
  • 状态进入/退出处理 精通
  • 分层状态机(HFSM) 高级
  • Godot状态机实现 精通
  • 适用:简单敌人、道具、门

🌳 行为树 (BT)

  • Sequence/Selector节点 精通
  • Decorator装饰器 高级
  • Parallel并行节点 高级
  • 黑板数据共享 高级
  • 适用:复杂Boss、队友AI

🎯 GOAP规划

  • 世界状态建模 高级
  • 动作前置条件与效果 高级
  • A*动作规划 高级
  • 动态重新规划 中级
  • 适用:策略游戏、沙盒

📊 Utility AI

  • 响应曲线设计 高级
  • 因素权重平衡 高级
  • 多因素决策融合 高级
  • 平滑行为过渡 高级
  • 适用:模拟游戏、RPG

决策系统对比

系统 适用场景 复杂度 灵活性 性能 可调试性
FSM 简单敌人、道具 极高 极高
行为树 复杂Boss、队友AI
GOAP 策略游戏、沙盒
Utility AI 模拟游戏、RPG
分层FSM 中等复杂度NPC 中-高
HTN RTS、复杂任务 极高 中-低

Godot实现示例

💡 选择建议:简单AI用FSM,复杂Boss用行为树,策略游戏用GOAP,模拟游戏用Utility AI

📝 FSM巡逻AI代码示例

# npc_patrol.gd - 简单巡逻AI class_name PatrolNPC extends CharacterBody2D enum State { IDLE, PATROL, CHASE, ATTACK } @export var patrol_points: Array[Marker2D] = [] @export var move_speed: float = 100.0 @export var detection_range: float = 200.0 var current_state: State = State.IDLE var player: Node2D = null func _ready(): player = get_tree().get_first_node_in_group("player") _enter_state(State.PATROL) func _physics_process(delta): match current_state: State.IDLE: _process_idle(delta) State.PATROL: _process_patrol(delta) State.CHASE: _process_chase(delta)

📝 行为树基础结构

# behavior_tree.gd - 行为树基类 class_name BehaviorTree extends Node enum Status { SUCCESS, FAILURE, RUNNING } func tick(actor: Node, blackboard: Dictionary) -> Status: return Status.FAILURE # Sequence节点 - 顺序执行,失败即停 class_name BTSequence extends BehaviorTree @export var children: Array[BehaviorTree] = [] func tick(actor: Node, blackboard: Dictionary) -> Status: for child in children: var status = child.tick(actor, blackboard) if status == Status.FAILURE: return Status.FAILURE if status == Status.RUNNING: return Status.RUNNING return Status.SUCCESS

高级话题

🐦 群体AI / Boids

  • 分离(Separation) 高级
  • 对齐(Alignment) 高级
  • 凝聚(Cohesion) 高级
  • 避障与寻路 中级

🧠 强化学习

  • Q-Learning基础 中级
  • 奖励函数设计 高级
  • 状态空间定义 高级
  • 训练与部署 中级

📈 动态难度(DDA)

  • 性能评估指标 高级
  • 隐式DDA技术 高级
  • 橡皮筋效应 中级
  • 参数动态调整 高级

👁️ 感知系统

  • 视线检测(LOS) 精通
  • 视野锥检测 高级
  • 听觉/触觉感知 中级
  • 记忆与遗忘系统 中级

使用场景

👾

简单敌人AI

巡逻、追击、攻击的敌人,使用FSM状态机即可高效实现

👹

复杂Boss AI

多阶段、技能组合、战术决策,行为树是最佳选择

⚔️

策略游戏

单位自主决策、资源管理、战术规划,GOAP提供高度灵活性

🌍

模拟游戏

生态系统、NPC日常行为,Utility AI实现自然涌现行为

技术栈

Godot Engine Behavior Trees GOAP Utility AI GDScript A* Pathfinding State Machines Q-Learning

参考资料

📚 经典书籍

  • 书籍AI Game Programming Wisdom 系列
  • 书籍Programming Game AI by Example - Mat Buckland
  • 书籍Artificial Intelligence for Games - Ian Millington

📄 论文与文章

  • 论文Boids: Background and Update - Craig Reynolds
  • 论文Planning in Games - 游戏规划算法综述
  • 文章The Use of Utility in AI - Utility AI理论

💡 核心原则:优秀的游戏AI不是追求"智能",而是追求"有趣"。始终从玩家体验出发设计AI行为。可读性、可预测性、可反应性是设计关键。