120 likes | 499 Vues
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.
E N D
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) { // do nothing } else { 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