27 Mart 2017 Pazartesi

AI nedir?

Oyun programlamadaki yapay zeka; oyun içierisindeki kullanıcı dışındaki bütün objelerin insana özgü bazı davranışları oluşturmasını sağlamaktır.
Örnek Olaraak
Araba oyunundaki diğer arabalar.
Ateş ettiğiniz canavarlar
RTS oyunlarındaki rakip nişancı

AI Kullanımı

Yapay Zeka Kullanıcının Herbir yeni hareketine göre tekrar kendini çalıştırarak yeni bir konum belirlemelidir.
Her Yerde Kullanılmalımıdır?


Yapay Zekanın Amacı
Amaç Temelli Ne Yapacağı sıkı kurallarla verilmiş. Bu hareketi yap şu hareketi yapma.
Hemen değişen durumlara yanıt verme.
Knowledge intensive - the AI knows a lot about the world and how it behaves, and embodies knowledge in its own behavior
Karakteristik olarak sadece bazı olaylara yanıt verme.
Ayrıca AI sayesinde
AI hızlı ve kolay geliştirmeye yardımcı olur.
CPU ve RAM kullanımını azaltır.


Yapay Zekaların Video Oyunlarında Kullanımı

5-10% CPU Gerçek Zamanlı
25-50% CPU for Durum Temelli

Takip /Kaçış davranışları
Grup davranışları
Sonlu durum makineleri
Adaptasyon / Öğrenme


Takip Kaçma

En kısa yol algoritması bu durumlar için kullanınıla bilir. Canavarın oyuncuyu en kısa yoldan yakalaması. Araba yarışında diğer arabanın oyuncuyu en kısa yolu bularak geçmesi.


Örnek Kod

Oyunu oynayan ile Oyundaki canavarın konumlarının alınıp
en kısa yoldan canavarın kullannıcı üzerine saldırması

Predator is at coordinates (predatorX,predatorY).

Prey is at coordinates (preyX,preyY).

if (predatorX > preyX) {
   predatorX--;
} else if (predatorX == preyX) {
   // do nothing
} else {
   predatorX++;
}

if (predatorY > preyY) {
   predatorY--;
} else if (predatorY == preyY) {
   // do nothing
} else {
   predatorY++;
}

Algoritmayı Geliştirmek

En Kısa Yolun Bulunması

Algoritmayı Geliştirmek

Bresenham’s algoritması ile En Kısa yolun farklı bir şekilde bulunması


Ekran ile Bu işin bulunması

Ekrandaki Pixel ilede bu işler gerçekleştirilebilir.

 Örnek Bir Kaçma Algoritması


Terimleri Tanımlama:

Closing velocity, Vc = Vprey – Vpredator

Range to close, Sc = Pprey – Ppredator

Time to close, Tc = | Sc | / | Vc |


Intercept position hesaplaması

Intercept position = Pprey + Vprey x Tc