oyunlarda yapay zeka

22
Game AI kavramı AI vs game AI AI: zeka var Zeka: problem çözme yeteneği... Zeki mi değil mi? muhakeme, öğrenme... Game AI: kandırmaca var Basit mantığı güzel anlatan örnek: Tetikleyici bazlı davranış modellemeleri (nöbetçi örneği, FSM) Zeki mi değil mi tartışması

Upload: huseyinyasar

Post on 17-Aug-2015

71 views

Category:

Software


1 download

TRANSCRIPT

Game AI kavramı

● AI vs game AI● AI: zeka var

– Zeka: problem çözme yeteneği...– Zeki mi değil mi? muhakeme, öğrenme...

● Game AI: kandırmaca var – Basit mantığı güzel anlatan örnek: Tetikleyici bazlı

davranış modellemeleri (nöbetçi örneği, FSM)– Zeki mi değil mi tartışması

Game AI kavramı

– Günümüzde tuzağa düşüren, öğrenen, takım oyunu yapan NPC'ler, Squad AI

Sırayı bozmadan yürüyen ordular (Sürü Zekası)... – İyi yapay zeka örneği: Fallout bazuka örneği, FuSM– NPC'ler dışındaki kullanım alanları

● Random level generation, dynamic difficulty adjustment

– Öğrenmeyen yapay zeka (video)

Game AI kavramı

● Strong AI, weak AI?

● Pong, Pacman● Satranç, go● Modern oyunlar

YZ teknikleri ve oyunlar

● Her oyunda her YZ tekniği uygulanamaz.● Neye göre karar veririz?

● Oyunun türü – Her oyunda farklı YZ problemi (arama, yol bulma,

optimizasyon...)● Performans kısıtları

– Aksiyon oyununda genetik algoritma ?● Gerçekçiliğe duyulan ihtiyaç

– Turing testi ve zombiler

Oyunların yapay zekalarına göre sınıflandırılması

● Oyun türüne göre● Öğrenmeye göre● YZ hesaplamalarına ayrılan zamana göre● NPC sayısına göre

Oyunların yapay zekalarına göre sınıflandırılması

● Oyun türüne göre● Masaüstü oyunları (satranç, go, tic-tac-toe...)

– Oyun belli kurallarla tanımlıdır.– Hemen hepsi arama problemi olarak görülebilir (çözüm: BFS, minimax)

● Insan davranışının simüle edildiği oyunlar (FPS, RPG, Yarış, Spor, Strateji...)– Oyun gerçek dünyanın bir taklididir. (NPC'ler)– FSM, FuSM– A*– Waypoint'ler, cover point'ler, yapay grid'ler

Oyunların yapay zekalarına göre sınıflandırılması

● Öğrenmeye göre● Öğrenme var

– Düşmanın hareketlerinden, kendi deneme yanılmalarından, bölüm sonu istatistiklerinden

– Örn: Pod bot● Öğrenme yok

– Tetikleyici bazlı davranış modellemeleri

Oyunların yapay zekalarına göre sınıflandırılması

● YZ hesaplamalarına ayrılan zamana göre● Sıra tabanlı oyunlar (Civilization, Worms)

– Bilgisayarın düşünmesi için çok zaman var,– Multithreading ile sıra oyuncudayken bile bilgisayar,

oyuncuya bağlı olmayan kısımların hesaplamasıyla meşgul olabilir.

● Gerçek zamanlı oyunlar– Hız önemli, bu yüzden kullanılabilecek YZ

yöntemleri kısıtlı

Oyunların yapay zekalarına göre sınıflandırılması

● NPC sayısına göre● Birey davranışının modellenmesi

– RPG'lerdeki NPC'ler, aksiyon oyunlarındaki rakipler (Takım oyunu yapıyorlarsa ikinci gruba girer)...

● Sürü davranışının modellenmesi– Kalabalık savaşlar, orduların formasyon alarak hareketi

(Sürü zekası, alignment vs.)– Squad AI, rakip takım, dost takım– Spor oyunları, hem kendi takımımızda kontrol etmediğimiz

oyuncular hem rakip. (Spiker?)

Oyunlardaki YZ problemleri ve çözümler

● Satranç, go - Arama problemi → BFS (Minimax)● Yol bulma (Path finding algoritmaları için oyunun optimize edilmesi)

● A*● Karelere bölünmüş haritada yol bulma – A*● Karelere bölünmemiş haritada yol bulma - waypointed graph, navmesh ● Araba Yarışı

– A* vs Collision tabanlı FSM ya da FuSM● Civilization, GTA, NFS, Assasin's Creed 'de yol bulma

● Random Level Generation, Dynamic Difficulty Adjustment – Optimizasyon● Stratejik karar verme – FSM, FuSM, Arama ağacı (Oyunun arama ağacına

müsaade edecek şekilde modellenmesi gerekir, bayraklar vb.),

Video (A*, path smoothing, Dynamic Obstacle Avoiding)

● Dinlediğiniz için teşekkürler :)

Kaynaklar

● Paul Tozour “Fixing Path Finding Once And For All” http://www.ai-blog.net/archives/000152.html

● Jung-Ying Wang and Yong-Bin Lin “Game AI: Simulating Car Racing Game by Applying Pathfinding Algorithms”, International Journal of Machine Learning and Computing, Vol. 2, No. 1, February 2012

● Tahir Emre Kalaycı “Oyunlarda Yapay Zeka” Sunumu, Yapay Sinir Ağları Dersi :)