Создание правдоподобных врагов в Roblox требует продуманной архитектуры. Сваливание всех действий в один гигантский скрипт с десятками if-else приводит к ступору навигации и падению тикрейта сервера.
В коммерческой разработке используют конечные автоматы (FSM) для глобальных состояний и деревья поведения (Behavior Trees) для боевых тактик. В этом руководстве рассмотрены базы данных Blackboard, конусы зрения на Raycast и система AI LOD.
Выбор шаблона в зависимости от сложности логики:
Пространственное восприятие без перегрузки процессора сервера:
-- Modular Finite State Machine for Roblox NPC
local StateMachine = {}
StateMachine.__index = StateMachine
function StateMachine.new(npcInstance, states, initialState)
local self = setmetatable({}, StateMachine)
self.NPC = npcInstance
self.States = states
self.CurrentState = nil
self.Blackboard = {
Target = nil,
LastSeenPos = nil,
Health = 100,
PatrolPoints = {}
}
self:ChangeState(initialState)
return self
end
function StateMachine:ChangeState(newStateName)
if self.CurrentState and self.States[self.CurrentState].Exit then
self.States[self.CurrentState]:Exit(self.NPC, self.Blackboard)
end
self.CurrentState = newStateName
if self.States[newStateName] and self.States[newStateName].Enter then
self.States[newStateName]:Enter(self.NPC, self.Blackboard)
end
end
function StateMachine:Update(dt)
if self.CurrentState and self.States[self.CurrentState].Update then
local nextState = self.States[self.CurrentState]:Update(self.NPC, self.Blackboard, dt)
if nextState and nextState ~= self.CurrentState then
self:ChangeState(nextState)
end
end
end
return StateMachine
Построение гибкой иерархии действий:
Удержание 60 FPS при 100+ активных монстрах:
Непрерывный расчет траекторий и лучей на каждом кадре перегружает CPU. Применяйте AI LOD.
Они позволяют легко добавлять новые варианты действий без перестройки всей паутины состояний.
Пускать луч от головы NPC к торсу игрока и проверять отсутствие физических преград.
Нет, решения и регистрация урона должны оставаться на сервере во избежание читов.
Оцените свои аналитические способности и улучшите когнитивную продуктивность на DopaBrain.
Пройти когнитивные тесты на DopaBrain