20130522 Intelligenza Artificiale e Videogiochi

96
ITI Malignani – 22 Maggio 2013 Trailer In Verbis Virtus http://www.indomitusgames.com/index.php/it/

description

Presentazione del 22 Maggio 2013 all'ITI Malignani su Intelligenza Artificiale e Videogiochi.

Transcript of 20130522 Intelligenza Artificiale e Videogiochi

  • 1. ITI Malignani 22 Maggio 2013Trailer In Verbis Virtushttp://www.indomitusgames.com/index.php/it/

2. ITI Malignani 22 Maggio 2013Intelligenza Artificiale e VideogiochiProf. Pier Luca Lanzi 3. ITI Malignani 22 Maggio 2013Buongiorno! Prof. Pier Luca Lanzi Dipartimento di Elettronica,Informazione e Bioingegneria Istruzione Biennio allITI 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 Programming3Primo programma a 13 anni, 33 anni fa 4. ITI Malignani 22 Maggio 2013Ho Iniziato Cosi Nel mentre E adesso 4 5. ITI Malignani 22 Maggio 20135 6. ITI Malignani 22 Maggio 2013Il Politecnico di Milano Il Politecnico di Milano (o PoliMi) ununiversit statale di tipotecnico-scientifico Comprende corsi inIngegneriaArchitetturaDesignProfessori 1,355Staff tecnico eamministrativo1,187Studenti di dottorato 856Assegnisti di ricerca 675Studenti 37,0366 7. ITI Malignani 22 Maggio 20137http://www.topuniversities.com/universities/politecnico-di-milano 8. ITI Malignani 22 Maggio 2013Dipartimento di Elettronica,Informazione e Bioingegneria Principale dipartimento dItalia per ilsettore dellinformazione e uno dei primidEuropa e del mondo Una classifica IEEE/ACM lo pone al 7postoal mondo nellambito dellingegneria delsoftware. 13M di contratti da enti privati. UE, entipubblici nazionali Produttivit scientifica molto elevata e dialta qualit, rivolta soprattutto a congressie pubblicazioni internazionali8 9. ITI Malignani 22 Maggio 2013A Pixel Escape Gameplayhttp://www.apixelescape.com/ 10. ITI Malignani 22 Maggio 2013Solar Journeyhttps://www.youtube.com/watch?v=ZTbjWL1AaYc 11. ITI Malignani 22 Maggio 2013 12. ITI Malignani 22 Maggio 2013 13. ITI Malignani 22 Maggio 201313 14. ITI Malignani 22 Maggio 2013di cosa parliamo oggi?intelligenza artificiale e videogiochi 15. ITI Malignani 22 Maggio 2013cosa fa lintelligenza artificiale? 16. ITI Malignani 22 Maggio 2013sistemi che pensanocome esseri umanisistemi che pensanorazionalmentesistemi che agisconocome esseri umanisistemi che agisconorazionalmente 17. ITI Malignani 22 Maggio 2013sistemi che pensanocome esseri umanisistemi che pensanorazionalmentesistemi che agisconocome esseri umanisistemi che agisconorazionalmente 18. ITI Malignani 22 Maggio 2013Agire Come un Essere Umano Approccio convenzionaleIntelligente ci che realizzaun determinata prestazione Estensione della nozione di intelligenzaNon solo pensare, ma anche agire Tradizione del test di Turing (1950) Abilit nel raggiungerePrestazioni a livello umanoSufficienti a ingannare un interrogante18 19. ITI Malignani 22 Maggio 2013cosa fa lintelligenza artificialenei videogiochi? 20. ITI Malignani 22 Maggio 2013good artificial intelligence 21. ITI Malignani 22 Maggio 2013 22. ITI Malignani 22 Maggio 2013minimax(player, board)if(gameover in current board position)return winnerchildren =all legal moves for player from this boardif(maxs turn)return maximal score of callingminimax on all the childrenelse (mins turn)return minimal score of callingminimax on all the children 23. ITI Malignani 22 Maggio 2013 24. ITI Malignani 22 Maggio 2013 25. ITI Malignani 22 Maggio 2013good artificial intelligencevsfun artificial intelligence 26. ITI Malignani 22 Maggio 2013Good ArtificialIntelligence Regole fissate Simmetrica Multi-giocatore Strategie illimitate Test oggettivi Passa il test di TuringFun ArtificialIntelligence Design in costanteevoluzione Asimmetrica Singolo giocatore Strategie limitate Valutazione soggettiva Ignora il test di Turinggioca per vincere gioca per perdere 27. ITI Malignani 22 Maggio 2013Far Cry 2http://www.youtube.com/watch?v=sDiGYDNMsZU 28. ITI Malignani 22 Maggio 2013 29. ITI Malignani 22 Maggio 2013Diablo III (random quests)https://www.youtube.com/watch?v=xn_XWY-dArchttps://www.youtube.com/watch?v=2pFzro2Pjtk 30. ITI Malignani 22 Maggio 2013come viene applicata nei videogiochi?personaggi non giocanti (la IA del gioco)generazione del contenutogame design, animazioni, analisi dei giocatori,adaptive gameplay, ecc. 31. ITI Malignani 22 Maggio 2013non-player characters 32. ITI Malignani 22 Maggio 2013Come Viene Applicata aiPersonaggi 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 lanimazione corretta32 33. ITI Malignani 22 Maggio 2013Space Invadershttp://www.youtube.com/watch?v=QObneYZIdKI 34. ITI Malignani 22 Maggio 2013Inizialmente Le caratteristiche e il comportamento dei personaggi nongiocanti erano fissate nel gioco In Space Invaders, gli alieni si muovono su un livellopredefinito con una velocit predefinita (funzione delnumero di alieni) seguendo una delle due direzionidisponibili Sparano con una frequenza casuale verso lastronave delgiocatore Il gioco non ha alcuna IA34 35. ITI Malignani 22 Maggio 2013Qual stato il primo videogioco con IA? 36. ITI Malignani 22 Maggio 2013Ponghttps://www.youtube.com/watch?v=it0sf4CMDeM 37. ITI Malignani 22 Maggio 2013Pong! (1972) Pong stato il primo gioco con una forma di IA La racchetta del personaggio non giocante era calcolatautilizzando una semplice forma per predirre laltezza chela palla avrebbe avuto nellattraversare la linea dellaracchetta Alla racchetta della IA era assegnata una velocit e unaprobabilit di errore che dipendeva dal livello di difficolt In questo modo la racchetta della IA poteva mancare lapallina ogni tanto in base al livello di difficolt37 38. ITI Malignani 22 Maggio 2013Pac-Manhttp://www.youtube.com/watch?v=jiJ0PkU8t3c 39. ITI Malignani 22 Maggio 2013Pac-Man Un eroe Pac-Man, quattro fantasmi (Blinky, Pinky, Inky,Clyde) 244 pallini e un numero di livelli infiniti (teoricamente) Tre modalit per i fantasmiCHASE: il fantasma cerca di catturare Pac-ManSCATTER: i fantasmi raggiungono il proprio angoloFRIGHTENED: i fantasmi sono spaventati Quattro differenti comportamenti per i fantasmi ottenuticombinando le tre modalit39 40. ITI Malignani 22 Maggio 2013Comportamento dei Fantasmi:Modalit Scatter40 41. ITI Malignani 22 Maggio 2013Come Funziona la IA deiPersonaggi 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 perpianificazione di una unit Si rende necessario spezzare la pianificazione di una unit su piframe41 42. ITI Malignani 22 Maggio 2013Esempio di Comportamento perun First Person ShooterGet AmmoGet HealthRun AwaySearch For EnemyAttackEnemyFoundEnemyLostLowonAmmoLowonHealthGotAway,LowonHealthGotHealthGot AmmoGotAway,LowonAmmo42 43. ITI Malignani 22 Maggio 2013Macchine a Stati Finiti (FSM) Soluzione pi semplice per implementare lintelligenza artificiale di unNPC Gli stati danno una rappresentazione di alto livello di quello chelintelligenza artificiale cerca di fare Ogni stato contiene del codice per implementare il comportamento nelparticolare stato Le transizioni avvengono in base a cambiamenti nellambiente 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 complesse43 44. ITI Malignani 22 Maggio 2013Macchine a Stati Finiti (FSM) Hard-Coded La macchina a stati finiti e scritta direttamente nel linguaggio concui si sviluppa il gioco (C/C++) Interpretate Un interprete carica una rappresentazione testuale da file cheviene poi interpretata Compilata Una rappresentazione testuale viene letta e ne viene generatolequivalente nel linguaggio in cui viene sviluppato il gioco44 45. ITI Malignani 22 Maggio 2013come 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 2013Fearhttps://www.youtube.com/watch?v=VCcVy8-nHOU 49. ITI Malignani 22 Maggio 2013F.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 talkingI am shot! vs whats your status? If the AI is stuck say I have nowhere to go!49 50. ITI Malignani 22 Maggio 2013Uncharted 3https://www.youtube.com/watch?v=ELD2epCsx0c 51. ITI Malignani 22 Maggio 2013 52. ITI Malignani 22 Maggio 2013Game AI is largely an unsolved problem 53. ITI Malignani 22 Maggio 2013Come Dovrebbe Essere lIntelligenzaArtificiale di un Gioco? Idealmente il sistema di IA di un gioco dovrebbe seguire lestesse regole e gli stessi vincoli che deve seguire ilgiocatore, cos da giocare in modo fair Ad esempio, nei giochi di strategia, il giocatore umanovede solo parti della mappa, lo stesso dovrebbe fare la IA Nella pratica, questo difficile e molti sistemi di IA digioco sono molto limitate in alcune circostanze Per evitare questo tipo di problemi i sistemi di IAimbrogliano un pochino ma non troppo in modo che ilgiocatore non se ne accorga53 54. ITI Malignani 22 Maggio 2013Come pu imbrogliare la IA di gioco?Usando la conoscenza completa ed esatta delmondoPu evitare i proiettili, sa dove sono nascoste leunit, che carte e che capitale ha ilgiocatore, ecc.Inoltre 55. ITI Malignani 22 Maggio 201355Motogp13http://www.youtube.com/watch?v=SDfua5PrJ8c 56. ITI Malignani 22 Maggio 2013Pianificazione delle azionie dei movimenti (path finding) 57. ITI Malignani 22 Maggio 2013 58. ITI Malignani 22 Maggio 2013Come Viene Implementato il Pathfindingnei Videogiochi? Quattro rappresentazioni Griglie Grafi di waypoint Mesh di navigazione Delaunay Triangulation58 59. ITI Malignani 22 Maggio 2013Pathfinding bugshttp://www.youtube.com/watch?feature=player_embedded&v=lw9G-8gL5o0 60. ITI Malignani 22 Maggio 2013Che cose la Generazione Procedurale di Contenuti?Generazione Proceduralesenza alcun intervento o un limitato intervento umano(generazione algoritmica)di Contenutiovvero gli elementi che influenzano il gioco(livelli, armi, power up, ecc.) 61. ITI Malignani 22 Maggio 2013generazione di livelli 62. ITI Malignani 22 Maggio 2013Generazione 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 finoa quando non soddisfatta la condizione di fine Infine, creare una stanza per ogni area creata e collegarele stanze63 63. ITI Malignani 22 Maggio 2013Generazione di Dungeon:Algoritmo di Anderson1. Riempi tutta la mappa di solido (terra)2. Scava una stanza al centro della mappa3. Seleziona una parete di una qualsiasi stanza4. Selezionare una nuova feature da aggiungere(corridoio, stanza quadrata, irregolare, ecc.)5. Controllare se possibile aggiungere la nuova feature6. Se si, continua, altrimenti vai a 37. Aggiungere la nuova feature sulla parete scelta8. Torna a 3 fino a quando il livello non completo9. Aggiungi scale (cambio di livello) in maniera casuale10.Infine genera la posizione dei mostri e dei tesori64 64. ITI Malignani 22 Maggio 2013Automi Cellulari Paradigma di computazione basato su interazioni locali Usato negli studi di vita artificiale e complessitemergente Il valore di una cella dipende dallinterazione di n+1 cellevicine Linterazione viene specificata attraverso delle regole65 65. ITI Malignani 22 Maggio 2013Automi Cellulari Bidimensionali 66 66. ITI Malignani 22 Maggio 2013Frozen synapseshttps://www.youtube.com/watch?v=Macgp4WnVZU 67. ITI Malignani 22 Maggio 2013Generatore di Livelli Semplice 68 68. ITI Malignani 22 Maggio 2013Human Designed Levels 69 69. ITI Malignani 22 Maggio 2013Algorithm1. 2.3. 4.70 70. ITI Malignani 22 Maggio 2013Step 5. 71 71. ITI Malignani 22 Maggio 2013Step 6. Walls & Doors 72 72. ITI Malignani 22 Maggio 2013Step 7. Windows & More Doors 73 73. ITI Malignani 22 Maggio 2013Step 8. Box Cover 74 74. ITI Malignani 22 Maggio 2013Example #2 75 75. ITI Malignani 22 Maggio 2013Example #3 76 76. ITI Malignani 22 Maggio 2013Example #4 77 77. ITI Malignani 22 Maggio 2013Example #5 78 78. ITI Malignani 22 Maggio 2013AlienSwarm (TileGen) 79 79. ITI Malignani 22 Maggio 2013AlienSwarm (TileGen) 80 80. ITI Malignani 22 Maggio 2013vegetazione 81. ITI Malignani 22 Maggio 2013Perche la Vegetazione? E una parte importante di moltissimi giochi (ad es.FarCry) Deve essere credibileRappresentazione molto dettagliataLe 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 2013Speed Tree Demohttp://www.youtube.com/watch?v=6MDGt9XNS7Y 83. ITI Malignani 22 Maggio 2013L-Systems Aristid Lindenmeyer li introduce nel 1968, per modellare lo sviluppo dellepiante Generano stringe a partire da un alfabeto di variabili e costante a cui siaggiungono una serie di regole Le stringe vengono interpretate graficamente Esempio Variabili: A B Constanti: + e Simbolo iniziale: A Regole: (A BAB), (B A+B+A) Angolo: 60 Entrambe A e B corrispondono a disegna in avanti, + significa gira asinistra", mentre significa gira a destra (dellangolo specificato)84 84. ITI Malignani 22 Maggio 2013Esempio: 2, 4, 6 e 8 iterazioni 85 85. ITI Malignani 22 Maggio 2013Esempio 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 2013Dramatic Pacing 88. ITI Malignani 22 Maggio 2013Left4Deadhttps://www.youtube.com/watch?v=yEZ6YIXdr8o 89. ITI Malignani 22 Maggio 2013Dramatic Pacing in Left4Dead Il ritmo di gioco viene aggiustato durante il gioco permassimizzare la tensione Basato sullesperienza di counter strikeCombattimento senza variazioni affaticanteLunghi periodi di inattivit sono noiosi Generazione di picchi imprevisti di intensit per creare unesperienza di gioco avvincente Stesso scenario, quasi stessa mappa ma esperienzadifferente90 90. ITI Malignani 22 Maggio 2013Algoritmo di Pacing in Left4Dead Stima lintensit emotiva di ogni sopravvissuto survivor Traccia lintensit 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 dizombi basandosi sullo stato emotivo della squadra91 91. ITI Malignani 22 Maggio 2013Se Siete Interessati Allo sviluppo di videogiochiXNA 4.0 in C# per Xbox e Windows PhoneUnity3D per Mac/Windows/IOS/Android Allintelligenza artificialeSimulated Car Racing ChampionshipScopo: scrivere un programma in grado di controllareuna macchina da corsa in una pista sconosciutaJava/C/C++http://games.ws.dei.polimi.it/92 92. ITI Malignani 22 Maggio 2013Tanto da Leggere, Ma Tutto in Inglese The Rough Guide to Videogames by KateBerens, Geoff Howard (Sep 8, 2008) Vintage Games: An Insider Look at theHistory of Grand Theft Auto, Super Mario,and the Most Influential Games of All Time byBill Loguidice and Matt Barton (Mar 4, 2009) The Ultimate History of Video Games: FromPong to PokemonThe Story Behind theCraze That Touched Our Lives and Changedthe World by Steven L. Kent (Oct 2, 2001) Replay: The History of Video Games byTristan Donovan (Apr 20, 2010) Masters of Doom: How Two Guys Created anEmpire and Transformed Pop Culture David Kushner (Amazon)93 93. ITI Malignani 22 Maggio 2013Riferimenti Artificial Intelligence for GamesIan Millington and John Funge (Aug 6, 2009) Artificial Intelligence: A Modern Approach (3rd Ed.)Stuart Russell, Peter Norvig94 94. ITI Malignani 22 Maggio 2013Blog Italiani http://www.indievault.it http://www.gameprog.it95 95. ITI Malignani 22 Maggio 2013Se Avete Bisogno di Informazioni [email protected] Skypepierluca.lanzi Webhttp://www.pierlucalanzi.nethttp://games.ws.dei.polimi.it Game designhttp://www.gamasutra.com Game Jamhttp://www.ludumdare.com96 96. ITI Malignani 22 Maggio 2013https://www.google.com/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&docid=IzmfGB8O7i5MAM&tbnid=EunXrx5qtudsyM:&ved=0CAUQjRw&url=http%3A%2F%2Fstore.raspberrypi.com%2Fprojects%2Fa-pixel-escape&ei=mMI1UYDPBcrOswbn8ICABQ&bvm=bv.43148975,d.Yms&psig=AFQjCNF3aEc_ew4gWv-wig9KFd4mEK_McA&ust=1362564114303006grazie!