Evolutionary Learning and Search-Based Content Generation in Computer Games
Luigi Cardamone · 2012
I videogiochi di ultima generazione hanno raggiunto notevoli livelli di realismo. Questo risultato e stato possibile grazie agli elevati progressi ottenuti nella realizzazione di motori grafici tridimensionali e simulatori della fisica sempre piu sofisticati che permettono di rappresentare degli ambienti di gioco con un elevato grado di complessita. Tuttavia, la crescente complessita degli ambienti di gioco ha reso sempre piu difficile la programmazione dell'intelligenza artificiale dei giocatori controllati dal computer, spesso indicati come non-player characters (NPCs). Da una parte vi e la necessita di avere tecniche in grado di automatizzare lo sviluppo dei comportamenti di gioco dei non-player characters. Dall'altra si rendono necessari dei meccanismi per realizzare non-player characters piu sofisticati, in grado di apprendere dall'esperienza ed adattarsi a nuove condizioni di gioco. Un altra problematica, relativa alla crescente complessita degli ambienti di gioco, riguarda la generazione del contenuto di gioco. Per contenuto si intendono tutti quegli elementi che non fanno strettamente parte del motore di gioco, ma ne estendono la giocabilita e la durata: per esempio i livelli di gioco, le mappe, le armi, i personaggi, le piste da corsa, ecc. Nei videogiochi piu complessi, la generazione delle mappe di gioco e una attivita costosa che puo richiedere diversi mesi di lavoro. Da qui la necessita di avere degli strumenti in grado di automatizzare parzialmente o totalmente la generazione del contenuto di gioco. In questo contesto, la Computational Intelligence puo rappresentare un approccio interessante per affrontare alcune delle problematiche presenti nell'ambito dei videogiochi. La Computational Intelligence e un area di ricerca dell'Intelligenza Artificiale, che comprende tecniche e modelli matematici ispirati alla natura, come Algoritmi Evolutivi, Reti Neurali e Apprendimento per Rinforzo. Negli ultimi anni, la Computational Intelligence e stata applicati ai giochi e a i videogiochi in molti lavori di ricerca. Il numero di pubblicazioni scientifiche e i risultati ottenuti in questo ambito suggeriscono che l'applicazione della Computational Intelligence nei videogiochi rappresenta una direzione di ricerca promettente. In questa tesi ci proponiamo di affrontare alcune problematiche presenti nell'ambito dei videogiochi, usando tecniche di Computational Intelligence ed in particolare Algoritmi Evolutivi. Prenderemo in esame due problematiche dei videogiochi moderni: l'apprendimento dei comportamenti di gioco dei non-player characters e la generazione del contenuto di gioco. Per quanto riguarda l'apprendimento, verranno studiati due aspetti: da una parte tecniche per automatizzare l'apprendimento dei comportamenti di gioco; dall'altra tecniche per creare dei non-player characters sofisticati in grado di apprendere on-line, cioe durante il gioco stesso. Per quanto riguarda la generazione del contenuto di gioco studieremo diversi approcci: generazione basata su cifre di merito teoriche e generazione basata sulle preferenze dell'utente. I vari approcci verranno studiati in videogiochi che richiedono contenuto di gioco molto diverso tra loro: piste per un gioco di guida, mappe per uno sparatutto in prima persona e livelli per un gioco platform. I risultati ottenuti mostrano che gli approcci proposti hanno un buon potenziale e che la Computational Intelligence rappresenta una metodologia efficace per supportare diversi aspetti dello sviluppo di videogiochi.