Cavescape, il diario di bordo

Ho scritto questo post quasi due mesi fa. Sono riuscito a rimandarne la pubblicazione promettendomi di farlo solo quando avrei avuto per le mani qualcosa di concreto di cui parlare. Cavescape, nome che sostituisce il precedente Caves & Creatures, è il mio primo, basilare, motore per lo sviluppo di un roguelike. Parlo di motore o engine (parecchio più cool) perché l’obiettivo del progetto è imparare e sviluppare un framework, più che tendere a un prodotto finito. Come è già stato per Adventurescape, l’engine per librogame digitali, del quale abbiamo parlato un bel po’ di tempo fa. Il codice Java/Android in quel caso è bello che pronto nell’hard disk, con tanto di una versione giocabile di Fuga dall’Altrove. Sta bene lì e vi saluta tutti.

Continua…

Generazione procedurale 2D in Javascript

Fuori si sta per scatenare il primo temporale del mese, con mia immensa soddisfazione, e nel frattempo me ne sto chiuso qua dentro, col ventilatore a palla e il gatto che lo guarda tra il curioso e l’impaurito. Pronto a raccontare qualcosa del nuovo passo compiuto sul cammino della generazione procedurale.

Ho già accennato qualcosa sull’argomento, che è molto vasto e complesso, e del quale vi lascio la definizione di Wikipedia: In computer graphics, procedural generation is generating content algorithmically rather than manually. In video games this means graphic content for a game can be created by the host computer, instead of prerendered artwork being included with game package.
Quindi, generazione di contenuti tramite un algoritmo e non pescandoli da un lavoro fatto in precedenza.

Cosa si genera in maniera procedurale? Qualsiasi cosa, o quasi. Abbiamo ormai sempre più spesso esempi di videogame con contenuti di questo tipo, ma ad esempio per le texture (i “motivi” che ricoprono oggetti nei giochi, dando loro un maggior realismo, spaziando dal terreno alle case, dalle foglie degli alberi a fumo e fiamme) questo è un metodo in uso già da molti anni.
In questo caso il vantaggio è ovvio, a fronte di una maggiore potenza di calcolo richiesta, non si devono memorizzare le texture che verranno visualizzate nel gioco.

Continua…