Magazine Informatica

Miniera, un semplice roguelike

Creato il 19 novembre 2011 da Hnikarr
Sempre a proposito di roguelike, giusto per passare il tempo ho provato a prepararne uno molto semplice io stesso, sperando che sia utile a dare una idea più precisa di cosa sia un roguelike e di come funzioni. Ammesso che a qualcuno interessi, naturalmente. Il gioco in questione è “Miniera” ed è realizzato in Java, per cui può funzionare allo stesso modo su qualsiasi sistema operativo: l’unico requisito è appunto che sia installata la Java Virtual Machine. Ah, anche una tastiera può tornare utile, dato che i comandi di gioco sono dati proprio attraverso i tasti, come in quasi tutti i roguelike “classici”. Nello specifico, “Miniera” è un coffeebreak roguelike. Un coffeebreak roguelike, come il nome stesso suggerisce, è un tipo di roguelike molto breve e veloce da giocare, adatto appunto a spendere cinque o dieci minuti di pausa, giusto per rilassarsi e per far passare il tempo. Come caratteristiche di questo sottogenere, possiamo indicare la brevità del gioco, la dimensione del livello che solitamente coincide con quella della finestra di gioco, poche regole, pochi tasti da usare e in generale uno stile di gioco orientato più che altro verso i neofiti e chi non ha tempo/voglia di lanciarsi in un roguelike “maggiore”, di quelli con manuali di svariate pagine, decine di razze e categorie tra cui scegliere e combinazioni inimmaginabili di tasti. Un modo per sperimentare un roguelike senza doverci perdere la vita sociale, insomma. In “Miniera”, il gioco è molto semplice: sei rimasto intrappolato in una miniera e devi raggiungere l’uscita. Per raggiungere l’uscita, basta salire un livello dopo l’altro, fino a che non sarai arrivato alla profondità zero. Se ci arrivi, vinci; se muori strada facendo, perdi. Tutto qui. La grafica è in ASCII, puro e semplice. Questo significa che tutto è raffigurato attraverso caratteri di testo: lettere dell’alfabeto, segni di punteggiatura e così via. Il protagonista è la classica @, che ogni giocatore di roguelike conosce, # sono le pareti, § sono i cumuli di detriti (che si possono scavare, se avete una pala o un piccone), > è un passaggio verso il livello più in basso, < un passaggio verso il livello più in alto. Altri simboli rappresentano le cose che potete trovare nel corso dell’esplorazione: se non si muovono, di solito sono oggetti e li potete raccogliere e usare; se si muovono, allora non sono oggetti, ma cose che vi vogliono fare male. Per il resto, lo scopo del gioco è trovare le scale che portano verso l’alto (cioè <) e salire, fino a che non siete arrivati all’uscita. Per un elenco completo dei pochi tasti, basta premere ? durante il gioco. Miniera, un semplice roguelike
Due parole adesso su come è strutturato il programma. Lo schermo di gioco è costituito da un JPanel, su cui ho simulato una console vecchio stile: quella che, come abbiamo già visto, in Rogue era definita Curses. Per il Java, come per altri linguaggi di programmazione analoghi, si possono trovare librerie che emulano il comportamento dei curses, ma personalmente non mi piacciono granché: ho dunque trafficato un po’ coi JPanel, per ottenere più o meno gli stessi risultati. Non sarà identico, ma mi pare soddisfacente. I mostri sono dotati di un AI piuttosto rudimentale, sia perché l’ho programmata in tempi ristretti, sia anche per non rendere troppo complicata la vita al protagonista. Sono comunque forniti di due sistemi di ricerca del personaggio: ricerca a vista e ricerca a olfatto. In altri termini, se vedono il personaggio lo inseguono a vista; se non vedono il personaggio, cercheranno di seguire l’odore che il personaggio ha lasciato nelle aree visitate. Se sono messi male, possono tentare di fuggire, oppure di mangiare qualcosa per recuperare le energie. Per simulare l’odore, ho usato una semplice variabile numerica. Quando il personaggio calpesta una casella, la variabile corrispondente guadagna una certa cifra, che poi decade col tempo, quando il personaggio si allontana. I mostri possono “fiutare” il punteggio della variabile e seguire così la traccia, alla ricerca di variabili più “fresche”. Forse non è il sistema migliore per svilupparlo, ma è rapido e sufficientemente semplice. Inoltre, non richiede algoritmi che consumano tante risorse. Personaggio e mostri possono fare più o meno le stesse cose. o almeno potrebbero: in questo caso, ho preferito evitare di far usare anche ai mostri gli attrezzi che si possono trovare, ma sono capaci di raccogliere il cibo (o almeno ciò che loro considerano cibo) e mangiarlo quando sono a corto di energia. Entrambi, infatti, estendono la stessa classe, ossia “Creatura”, al cui interno si trova la gran parte dei metodi usati dai mostri e dal giocatore. Utilizzato in un roguelike normale, questo sistema darebbe anche ai mostri la possibilità di servirsi di tutte le armi e di tutti gli oggetti magici che il giocatore potrebbe usare. E potrebbe essere molto letale, credetemi... ma sarebbe anche molto interessante, per cui credo proprio che lo farò, prima o poi. È poi possibile che il gioco contenga alcuni bug, anzi diciamo pure che è probabile: quasi tutti i programmi ne contengono, ma nel peggiore dei casi dovreste solo notare comportamenti anomali del personaggio o dei mostri. Nel caso, siete liberi di segnalarli, così li cercherò e li correggerò. Se il Java è installato correttamente, potete avviarlo come qualsiasi altro programma: se usate Windows, insomma, è sufficiente un doppio click.
Download Miniera (40 KB - JAR)

Potrebbero interessarti anche :

Ritornare alla prima pagina di Logo Paperblog

Possono interessarti anche questi articoli :