Cerca nel sito

Il Sondaggione!!

Qual è il tuo genere di librogame preferito, pensando a un ipotetico titolo inedito di prossima uscita?

Introduzione a LGC3

Introduzione a LGC3

Ci siamo, sembra incredibile, ma una nuova versione di LGC è disponibile e sarà messa in download a breve.
Siccome trattasi di una versione di test, atta a iniziare il cammino verso una prima release stabile e soddisfacente, intanto vi illustro i punti fondamentali del software e di come penso di strutturare i prossimi passi.
Il rilascio di questa "alfa" sarà limitato al forum di LGC, nessuna pubblicità all'esterno, news o cambiamenti ai siti "ufficiali", per ora rimane tutto "tra noi".
Come sempre consigli e domande sono i benvenuti.

INTRODUZIONE
Prima di andare a vedere cosa c'è in questo nuovo LGC mi preme ripetere un punto fondamentale: questa che scaricherete (la 3.0.0) è UNA VERSIONE DI TEST. Vuol dire che sono state implementate tutta una serie di feature che devono ancora essere provate intensivamente. NON si può quindi considerare questa una versione "da produzione".
LGC3 attualmente è orientato pesantemente alla creazione di LG che siano giocabili su piattaforme moderne, da siti web con js/HTML5 ad applicazioni Android. NESSUNA di queste verrà fornita con LGC3, per intenderci, ma chi sa programmare troverà in questo nuovo formato tutto ciò che gli serve per gestire i dati di un LG elettronico.
LGC3 è aperto alla scrittura di nuovi plugin di esportazione, ad esempio quello per il formato RTF che so tanto caro agli scrittori che ancora vogliono andare "su carta". Non avendo il tempo di scrivere altri plugin, in quanto impegnato con lo sviluppo del core del programma, affiderò volentieri a chi si proponesse questo compito. Basta saper programmare in Java, io fornisco le specifiche dei dati in ingresso (il LG in pratica) e di quelli ognuno farne ciò che gli serve. Una volta completato e testato il plugin, io lo includerò nella successiva release di LGC (con i dovuti crediti, of course).

NEW FEATURES
Veniamo finalmente a vedere cosa c'è in questo LGC3. Molte delle seguenti caratteristiche avrebbero bisogno di un "mini manuale" o di una wiki apposita. Spero molto di riuscire a scriverne una prima o poi ( smile ).

- LGC3 è in inglese. Ha già implementato il meccanismo per essere multilingua ma finché gli sviluppi continuano a questo ritmo non riesco a star dietro a questa parte del programma, ma prima o poi ( smile ) verrà completata.

- nuovo formato di file, niente più testo/xml ma un formato binario, molto più gestibile

- nuova sintassi per i link tra paragrafi.
Si passa da
puoi scappare e nasconderti andando al <132> oppure picchiare il coboldo al <113>
a
puoi {link 132:scappare e nasconderti} oppure {link 113:picchiare il coboldo}
che amplia notevolmente la vecchia versione e la ingloba, scrivendo ad esempio
puoi scappare e nasconderti andando al {link 132:132} oppure picchiare il coboldo al {link 113:113}
NON sono possibili "tecniche miste" del tipo {link 132: vai al 132} in quanto lo shuffle non potrebbe distinguere valori e link (prendete il caso {link 2: raccogli le 2 frecce} ad esempio, è limite ma so che tutto può accadere smile ). Quindi o si usa la tecnica classica col link solo sul numero oppure quella nuova, col testo del link alfanumerico senza il numero del paragrafo.

- editor WYSIWYG in HTML (l'ottimo Ekit modificato per l'occorrenza) che permette tra le altre cose la visualizzazione del sorgente HTML e il collegamento a un file CSS esterno (definito dall'utente, che entrerà a far parte dell'esportazione in HTML).
A tutto ciò ho aggiunto ai link a paragrafi (il tag {link visto prima) l'highlight e la possibilità di navigarli cliccando sul tag link

- tutto in LGC3 è un'entità, ogni entità ha un nome, un tipo, un gruppo e un certo numero di attributi. Questo è un concetto sul quale possono sorvolare tutti quelli che intendono solo scrivere un LG e stamparlo. Chi invece vuole sviluppare cose più complesse ci avrà a che fare in modo massiccio. Per fare un primo esempio, il capitolo 132 del LG è un'entità di tipo ET_CHAPTER, nome 132, appartiene inizialmente a un gruppo indefinito e ha tra i suoi attributi fondamentali i tre flag ereditati da LGC2 (fisso, finale, mortale) e l'attributo AN_DESCRIPTION, cioè il testo del capitolo. I gruppi, ai quali si possono affidare le entità, sono utili per definire ad esempio le parti di un libro, e verranno rappresentati come blocchi nei grafi esportati con graphviz (in LGC2 a tale scopo si usava il "titolo" del paragrafo, ora scomparso).
Tutte le entità e i gruppi sono modificabili, ma alcune, se non presenti, non permetteranno il corretto funzionamento dei plugin di import/export.
Queste sono le entità game, rules ed intro.
game permette di memorizzare tra gli attributi i dati del libro (autore, titolo,...).
intro e rules servono per la memorizzazione di introduzione e regole del LG, e verranno esportate dai plugin indicati più avanti

- importazione dai formati
LGC2
SQLite (con un database strutturato seguendo un preciso script di creazione che metterò online)

- esportazione nei formati
HTML, file singolo con link interni
HTML, file multipli (con introduzione, regole e capitoli di gioco, tutti linkati)
ebook (un file epub con introduzione, regole e capitoli di gioco, tutti linkati)
SQLite (da un database strutturato dallo script di cui parlavo sopra) utile per la lettura del LG da app per smartphone
Graphviz, per la visualizzazione dell'albero di gioco

- shuffle dei paragrafi
ho riscritto l'algoritmo di shuffle rendendolo più efficiente. Inoltre ora c'è un meccanismo che permette di rilevare "collisioni" nel libro game (parafrafi troppo vicini tra loro) e rimescolare il libro per eliminare questi difetti di lettura. Questa parte dello shuffle, l'analisi della prossimità, è tutt'ora in test e potrebbe avere dei bug, per cui nel file di configurazione è disattivata di default.

COSA SERVE
La chiamata alle armi è per i valenti scrittori di LG (e magari altri dei programmatori che so bazzicare LGL), affinché facciano prove mirate (importare il proprio lg, esportarlo, shufflarlo,...). Nulla vieta di lavorare direttamente con questa versione di LGC sui propri testi, però non aspettatevi correzioni di bug o nuove implementazioni immediate.
Non avendo mai rilasciato programmi Java è fondamentale che almeno una persona per sistema operativo mi confermi il funzionamento di LGC3 su sistemi Windows, Linux e Mac.
Vi chiederei gentilmente in questa fase di NON scrivere qui richieste personali, le teniamo da parte per quando avrò implementato le funzioni basilari che mi mancano (associazione con i file .xlgc, search/replace di testo, selezione rapida di paragrafi,...) e il programma sarà stato testato a sufficienza.
Nel mentre, piuttosto, esorterei ancora chi sa programmare a contattarmi per lo sviluppo di nuovi plugin, questa sì attività che può andare in parallelo. Il plugin per l'esportazione in rtf o in altri formati proprietari, ad esempio, sarebbe molto utile per ampliare le potenzialità del software.

Detto questo vi lascio al link per scaricare il file (che metterò online tra breve) da scompattare dove volete. Al suo interno troverete una cartella che contiene il file lgc3.jar. Questo è il file da eseguire, sebbene io abbia incluso anche uno starter Windows (run.cmd) e uno Linux (run.sh). Questi aprono una shell sulla quale vedrete i log del programma, mentre è in esecuzione, utile per vedere se ci sono errori mentre si lavora.
Qualsiasi errore capiti, vi esorto a guardare nell'area BUGS e, se non c'è il bug che volete indicare, riportare il vostro e allegare il file che troverete nella sottocartella log.

Le istruzioni di funzionamento verranno integrate nei prossimi giorni, in modo da avere un minimo "manuale" per chi inizia a usare il programma.


Direi che come primo post è più che sufficiente, nei prossimi giorni aggiungerò il link per il download e da lì partirà questa nuova avventura.

Ultima modifica di: Shaman
Ott-15-14 11:13:59

Matteo
Autore dell'Editor per la narrativa interattiva LibroGameCreator 3

Shaman
Avatar dello Shuffle
Amministratore
useravatar
Offline
1914 Messaggi
Info utenti nei messaggi
Administrator has disabled public posting

Re: Introduzione a LGC3

Intanto congratulazionissime per la nuova imminente release!  applauso
Io sono altamente ignorante in materia e non potrò aiutare granchè (ad es non ho capito NIENTE di quello che hai scritto nel paragrafo "lgc è un'entità").
Però ho una prima osservazione da fare che mi è venuta in mente quando ho letto questo:

Shaman ha scritto:

- nuova sintassi per i link tra paragrafi.
Si passa da
puoi scappare e nasconderti andando al <132> oppure picchiare il coboldo al <113>
a
puoi {link 132:scappare e nasconderti} oppure {link 113:picchiare il coboldo}
che amplia notevolmente la vecchia versione e la ingloba, scrivendo ad esempio
puoi scappare e nasconderti andando al {link 132:132} oppure picchiare il coboldo al {link 113:113}

Se non ho capito male tutto quello che viene scritto fra "{link X:" e "}" è il testo del link.
Ma allora la soluzione "{link 132:132}" da te pensata per mantenere la compatibilità col formato tradizionale di rimando ai paragrafi in realtà toppa clamorosamente nel momento in cui i paragrafi vengono rimescolati!
yikes

Gran Contab"\uFFFD"0x0000FFFDýýý
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-20389873-1']);
  _gaq.push(['_trackPageview']);

abeas
ýýýý
Arcimaestro
ranks
useravatar
Offline
666 Messaggi
Info utenti nei messaggi
Administrator has disabled public posting

Re: Introduzione a LGC3

Quella è una feature che sto sviluppando, non è complicata ma prevede alcuni controlli necessari (tutte le versioni come {link 132:Vai al 132} richiedono lo stesso trattamento).
Ho aggiornato le istruzioni aggiungendo una postilla sulle tecniche "miste" come quella che indicavo, impossibili per i motivi citati.

Matteo
Autore dell'Editor per la narrativa interattiva LibroGameCreator 3

Shaman
Avatar dello Shuffle
Amministratore
useravatar
Offline
1914 Messaggi
Info utenti nei messaggi
Administrator has disabled public posting

Re: Introduzione a LGC3

Per la verita' anche io non ho compreso il senso di vari passaggi ma confido che, quando sara' possibile scaricare il programma, un giro di prova servira' a chiarire tutti questi dettagli...

Seven_Legion
100% SIMPY CERTIFIED
Moderatore
useravatar
Offline
4184 Messaggi
Info utenti nei messaggi
Administrator has disabled public posting

Re: Introduzione a LGC3

Seven_Legion ha scritto:

Per la verita' anche io non ho compreso il senso di vari passaggi ma confido che, quando sara' possibile scaricare il programma, un giro di prova servira' a chiarire tutti questi dettagli...

In che senso vari passaggi?

Matteo
Autore dell'Editor per la narrativa interattiva LibroGameCreator 3

Shaman
Avatar dello Shuffle
Amministratore
useravatar
Offline
1914 Messaggi
Info utenti nei messaggi
Administrator has disabled public posting

Re: Introduzione a LGC3

Bhe, ad esempio, hai detto che scrivere:

puoi {link 132:scappare e nasconderti}

va bene.

anche {link 132:132} va bene... (mi sembra di capire: forse perche' il programma vede che c'e' solanto un numero nella seconda parte e capisce che quindi e' un numero di paragrafo??

Dopo di che dici che:

NON sono possibili "tecniche miste" del tipo {link 132: vai al 132} in quanto lo shuffle non potrebbe distinguere valori e link. Caso limite {link 2: raccogli le 2 frecce} 

Ok, ma cosa succede su mi trovo dentro ad un ascensore e devo decidere se andare al primo o secondo piano?
Scrivero':
Ora puoi premere i bottoni dei piani {link 1:1} oppure {link 2:2}

a questo punto lo shuffle s'ingannerebbe e mi troverei il gioco che stampa:

Ora puoi premere i bottoni dei piani 153 oppure 18.

Mentre invece 1 e 2 erano da intendersi parti "letterali" da non cambiare.

Lo stesso problema anche se il gioco proponesse un codice di accesso o di comporre un numero di telefono, etc...

Seven_Legion
100% SIMPY CERTIFIED
Moderatore
useravatar
Offline
4184 Messaggi
Info utenti nei messaggi
Administrator has disabled public posting

Re: Introduzione a LGC3

Già risolto nel vecchio LGC wink
Basta impostare quei paragrafi come fissi, in quel caso non rimangono sufflati.
Si scrive

Ora puoi premere i bottoni dei piani {link 21:1} oppure {link 43:2}

E i due paragrafi 21, 43 si mantengono fissi.
Questo aiuta anche a ritrovare i paragrafi che fanno parte di un "enigma" in sede di lettura del gioco, basta scorrere la lista e vedere quelli che hanno il simbolo "fisso".

PS sfido chiunque a scrivere a mano il testo di un LG per comporre le 10 cifre di un cellulare, considerando che ogni cifra è ripetibile bigsmile

Matteo
Autore dell'Editor per la narrativa interattiva LibroGameCreator 3

Shaman
Avatar dello Shuffle
Amministratore
useravatar
Offline
1914 Messaggi
Info utenti nei messaggi
Administrator has disabled public posting

Re: Introduzione a LGC3

Shaman ha scritto:

è fondamentale che almeno una persona per sistema operativo mi confermi il funzionamento di LGC3 su sistemi Windows, Linux e Mac.

mi prenoto per linux, giusto il tempo di aggiornare ubuntu.

mi trovate anche su http://temalibero.forumfree.it/
le foto dei miei doppioni su flickr

SkarnTasKai
MeGATrON
Barone del Sole
ranks
useravatar
Offline
2057 Messaggi
Info utenti nei messaggi
Administrator has disabled public posting

Re: Introduzione a LGC3

Bene bigsmile
Stasera dovrei riuscire a mettere online la versione. Purtroppo Google Code ha smesso di fare hosting dei binari quindi sto progettando una nuova sede per tutto LGC in modo da non avere mille siti in giro.

Matteo
Autore dell'Editor per la narrativa interattiva LibroGameCreator 3

Shaman
Avatar dello Shuffle
Amministratore
useravatar
Offline
1914 Messaggi
Info utenti nei messaggi
Administrator has disabled public posting

Info Forum

Statistiche Forum:
 
Totale Discussioni:
5824
Totale Sondaggi:
100
Totale Messaggi:
154688
Totale Messaggi Oggi:
1
Info Utenti:
 
Totale Utenti:
10301
Ultimo Utente Registrato:
past89