HTML5 Tabanlı Oyunlar için Yapay Zekâ Kütüphanesi: DignityAI – 2

0
85
dignity
dignity

OYUNLARDA KULLANILAN YAPAY ZEKÂ KÜTÜPHANELERİ

Oyunlarda bugüne kadar bir çok farklı yapay zeka kütüphanesi kullanılmış ve bunların çoğu oyun motorları içerisinde entegre olan, oyun motoru kullanılmadan çalışmayan kütüphanelerdir. Burada asıl incelenmesi gereken nokta, oyun motorlarından bağımsız olarak çalışan yapay zeka kütüphaneleridir. Çünkü, bu çalışmada geliştirilen DignityAI tamamen oyun motorundan bağımsız bir yapı ile tasarlanmıştır ve her oyun motoruna uygulanabilecek bir yapı sunmaktadır.

Kythera yapay zeka kütüphanesi, son yıllarda çok ünlenen ve büyük oyunlarda kullanılmaya başlanan bir yapay zeka kütüphanesidir. Bu oyunların başında Star Citizen gelmektedir. Algılama, hedef seçme, saklanma ve grup koordinasyonu gibi klasik işlevlerin yanında, dinamik yön bulma (dynamic navigation) ve davranış ağaçları (behavior trees) bakımından diğer kütüphanelerin önüne geçmektedir. Kythera Windows, Mac ve Linux ile 32-bit ve 64-bit işlemci mimarilerine destek veren C++ tabanlı bir sistem olarak tasarlanmış ve tüm oyun motorlarına entegre edilebilir şekilde dizayn edilmiştir. Ancak, HTML5 ile entegrasyonu bulunmamaktadır.

Havok AI yapay zeka kütüphanesi, yön bulma (path-finding) ve yol izleme gibi temel navigasyon fonksiyonlarına odaklanmış bir yapay zeka kütüphanesidir. En belirgin özelliklerinden birisi otomatik navigasyon mesh oluşturabilmesidir. Havok AI, C++ ile geliştirilmiş ancak lider tüm platformlara destek verebilir haldedir. Ancak, HTML5 ile entegrasyonu bulunmamaktadır.

Rain yapay zeka kütüphanesi, Unity oyun motoru için geliştirilmiş ancak Unity’den bağımsız satılan ve dağıtılan bir yapay zeka kütüphanesidir. Otomatik navigasyon mesh oluşturma, yol bulma (path-finding), rota takibi (path-following) gibi gelişmiş navigasyon özelliklerini içerir. Ancak, HTML5 desteği bulunmamaktadır. Unity 5 ile birlikte WebGL export seçeneği getirilmiş ancak bu doğal (native) bir HTML5 çıktısı vermemektedir.

Kynapse yapay zeka kütüphanesi,  Autodesk firması tarafından geliştirilen ve şimdilerde Gameware Navigation ve Gameware Cognition isimleri ile iki farklı ürüne ayrışan geniş bir yapay zeka kütüphanesidir. Gameware Navigation, klasik yön bulma ve navigasyon gerekliliklerine çözüm arayan bir yapay zeka kütüphanesidir. Gameware Cognition ise görsel programlama altyapısı sunarak davranış ağaçları (behavior trees) oluşturmaya yarayan bir araçtır.

PathEngine yapay zeka kütüphanesi, Şimdiye kadar geliştirilmiş en iyi yön bulma (path-finding) algoritmalarına odaklanmış yapay zeka kütüphanesidir. Dinamik navigasyon mesh oluşturma, dinamik engel tanımlama, çarpışma algılama gibi etkin özellikleri ile birlikte çok iyi tasarlanmış bir hareket modeline sahip olan PathEngine bir çok büyük yapımda kullanılarak kendisini ispat etmiştir.

Masa Life yapay zeka kütüphanesi, karar verme üzerine odaklanan bir yapay zeka kütüphanesidir. Windows üzerinde çalışan C++ ile geliştirilmiş ve ufak bir Unity Windows entegrasyonu olan Masa Life, daha çok karar verme mekanizmaları, davranış ağaçları (behavior trees), navigasyon gibi konulara eğilmiştir. Bu konuların yanı sıra akıl yürütme, bilgi sunumu ve işleme gibi çalışma alanları bulunmaktadır.

Cyntient yapay zeka kütüphanesi, oyun sektörü için geliştirilmiş bir yapay zeka kütüphanesidir. Sanal karakterlerin birbirlerinin davranışlarını öğrenerek analiz etmelerini ve harekete geçmelerini sağlayan bir sistemdir. Zeki ve duygusal karakterler yaratarak gerçekçi bir deneyim sunmayı amaçlayan Cyntient, Galak-Z isimli oyunla açık dünya bir uzay oyunu geliştirmeyi hedeflemektedir.

Yukarıdaki gibi bir çok yapay zeka kütüphanesi bulunmakta ve bunlara ek olarak bir de oyun motorlarının içerisindeki entegre yapay zeka modülleri bulunmaktadır. Ancak bu sistemlerin hiçbirisi HTML5 ve WebGL gibi teknolojilere entegre edilmedikleri için bir noktada platform bağımlı ve geliştirilmesi için üstün sistemler gerektirmektedir. Geliştirilen DignityAI kütüphanesi bu bağlamda, HTML5 ve WebGL üzerine odaklanmış, yön bulma, karar verme, davranış ve görev yönetimi gibi bir çok klasik yapay zeka öğesini barındırır.

DignityAI tamamen açık kaynak kodlu olduğu için diğer tüm yapay zeka kütüphanelerinden ayrılmaktadır. Bunun yanında çok güçlü bir altyapı ile hemen hemen tüm oyun türlerinde kullanılabilecek bir mimari yapıda tasarlanarak, HTML5’in gücü ile tüm tarayıcı tabanlı sistemlerde kullanılması hedeflenmektedir.

OYUN TÜRLERİ İLE YAPAY ZEKÂ İLİŞKİSİ

Şimdiye kadar hazırlanan çoğu oyun motoru belli bir türe özgü oyunlar geliştirmek ve bu oyunlar içerisindeki belli işlevleri yerine getirmek üzerine kurulu bir yol izleyerek çalışmalarına devam etmiştir. Bu konunun türe özgü olmasındaki en büyük etkenlerden birisi, oyunların diğer sistemlere göre çok karmaşık yapıda olmaları ve oyun ve/veya oyun motoru geliştirenlerin problemi parçalara bölerek çözme yoluna odaklanmaları olarak özetlenebilir.

 

Oyun türleri, oyun motorlarını şekillendirirken yapay zeka kütüphanelerini de özelleştirmiştir. Öyle ki her oyun türünün kendine özgü farklı mekanikleri bulunmaktadır. Aşağıda verilen her bir paragrafta, farklı oyun türlerinin yapay zeka ile ilişkileri verilmiştir.

 

Aksiyon (Action – FPS, TPS) oyunları genellikle, First Person Shooter (FPS) ve Third Person Shooter (TPS) oyun türlerinde geliştirilirler. Aksiyon oyunlarının olmazsa olmaz mekaniklerinden birisi yol bulma (path-finding) özelliğidir. Bir diğer özellik ise düşman yapay zekası olarak isimlendirebileceğimiz EnemyAI kavramıdır. Bu tip aksiyon oyunlarında genelde bir düşman olur ve bu düşman belli zeka seviyelerinde farklı davranışlar gösterir. Bu davranışlar için de mutlaka davranış ağaçları (behavior trees) olması gerekir. Hangi olay karşısında hangi tepkiyi vereceklerini bilmeleri gerekir ve karar verme (decision making) mekanizmaları gelişmiş olmalıdır. Aksiyon oyunları, genelde tek başına (single player) oynama modunda tasarlandıkları için oyuncunun dışındaki tüm diğer öğeler yapay zekalı olmak zorundadır. Bu yönüyle yapay zekanın en çok kullanıldığı oyun türlerindendir.  

Rol yapma oyunları (RPG), bilgisayarlar ilk çıktığından beri var olan bir oyun türü olarak karşımıza çıkmaktadır. RPG oyunları devasa haritalarda oynanan ve oyuncunun belli görevleri yerine getirerek kendi seviyesini geliştirmesi şeklinde tanımlanabilir. Ancak, bu oyun tarzı bu kadar basit ifade edilmesine rağmen zamanla çok kompleks oyunlara evrilmiş ve bir çok mekaniği barındırarak online tarafa da kayıp MMORPG (Massively Multiplayer Online Role Playing Games) oyun türünü oluşturmuştur. RPG oyunlardaki yapay zeka, kontrol edilen karakterin yol bulma ve bir yerden başka bir yere gitmesi ile başlar. Karakterin bir envanter listesi bulunur, bu envanter listesinde silahları, yiyecekleri, kıyafetleri gibi bir çok çeşitli materyal bulunabilir. Karakter, karşısına gelen düşmanın hangi silahla öldürüleceğini deneyerek öğrenir, düşmanın da belli silahları ya da büyü gücü olabilir. Ancak buradaki karakterler genellikle basit davranış ağaçları (behavior trees) barındırarak algılama, silah kullanma gibi temel aksiyonları kullanırlar. RPG türündeki oyunları diğer türlerden ayıran en büyük özellik ise etkileşimli nesnelerin çokluğudur. 

 

RPG oyunlarda kullanılan yapay zeka tekniklerinden biri de Baldur’s Gate serisi gibi devasa haritalar üzerinde gerçekleşen oyunlar içerisinde kullanılan ve detay seviyesine (level of detail/LOD) göre yapay zeka olarak isimlendirilen bir tekniktir. Uygulanan bu teknik sayesinde karakterden uzak olan nesnelerin yapay zekalarının işletilmesi engellenerek CPU’yu yorması engellenir. Bu sayede daha hızlı ve kararlı çalışan yapay zeka sistemleri tasarlanabilir. (Rabin, 2002)

Gerçek zamanlı strateji (RTS) oyunları, belki de yapay zekanın en çok kullanıldığı oyun türlerinden birisidir. Strateji ile yönetilen herhangi bir ordu, şehir vb. oyuncu tarafından yönetilirken, aynı zamanda diğer ordu, şehir gibi öğeler de yapay zeka tarafından yönetilirler. RTS oyunları yapay zeka açısından geliştirilmesi en zor oyunlardan birisidir. Çünkü CPU yapay zeka ile yorulurken grafiksel olarak da oluşan binalar, oradan oraya giden karakterler gibi bir çok nesneyi işlemek zorundadır. Optimizasyon olarak zorluğunun yanında, yapay zeka öğelerinin zenginliği bakımından da çok detaylıdır. B oyun tu ru nde, sonlu durum makineleri (finite-state machine) statik go revli birimler için sıklıkla kullanılır. Davranış ag açları (behavior trees) ve yol bulma (path-finding) becerilerinden yararlanılır. Ancak stratejik birimlerin modellenmesinde mantıksal durum makineleri (fuzzy state machine/FuSM) olarak adlandırılan bir yapı kullanılır. Mantıksal durum makineleri sistem içerisinde bir çok detayı hesaplayarak karar veren bir yapıya sahiptir. RTS oyun tu ru nde kullanılan bir dig er durum ise hiyerarşik yapay zeka (Hierarchical AI) olarak adlandırılan yapıdır. Bu yapı şo yle o rneklenebilir. Bir yere atak yapılırken asıl hedef olmasa bile yolda karşılaşılan dig er du şmanlarla da savaşmak gerekecektir. Bu durumda hiyerarşik olarak yeni go rev o ne alınacak ve ço zu ldu kten sonra asıl hedefe ilerlenecektir.

Macera (Adventure) oyunları, çok eski bir tu r olmasına rag men gu nu mu zde Walking Dead serisi ile yaşatılmaya devam eden ve çok da oynanan bir tu rdu r. Macera oyunlarında genelde oyuncunun belli bir akışı takip etmesi istenmez ve kendi kendine ortamı keşfetmesi, bununla birlikte ortamda gizli nesneleri bularak veya bunları toplayarak bir sonraki etaba geçmesi istenir. Macera oyunları içerisinde genel du şman yapay zekası, algılama sistemleri ve klasik davranış ag açları (behavior trees) yer almaktadır. 

 

Platform oyunları, bilgisayar oyunlarının ilk yıllarından bu yana popu lerlig i hiç du şmeyen ve gelişen mobil teknolojiler ile birlikte tekrar gu ndeme gelen bir oyun tu ru du r. Platform oyunlarında genelde pathfinding (yol bulma) gibi bir o g e bulunmamaktadır. En basit ve yapay zeka açısından en az karmaşık olan oyun tu ru du r.

 

Platform oyunlarında kullanılan en karmaşık yapay zeka oyunların harita tasarımlarındadır. Prosedu rel olarak bo lu mlerin oluşturulması işi platform oyunlarında genelde yapay zeka tarafından yapılır. Hatta bu işlem RPG ve strateji oyunlarındaki bo lu m tasarım işleminden bile zordur. Çu nku  deg işiklikler çok az oldug u için birbirini tekrar etmeyen nesnelerin ve tekdu zelig i yok edecek bo lu mlerin tasarlanabilmesi için akıllıca bir yapay zeka algoritmasına gerek duyulur. (Compton vd.,  2006)

Spor (Sport) oyunları, yapay zekanın en ag ır kullanıldıg ı alanlardan birisidir. Spor oyunlarındaki yapay zeka çok komplekstir, uygulandıg ı spor dalıyla ilgili kurallar setini ve bir takım hesaplamaları içerir. Spor oyunlarında genellikle senso rler, algılamaya dayalı ve belli davranış ag açları şeklinde kompleks bir yapay zeka bulunur. Ayrıca, oyunun ilerleyişinin yanında yapılacak deg işiklikler, taktik sisteminin deg iştirilmesi vb. gibi durumlar için de taktiksel bir yapay zekanın bulunması gerekmektedir. Klasik sonlu durum makineleri (finite-state machine) kullanımına ek olarak mantıksal durum makineleri (fuzzy-state machine) kullanımı ve veriye dayalı sistemler (data-driven systems) sıklıkla kullanılır. Çu nku , oyun içerisinde bir çok yerde veriler deg işecek, oyuncunun performansı, kondisyonu gibi parametreler izlenerek, bu parametrelere go re durum makineleri tarafından işlenecektir.

Yarış (Racing) oyunları, kendilerine o zel yapay zeka mekanikleri olan oyunlardır. Yarış oyunlarında kullanılan yapay zeka genellikle, parkur go sterimi, dig er yarışçıların çizgilerini kontrol etme ve bulma, yapay zekalı karakterin yarış aracını (motor, araba, uçak vb.) kontrolu  olarak sınıflandırılabilir. Bunların yanında, yapay zeka kontrollu  araba modifikasyonu ve ayarlamaları ile bu alanda yapılan yenilikler de go ru lmektedir. (Beirne, 2007)

 

@berkanuslu

Facebook Yorumları