Oyun Programlama (Yapay Zeka) Hazırlayan: Yrd.Doç.Dr. Emin BORANDAĞ
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 if (predatorX > preyX) { predatorX--; } else if (predatorX == preyX) { // do nothing } else { predatorX++; } if (predatorY > preyY) { predatorY--; } else if (predatorY == preyY) { predatorY++; 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).
Algoritmayı Geliştirmek En Kısa Yolun Bulunması predator prey
Algoritmayı Geliştirmek Bresenham’s algoritması ile En Kısa yolun farklı bir şekilde bulunması predator prey
Ekran ile Bu işin bulunması Ekrandaki Pixel ilede bu işler gerçekleştirilebilir.
Örnek Bir Kaçma Algoritması Current velocity of prey Define a few terms: Closing velocity, Vc = Vprey – Vpredator Range to close, Sc = Pprey – Ppredator Time to close, Tc = | Sc | / | Vc | We can calculate intercept position: Intercept position = Pprey + Vprey x Tc Current position of predator