24 Eylül 2017 Pazar

Yapay Zeka Oyunları - 2

Parça parça yayınlamakta olduğum Yapay Zeka Oyunları'nın 2. makalesini sizlerle paylaşıyorum. Yapay zeka,  Yapay Zeka Oyunları ve yapay zeka kodları ile ilgili makalelerini uzun olmaları nedeniyle sizlerle parça parça paylaşıyorum.

Yapay Zeka Oyunları; FPS Tipi Oyunlarda Yapay Zeka

FPS Tipi oyunlar genellikle silahlı ve oyuncunun bakış açısından oynanan oyunlara denmektedir. FPS tipi oyunlar genellikle yapay zeka sisteminin katmanlı yapısını uygularlar. Çok altta yer alan katmanlar, hedefe giden en uygun yolu belirlemekte (hiyerarşide daha yukarıdaki bir katman tarafından belirlenir) veya karakter animasyonunun uygun dizilerini oynatma gibi temel görevleri üstlenir. Daha yüksek düzeylerde ise taktik, mantık ve Yapay Zeka (AI) aracısının mevcut strateji nedeniyle üstlenmesi gereken davranışı seçmekten sorumludur.

Oyun içinde yol bulma sistemleri genellikle dünyayı tanımlayan grafikler üzerine kuruludur. Bir grafiğin her köşesi, mantıklı bir konumu (binadaki bir oda veya savaş alanının bir parçası gibi) temsil eder. Yapay Zeka, oyuncunun karakteri belirli bir noktaya seyahat emri verdiğinde, grafikleri kullanarak, sonraki hedef noktaya ulaşmak için ard arda yönelmesi gereken bir sonraki navigasyon noktalarını inceler ve gider. Gezinme sırasında noktalar arasında hareket ederken Yapay Zeka sistemi, aynı zamanda, iki gezinme noktası arasındaki kesin yolu belirlemeyi ve dinamik olarak ortaya çıkan engelleri önlemeyi mümkün kılan yerel yolları da kullanabilir.

Animasyon sistemi seçilen hızda uygun bir animasyon dizisi oynatır. Ayrıca, farklı vücut parçaları için farklı animasyon dizileri oynatabilmektedir. Örneğin, bir asker koşup düşmanı hedef alabilir, koşmakta iken silah ile düşmanı tekrar tekrar vurabilir ve silahı yeniden yükleyebilir. Bu tür oyunlar genellikle ters kinematik sistemini kullanır. Bir IK (ters kinematik) animasyon sistemi, kolun hareket ve konumlandırma animasyonunun parametrelerini uygun bir şekilde hesaplayabilir. Böylece el, örneğin bir masa veya raf üzerine yerleştirilmiş bir nesneyi alabilir. Üst katmanlardan gelen modüllerin görevi, duruma uygun davranışı seçmektir. Örneğin yapay zeka sistemi, aracın bölgeyi devriyeye mi, savaş mı gideceğini yoksa bir rakibi aramak için haritadan geçip yönlendirmemi yapacağı gibi davranışı seçebilir.

Yapay Zeka sistemi, hangi davranışın verilen durum için en uygun olduğuna karar verdiğinde, alt düzey bir modül bu görevi yerine getirmek için en iyi taktikleri seçmek zorundadır. Örneğin oyuncunun savaşması gerektiği konusunda bilgi aldığı anda, bu durumda en iyi olan yaklaşımı belirlemeye çalışır. Örneğin, rakibin üssüne gizlice mi girip, gizlenip - gizlenmeyeceğimizi, bir köşede saklanıp rakibin bir hedef olmasını bekleyip - beklemediğimizi veya belki de sadece koşup körü körüne ateş edeceğimiz belirleyecektir.

Yapay Zeka Oyunları; RTS Tipi Oyunlarda Yapay Zeka
RTS tipi oyunlarda, yapay zeka sisteminin çeşitli modüllerini ve katmanlı yapısını ayırmak mümkündür. Temel modüllerden biri etkili bir yol bulma sistemidir. Bazen, bölünmüş saniyeler içinde, haritadaki yüzlerce birim için bir hareket çözümü bulmanız gerekir. Yapay zeka sisteminin A noktasından B noktasına bir yol bulma haricinde daha fazla görevi vardır. Çünkü savaşı algılamak, tespit etmek ve savaş alanındaki birimlerini idare etmekle birlikte rakip birimlerden savaşmak gerekirse bu durumu öngörmektedir. Bu algoritmalar tipik olarak oyun haritasının dikdörtgen bir ızgarayla temsil edilmesine ve örgünün alanın sabit boyutlu elemanlarını temsil etmesine dayanır. Yapay zeka sisteminin hiyerarşisinin üst seviyelerinde, ekonomi,  geliştirme ya da çok önemlisi, oyun haritasını analiz etmek için bir modülden sorumlu olan modüller var. Arazinin ve yerleşim yerinin özelliklerini analiz eden bu modüldür. Örneğin; bir yerleşim biriminin bir adada bulunup bulunmadığı, dolayısıyla bir donanma tershanesi inşası yapılıp yapılmayacağı, yapılacak ise tershanede daha fazla gemi üretimini değerlendirmeye dayalı olarak bir yerleşim oluşturur. Arazi analizörü, şehirlerin ne zaman inşa edileceğine ve binaların nasıl yerleştirileceğine karar verir.

 Şekil 1. RTS tipi bir oyunda Dünyayı temsil etmektedir.

Şekil 2. Başka bir RTS tipi oyunda Dünyayı temsil etmektedir.


Yapay Zeka Oyunları; Spor Oyunlarında Yapay Zeka
Temel olarak, spor oyunlarının çoğunda büyük çaplı hile ile uğraşıyoruz. Mesela araba yarışı oyunlarını ele alalım. Yapay Zeka'nın ihtiyaçları için, oyun haritasının geometrisinden yalnızca bilgisayar kontrollü rakibin izine ait çokgenler yola çıkmalı ve ayırt edilmelidir. Bu noktada iki eğri işaretlenir: ilki en uygun sürüş izini, ikincisi ise rakipleri geçerken kullanılan parça. Bütün parça, uygun küçük sektörlere ayrılır ve yüzey parametrelerini hesaba katarak, bölünmüş parçanın her bir öğesi hesaplanan uzunluğunu alır. Bu fragmanlar daha sonra, izi tanımlayan bir grafik oluşturmak ve aracın en yakın çevresinde yolun özelliklerini almak için kullanılır. Gerçekte, bilgisayar eğriye yaklaştığı için yavaşlamış olduğunu bilir veya bir kavşağa yaklaştığını biliyordur. Bu durumda yapay zeka oyuncuya kısayolu tarif ediyor olacaktır. Bu tür oyunlarda Yapay Zeka sistemlerinin iki önemli özelliği, yoldaki engelleri tespit etmek ve fizik modülüyle sıkı işbirliği yapmak için araziyi analiz edebilmektir. Fizik modülü, Aracın kaçmakta olduğu, Yapay Zeka sisteminin uygun şekilde tepki vermesi ve aracın çekiş gücünün kontrol altına almaya çalışması durumunda aldığı bilgileri kullanabilir.

Şekil 3. Otomobil yarışında gerçekliğin gösterilme metodu (parkurun bölünmesi ve optimalleştirilmesi)

Şekil 4. Araba yarışında gerçekliğin sunulma metodu

Benzer hile diğer spor oyunlarında da bulunabilir. Çoğu durumda, bilgisayar kontrolündeki bir oyuncu, dönüş başlamadan önce bile tam bir davranış sergiliyor olacaktır. Yani, iniş sırasında düşme (akrobasi, kayak atlama, vb.), Yanlış hıza, yanlış yönlendirmeye başlama gibi. Ayrıca hakemler tarafından skorlama ile spor benzetimi yapılan oyunlarda skorlar, uygun spor organları tarafından tanımlanan kurallara uygun olarak üretilir.
Daha sonra bilgisayarı kontrol eden oyuncunun oyunu oynarken önceden tanımlanmış senaryosu olan oyunun başlamasıyla karakter animasyon sistemi tarafından tüm hareketler devreye geçirilir.

Bilgisayar Oyunları'nda En Popüler AI Algoritmaları
Makalenin ilerleyen bölümünde bilgisayar oyunlarını programlamada kullanılan en popüler iki algoritmayı sizlerle tartışmak isterim. Onlara ilişkin bilgi sahibi olan kişiler, basit FPS veya RTS oyunlarının ihtiyaçlarını karşılayan, basit bir yapay zeka sistemini başarıyla tasarlayabilir. İlki; oyunun haritasındaki (grafik) iki noktayı birleştiren en uygun yol için hızlı aramalarda kullanılan A-Star algoritmasıdır. Diğeri, örneğin; bilgisayar kontrollü rakipler için davranış senaryolarının hazırlanmasında, genelde düşük seviye görevleri için bir yol bulma modülünü devreden çıkarmada yararlı olan sonlu durum makinesidir.

A* Algoritması
A noktasından B noktasına bir yol bulma problemi neredeyse tüm bilgisayar oyunlarında kilit bir sorundur. (Muhtemelen bazı spor oyunlarını ve bir elin parmakları sayılabilecek bazı oyun türlerini saymazsak). Aynı zamanda, bu grubun algoritmaları, stratejik planlama, oluşumlar veya gruplar halinde hareket etme gibi daha karmaşık ve daha akıllı davranış biçimleri oluşturmak için bir temel oluşturan oyunların Yapay Zekasının alt düzeyine aittir. Bu konu, bilgisayar oyunları dünyasında, günümüzde bir standart haline gelen bir algoritma olan A* ile kapsamlı bir şekilde değerlendirildi.

Oyun Dünyasının Tasarımı
Hemen hemen herhangi bir bilgisayar oyun dünyası, oyunun türüne göre şekli bir grafikle temsil edilebilir. RTS tipi oyunlarda, dünya genelde iki boyutlu bir diziyle temsil edilir. Elemanların her biri oyun dünyasının dikdörtgen haritalarının parçalarına karşılık gelir. Her eleman (sınır elemanları hariç) sekiz komşusu vardır. RTS dünyasının böyle bir gösterimini kullanarak, 2D dizinin her öğesinin grafiğin bir köşesine karşılık geleceği bir grafik oluşturabiliriz. Grafiğin kenarları (genellikle yalnızca en yakın komşular arasında bulunur), haritanın unsurlarından birinin komşu öğeye hareket etme ihtimalini (veya eksikliğini) gösterir. Gerçek zamanlı stratejilerde, genellikle oyunun en küçük biriminin sığabileceği bir alana bir grafik köşesi atarız.
FPS tipi oyunlarda, grafiğin köşeleri, genelde, iki oda arasındaki doğrudan bağlantıyı gösteren grafiğin köşeleri bulunan yerlerdir.

Yapay Zeka ve Yapay Zeka Oyunları ile ilgili ilerleyen zamanlarda daha ayrıntılı yazılarımızı sizlerle paylaşacağım.

Daha önceki Yapay Zeka Oyunları - 1. bölümü için tıklayın.

Hiç yorum yok:

Yorum Gönder