SlideShare ist ein Scribd-Unternehmen logo
1 von 96
ITI Malignani – 22 Maggio 2013
Trailer In Verbis Virtus
http://www.indomitusgames.com/index.php/it/
ITI Malignani – 22 Maggio 2013
Intelligenza Artificiale e Videogiochi
Prof. Pier Luca Lanzi
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 
ITI Malignani – 22 Maggio 2013
Ho Iniziato …
• Cosi’ …
• Nel mentre …
• E adesso 
4
ITI Malignani – 22 Maggio 2013
5
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
ITI Malignani – 22 Maggio 2013
7
http://www.topuniversities.com/universities/politecnico-di-milano
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
ITI Malignani – 22 Maggio 2013
A Pixel Escape Gameplay
http://www.apixelescape.com/
ITI Malignani – 22 Maggio 2013
Solar Journey
https://www.youtube.com/watch?v=ZTbjWL1AaYc
ITI Malignani – 22 Maggio 2013
ITI Malignani – 22 Maggio 2013
ITI Malignani – 22 Maggio 2013
13
ITI Malignani – 22 Maggio 2013
di cosa parliamo oggi?
intelligenza artificiale e videogiochi
ITI Malignani – 22 Maggio 2013
cosa fa l’intelligenza artificiale?
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
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
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
ITI Malignani – 22 Maggio 2013
cosa fa l’intelligenza artificiale
nei videogiochi?
ITI Malignani – 22 Maggio 2013
“good artificial intelligence”
ITI Malignani – 22 Maggio 2013
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
ITI Malignani – 22 Maggio 2013
ITI Malignani – 22 Maggio 2013
ITI Malignani – 22 Maggio 2013
“good artificial intelligence”
vs
“fun artificial intelligence”
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
ITI Malignani – 22 Maggio 2013
Far Cry 2
http://www.youtube.com/watch?v=sDiGYDNMsZU
ITI Malignani – 22 Maggio 2013
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
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.
ITI Malignani – 22 Maggio 2013non-player characters
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
ITI Malignani – 22 Maggio 2013
Space Invaders
http://www.youtube.com/watch?v=QObneYZIdKI
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
ITI Malignani – 22 Maggio 2013
Qual è stato il primo videogioco con IA?
ITI Malignani – 22 Maggio 2013
Pong
https://www.youtube.com/watch?v=it0sf4CMDeM
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
ITI Malignani – 22 Maggio 2013
Pac-Man
http://www.youtube.com/watch?v=jiJ0PkU8t3c
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
ITI Malignani – 22 Maggio 2013
Comportamento dei Fantasmi:
Modalità Scatter
40
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
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
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
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
ITI Malignani – 22 Maggio 2013
come implementereste una FSM hard-coded?
come implementereste una FSM interpretata?
ITI Malignani – 22 Maggio 2013
ITI Malignani – 22 Maggio 2013
ITI Malignani – 22 Maggio 2013
Fear
https://www.youtube.com/watch?v=VCcVy8-nHOU
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
ITI Malignani – 22 Maggio 2013
Uncharted 3
https://www.youtube.com/watch?v=ELD2epCsx0c
ITI Malignani – 22 Maggio 2013
ITI Malignani – 22 Maggio 2013
“Game AI is largely an unsolved problem”
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
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 …
ITI Malignani – 22 Maggio 2013
55
Motogp13
http://www.youtube.com/watch?v=SDfua5PrJ8c
ITI Malignani – 22 Maggio 2013
Pianificazione delle azioni
e dei movimenti (path finding)
ITI Malignani – 22 Maggio 2013
ITI Malignani – 22 Maggio 2013
Come Viene Implementato il Pathfinding
nei Videogiochi?
• Quattro rappresentazioni
• Griglie
• Grafi di waypoint
• Mesh di navigazione
• Delaunay Triangulation
58
ITI Malignani – 22 Maggio 2013
Pathfinding bugs
http://www.youtube.com/watch?feature=player_embedded&v=lw9G-8gL5o0
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.)
ITI Malignani – 22 Maggio 2013
generazione di livelli
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
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
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
ITI Malignani – 22 Maggio 2013
Automi Cellulari Bidimensionali 66
ITI Malignani – 22 Maggio 2013
Frozen synapses
https://www.youtube.com/watch?v=Macgp4WnVZU
ITI Malignani – 22 Maggio 2013
Generatore di Livelli Semplice 68
ITI Malignani – 22 Maggio 2013
Human Designed Levels 69
ITI Malignani – 22 Maggio 2013
Algorithm
1. 2.
3. 4.
70
ITI Malignani – 22 Maggio 2013
Step 5. 71
ITI Malignani – 22 Maggio 2013
Step 6. Walls & Doors 72
ITI Malignani – 22 Maggio 2013
Step 7. Windows & More Doors 73
ITI Malignani – 22 Maggio 2013
Step 8. Box Cover 74
ITI Malignani – 22 Maggio 2013
Example #2 75
ITI Malignani – 22 Maggio 2013
Example #3 76
ITI Malignani – 22 Maggio 2013
Example #4 77
ITI Malignani – 22 Maggio 2013
Example #5 78
ITI Malignani – 22 Maggio 2013
AlienSwarm (TileGen) 79
ITI Malignani – 22 Maggio 2013
AlienSwarm (TileGen) 80
ITI Malignani – 22 Maggio 2013
vegetazione
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
ITI Malignani – 22 Maggio 2013
Speed Tree Demo
http://www.youtube.com/watch?v=6MDGt9XNS7Y
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
ITI Malignani – 22 Maggio 2013
Esempio: 2, 4, 6 e 8 iterazioni 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
ITI Malignani – 22 Maggio 2013
ITI Malignani – 22 Maggio 2013
“Dramatic Pacing”
ITI Malignani – 22 Maggio 2013
Left4Dead
https://www.youtube.com/watch?v=yEZ6YIXdr8o
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
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
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
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
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
ITI Malignani – 22 Maggio 2013
Blog Italiani
• http://www.indievault.it
• http://www.gameprog.it
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
ITI Malignani – 22 Maggio 2013
https://www.google.com/url?sa=i
&rct=j&q=&esrc=s&source=ima
ges&cd=&cad=rja&docid=IzmfG
B8O7i5MAM&tbnid=EunXrx5qtu
dsyM:&ved=0CAUQjRw&url=htt
p%3A%2F%2Fstore.raspberrypi
.com%2Fprojects%2Fa-pixel-
escape&ei=mMI1UYDPBcrOsw
bn8ICABQ&bvm=bv.43148975,
d.Yms&psig=AFQjCNF3aEc_ew
4gWv-
wig9KFd4mEK_McA&ust=1362
564114303006
grazie!

Weitere ähnliche Inhalte

Mehr von Pier Luca Lanzi

DMTM Lecture 20 Data preparation
DMTM Lecture 20 Data preparationDMTM Lecture 20 Data preparation
DMTM Lecture 20 Data preparationPier Luca Lanzi
 
DMTM Lecture 19 Data exploration
DMTM Lecture 19 Data explorationDMTM Lecture 19 Data exploration
DMTM Lecture 19 Data explorationPier Luca Lanzi
 
DMTM Lecture 18 Graph mining
DMTM Lecture 18 Graph miningDMTM Lecture 18 Graph mining
DMTM Lecture 18 Graph miningPier Luca Lanzi
 
DMTM Lecture 17 Text mining
DMTM Lecture 17 Text miningDMTM Lecture 17 Text mining
DMTM Lecture 17 Text miningPier Luca Lanzi
 
DMTM Lecture 16 Association rules
DMTM Lecture 16 Association rulesDMTM Lecture 16 Association rules
DMTM Lecture 16 Association rulesPier Luca Lanzi
 
DMTM Lecture 15 Clustering evaluation
DMTM Lecture 15 Clustering evaluationDMTM Lecture 15 Clustering evaluation
DMTM Lecture 15 Clustering evaluationPier Luca Lanzi
 
DMTM Lecture 14 Density based clustering
DMTM Lecture 14 Density based clusteringDMTM Lecture 14 Density based clustering
DMTM Lecture 14 Density based clusteringPier Luca Lanzi
 
DMTM Lecture 13 Representative based clustering
DMTM Lecture 13 Representative based clusteringDMTM Lecture 13 Representative based clustering
DMTM Lecture 13 Representative based clusteringPier Luca Lanzi
 
DMTM Lecture 12 Hierarchical clustering
DMTM Lecture 12 Hierarchical clusteringDMTM Lecture 12 Hierarchical clustering
DMTM Lecture 12 Hierarchical clusteringPier Luca Lanzi
 
DMTM Lecture 11 Clustering
DMTM Lecture 11 ClusteringDMTM Lecture 11 Clustering
DMTM Lecture 11 ClusteringPier Luca Lanzi
 
DMTM Lecture 10 Classification ensembles
DMTM Lecture 10 Classification ensemblesDMTM Lecture 10 Classification ensembles
DMTM Lecture 10 Classification ensemblesPier Luca Lanzi
 
DMTM Lecture 09 Other classificationmethods
DMTM Lecture 09 Other classificationmethodsDMTM Lecture 09 Other classificationmethods
DMTM Lecture 09 Other classificationmethodsPier Luca Lanzi
 
DMTM Lecture 08 Classification rules
DMTM Lecture 08 Classification rulesDMTM Lecture 08 Classification rules
DMTM Lecture 08 Classification rulesPier Luca Lanzi
 
DMTM Lecture 07 Decision trees
DMTM Lecture 07 Decision treesDMTM Lecture 07 Decision trees
DMTM Lecture 07 Decision treesPier Luca Lanzi
 
DMTM Lecture 06 Classification evaluation
DMTM Lecture 06 Classification evaluationDMTM Lecture 06 Classification evaluation
DMTM Lecture 06 Classification evaluationPier Luca Lanzi
 
DMTM Lecture 05 Data representation
DMTM Lecture 05 Data representationDMTM Lecture 05 Data representation
DMTM Lecture 05 Data representationPier Luca Lanzi
 
DMTM Lecture 04 Classification
DMTM Lecture 04 ClassificationDMTM Lecture 04 Classification
DMTM Lecture 04 ClassificationPier Luca Lanzi
 
DMTM Lecture 03 Regression
DMTM Lecture 03 RegressionDMTM Lecture 03 Regression
DMTM Lecture 03 RegressionPier Luca Lanzi
 
DMTM Lecture 01 Introduction
DMTM Lecture 01 IntroductionDMTM Lecture 01 Introduction
DMTM Lecture 01 IntroductionPier Luca Lanzi
 
DMTM Lecture 02 Data mining
DMTM Lecture 02 Data miningDMTM Lecture 02 Data mining
DMTM Lecture 02 Data miningPier Luca Lanzi
 

Mehr von Pier Luca Lanzi (20)

DMTM Lecture 20 Data preparation
DMTM Lecture 20 Data preparationDMTM Lecture 20 Data preparation
DMTM Lecture 20 Data preparation
 
DMTM Lecture 19 Data exploration
DMTM Lecture 19 Data explorationDMTM Lecture 19 Data exploration
DMTM Lecture 19 Data exploration
 
DMTM Lecture 18 Graph mining
DMTM Lecture 18 Graph miningDMTM Lecture 18 Graph mining
DMTM Lecture 18 Graph mining
 
DMTM Lecture 17 Text mining
DMTM Lecture 17 Text miningDMTM Lecture 17 Text mining
DMTM Lecture 17 Text mining
 
DMTM Lecture 16 Association rules
DMTM Lecture 16 Association rulesDMTM Lecture 16 Association rules
DMTM Lecture 16 Association rules
 
DMTM Lecture 15 Clustering evaluation
DMTM Lecture 15 Clustering evaluationDMTM Lecture 15 Clustering evaluation
DMTM Lecture 15 Clustering evaluation
 
DMTM Lecture 14 Density based clustering
DMTM Lecture 14 Density based clusteringDMTM Lecture 14 Density based clustering
DMTM Lecture 14 Density based clustering
 
DMTM Lecture 13 Representative based clustering
DMTM Lecture 13 Representative based clusteringDMTM Lecture 13 Representative based clustering
DMTM Lecture 13 Representative based clustering
 
DMTM Lecture 12 Hierarchical clustering
DMTM Lecture 12 Hierarchical clusteringDMTM Lecture 12 Hierarchical clustering
DMTM Lecture 12 Hierarchical clustering
 
DMTM Lecture 11 Clustering
DMTM Lecture 11 ClusteringDMTM Lecture 11 Clustering
DMTM Lecture 11 Clustering
 
DMTM Lecture 10 Classification ensembles
DMTM Lecture 10 Classification ensemblesDMTM Lecture 10 Classification ensembles
DMTM Lecture 10 Classification ensembles
 
DMTM Lecture 09 Other classificationmethods
DMTM Lecture 09 Other classificationmethodsDMTM Lecture 09 Other classificationmethods
DMTM Lecture 09 Other classificationmethods
 
DMTM Lecture 08 Classification rules
DMTM Lecture 08 Classification rulesDMTM Lecture 08 Classification rules
DMTM Lecture 08 Classification rules
 
DMTM Lecture 07 Decision trees
DMTM Lecture 07 Decision treesDMTM Lecture 07 Decision trees
DMTM Lecture 07 Decision trees
 
DMTM Lecture 06 Classification evaluation
DMTM Lecture 06 Classification evaluationDMTM Lecture 06 Classification evaluation
DMTM Lecture 06 Classification evaluation
 
DMTM Lecture 05 Data representation
DMTM Lecture 05 Data representationDMTM Lecture 05 Data representation
DMTM Lecture 05 Data representation
 
DMTM Lecture 04 Classification
DMTM Lecture 04 ClassificationDMTM Lecture 04 Classification
DMTM Lecture 04 Classification
 
DMTM Lecture 03 Regression
DMTM Lecture 03 RegressionDMTM Lecture 03 Regression
DMTM Lecture 03 Regression
 
DMTM Lecture 01 Introduction
DMTM Lecture 01 IntroductionDMTM Lecture 01 Introduction
DMTM Lecture 01 Introduction
 
DMTM Lecture 02 Data mining
DMTM Lecture 02 Data miningDMTM Lecture 02 Data mining
DMTM Lecture 02 Data mining
 

20130522 Intelligenza Artificiale e Videogiochi

  • 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
  • 5. ITI Malignani – 22 Maggio 2013 5
  • 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
  • 11. ITI Malignani – 22 Maggio 2013
  • 12. ITI Malignani – 22 Maggio 2013
  • 13. ITI Malignani – 22 Maggio 2013 13
  • 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”
  • 21. ITI Malignani – 22 Maggio 2013
  • 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
  • 23. ITI Malignani – 22 Maggio 2013
  • 24. ITI Malignani – 22 Maggio 2013
  • 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
  • 28. ITI Malignani – 22 Maggio 2013
  • 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.
  • 31. ITI Malignani – 22 Maggio 2013non-player characters
  • 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?
  • 46. ITI Malignani – 22 Maggio 2013
  • 47. ITI Malignani – 22 Maggio 2013
  • 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
  • 51. ITI Malignani – 22 Maggio 2013
  • 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)
  • 57. ITI Malignani – 22 Maggio 2013
  • 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.)
  • 61. ITI Malignani – 22 Maggio 2013 generazione di livelli
  • 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
  • 65. ITI Malignani – 22 Maggio 2013 Automi Cellulari Bidimensionali 66
  • 66. ITI Malignani – 22 Maggio 2013 Frozen synapses https://www.youtube.com/watch?v=Macgp4WnVZU
  • 67. ITI Malignani – 22 Maggio 2013 Generatore di Livelli Semplice 68
  • 68. ITI Malignani – 22 Maggio 2013 Human Designed Levels 69
  • 69. ITI Malignani – 22 Maggio 2013 Algorithm 1. 2. 3. 4. 70
  • 70. ITI Malignani – 22 Maggio 2013 Step 5. 71
  • 71. ITI Malignani – 22 Maggio 2013 Step 6. Walls & Doors 72
  • 72. ITI Malignani – 22 Maggio 2013 Step 7. Windows & More Doors 73
  • 73. ITI Malignani – 22 Maggio 2013 Step 8. Box Cover 74
  • 74. ITI Malignani – 22 Maggio 2013 Example #2 75
  • 75. ITI Malignani – 22 Maggio 2013 Example #3 76
  • 76. ITI Malignani – 22 Maggio 2013 Example #4 77
  • 77. ITI Malignani – 22 Maggio 2013 Example #5 78
  • 78. ITI Malignani – 22 Maggio 2013 AlienSwarm (TileGen) 79
  • 79. ITI Malignani – 22 Maggio 2013 AlienSwarm (TileGen) 80
  • 80. ITI Malignani – 22 Maggio 2013 vegetazione
  • 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
  • 86. ITI Malignani – 22 Maggio 2013
  • 87. ITI Malignani – 22 Maggio 2013 “Dramatic Pacing”
  • 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
  • 96. ITI Malignani – 22 Maggio 2013 https://www.google.com/url?sa=i &rct=j&q=&esrc=s&source=ima ges&cd=&cad=rja&docid=IzmfG B8O7i5MAM&tbnid=EunXrx5qtu dsyM:&ved=0CAUQjRw&url=htt p%3A%2F%2Fstore.raspberrypi .com%2Fprojects%2Fa-pixel- escape&ei=mMI1UYDPBcrOsw bn8ICABQ&bvm=bv.43148975, d.Yms&psig=AFQjCNF3aEc_ew 4gWv- wig9KFd4mEK_McA&ust=1362 564114303006 grazie!

Hinweis der Redaktion

  1. Game on balance,dual task.
  2. Cosa significa diventare un ingegnere informatico?
  3. Cosa significa diventare un ingegnere informatico?
  4. Prima dicapirechecos’e’ un videogiocodobbiamocapirecos’e’ un gioco… prendiamo ad esempiogliscacchi.
  5. 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).
  6. Cosafal’intelligenzaartificiale in un gioco come pac-man?Perche’ I fantasmini non vi inseguonosempre?
  7. Perche’ I nemici non vi non vi colpisconosempre ma vi mancano? Come maiperdonoanche se teoricamentepotrebberovinceresempre?
  8. Cosa significa diventare un ingegnere informatico?
  9. Hedgehog
  10. Inizialmente non c’eraalcunaintelligenzaartificiale in moltigiochi (ad esempio) space invaders. 1978
  11. http://www.youtube.com/watch?v=LPkUvfL8T1I1972 – SPIEGA IL GIOCO
  12. http://homepage.cs.uri.edu/faculty/hamel/courses/2010/spring2010/csc481/lecture-notes/ln011a.pdf
  13. http://smc.sourceforge.net/Hard-coded approach is fast and down to the metal, the interpreted approach is flexible but slow
  14. http://www.naughtydog.com/docs/Naughty-Dog-GDC08-Creating-a-Character-in-Drakes-Fortune.pdf
  15. (in Jedi Academy, gli NPC spesso cadono nel vuoto e muoiono)
  16. INITIALLY EVERYTHING RANDOM AND THEN HUMAN DESIGNED ROOMS, PLACED RANDOMLY
  17. RANDOM CORNER OF RANDOM SIZE (2) SPLIT THE REST OF THE MAP IN RANDOM SEGMENT (3) AND THEN RERUN THE ALGORITHM
  18. STOP AT A CERTAIN SIZE
  19. EVERY ROOM MUST BE ACCESSIBLE FROM THE OUTSIDE
  20. ADD WINDOWS AND DOORS
  21. ADD BOXES FOR COVER
  22. USA UNA TECNICA SIMILE, NON ESPLICITAMENTE UN L-SYSTEM MA UN CONCETTO SIMILEE’ UN’ESEMPIO DI STRUCTURED RANDOMNESS
  23. DIABLO2 USA PCG MA NON SI SA …
  24. http://www.youtube.com/watch?v=IR9x-IDX9Eg&feature=g-upl&context=G2afd661AUAAAAAAAZAA