Roblox oyunlarında inandırıcı düşmanlar oluşturmak yapılandırılmış bir karar mekanizması gerektirir. Tüm davranışları iç içe geçmiş if-else bloklarıyla tek bir koda yazmak, yol bulma hatalarına ve sunucu çöküşlerine yol açar.
Profesyonel stüdyolar genel durumlar için Sonlu Durum Makinelerini (FSM), dinamik taktikler içinse Behavior Trees yapılarını kullanır. Bu rehber Blackboard hafıza modelini, görüş açısı raycast yöntemlerini ve AI LOD sistemini ele alır.
Oyun türüne göre mimari tercihi:
Sunucuyu yormadan uzamsal farkındalık sağlama:
-- 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
Hiyerarşik karar sıralaması:
100'den fazla aktif düşmanla 60 FPS'i korumak:
Her karede tüm düşmanlar için raycast ve rota hesabı yapmak CPU'yu kilitler. AI LOD kullanmalısınız.
Karmaşık durumlarda kod bağlantılarını bozmadan araya yeni taktik düğümleri ekleme esnekliği sunar.
Göz hizasından oyuncuya raycast atılarak arada duvar olup olmadığı denetlenmelidir.
Hileleri önlemek adına hedef ve hasar kararları her zaman sunucuda verilmelidir.
Bilişsel profilinizi analiz edin ve DopaBrain araçlarıyla geliştirici yeteneklerinizi güçlendirin.
DopaBrain Bilişsel Testlerini Başlat