Durum Makineleriyle Yapay Zeka Davranışı
Tamamen Lua betikleriyle FSM tabanlı düşman yapay zekası mantığını uygulayın.
Durum Makineleriyle Yapay Zeka Davranışı, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.
Sonlu Durum Makinesi Nedir?
Sonlu Durum Makinesi (FSM), davranışı, koşullar veya olaylar tarafından tetiklenen geçişlerle birbirine bağlanan bir dizi durum olarak tanımlar.
FSM Tablo Yapısı
Bir FSM'yi mevcut durum, durumlar tablosu ve her durum için isteğe bağlı giriş/çıkış/güncelleme geri çağrıları içeren bir tablo olarak temsil edin.
local function newFSM(initialState)
return {
current = initialState,
states = {},
}
endDurumları Tanımlama
Her durum, isteğe bağlı enter, update ve exit işlevleri içeren bir tablodur.
local fsm = newFSM("idle")
fsm.states.idle = {
enter = function(self) print("Enter idle") end,
update = function(self, dt)
if self.enemy then self:transition("chase") end
end,
exit = function(self) print("Exit idle") end
}Takip Durumunu Ekleme
Takip durumu oyuncuyu izler ve yeterince yaklaştığında saldırı durumuna geçer.
fsm.states.chase = {
enter = function(self) print("Chasing!") end,
update = function(self, dt)
if self.distToPlayer < 2 then
self:transition("attack")
elseif not self.enemy then
self:transition("idle")
end
end
}Geçiş İşlevi
Bir geçiş, mevcut durumun exit işlevini çağırır, durumu değiştirir ve ardından yeni durumun enter işlevini çağırır.
function fsm:transition(newState)
local cur = self.states[self.current]
if cur and cur.exit then cur:exit() end
self.current = newState
local next = self.states[newState]
if next and next.enter then next:enter() end
endFSM'yi Güncelleme
Mevcut durumun güncelleme mantığını çalıştırmak için her oyun işlem adımında fsm:update(dt) çağrısını yapın.
function fsm:update(dt)
local state = self.states[self.current]
if state and state.update then
state:update(dt)
end
endHiyerarşik Durum Makineleri
Durumlar iç içe FSM'ler içerebilir. Üst durum genel davranışı (savaş veya devriye) yönetirken alt FSM'ler her üst durumun içindeki ayrıntıları yönetir.
Veri Odaklı FSM'ler
FSM geçişlerini yapılandırma dosyalarından yüklenen veri tabloları olarak tanımlayın. Böylece tasarımcılar koda dokunmadan yapay zekâyı değiştirebilir.
local transitions = {
idle = {seeEnemy = "chase"},
chase = {lostEnemy = "idle", nearEnemy = "attack"},
attack = {enemyDead = "idle"},
}Yığılmış Durum Makineleri
Bir durum yığını, geçici durumların (örneğin "stunned") mevcut durumun üzerine eklenmesine ve işleri bittiğinde mevcut duruma dönülmesine olanak tanır.
Birden Çok Yapay Zekâ Aracısı
Her düşman varlığının kendi FSM örneği vardır; bu nedenle yapay zekâları birbirinden bağımsız çalışır. Bu, Lua tabloları ve kapanımlarıyla kolayca yapılabilir.
FSM Hatalarını Ayıklama
Geliştirme sırasında tüm geçişleri günlüğe kaydedin. Bir izleme tablosu, yapay zekâ davranışının olay sonrası analizinde kullanılmak üzere {from, to, time} bilgilerini saklar.
FSM Sorusu
Bir FSM'de durum geçişini ne tetikler?
Özet: Durum Makineleriyle Yapay Zekâ
Lua FSM'leri, bir geçiş işleviyle birlikte durum nesnelerinden (enter/update/exit) oluşan bir tablo kullanır. Yapay zekâ sorumluluklarını temiz biçimde ayırır, veri odaklı tasarımı destekler ve basit düşman davranışlarından karmaşık hiyerarşik davranış ağaçlarına kadar ölçeklenebilir.
Sıkça Sorulan Sorular
“Durum Makineleriyle Yapay Zeka Davranışı” dersi ücretsiz mi?
Evet — “Durum Makineleriyle Yapay Zeka Davranışı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.
“Durum Makineleriyle Yapay Zeka Davranışı” dersinde ne öğreneceğim?
Tamamen Lua betikleriyle FSM tabanlı düşman yapay zekası mantığını uygulayın. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Lua Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Durum Makineleriyle Yapay Zeka Davranışı” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Lua'da Olay Sistemleri
- Bileşen Tabanlı Betikleme
- Durum Makineleriyle Yapay Zeka Davranışı
- Veri Odaklı Yapılandırma ve Sıcak Yeniden Yükleme