Unity 3d oyun ortamında akıllı ajanlar ile kaçma-kovalama oyun tasarımı

thumbnail.default.placeholder
Tarih
2020
Yazarlar
Şahin, İhsan
Süreli Yayın başlığı
Süreli Yayın ISSN
Cilt Başlığı
Yayınevi
Fen Bilimleri Enstitüsü
Özet
Kaçma-kovalama oyunları, engelden kaçma, kaçan ajan takibi ve yol takibi gibi diğer birçok problemi kapsayan bir problem olarak görüldüğü için çeşitli çalışmalarda tercih edilmektedir. Kaçma-kovalama oyunlarında temel amaç bir veya birden fazla sayıdaki kovalayan ajanın bir veya birden fazla sayıdaki kaçan ajanı en kısa sürede yakalamasıdır. Araştırmacılar, kaçma-kovalama oyunlarını genellikle karmaşık ve dinamik ortamlarda kaçan ajanı yakalamak için ortaya çıkan yol bulma probleminde kullanmaktadır. Kaçma-kovalama oyunundaki bu tür problemi çözmek için çeşitli yöntemler önermişlerdir; bu yöntemler arasında dinamik programlama, oyun teorisi, bulanık mantık ve yapay sinir ağları sayılabilir. Bu tez çalışmasında, Unity 3D oyun motorunda kaçma-kovalama oyunu tasarlanmıştır. Bu oyun motorunun tercih edilme sebebi ise kolay kullanımı ve fizik motoruna sahip olmasıdır. Kaçma-kovalama oyunu için oyun motorunda kontrol araç kutusu ve navigasyon araç kutusu kullanıldı. Kontrol araç kutusunda navigasyon ağ ajan elemanı, dönüşüm elemanı, sert gövde elemanı, çarpışma elemanı ve kod elemanı oyun tasarımı için tercih edildi. Navigasyon ağ ajan elemanı, ajanlara oyun alanı içerisinde otonom hareket etmesi, engellerden kaçınması ve hedef takip etmesi için çizgisel ve açısal hız sağlamaktadır. Sert gövde elemanı fizik motorunu kullanmaktadır. Bu eleman ile oyun alanına yer çekimi ve ajanlara kütle eklenmektedir. Ayrıca sert gövde elemanı ajanlara kuvvet ve tork uygulayarak hareket ettirmektedir. Çarpışma elemanı da fizik motorunu kullanmaktadır. Bu eleman ile ajanlar ve oyun alanı fiziksel çarpışma özelliği kazanmaktadır. Kontrol araç kutusunda kullandığımız son eleman olan kod elemanı ile ajanların hareketleri kontrol edilip, yapay zekâ sistemi oluşturulmakta ve ajanlar arasında haberleşme sağlanmaktadır. Navigasyon araç kutusu ile oyun alanında navigasyon ağları oluşturuldu. Bu ağlar ile ajanlar oyun alanında otonom hareket edebilmekte, engellerden kaçabilmektedir. Navigasyon ağları yapısında A* algoritması bulunmaktadır. Bu algoritma sayesinde ajanlar hedef takibi için en kısa yolu hesaplayabilmektedir. Bu tez kapsamında, Unity 3D oyun motorunda kullanılan araç kutularının özellikleri ve oyun objeleri ile kaçma-kovalama oyun tasarımı yapıldı. Öncelikle oyun alanı için zemin, duvar ve engeller tasarlandı. Oyunun amacı doğrultusunda kaçan ajan tarafından toplanması gereken kâğıtlar oyun alanına eklendi. Daha sonrasında oyuna bir adet kaçan ajan ve dört adet kovalayan ajan yerleştirildi. Kırmızı, mavi, turuncu ve pembe ajanlar kovalayan ajanlar, sarı ajan ise kaçan ajandır. Kaçan ajan insan kullanıcı tarafından kontrol edilirken, kovalayan ajanlar geliştirilen stratejiye göre kaçan ajanı yakalamaya çalışır. Kovalayan ajanların oyunda devriye hareketi için dinamik yol nokta yapısı oluşturuldu. Dinamik yol nokta yapısı ile kovalayan ajanlar oyun alanın tüm bölgelerine gitme olasılığı kazanmıştır. Ayrıca kovalayan ajanlara oyun içerisinde görüş menzili oluşturmak için görüş hattı yapısı eklendi. Bu sayede kovalayan ajanların görüş hattı içerisinde kaçan ajan bulunduğunda yakalamaya çalışır. Kaçan ajan görüş hattında olmadığı durumda kovalayan ajanlar oyun içerisinde devriye olarak hareket edecektir. Tasarlanan dinamik yol nokta yapısı ve görüş hattı yapısı tüm kovalayan ajanlarda bulunmaktadır. Kaçma-kovalama oyun modelinde kovalayan ajanların çizgisel hızı kaçan ajandan büyük ve kovalayan ajanların yön açısı kaçan ajanın yön açısından küçük olacak şekilde oluşturuldu. Ayrıca tasarlanan modelde yakalanma tanımı kaçan ajan ile kovalayan ajanların yüzey teması olarak belirlendi. Bu modelde kaçan ajan ile kovalayan ajan arasındaki Öklid mesafesini hata sinyali olarak düşünülebilir. Bu hata sinyalini minimize etmek ve kaçan ajanı yakalamak için kovalayan ajanlara çeşitli kontrolör tasarımı yapıldı. Bu kontrolörler ile kovalayan ajanların çizgisel hızları kontrol edildi. Kovalama sırasında kovalayan ajanlara yön açıları ise oyun motorunda gerekli hesaplama yapılarak sağlandı. Kırmızı ajanda Öklid mesafesini azaltması için PD kontrolör tasarımı yapıldı. Böylece kaçan ajan kırmızı ajanın görüş hattına girdiğinde, kırmızı ajan kaçan ajanı aralarındaki mesafe değişimine göre çizgisel hızını kontrol edecektir. Ayrıca oyunda kâğıt sayısı azaldıkça kırmızı ajanın çizgisel hızı artmaktadır. Kırmızı ajan görüş hattında kaçan ajan olmadığında oyun alanında devriye olarak gezinmektedir. Mavi ve turuncu ajan Öklid mesafesini azaltmak için P kontrolör tasarımı yapıldı. Böylece kaçan ajanı mavi ve turuncu ajan sabit hızla kovalamaya çalışacaktır. Ayrıca bu iki ajana, kırmızı ajan ile haberleşme özelliği sağlanmıştır. Bu sayede mavi ve turuncu ajan oyun içerisinde kırmızı ajanın konumu hakkında bilgi sahibi olmaktadır. Kaçan ajan ile kırmızı ajan arasındaki Öklid mesafesi azaldığında mavi ajan sol taraftan, turuncu sağ taraftan yakalamaya çalışacaktır. Oyunda kâğıt sayısı azaldıkça mavi ajanın açısal hızı ve turuncu ajanın görüş hattı açısında artış meydana gelmektedir. Mavi ve turuncu ajan da görüş hattında kaçan ajan olmadığı durumlarda oyun alanında devreyi gezmektedir. Pembe ajana strateji geliştirmek için bulanık mantık kullanılmıştır. Bulanık mantık tercih edilme sebebi bulanık mantık tabanlı sistemlerin doğrusal olmayan etkenler ve bilinmeyen sistem dinamikleri karışışında başarılı bir şekilde cevap vermesidir. Bu bağlamda, pembe ajana yakalama stratejileri tanımlamak için "Takagi-Sugeno-Kang" tipi iki adet bulanık sistem tasarlanmıştır. Bu sistemler pembe ajanın görüş hattında kullanılmıştır. Bulanık sistemler iki giriş, bir çıkışa sahiptir. Sistemin girişleri ise kaçan ajan ile pembe ajan arasındaki mesafe ve bu mesafenin birim zamandaki değişimidir. Birinci bulanık sistem fizik motorunun pembe ajana uygulaması gereken kuvvet değerini hesaplamaktadır. Bu kuvvet ile pembe ajanın kaçan ajanı yakalaması gereken çizgisel hız oluşur. Böylelikle pembe ajan, kaçan ajanla arasındaki değişim gösteren mesafeye göre çizgisel hızını ayarlamaktadır. Tasarlanan ikinci bulanık sistem ise pembe ajanın kaçan ajanı yakalaması için gitmesi gereken konumu hesaplamaktadır. Böylece iki adet bulanık sistem ile akıllı bir kovalama stratejisi geliştirildi. Kovalayan ajanlar için tasarlanan kontrolör yapılarını karşılaştırmak için Unity 3D oyun ortamında çalışmalar yapılmıştır. Tüm kovalayan ajanlar oyun alanında devriye gezerken sabit hızlarla hareket etmektedir. Kovalayan ajanların görüş hattına kaçan ajan girdiğinde ise yakalamak için yapılarında bulunan kontrolör devreye girecektir. Kırmızı ajan yapısında bulundurduğu PD kontrolör ile kaçan ajanı görüş hattı içerisinde yakalamaya çalışacaktır. Değişim gösteren mesafeye göre kırmızı ajan çizgisel hızını ayarlamaktadır. Ancak kırmızı ajan kaçan ajanla yüzey teması sağlayamadığı için kaçan ajanı yakalayamamıştır. Mavi ve turuncu ajan ise P kontrolör ile kaçan ajanı değişim gösteren mesafede sabit hızla kovalamıştır. Bu iki ajanda kırmızı ajan gibi kaçan ajanla yüzey teması sağlayamadığı için kaçan ajanı yakalayamamıştır. Pembe ajan için tasarladığımız bulanık sistemler ile kaçan ajanı yakalaması için gerekli olan çizgisel hız ve gitmesi gereken konum bilgisi hesaplanmıştır. Pembe ajan tasarladığımız iki adet bulanık sistem sayesinde kaçan ajan ile yüzey teması sağlayıp yakalamış oldu. Böylece tasarladığımız bulanık sistemler ile tatmin edici kovalama performansı sağlanmış ve akıllı kovalama stratejisinin diğerlerine göre üstün olduğu görülmüştür. Ayrıca kaçan ajan tarafından toplanan kâğıtların kırmızı ajanın çizgisel hızına, mavi ajanın açısal hızına ve turuncu ajanın görüş hattı açısına olan etkisi gösterilmiştir.
Açıklama
Tez (Yüksek Lisans)-- İstanbul Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 2020
Anahtar kelimeler
Unity 3D oyun, oyun tasarımı, koçma-kovalama oyunları
Alıntı