Apple Developer Academy · Tesi di laureaCase study
Rob: The Game: livelli generati proceduralmente.
Un FPS con elementi roguelike in cui la struttura dei livelli viene costruita a partire da una griglia di celle. Il mio contributo principale è stato l’algoritmo di generazione casuale dei dungeon, basato su DFS randomizzata e backtracking.

Immagine originale di gameplay tratta dalla tesi di laurea, capitolo dedicato al progetto.
Un FPS con struttura roguelike.
Rob: The Game è un doomer shooter in prima persona sviluppato con Unity come progetto dell'Apple Developer Academy e approfondito nella tesi di laurea. Il giocatore attraversa livelli composti da stanze collegate, affronta nemici e boss e raccoglie risorse e oggetti per proseguire la partita.


Generare un dungeon, non una mappa predefinita.
La mappa viene modellata come una griglia di celle. Le stanze rappresentano i nodi del grafo e i corridoi gli archi che le collegano. L'algoritmo esplora la griglia tramite una Depth-First Search (DFS) con scelta casuale dei vicini e usa uno stack per il backtracking.
Inizializza la board
Crea la griglia, sceglie una cella iniziale e la marca come visitata.
Esplora i vicini
Controlla le celle adiacenti non visitate e ne seleziona una in modo casuale.
Applica il backtracking
Salva il percorso nello stack. Quando non ci sono vicini, torna indietro fino a un punto con nuove possibilità.
Costruisce le stanze
Usa le celle visitate per istanziare i prefab delle stanze e configurare porte e muri.
Dalla sequenza di celle alla scena Unity.
Il generatore non si ferma alla visita del grafo: trasforma il percorso individuato in una scena composta da GameObject e prefab. La configurazione delle stanze rende visibili le aperture corrette e prepara gli elementi necessari al livello.
Ricerca e costruzione
La logica descritta nella tesi passa attraverso la creazione della board, la ricerca dei vicini, la gestione dello stack e la generazione delle stanze a partire dalle celle visitate.
I metodi citati includono MazeGenerator, CheckNeighbors e GenerateDungeon.
Topologia delle stanze
Ogni stanza usa array di GameObject per porte e muri. Il metodo UpdateRooms riceve i valori che determinano quali elementi rendere visibili in base ai collegamenti del percorso.
Il dungeon come parte del gameplay.
Il layout generato viene collegato ai sistemi di gioco: posizione del giocatore, minimappa, stanza del boss e distribuzione di oggetti e nemici.
Spawn e minimappa
La generazione individua una posizione per il giocatore, inizializza la minimappa e disabilita lo spawn dei nemici nella stanza iniziale.
Boss e oggetti
La stanza del boss viene predisposta accanto all'ultima stanza del percorso. Gli oggetti presenti nelle stanze vengono generati e posizionati in modo casuale.
Il mio contributo: generazione procedurale.
Mi sono occupato principalmente dell'algoritmo per la generazione casuale dei dungeon, basato su DFS randomizzata e backtracking. Il case study approfondisce questa parte senza attribuirmi l'intero sviluppo del videogioco.
Ho lavorato sul cuore della generazione dei livelli.
Il contributo riguarda la logica che esplora la griglia, seleziona i collegamenti tra celle e permette di tornare sui propri passi quando un ramo termina. Il risultato è la struttura usata per popolare la scena con stanze, passaggi e contenuti.
Tecnologie e strumenti.
Lo sviluppo del gioco e del generatore si basa su Unity e C#, con componenti dell'engine per la costruzione della scena e il movimento degli agenti.