Oyunlarda Kullanılan Yapay Zeka Teknikleri
Oyunlarda Kullanılan Yapay Zeka Teknikleri
Finite State Machine: FSM(Sonlu Durum Makinesi)'nin en yaygın uygulama alanına sahip AI teknolojisi olduğunu söylememiz yanlış olmaz. FSM basit anlamda, her olası durum için oluşturulan mantıksal kural ve haller hiyerarşisi olarak tanımlanabilir. Her durumun giriş ve karşılışı belirlidir ve düzenin hangi durumları ziyaret edeceği konusunda seçeneği bulunmaz. Konuya bir örnekle açıklık getirebilmek için, USS Enterprise uçak gemisinde kullanılan mantık kontrollü kapılara bir göz atalım. Normal durumlarda herhangi bir personel bir kapıya yaklaştığı zaman kapı açılmakta, uzaklaştığında ise kapanmaktadır. Kırmızı alarm durumunda ise bu kapılar sadece yetkili personeller tarafından kullanabilir. Birkaç basit hal(yetki ve yakınlık) belirli sayıdaki işlemi(açma ve kapama) kontrol eder. Düzen ise "eğer kapı açık değilse, kapatılamaz." gibi mantıksal gerçeklerle devam ettirilir.
Fuzzy State Machine: FuSM(Bulanık Durum Makinesi) birçok konuda FSM'ye benzetilebilir, ancak net bir farklılığı var. FuSM'de, belirli karşılıklar için birer giriş serisi verilmesi yerine bu girişler oluşturulan "muhtemel karşılıklar" havuzuna yönlendirilir ve bu potansiyel karşılıkların herbiri bulundukları havuzda birer ağırlığa sahiptir. Bu karşılık havuzları oluşturulduktan sonra ise tasarımcılar verilecek karşılıkları seçmek için çeşitli metotlara başvururlar. Ağırlıklar basit olasılıklar olarak kullanılabilir, yada ağırlıklar toplanıp bazı limit değerler ile karşılaştırılarak hangi karşılığın tetikleneceği görülebilir. Sonuçta, verilen uyarı serisine karşılık olarak oldukça değişik ve uygun yanıtlar oluşturabilen bir durum makinesi ortaya çıkar. USS Enterprise örneğinde FSM ile kontrol edilen kapıların verdiği karşılıklar kesin olmasına rağmen, FuSM tarafından kontrol edilen bir uzay gemisi örneği düşünüldüğünde, değişen savaş koşulları karşısında geminin verdiği tepkilerde esneklik ve seçicilik ortaya çıkar. Üstüne doğru yaklaşan bir düşman gemisi koşulunda, gemimizin
verebileceği birden fazla tepki bulunur ve koşulun yönlendiği bu tepki havuzunda durumun niteliklerine bağlı olarak kazanan karlılık verilir.
Eğer gemimizin güç ve silah durumu kötü yada hasarlı ise hemen uzaklaşma yolunu seçecek, tersi durumda ise tam saldırı durumuna geçecektir.
Genetik Algoritmalar: Genetik algoritmaları, doğal evrim sürecinden yola çıkılarak, makinenin kendi davranışlarını öğrenerek deneyim kazanmasını amaç edinen bir yaklaşım olarak tanımlayabiliriz. Bunun için makinenin içinde, insan DNA’sı yapısında bulunan kromozomlara temsil ettiği bireylerden oluşan bir topluluk yaratılıyor. Daha sonra bu toplulukta yeralan bireyler, uygun kriterler karşısında test edildikleri bir evrim sürecinin içine giriyor. Bu süreçte, kriterler karşısında başarısızlığa uğrayan bireyler gözden çıkarılıyor. Başarılı olanların ise gelişimine izin verilerek, iki yada daha fazla birey kromozomu kombinasyonu içeren yeni bireyler oluşturmaları sağlanıyor. Mutasyonlara da izin verilerek, sabit durumlara yönelim önlenir. Sonuçta kendi dijital çevrelerinin tüm
zorluklarına mükemmel bir şekilde uyum sağlamış bir bireyler topluluğu ortaya çıkar ve bunlar daima yeni koşullar karşısında yeni davranış ve nitelikler kazanma yetisine sahiptirler.
Yapay Yaşam: Y-Yaşam teknolojisi biyolojik sistemin bilgisayar ortamında yeniden oluşturulması için yapılan bilimsel çalışmalara verilen genel addır. Y-Yaşam yaşayan organizmalar gibi hareket eden sistemler inşa ederek biyolojik hayatı canlandırmaya çalışır. Tasarıma bağlı olarak bu teknolojide, karmaşık kurallar kodlanabilir, genetik algoritmalara ve başka metotlara başvurulabilir yada bunların tümü aynı sistem içine sokulabilir.
Birim Davranışları: Birim AI'si oyuna gerçeklik katmak ya da mücadeleyi sağlamak için gerçek hayattan alınan özelliklerin programlanması anlamına geliyor. Bir oyunda durduğu yerden kıpırdamayan ve tepkisiz bir nöbetçi son derece yapmacık kalabilir. Eğer bu nöbetçinin değişik zamanlarda değişik yönlere doğru bakması
sağlanırsa veya duruş pozisyonu değiştirilirse, birden bire gerçekçilik havası yakalanabilir. Şimdi sahneye önceden belirlenmiş bir hat üzerinde yürüyen ikinci bir nöbetçi ekleyelim ve bu nöbetçi gelip sabit olanın önünde durarak onunla konuşmaya çalışsın. Bu durumda gerçekçiliği kat kat arttırmayı başardık diyebiliriz. Birim AI’si tepkisel ve doğal hareketler olarak iki kategoriye ayrılır. Birimlerin çevresinde oluşan değişiklikler karşısında yaptıkları hareketler, tepkisel harekettir. Eğer bir düşman askeri sizi gördüğü anda üzerinize ateş ederek koşmaya başlıyorsa, bu sizi görmesi üzerine verdiği reaksiyondan kaynaklanır. Tepkisel davranışlar karakterin duyularına bağlı olarak gelişir. Karakterin görüş alanı ve mesafesi, duyma duyusu ve hatta koklama yeteneği, çevresindeki değişiklikleri
belirlemesinde başvurulan etmenlerdir. Daha gerçekçi yaklaşımlar yakalamak amacıyla günümüz oyunlarında değişik duyumlar için değişik tepki seviyeleri oluşturulmakta. Eğer bir birimin direk görüş alanına bir düşman askeri girecek olursa, hemen alarm moduna geçerek düşmana karşı koyması için gereken reaksiyonu sergileyecektir. Aynı asker düşmanı görmeyip sadece silah sesi duyduğunda ise, sesin geldiği yönde bir araş_tırmaya çıkabilir. Yine düşmanı görmediği bir durumda,
bu sefer ayak seslerini duyarsa, onu pusuya düşürmek için gerekli pozisyonu bulmaya çalışacaktır. Doğal davranışlar ise çevresel etkiler ve değişikliklere bağlı olmayıp, karakterin olağan eylemlerini temsil eder ve oyun dünyasına canlılık katan en önemli unsurlardan biridir. Eğer oyunda karşılaşılan her karakter durduğu yerde sizin gelip de kendisini öldürmenizi ya da kendisiyle konuşmanızı bekliyor; daha da kötüsü anlamsız bir şekilde etrafta dolaşıyorsa bu hiç de oyuncuyu ikna edici bir durum değildir. Bu gibi durumları önlemek için tasarımcılar, belirlenen bir hat üzerinde karakterin gidip gelmesi yada belirlenen bir alan içerisinde rastgele dolaşması, karşılaşan iki karakterin birbirlerine laf atmaları gibi değişik
metotlar uygulayarak oyun zenginliğini sağlamaya çalışıyor.
Yapay Sinir Ağları: Oyunlarda öğrenme işlemini gerçekleştirmek için YSA kullanılabilir. Bir strateji oyunununda oyuncular genellikle temel olarak aynı özelliklere sahip yöntemleri takip ederek sonuca ulaşmaya çalışırlar. Sizin standart eylemlerinizi "öğrenen" bir rakip YZ size çok etkileyici gelecek ve sizi stratejilerinizi değiştirmeye zorlayacaktır. Oyunlarda kullanılan bir diğer yapay zeka tekniği hile(cheat)dir. Bu özellikle bazı oyun türlerinde oldukça kolaydır. Örneğin; aksiyon oyunlarındaki bilgisayar rakipler duvarların ötesini görebilme yeteneğine sahip olabilir. Benzer şekilde strateji oyunlarında da bilgisayar rakipler oyuncunun karşılaştığı karmaşık kaynak yönetimine ihtiyaç duymaksızın gerekli birimleri üretebilir.
Hile işlemci açısından çok verimli ve başarılı bir tekniktir. Eğer kötü bir şekilde yapılır ve oyuncu tarafından fark edilirse oyun etkileyiciliğini kaybeder, oyuncu oyundan tatmin olmaz.