1. ITI Malignani – 22 Maggio 2013
Trailer In Verbis Virtus
http://www.indomitusgames.com/index.php/it/
2. ITI Malignani – 22 Maggio 2013
Intelligenza Artificiale e Videogiochi
Prof. Pier Luca Lanzi
3. ITI Malignani – 22 Maggio 2013
Buongiorno!
• Prof. Pier Luca Lanzi
Dipartimento di Elettronica,
Informazione e Bioingegneria
• Istruzione
Biennio all’ITI Malignani (UD)
Triennio al ITI Galileo Galilei (GO)
Laurea in Informatica (UD)
Dottorato in Ingegneria Informatica (POLIMI)
• Corso di studi di Ingegneria Informatica
Algoritmi e Calcolo Parallelo,
Data Mining and Text Mining
Videogame Design and Programming
3
Primo programma a 13 anni, 33 anni fa
4. ITI Malignani – 22 Maggio 2013
Ho Iniziato …
• Cosi’ …
• Nel mentre …
• E adesso
4
6. ITI Malignani – 22 Maggio 2013
Il Politecnico di Milano
• Il Politecnico di Milano (o PoliMi)
è un’università statale di tipo
tecnico-scientifico
• Comprende corsi in
Ingegneria
Architettura
Design
Professori 1,355
Staff tecnico e
amministrativo
1,187
Studenti di dottorato 856
Assegnisti di ricerca 675
Studenti 37,036
6
7. ITI Malignani – 22 Maggio 2013
7
http://www.topuniversities.com/universities/politecnico-di-milano
8. ITI Malignani – 22 Maggio 2013
Dipartimento di Elettronica,
Informazione e Bioingegneria
• Principale dipartimento d'Italia per il
settore dell’informazione e uno dei primi
d'Europa e del mondo
• Una classifica IEEE/ACM lo pone al 7°
posto
al mondo nell’ambito dell’ingegneria del
software.
• 13M€ di contratti da enti privati. UE, enti
pubblici nazionali
• Produttività scientifica molto elevata e di
alta qualità, rivolta soprattutto a congressi
e pubblicazioni internazionali
8
9. ITI Malignani – 22 Maggio 2013
A Pixel Escape Gameplay
http://www.apixelescape.com/
10. ITI Malignani – 22 Maggio 2013
Solar Journey
https://www.youtube.com/watch?v=ZTbjWL1AaYc
14. ITI Malignani – 22 Maggio 2013
di cosa parliamo oggi?
intelligenza artificiale e videogiochi
15. ITI Malignani – 22 Maggio 2013
cosa fa l’intelligenza artificiale?
16. ITI Malignani – 22 Maggio 2013
sistemi che pensano
come esseri umani
sistemi che pensano
razionalmente
sistemi che agiscono
come esseri umani
sistemi che agiscono
razionalmente
17. ITI Malignani – 22 Maggio 2013
sistemi che pensano
come esseri umani
sistemi che pensano
razionalmente
sistemi che agiscono
come esseri umani
sistemi che agiscono
razionalmente
18. ITI Malignani – 22 Maggio 2013
Agire Come un Essere Umano
• Approccio convenzionale
Intelligente è ciò che realizza
un determinata prestazione
• Estensione della nozione di intelligenza
Non solo pensare, ma anche agire
• Tradizione del test di Turing (1950)
• Abilità nel raggiungere
Prestazioni a livello umano
Sufficienti a ingannare un interrogante
18
19. ITI Malignani – 22 Maggio 2013
cosa fa l’intelligenza artificiale
nei videogiochi?
20. ITI Malignani – 22 Maggio 2013
“good artificial intelligence”
22. ITI Malignani – 22 Maggio 2013
minimax(player, board)
if(gameover in current board position)
return winner
children =
all legal moves for player from this board
if(max's turn)
return maximal score of calling
minimax on all the children
else (min's turn)
return minimal score of calling
minimax on all the children
25. ITI Malignani – 22 Maggio 2013
“good artificial intelligence”
vs
“fun artificial intelligence”
26. ITI Malignani – 22 Maggio 2013
“Good Artificial
Intelligence”
• Regole fissate
• Simmetrica
• Multi-giocatore
• Strategie illimitate
• Test oggettivi
• Passa il test di Turing
“Fun Artificial
Intelligence”
• Design in costante
evoluzione
• Asimmetrica
• Singolo giocatore
• Strategie limitate
• Valutazione soggettiva
• Ignora il test di Turing
gioca per vincere gioca per perdere
27. ITI Malignani – 22 Maggio 2013
Far Cry 2
http://www.youtube.com/watch?v=sDiGYDNMsZU
29. ITI Malignani – 22 Maggio 2013
Diablo III (random quests)
https://www.youtube.com/watch?v=xn_XWY-dArc
https://www.youtube.com/watch?v=2pFzro2Pjtk
30. ITI Malignani – 22 Maggio 2013
come viene applicata nei videogiochi?
“personaggi non giocanti” (la IA del gioco)
generazione del contenuto
game design, animazioni, analisi dei giocatori,
adaptive gameplay, ecc.
32. ITI Malignani – 22 Maggio 2013
Come Viene Applicata ai
Personaggi Non Giocanti?
• Muove i personaggi nel gioco
• Decide cosa, dove, come e quando
• Viene applica sia agli avversari sia agli alleati
• Pianifica percorsi e permette di evitare gli ostacoli
• Seleziona l’animazione corretta
32
33. ITI Malignani – 22 Maggio 2013
Space Invaders
http://www.youtube.com/watch?v=QObneYZIdKI
34. ITI Malignani – 22 Maggio 2013
Inizialmente…
• Le caratteristiche e il comportamento dei personaggi non
giocanti erano fissate nel gioco
• In Space Invaders, gli alieni si muovono su un livello
predefinito con una velocità predefinita (funzione del
numero di alieni) seguendo una delle due direzioni
disponibili
• Sparano con una frequenza casuale verso l’astronave del
giocatore
• Il gioco non ha alcuna IA
34
35. ITI Malignani – 22 Maggio 2013
Qual è stato il primo videogioco con IA?
36. ITI Malignani – 22 Maggio 2013
Pong
https://www.youtube.com/watch?v=it0sf4CMDeM
37. ITI Malignani – 22 Maggio 2013
Pong! (1972)
• “Pong” è stato il primo gioco con una forma di IA
• La “racchetta” del personaggio non giocante era calcolata
utilizzando una semplice forma per predirre l’altezza che
la palla avrebbe avuto nell’attraversare la linea della
racchetta
• Alla racchetta della IA era assegnata una velocità e una
probabilità di errore che dipendeva dal livello di difficoltà
• In questo modo la racchetta della IA poteva mancare la
pallina ogni tanto in base al livello di difficoltà
37
38. ITI Malignani – 22 Maggio 2013
Pac-Man
http://www.youtube.com/watch?v=jiJ0PkU8t3c
39. ITI Malignani – 22 Maggio 2013
Pac-Man
• Un eroe Pac-Man, quattro fantasmi (Blinky, Pinky, Inky,
Clyde)
• 244 pallini e un numero di livelli infiniti (teoricamente)
• Tre modalità per i fantasmi
CHASE: il fantasma cerca di catturare Pac-Man
SCATTER: i fantasmi raggiungono il proprio angolo
FRIGHTENED: i fantasmi sono “spaventati”
• Quattro differenti comportamenti per i fantasmi ottenuti
combinando le tre modalità
39
40. ITI Malignani – 22 Maggio 2013
Comportamento dei Fantasmi:
Modalità Scatter
40
41. ITI Malignani – 22 Maggio 2013
Come Funziona la IA dei
Personaggi Non Giocanti?
• Modello di Funzionamento
Sensori/Percezione
Ragionamento
Azione
• Valutazione della IA di Gioco
Risoluzione robusta dei problemi
Requisiti di Tempo
Requisiti di Spazio
Realismo
• Requisiti di Tempo
30 fps, 33ms per frame, 1-3ms per la IA (~10%), 100ms per
pianificazione di una unità
Si rende necessario spezzare la pianificazione di una unità su più
frame
41
42. ITI Malignani – 22 Maggio 2013
Esempio di Comportamento per
un First Person Shooter
Get Ammo
Get Health
Run Away
Search For Enemy
Attack
Enemy
Found
Enemy
LostLowonAmmo
LowonHealth
GotAway,
LowonHealth
GotHealth
Got Ammo
GotAway,
LowonAmmo
42
43. ITI Malignani – 22 Maggio 2013
Macchine a Stati Finiti (FSM)
• Soluzione più semplice per implementare l’intelligenza artificiale di un
NPC
• Gli stati danno una rappresentazione di alto livello di quello che
l’intelligenza artificiale cerca di fare
• Ogni stato contiene del codice per implementare il comportamento nel
particolare stato
• Le transizioni avvengono in base a cambiamenti nell’ambiente
• Vantaggi
Semplice da specificare e da implementare
Esistono degli appositi middleware specifici
• Svantaggi
Difficili per il debug e anche da estendere
Duplicazione del codice
Diventano velocemente complesse
43
44. ITI Malignani – 22 Maggio 2013
Macchine a Stati Finiti (FSM)
• Hard-Coded
La macchina a stati finiti e’ scritta direttamente nel linguaggio con
cui si sviluppa il gioco (C/C++)
• Interpretate
Un interprete carica una rappresentazione testuale da file che
viene poi interpretata
• Compilata
Una rappresentazione testuale viene letta e ne viene generato
l’equivalente nel linguaggio in cui viene sviluppato il gioco
44
45. ITI Malignani – 22 Maggio 2013
come implementereste una FSM hard-coded?
come implementereste una FSM interpretata?
48. ITI Malignani – 22 Maggio 2013
Fear
https://www.youtube.com/watch?v=VCcVy8-nHOU
49. ITI Malignani – 22 Maggio 2013
F.E.A.R. States
• Goto
Physical movement to a localtion
• Animate
In place animation
• Use Smart-Object
Special case of animate
• People perceive the AI as smarter if they know what it is doing
If one unit remains, say “I need reinforcements”
Introduce conversations instead of talking
“I am shot!” vs “what’s your status?”
If the AI is stuck say “I have nowhere to go!”
49
50. ITI Malignani – 22 Maggio 2013
Uncharted 3
https://www.youtube.com/watch?v=ELD2epCsx0c
52. ITI Malignani – 22 Maggio 2013
“Game AI is largely an unsolved problem”
53. ITI Malignani – 22 Maggio 2013
Come Dovrebbe Essere l’Intelligenza
Artificiale di un Gioco?
• Idealmente il sistema di IA di un gioco dovrebbe seguire le
stesse regole e gli stessi vincoli che deve seguire il
giocatore, così da giocare in modo “fair”
• Ad esempio, nei giochi di strategia, il giocatore umano
vede solo parti della mappa, lo stesso dovrebbe fare la IA
• Nella pratica, questo è difficile e molti sistemi di IA di
gioco sono molto limitate in alcune circostanze
• Per evitare questo tipo di problemi i sistemi di IA
“imbrogliano un pochino ma non troppo” in modo che il
giocatore non se ne accorga
53
54. ITI Malignani – 22 Maggio 2013
Come può imbrogliare la IA di gioco?
Usando la conoscenza completa ed esatta del
mondo
Può evitare i proiettili, sa dove sono nascoste le
unità, che carte e che capitale ha il
giocatore, ecc.
Inoltre …
55. ITI Malignani – 22 Maggio 2013
55
Motogp13
http://www.youtube.com/watch?v=SDfua5PrJ8c
56. ITI Malignani – 22 Maggio 2013
Pianificazione delle azioni
e dei movimenti (path finding)
58. ITI Malignani – 22 Maggio 2013
Come Viene Implementato il Pathfinding
nei Videogiochi?
• Quattro rappresentazioni
• Griglie
• Grafi di waypoint
• Mesh di navigazione
• Delaunay Triangulation
58
59. ITI Malignani – 22 Maggio 2013
Pathfinding bugs
http://www.youtube.com/watch?feature=player_embedded&v=lw9G-8gL5o0
60. ITI Malignani – 22 Maggio 2013
Che cos’e’ la Generazione Procedurale di Contenuti?
“Generazione Procedurale”
senza alcun intervento o un limitato intervento umano
(generazione algoritmica)
“di Contenuti”
ovvero gli elementi che influenzano il gioco
(livelli, armi, power up, ecc.)
62. ITI Malignani – 22 Maggio 2013
Generazione di Dungeon:
Partizione Binaria
• Selezionare a caso una direzione di divisione
(orizzontale o verticale)
• Selezionare a caso una posizione (x o y di split)
• Dividere il dungeon iniziale in due sotto dungeon
• Riapplicare la stessa procedura ai due sotto dungeon fino
a quando non è soddisfatta la condizione di fine
• Infine, creare una stanza per ogni area creata e collegare
le stanze
63
63. ITI Malignani – 22 Maggio 2013
Generazione di Dungeon:
“Algoritmo di Anderson”
1. Riempi tutta la mappa di solido (terra)
2. Scava una stanza al centro della mappa
3. Seleziona una parete di una qualsiasi stanza
4. Selezionare una nuova feature da aggiungere
(corridoio, stanza quadrata, irregolare, ecc.)
5. Controllare se è possibile aggiungere la nuova feature
6. Se si, continua, altrimenti vai a 3
7. Aggiungere la nuova feature sulla parete scelta
8. Torna a 3 fino a quando il livello non è completo
9. Aggiungi scale (cambio di livello) in maniera casuale
10.Infine genera la posizione dei mostri e dei tesori
64
64. ITI Malignani – 22 Maggio 2013
Automi Cellulari
• Paradigma di computazione basato su interazioni locali
• Usato negli studi di vita artificiale e complessità
emergente
• Il valore di una cella dipende dall’interazione di n+1 celle
vicine
• L’interazione viene specificata attraverso delle regole
65
81. ITI Malignani – 22 Maggio 2013
Perche’ la Vegetazione?
• E’ una parte importante di moltissimi giochi (ad es.
FarCry)
• Deve essere credibile
Rappresentazione molto dettagliata
Le piante sono simili e riconoscibili ma non identiche
• La rappresentazione deve essere compatta
• Sono necessari strumenti di generazione automatica
(non possiamo pensare di avere grafici per questo)
82
82. ITI Malignani – 22 Maggio 2013
Speed Tree Demo
http://www.youtube.com/watch?v=6MDGt9XNS7Y
83. ITI Malignani – 22 Maggio 2013
L-Systems
• Aristid Lindenmeyer li introduce nel 1968, per modellare lo sviluppo delle
piante
• Generano stringe a partire da un alfabeto di variabili e costante a cui si
aggiungono una serie di regole
• Le stringe vengono interpretate graficamente
• Esempio
Variabili: A B
Constanti: + e −
Simbolo iniziale: A
Regole: (A → B−A−B), (B → A+B+A)
Angolo: 60°
• Entrambe A e B corrispondono a ”disegna in avanti”, + significa ”gira a
sinistra", mentre − significa ”gira a destra” (dell’angolo specificato)
84
84. ITI Malignani – 22 Maggio 2013
Esempio: 2, 4, 6 e 8 iterazioni 85
85. ITI Malignani – 22 Maggio 2013
Esempio
• Esempio
Variabili: F
Constanti: + e −
Simbolo iniziale: F
Regole:
F=C0FF-[C1-F+F+F]+[C2+F-F-F]
Angolo: 22°
• http://www.kevs3d.co.uk/dev/lsystems/#
86
88. ITI Malignani – 22 Maggio 2013
Left4Dead
https://www.youtube.com/watch?v=yEZ6YIXdr8o
89. ITI Malignani – 22 Maggio 2013
“Dramatic Pacing” in Left4Dead
• Il ritmo di gioco viene aggiustato durante il gioco per
massimizzare la tensione
• Basato sull’esperienza di counter strike
Combattimento senza variazioni è affaticante
Lunghi periodi di inattività sono noiosi
• Generazione di picchi imprevisti di intensità per creare un
esperienza di gioco avvincente
• Stesso scenario, quasi stessa mappa ma esperienza
differente
90
90. ITI Malignani – 22 Maggio 2013
Algoritmo di “Pacing” in Left4Dead
• Stima l'intensità emotiva di ogni sopravvissuto survivor
Traccia l'intensità massima dei quattro sopravvissuti
Se è troppo alta, elimina i pericoli per un po’
Altrimenti crea un nuovo insieme di pericoli
• Questo meccanismo (chiamato “AI director”) crea una popolazione di
zombi basandosi sullo stato emotivo della squadra
91
91. ITI Malignani – 22 Maggio 2013
Se Siete Interessati
• Allo sviluppo di videogiochi
XNA 4.0 in C# per Xbox e Windows Phone
Unity3D per Mac/Windows/IOS/Android
• All’intelligenza artificiale
Simulated Car Racing Championship
Scopo: scrivere un programma in grado di controllare
una macchina da corsa in una pista sconosciuta
Java/C/C++
http://games.ws.dei.polimi.it/
92
92. ITI Malignani – 22 Maggio 2013
Tanto da Leggere, Ma Tutto in Inglese
• The Rough Guide to Videogames by Kate
Berens, Geoff Howard (Sep 8, 2008)
• Vintage Games: An Insider Look at the
History of Grand Theft Auto, Super Mario,
and the Most Influential Games of All Time by
Bill Loguidice and Matt Barton (Mar 4, 2009)
• The Ultimate History of Video Games: From
Pong to Pokemon–The Story Behind the
Craze That Touched Our Lives and Changed
the World by Steven L. Kent (Oct 2, 2001)
• Replay: The History of Video Games by
Tristan Donovan (Apr 20, 2010)
• Masters of Doom: How Two Guys Created an
Empire and Transformed Pop Culture –
David Kushner (Amazon)
93
93. ITI Malignani – 22 Maggio 2013
Riferimenti
• Artificial Intelligence for Games
Ian Millington and John Funge (Aug 6, 2009)
• Artificial Intelligence: A Modern Approach (3rd Ed.)
Stuart Russell, Peter Norvig
94
94. ITI Malignani – 22 Maggio 2013
Blog Italiani
• http://www.indievault.it
• http://www.gameprog.it
95
95. ITI Malignani – 22 Maggio 2013
Se Avete Bisogno di Informazioni
• Email
pierluca.lanzi@polimi.it
• Skype
pierluca.lanzi
• Web
http://www.pierlucalanzi.net
http://games.ws.dei.polimi.it
• Game design
http://www.gamasutra.com
• Game Jam
http://www.ludumdare.com
96
Cosa significa diventare un ingegnere informatico?
Cosa significa diventare un ingegnere informatico?
Prima dicapirechecos’e’ un videogiocodobbiamocapirecos’e’ un gioco… prendiamo ad esempiogliscacchi.
Now that we have a way of representing the game in our program, how do we compute our optimal move? We will assume that the opponent is rational; that is, the opponent can compute moves just as well as we can, and the opponent will always choose the optimal move with the assumption that we, too, will play perfectly. (Contrast this, for example, to the beginning chess player, who will purposely make a move with a trap, in the hopes of catching the opponent into the trap and gaining a quick victory. However, if the opponent does not fall for the trap, our player finds that his position is now critically weakened).
Cosafal’intelligenzaartificiale in un gioco come pac-man?Perche’ I fantasmini non vi inseguonosempre?
Perche’ I nemici non vi non vi colpisconosempre ma vi mancano? Come maiperdonoanche se teoricamentepotrebberovinceresempre?
Cosa significa diventare un ingegnere informatico?
Hedgehog
Inizialmente non c’eraalcunaintelligenzaartificiale in moltigiochi (ad esempio) space invaders. 1978
http://www.youtube.com/watch?v=LPkUvfL8T1I1972 – SPIEGA IL GIOCO