0Pricing
Lua Academy · Ders

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  = {},
  }
end

Durumları 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
end

FSM'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
end

Hiyerarş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

  1. Lua'da Olay Sistemleri
  2. Bileşen Tabanlı Betikleme
  3. Durum Makineleriyle Yapay Zeka Davranışı
  4. Veri Odaklı Yapılandırma ve Sıcak Yeniden Yükleme
← Lua Academy Sayfasına Dön