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…

Javascript A* pathfinding demo

A new post in the english side of “The shaman’s lair”, after more than a year. I’ve been caged by real life problems, and the effort of writing in english was too much to me. Now that things seem to come to a more stable way it’s my intention to try again. Short posts, mainly about my works as a programmer but with focus on my side projects.

Today is the time to speak of a short Javascript implementation, coded in my spare time to learn something about the language and to make a first step into roguelikes game system. To be clear, I’m not starting a new roguelike. But there are lot of interesting things to be learned in that world, and learning while playing is a the best way, for everything.

Well, the first step I’ve made has been to write a procedural generation code with the target to build random cavelike structures, and it works fine for me. I’ve called it Caves and Creatures, you could guess why 🙂
Continua…

Pathfinding demo

E quando ben pensi di poter andare tranquillo… c’è che mi sono divertito a sviluppare qualcosa di un po’ più interattivo, mentre continuo a studiare generazione procedurale, e ne è uscito un demo simpatico che illustra qualche caratteristica del pathfinding, nell’implementazione Javascript di cui vi parlavo ieri.
Ora, non credo che questo blog diventerà mai un sito sulla programmazione, avrei già in testa un articolo o due su argomenti molto diversi, spero nella prossima settimana. Aggiungere una nuova sezione è deleterio, direbbero i SEO oriented.
Ma noi qua ce ne freghiamo, e se buttare giù un migliaio di righe di codice dà soddisfazione, val la pena condividere i risultati.
Continua…

Pathfinding in Javascript

Ultimo articolo del mese, un maggio dedicato ad argomenti ludici, sospeso tra la storia di Dungeons & Dragons (arrivata in tempo per l’uscita della nuova versione “Next”) e la guida a Pixel Dungeon.
Articolo tecnico oggi, per la – credo – seconda volta nella vita del blog. Si torna a parlare di programmazione, dopo un accenno agli sviluppi del motore Java per i libri game, di quasi due anni fa (andato perduto nel cambio di piattaforma blog, temo).
Ci riprovo, partendo dal solito spunto.
Nel mio caso vale il detto giocando si impara.
O, meglio, giocando vien voglia di imparare.
L’ispirazione di questi giorni è proprio Pixel Dungeon e il genere roguelike.
Capita così, da sempre. Vedo qualcosa e mi chiedo come faccia a funzionare. E se sarei in grado di farla (magari meglio, ché altrimenti non c’è sfida).
Bastano poche partite, qualche giro sul web, i due argomenti che solleticano la mia curiosità sono:

– la creazione procedurale, costruire ambienti, che sia un sotterraneo o una città, in maniera casuale con funzioni che seguano determinate regole

– il pathfinding, la possibilità di determinare il percorso (se esiste) che unisce due punti di un certo insieme di nodi, ottimizzando risorse quali distanza percorsa e tempo di elaborazione
Continua…

AdventureScape su Android e altre novita’

Partiamo da una novità che c’entra poco e avviciniamoci per gradi all’argomento del post. C’è meno roba nel menu lassù in alto! Notato? Seguendo gli insegnamenti dell’amico Bruce, ho tolto pezzi e semplificato, e ora c’è un’unica pagina dei download dove troverete tanta roba gratis (o wishwere, se vogliamo coniare un termine nuovo). Software (Librogame Creator e KDP Sales Manager, giochi (ho riesumato il vecchio party game horror Infection) e i PDF della fanzine The Arkham Gazette (che c’era voluto tanto lavoro per farla, era un peccato lasciarla lì dimenticata per sempre).

The Arkham Gazette

Notizie fresche da Arkham e dintorni

Dopo il giro per il sito facciamo un salto al caldo, dove l’amico Mauro continua a parlare (oltre che della bella Tenerife) di giochi & C, citando in un articolo anche gli sviluppi dei miei software per la scrittura di testi interattivi. Quindi fatevi un giro sul suo blog Caponata Meccanica (tropical edition) e poi continuiamo.

Ed eccoci qua.
Secondo articolo dedicato ad AdventureScape, il motore per libri interattivi che sto sviluppando in Android. Dopo averne visto qualche scorcio in un post di febbraio, rieccoci per vedere come procedono i lavori. Un post che serve forse più a me che a chi legge, visto che almeno in Italia dubito che creare “hype” per qualcosa come i libri game digitali possa essere utile, vista la scarsa propensione generale alla lettura (a parte per lo zoccolo duro di appassionati, certo). E ti chiedono “ma perché lo fai?” e la risposta è sempre la stessa, mi diverto (programmare e scrivere, occorre dirvi che sono tra le mie principali passioni di sempre?) imparo cose nuove utili per il mio lavoro e poi ho sempre voluto creare un gioco e ormai quasi ci sono. E devo dirlo è davvero una bella sensazione. Vada come vada, raggiungere un obiettivo che si aspetta da così tanto tempo è sempre esaltante.

Logo libro game Fuga dall'Altrove

La prima implementazione di AdventureScape sarà come dicevo un LG che già trovate da scaricare in versione eBook, con qualche modifica ai paragrafi di gioco. Ci saranno quindi nuove scelte, soprattutto durante gli scontri. Questi mirano a diventare qualcosa di più narrativo e complesso, scelta che avevo fatto già ai tempi di Obscura Genesi (ma lì, dovendo il giocatore tener a mente decine di variabili, rendeva troppo pesante il gioco).

L'inventario di gioco

L’inventario di gioco

Le cose non si mettono bene...

Le cose non si mettono bene…

La SAN non basta mai

La SAN non basta mai

Altre novità, rispetto la versione di un mese fa, sono gli effetti sonori, una grafica migliorata, la pagina delle istruzioni (il solito “manuale” che è sempre tra le ultime cose fatte da chi programma 😀 ), l’inventario interattivo, la copertina (tratta dal libro originale, a cura di Davide Marescotti), alcune illustrazioni (tratte da lavori fatti per le mie fanzine da Christian Fermo) e l’introduzione di nuovi comandi per il meta linguaggio del libro interattivo.

Il libro è già in test, nelle capaci mani di un esperto del settore. Perché ora viene la parte più complicata: la ricerca di bug nella codifica del libro e il test della App su più dispositivi, tablet, smartphone, per essere sicuro che la leggibilità sia buona ovunque. A tal proposito a breve inizierò a reclutare tester, che abbiano tempo e voglia di farsi un giro nell’Altrove e darmi un loro parere su quanto fatto.

Insomma, inizio a vedere la luce alla fine del tunnel.
E ciò è buono, perché dopo un anno ci voleva, serve a mantenere alto l’entusiasmo per i pochi mesi che ormai separano l’App dal diventare definitiva. E magari aggiungere qualche altra “piccola modifica” che lo so come sono e difficilmente mi accontento.

Ma ci siamo. Quasi.

La cover di Fuga dall'Altrove

La luce in fondo al tunnel!

Prossimamente sui vostri smartphone

Nei giorni scorsi, nel mentre preparavo l’articolo sui roguelike, leggevo articoli ed ero costretto a testare questo tipo di giochi (come sempre un duro lavoro che bisogna fare) sono tornato a sfogliare il forum di Librogame’s Land, la community nella quale bazzicavo quando hanno avuto origine l’editor per libri interattivi, LibroGame Creator, il racconto lovecraftiano Fuga dall’Altrove (scaricabile gratis da tra i miei ebook, ancora in attesa del sequel) e il malloppo fanta horror Obscura Genesi (che proprio in questi giorni è stato gentilmente recensito su facebook da un lettore, cose che come sempre fanno piacere a chi scrive/crea anche se il libro ormai penso sia scomparso dagli store).

 

Logo libro game Fuga dall'Altrove

chest

Ne è venuto fuori un discorso sugli sviluppi dei libri interattivi e su quello che è il destino di Librogame Creator il cui sviluppo sembra fermo da anni. Dico sembra perché dal 2012 in qua ho portato avanti nel solito pochissimo tempo libero una sua nuova versione, adattata a uno scopo unico: permettermi di sviluppare un formato di LG che fosse giocabile sugli smartphone. Sì, esattamente come fanno già molte altre App, soprattutto (bene) in lingue inglese e poco (e male) in lingua italiana (ne ho testata qualcuna e i testi sono piuttosto brutti da vedere e da giocare).

Una sneak preview di Libro Game Creator 3.0

Una sneak preview di Libro Game Creator 3.0

C’è voluto circa un anno e mezzo. E ho pensato di scriverne due righe, per tirare un po’ le somme, un post pseudo tecnico che leggeranno in 4 e capiranno in 2. Me compreso.

A cosa è servito un anno e mezzo di lavoro?

  1. ideare un nucleo di istruzioni per un “linguaggio di programmazione” della narrazione dei libri game; progettare il parser di un linguaggio, per quanto limitato sia nella sua grammatica, è stata la parte più complessa del lavoro;
  2. sviluppare il nuovo formato di file (ora un database SQLite);
  3. modificare LGC perché permettesse l’inserimento delle istruzioni nel “linguaggio” e le entità sulle quali questo avrebbe operato (oggetti, locazioni, attributi di gioco e quanto altro serve);
  4. sviluppare il motore Java, più generico possibile, che andasse a tradurre il meta linguaggio dei capitoli del libro game in qualcosa di interattivo (una decina di classi che implementano un pattern MCV);
  5. sviluppare una App Android che implementi il motore Java, con modifiche minime;
  6. aggiungere una grafica minima che renda visivamente l’App almeno decente;
  7. scrivere un libro game di prova per testare queste feature (adattarne uno esistente, in realtà, operazione che si è tradotta in tre tentativi di cui due falliti perché troppo complicati)

A ben vedere è una lista niente male (ed è strano perché in giro vedo gente che dice quanto sia “facile e veloce” fare una cosa del genere, ma si tratta quasi sempre di persone che vedono la programmazione da molto, molto lontano).

Un libro game su Android

Un libro game su Android

E non è ancora finita. In questi giorni sto iniziando i test del LG, una versione interattiva del mio Fuga dall’Altrove, e incredibile a dirsi ma c’è ancora molto da fare.

Inserite le cose base, potendo giocare, salvare e continuare, avere un “segnalibro” che simuli il solito dito che teneva traccia del paragrafo precedente nel caso si fosse fatta la scelta sbagliata, implementato l’inventario interattivo e con la possibilità di scriptare gli oggetti per fargli fare in pratica qualsiasi cosa, c’è ancora molto lavoro.
bookmark_loadIntanto la grafica, che da minima deve diventare migliore, all’altezza almeno di quanto si trova in giro. Risolvere qualche bug minimo, e tanti tanti test per migliorare ancora. E se le cose procedono con questo ritmo non ci si arriverà prima dell’estate (di quest’anno dai).

Cosa avverrà a quel punto? Beh c’è ancora da affrontare tutta la parte sul mettere le proprie App sul market di Google, che si porterà via il suo tempo e alla fine Fuga dall’Altrove in versione Android ci finirà, gratuitamente.

Una volta che questo progetto pilota avrà fatto il suo dovere, col bagaglio tecnico accumulato e la struttura completata, l’idea è di mettersi a lavorare su qualcosa di più lungo e nuovo, da completare per l’anno successivo. Magari un bel libro game horror, un adattamento semplificato della fantascienza di Obscura Genesi o uno sword & sorcery cupo e sanguinolento.

Ma stiamo correndo già troppo, per ora stiamo ancora tentando di fuggire dagli orrori lovecraftiani celati nei sotterranei della città, verso l’Altrove…

Fighting Fantasy, Caponata e Libro Game Creator

libro game creator iconUn post rapidissimo e inaspettato per ringraziare uno dei redattori della rivista inglese Fighting Fantazine, dedicata a Fighting Fantasy e più in generale al mondo della narrativa interattiva. Un malloppo di 100 e più pagine (realizzato molto bene e gratuito) che in questo numero 12 presenta un articolo sull’Italia dei libri game dove menziona il preparatissimo Mauro con il suo sito Caponata Meccanica e dedica qualche riga anche al software per scrivere libri game che ho realizzato qualche tempo fa, Libro Game Creator.

Essere citati in una pubblicazione simile fa molto piacere, FF è la dimostrazione di come questo tipo di intrattenimento non sia morto e riesca anzi a godere di una nuova giovinezza (soprattutto – stranamente eh, visto il gusto e il coraggio nelle italiche letture – all’estero), grazie alle tecnologie mobile, come dimostra il successo dei titoli della Tin Man Games, dei quali ho recensito a suo tempo An Assassin in Orlandes, libro interattivo di successo che ha avuto recentemente un seguito. Titolo che si è aggiunto a un catalogo che conta una ventina di Gamebook Adventures, nati per iOS e felicemente approdati su piattaforme Android (il che gli ha permesso di sbarcare anche nello store di Amazon).  A questa tecnologia anche LGC si è avvicinato ultimamente… ma questa è una storia segreta della quale parlerò solo a tempo debito.

 

Fighting Fantazine 12

Se volete cimentarvi nella lettura della rivista andate al paragrafo 1 trovate tutto online sul sito ufficiale di Fighting Fantazine.

LGC 2.0.3

LGC - Libro Game CreatorNo, fermi, non ci ho messo mano recentemente e no, non ho corretto alcuni dei bug che tanto speravate. Mi spiace.

L’ultima modifica risale a molti mesi fa, fatta su richiesta di uno dei fan del software per la scrittura di libri interattivi. Me ne sono ricordato in questi giorni dopo aver ricevuto una inattesa donazione da un gruppo di scrittori che gestisce un piccolo sito e intende darsi alla narrativa a bivi. Ho pensato quindi di rendere nota questa versione, così da indirizzare sul sito dove scaricarla, assieme alle precedenti parecchio vintage, tutte ormai ospitate da Google Code.

Cos’è Libro Game Creator, LGC per gli amici, ve l’ho spiegato tempo fa, nella pagina dedicata.

La release 2.0.3 porta a 20 il numero di link che si possono inserire all’interno di un unico paragrafo (ai fan di LGC piacciono i libri semplici, che vi posso dire 🙂 ).

Se non sapete cosa sono i libri game potete scoprirlo leggendo un mio piccolo esperimento, ovviamente gratuito e come sempre in formato eBook (ma anche in PDF per i nostalgici).

 

Fuga dall'Altrove (libro game gratuito, formato ePub)Fuga dall'Altrove (libro game gratuito, formato PDF)

 

Tutto qua,

buona scrittura interattiva!

The X(html) marks the spot to dig

“So forget any ideas you’ve got about lost cities,
exotic travel, and digging up the world.
Eve do not follow maps to buried treasure
and “X” never, ever, marks the spot.”
— Indiana Jones

Secondo post nello sviluppo di jLGC, che procede, lo sviluppo non il post, più rapidamente di quanto riesca a scriverne. Il problema che presento l’ho risolto già una decina di giorni fa, e la trasformazione dall’originale RTF (contenuto nei file del vecchio Libro Game Creator) in codice XHTML, necessario a creare le pagine per costruire i file ePub, è ormai testata e consolidata. Gli eBook creati da jLGC passano pure il test di EpubCheck validation, con somma soddisfazione.

Il principale dubbio sulla conversione era come mantenere intatti i link ai paragrafi, senza utilizzare una codifica fissa (ad es. HTML), in modo da poter facilmente identificare i link ed esportarli ogni volta nella maniera corretta (interni a un singolo file HTML, tra più file HTML, tra i file XHTML dell’ePub,…). Per fare questo ho adottato una codifica a TAG personalizzata. Alle funzioni di esportazioni viene dato in pasto questo e un template di sostituzione, adattabile al formato di file che si va a creare.
Continua…

Java Libro Game Creator

jLGC classes

jLGC classes

Lo so lo so, avevo detto che il blog apriva questa sezione in inglese. Li ho pure scritti un paio di post, ma la mia traduttrice personale ha perso anni di vita cercando di correggerli. Insomma mi sa che prima devo studiare ancora un po’ e ritentare. Per ora le storie sulla nuova versione del software per scrivere narrativa interattiva ve li beccate in italiano, relegati comunque a questo “sotto blog” dedicato allo sviluppo selvaggio.
E il primo post non può che essere questo: un lungo recap sulla storia del programma, seguito dalle succulente novità!

Per chi non sapesse cos’è Libro Game Creator: trattasi di programmino per scrivere libri “a bivi”, con tutto il necessario per importarli da formati testuali, editarli, esportarli in HTML o RTF (per una successiva pubblicazione in PDF ad esempio). Le sue feature più importanti sono in realtà la possibilità di rimescolare i paragrafi mantenendo validi i link interni e di visualizzare il grafo connesso dei paragrafi (con l’indicazione grafica di quelli vuoti, “finali” e fissi).

Il programma è nato nel lontano 2007 ed è stato adottato dalla community del sito Librogame’s Land dove bazzicavo da un po’ quando scrivevo il lovecraftiano Fuga dall’Altrove e il complicatissimo Obscura Genesi. Nei primi tre anni ha visto parecchie versioni e un’interfaccia grafica che cambiava ogni stagione, poi lo sviluppo si è praticamente fermato causa i miei impegni di impaginatore e il dover tornare a metter mano a un codice scritto – sigh – in Delphi.

Continua…