Title: Artificial Intelligence in Game Design
1Artificial Intelligence in Game Design
2AI vs. Gaming AI
- Standard Artificial Intelligence
- Expert Systems
- Probabilistic/Fuzzy Logic
- Robotics
- Machine Learning
- Goal Mencari solusi terbaik dari beberapa
permasalahan - Characteristics
- Mahal dan memakan waktu untuk membangun
- Siklus Pemrosesan sangat besar (Large number of
processing cycles to run)
3AI vs. Gaming AI
- Example Chess (Deep Blue, IBM)
- Pendekatan dasar (MINMAX algorithm)
- Bangun tree kemungkinan langkah n berikutnya.
- Berikan tingkatan masing tree sesuai heuristik
tertentu - Pilih langkah berikutnya yg terbaik
- Dikombinasikan dgn pengetahuan heuristik
- Databases of opening moves, endgames
- Hasil
- Bermain pada tingkat kesulitan tinggi (solusi
terbaik) - Membutuhkan beberapa menit utk menentukan langkah
(ok in chess) - Not viable as commercial chess game!
4Goals of Gaming AI
- Menantang tapi dapat dikalahkan
- Intelligence level artificially limited
- Example number of moves lookahead in chess
- AI not given all information
- Example fog of war in Civilization
- Intelligence level can be set by user
- Possibly learned (Madden 09)
- Problem is often making AI intelligent enough!
- Players will find and take advantage of
limitations - Cheats often used to compensate for bad AI
5Example of Gaming AI
Soldier NPC setting up ambush What to hide behind?
Player coming from unknown direction
6Example of Gaming AI
- Memilih secara acak?
- Does not appear intelligent
- Tahu lokasi player sekarang?
- Should not know this (cheat!)
- Berdasar kriteria realistik
- Terrain around soldier
- Past player actions, etc.
- This is most difficult approach!
7Goals of Gaming AI
- Efisiensi
- Harus memakan sedikit siklus prosesor
- Competing with graphics!
- Harus selalu beraksi pada waktu nyata (real time)
- Football, racing, etc.
- Pendekatan sederhana biasanya selalu yang
terbaik. - If necessary, may need to tweak game to support
AI
8Example of Simplification
- Pac-Man
- Ghosts pursue players through maze
- Simple algorithm just move towards player
- Problem ghosts stuck in cul-de-sacs
9Example of Simplification
10Believable NPCs
- Musuh yang menawarkan tantangan
- Orc characters should move realistically
- Boss characters should appear as intelligent as
player - Minions yg membutuhkan sedikit pengelolaan
- Example scouts, workers, etc. in Civilization 4
- Frustrating if minions make too many mistakes
- Karakter lain yang tertarik utk berinteraksi
- Example Sims
11Believable NPCs
- Intelligent Action (Aksi Cerdas)
- Pengambilan keputusan yang baik
- Pergerakan yang nyata (realistic)
- Evasion/pursuit of player
- Choosing paths through complex terrain
- Cooperation among group
- Menyimpan aksi sebelumnya (and possibly to
improve) - Mencapai tujuan
12Believable NPCs
- Believable as Characters
- Acts like human (or orc, dog, etc.)
- Memiliki keadaan emosional (emotional states)
yang sesuai - Based on character, current state
- Tidak selalu mudah ditebak (predictably)
- Crucial to replayablity
- Cannot appear too random
- Dapat berinteraksi dengan player
- Verbal and non-verbal interaction
13Role of Traditional AI
- Good decision making
- Realistic movement
- Evasion/pursuit of player
- Choosing paths through complex terrain
- Cooperation among groups
- Memory of previous actions
- Achieving goals
Decision Trees Finite State Machines
Robotics
Swarm Intelligence
Simple Iterative Learning
Goal-based Planning
14Role of Traditional AI
- Acts like human (or orc, dog, etc.)
- Has appropriate emotional states
- Based on character, current state
- Does not always behave predictably
- Can interact with player
- Verbal and non-verbal interaction
Finite State Machines Probabilistic State
Machines Fuzzy State Machines
Natural Language Parsing
15Role of Traditional AI
- Penyederhanaan umum NPCs dibatasi domain
tertentu (limited domain) - Contoh shopkeeper NPC
- Dapat berinteraksi dengan player hanya pada
domain toko. - Will not leave shop
- Only understands items for sale in shop
- Only actions are transactions related to items
16Question?