Matematica | Informatica
Gregorio Silvestri, 2004 | Lugano, TI
Il lavoro di maturità studia l’implementazione di alcune tecniche che permettono di creare delle mappe per i videogiochi in modo infinito ed automatico, le cosiddette tecniche per la generazione procedurale. Lo studio è stato svolto in due parti. La prima parte consiste nell’implementazione di vari algoritmi, allo scopo di creare diversi tipi di mappe. La seconda contiene una proof of concept volta a dimostrare la possibilità di unificazione dei vari algoritmi in uno solo, più flessibile che permettesse di ottenere mappe analoghe alle precedenti. L’algoritmo scelto è stato Wave Function Collapse (WFC). L’obbiettivo della seconda parte del lavoro non è stato dunque quello di implementare varie volte WFC in modo completo, ma di sviluppare dei prototipi che ne potessero dimostrare le potenzialità nell’industria videoludica moderna.
Argomento
Le tecniche per la generazione procedurale di mappe servono ad automatizzare il processo di creazione dello spazio di gioco, ottenendo un numero pressoché infinito di mappe giocabili. Queste tecniche sono fondamentali nell’industria per diversi generi di gioco, pertanto perfezionarle e idearne di nuove è un passo fondamentale da fare per migliorare la giocabilità dei nuovi titoli.
Metodologia
WFC si basa su un concetto già molto utilizzato nella creazione di mappe per i videogiochi, le tiles. Queste non sono altro che piastrelle digitali, tutte delle stesse dimensioni, che possono essere combinate per formare delle mappe. WFC punta ad automatizzare questo processo, creando delle mappe coerenti e funzionali al gioco. Una prima tecnica, più semplice, è stata implementata tramite il motore di gioco Unity, che ha un sistema suo già di base per la gestione delle tiles. In seguito è stata fatta un’implementazione di WFC più complessa, che sfruttasse i lati delle tiles per costruire un sistema di strade. Questo algoritmo è stato scritto in Python, dato che questo linguaggio permette una più agevole gestione di strutture complesse.
Risultati
Con il primo metodo sono stati ottenuti due algoritmi, uno per la generazione di caverne e uno per la generazione di spazi nello stile di una mappa topografica. Con il secondo metodo è stato prima ottenuta un’altra implementazione che simulasse delle caverne, e in seguito una seconda che riproducesse mappe in stile dungeon.
Discussione
Le mappe ottenute con il primo metodo sono risultate più essenziali e primitive rispetto alle originali, però ciò è principalmente dovuto ad implementazioni di poca qualità. Le mappe mostrano comunque che è possibile riprodurre i risultati ottenuti con le tecniche precedenti. I risultati del secondo metodo sono stati più fruttuosi. La nuova mappa in stile dungeon ha superato in qualità una delle due tecniche, distinguendosi per tratti e proporzioni migliori. La simulazione delle caverne ha portato invece ad un risultato dall’aspetto analogo a quello di Cellular Automata, ma meno naturale. In generale tutti i prototipi mostrano che è possibile implementare WFC per sostituire le diverse tecniche precedenti
Conclusioni
I risultati ottenuti mostrano il potenziale di questa tecnica e del suo impiego nell’industria. Con un solo algoritmo si possono creare una grande varietà di mappe adatte ad ogni situazione. Le implementazioni di questo lavoro hanno più uno scopo dimostrativo, pertanto un obbiettivo futuro è quello di renderle più efficienti e funzionali ad uno sviluppo di grandi dimensioni. Si possono inoltre arricchire di contenuti per rendere le mappe più interessanti e divertenti da giocare, che dobbiamo sempre ricordarci essere lo scopo ultimo dello sviluppo di un videogioco. Il lavoro svolto non serve dunque da mero esercizio tecnico, ma ci permette di inquadrare e mettere a fuoco gli aspetti importanti da tenere in considerazione durante lo sviluppo di una mappa per videogiochi in generale.
Valutazione del lavoro espressa dall’esperto
Dr. Daniele Malpetti
Lo studente ha lavorato su metodi per la generazione automatica di mappe per videogiochi. Nella prima parte del lavoro ha implementato alcuni metodi di uso comune, che generano ciascuno una mappa di una specifica tipologia (stanze interconnesse, caverne, isole). Nella seconda parte, ha provato a riprodurre i risultati dei metodi precedenti usando un solo algoritmo (WFC), cercando di mostrare che questo può unificarli. L’obiettivo era ambizioso, e seppur non in modo completo e definitivo, grazie a un consistente lavoro di implementazione, lo studente ha saputo mostrare le potenzialità di WFC.
Menzione:
buono
Liceo cantonale di Lugano 1
Docente: Prof. Amedeo Mazzoleni