giovedì 14 luglio 2011

FACCIAMO UN (VIDEO)GIOCO? - PARTE 6

Inserisci link
Come dicevamo nello scorso articolo, oggi passiamo dal singolo labirinto al vero e proprio dungeon multi-livello.

Cominciamo come al solito con un po' di pianificazione, tenendo sempre presenti i due concetti fondamentali: pensare in piccolo e impostare il gioco in modo procedurale:
- in questo caso "pensare in piccolo" significa che il gioco dovrà essere ridotto ad un puro e semplice dungeon crawler: nessun PNG con cui interagire, nessuna quest, nessuna possibilità di ritornare ai livelli precedenti del dungeon. Sarebbero tutte caratteristiche bellissime, per carità, ma sfortunatamente per essere implementate richiederebbero molto più tempo di quanto io possa dedicarci, quindi ahimè dovremo eliminarle.
- "impostare il gioco in modo procedurale" significa dare al giocatore la possibilità di impostare alcuni parametri, facendo gestire tutto il resto al computer.

Tradotto in pratica, questo significa che:
- il giocatore potrà impostare la profondità del dungeon (es. da 5 a 30 livelli);
- si inizierà con una breve introduzione che spiega la storia dietro al gioco (ci ho ragionato un po' sopra e mi pare di aver ideato una trama in grado di giustificare in modo abbastanza plausibile sia le limitazioni a cui ho accennato sopra, sia altre che introdurrò più avanti);
- subito dopo il gioco entrerà direttamente nel vivo con l'esplorazione del primo livello del dungeon, generato casualmente;
- ogni volta che si accede ad un nuovo livello del dungeon la mappa precedente viene cancellata ed il nuovo livello viene creato da zero (quindi non è possibile, nè necessario, salvare le mappe dei livelli precedenti)
- Dopo aver raggiunto l'uscita dell'ultimo livello del dungeon, si passa alla schermata (o alle schermate) di epilogo, dove si conclude la storia.

Dal punto di vista della programmazione, questo sistema è molto lineare, quindi concettualmente semplice da implementare:
- dopo aver impostato le caratteristiche del dungeon e creato i personaggi, si passa alla prima schermata dell'introduzione, poi alla seconda e così via;
- dopodichè si genera automaticamente il primo livello e si avvia il gioco;
- all'uscita del primo livello si genera automaticamente il secondo, poi il terzo e così via fino all'ultimo. Sono sufficienti due variabili: una che contiene il numero totale dei livelli (impostato dal giocatore) e l'altra che contiene il numero del livello corrente. Quando il livello corrente è uguale al numero totale dei livelli, significa che è stato raggiunto l'ultimo livello del dungeon.
- all'uscita dell'ultimo livello si passa alla schermata della conclusione.

Una leggera complicazione tecnica di tutto questo procedimento (nulla di insormontabile, comunque) è data dal fatto che non posso semplicemente "staccare" improvvisamente da una schermata all'altra, ma devo inserire delle transizioni (fade out - fade in) per rendere i passaggi meno improvvisi e quindi più gradevoli.

Così anche questa è fatta: abbiamo l'introduzione, l'intero dungeon completamente esplorabile e la conclusione. La prima parte del gioco (diciamo il "contenitore") è completa. Ora dobbiamo iniziare a riempirlo di "contenuti" aggiungendo avventurieri, mostri e tesori. Cominceremo nel prossimo articolo con gli avventurieri.

2 commenti:

Mattia Bulgarelli (K. Duval) ha detto...

Voce di "Doc" Emmett Brown:

"Trame? Dove stiamo andando non abbiamo bisogno... di trame!" ^_-

Luca Bonisoli ha detto...

^__^