游戏AI系统设计指南,涵盖从基础状态机到高级群体AI的完整知识体系。核心区别:学术AI追求"正确",游戏AI追求"有趣"。
掌握FSM有限状态机、行为树、GOAP目标导向行动规划、Utility AI效用系统等核心决策架构,以及群体AI、强化学习、动态难度调整等高级话题。
Godot实现示例
💡 选择建议:简单AI用FSM,复杂Boss用行为树,策略游戏用GOAP,模拟游戏用Utility AI
📝 FSM巡逻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)
📝 行为树基础结构
class_name BehaviorTree
extends Node
enum Status { SUCCESS, FAILURE, RUNNING }
func tick(actor: Node, blackboard: Dictionary) -> Status:
return Status.FAILURE
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