Benvenuto Visitatore(Log In|Registrati)

 
Reply to this topicStart new topic
> Nuovo mini-framework per AT sotto Twine 2, Un wip per scrivere avventure testuali punta e clicca sotto Twine!
pinellos
messaggio15 Sep 2020, 17:30
Messaggio #1





Gruppo: Gamer
Messaggi: 250
Iscritto il: 30 November 17
Da: everywhere
Utente Nr.: 21.677
SO Sono un BOT, cancellami l'account




Ciao!
Sto lavorando a una specie di mini-framework sotto Twine; riprendendo il vecchio sistema che avevo usato per "Altroquando" l'ho portato in Sugarcube riscrivendolo sostanzialmente da zero, in modo che:

1) fosse semplice da capire e usare
2) fosse modificabile ed espandibile all'occorrenza
3) permettesse un approccio "libero" al giocatore non limitandolo a seguire dei link ma permettendogli di comporre delle semplici frasi tramite cui interagire con il gioco

Il risultato è una cosa del genere:

https://www.pinellos.com/wp-content/uploads/sandbox/hyp/

E' ancora molto acerbo, ci sono mille mila cose che si possono fare meglio e l'ho scritto alla veloce, ma al momento consente già di produrre dei giochi di una certa complessità.
Non ho ancora scritto una documentazione e una versione "vanilla" di questo affare, ma per il momento se qualcuno lo vuole provare ecco il file da importare in Twine (dopo averlo estratto dall'archivio):

https://www.pinellos.com/wp-content/uploads...box/hyp/hyp.zip

Questo è il progetto esattamente come si può giocare dal link.
Alla veloce:

- Si definiscono gli "oggetti" di gioco tramite un tag "obj" e 2 parametri:

<<obj "descrizione dell'oggetto per il testo della locazione" "testo da scrivere nel parser">>

Il primo parametro definisce cosa verrà scritto sotto forma di link cliccabile nel testo; se il secondo parametro è definito, cliccando sul link generato da <<obj>> questo verrà impostato nella linea di parser, altrimenti verrà utilizzato il primo parametro. Esempio, voglio scrivere un paragrafo così:

"Sono nella cabina di pilotaggio di un A320 Airbus, di fronte a me vedo una complicata pulsantiera ed un leva di comando"

in cui sia la leva di comando che la pulsantiera siano cliccabili. Nel caso della leva basta un solo parametro (<<obj "una leva di comando">>) affinchè quando si clicchi sul link generato da obj il parser restituisca correttamente "una leva di comando"; nel caso della pulsantiera è meglio utilizzare il secondo parametro: <<obj "una complicata pulsantiera" "la pulsantiera">> in modo che quando cliccheremo sul link "una complicata pulsantiera" il parser scriverà solo "la pulsantiera".

- Si valuta la validità dell'espressione formata dal parser nel passaggio "interactions"; per ogni oggetto sono enumerate sottoforma di switch/case of tutte le possibili interazioni. Per aggiungerne una, è sufficiente inserire un nuovo <<case "espressione ">> e scrivere sotto il codice da eseguire.

- I verbi sono definiti nel passaggio Verbs, si possono ovviamente cambiare, aggiungere, togliere e mettere qualsiasi altra parola che si vuole aggiungere alla lista dei termini cliccabili sotto il parser

- L'inventario è automatico, sono presenti due widget <<prendi "oggetto">> e <<lascia "oggetto">> che fanno il lavoro di aggiungere o eliminare un oggetto dall'inventario.

- Il widget <<notify "messaggio">> serve per far comparire il popup con le risposte brevi

Per ora sono dietro a rifinire e migliorare il tutto e non ho una documentazione decente, ma il sistema è veramente semplice e se c'è qualcuno così ardimentoso da provare a farci qualcosa, basta chiedere e io sono qui pronto a rispondere.
Ciao a tutti e grazie!


--------------------
Visita il mio blog personale sullo sviluppo di giochi e altra roba: www.pinellos.com - C'è anche in inglese così sembra una cosa seria!
 
riobros76
messaggio20 Sep 2020, 16:14
Messaggio #2





Gruppo: Gamer
Messaggi: 77
Iscritto il: 23 December 04
Utente Nr.: 1.623
BGE SILENT HILL
SO Linux




Ottimo complimenti,
mi ricorda proprio l'interfaccia di Monkey Island e avventure grafiche simili. Ottima anche la breve avventura di esempio. Solo qualche piccolo problema da smartphone dove prima si deve scendere in basso, ad esempio per fare tap su Esamina, poi si deve risalire per selezionare l'oggetto per poi riscendere per tappare sull'intera frase. L'idea è ottima, però personalmente nella versione mobile li metterei ad esempio fissi, proprio per evitare questo scrolling di sale e scendi. Per il resto complimenti!

Best Regards.





CITAZIONE (pinellos @ 15 Sep 2020, 17:30) *
Ciao!
Sto lavorando a una specie di mini-framework sotto Twine; riprendendo il vecchio sistema che avevo usato per "Altroquando" l'ho portato in Sugarcube riscrivendolo sostanzialmente da zero, in modo che:

1) fosse semplice da capire e usare
2) fosse modificabile ed espandibile all'occorrenza
3) permettesse un approccio "libero" al giocatore non limitandolo a seguire dei link ma permettendogli di comporre delle semplici frasi tramite cui interagire con il gioco

Il risultato è una cosa del genere:

https://www.pinellos.com/wp-content/uploads/sandbox/hyp/

E' ancora molto acerbo, ci sono mille mila cose che si possono fare meglio e l'ho scritto alla veloce, ma al momento consente già di produrre dei giochi di una certa complessità.
Non ho ancora scritto una documentazione e una versione "vanilla" di questo affare, ma per il momento se qualcuno lo vuole provare ecco il file da importare in Twine (dopo averlo estratto dall'archivio):

https://www.pinellos.com/wp-content/uploads...box/hyp/hyp.zip

Questo è il progetto esattamente come si può giocare dal link.
Alla veloce:

- Si definiscono gli "oggetti" di gioco tramite un tag "obj" e 2 parametri:

<<obj "descrizione dell'oggetto per il testo della locazione" "testo da scrivere nel parser">>

Il primo parametro definisce cosa verrà scritto sotto forma di link cliccabile nel testo; se il secondo parametro è definito, cliccando sul link generato da <<obj>> questo verrà impostato nella linea di parser, altrimenti verrà utilizzato il primo parametro. Esempio, voglio scrivere un paragrafo così:

"Sono nella cabina di pilotaggio di un A320 Airbus, di fronte a me vedo una complicata pulsantiera ed un leva di comando"

in cui sia la leva di comando che la pulsantiera siano cliccabili. Nel caso della leva basta un solo parametro (<<obj "una leva di comando">>) affinchè quando si clicchi sul link generato da obj il parser restituisca correttamente "una leva di comando"; nel caso della pulsantiera è meglio utilizzare il secondo parametro: <<obj "una complicata pulsantiera" "la pulsantiera">> in modo che quando cliccheremo sul link "una complicata pulsantiera" il parser scriverà solo "la pulsantiera".

- Si valuta la validità dell'espressione formata dal parser nel passaggio "interactions"; per ogni oggetto sono enumerate sottoforma di switch/case of tutte le possibili interazioni. Per aggiungerne una, è sufficiente inserire un nuovo <<case "espressione ">> e scrivere sotto il codice da eseguire.

- I verbi sono definiti nel passaggio Verbs, si possono ovviamente cambiare, aggiungere, togliere e mettere qualsiasi altra parola che si vuole aggiungere alla lista dei termini cliccabili sotto il parser

- L'inventario è automatico, sono presenti due widget <<prendi "oggetto">> e <<lascia "oggetto">> che fanno il lavoro di aggiungere o eliminare un oggetto dall'inventario.

- Il widget <<notify "messaggio">> serve per far comparire il popup con le risposte brevi

Per ora sono dietro a rifinire e migliorare il tutto e non ho una documentazione decente, ma il sistema è veramente semplice e se c'è qualcuno così ardimentoso da provare a farci qualcosa, basta chiedere e io sono qui pronto a rispondere.
Ciao a tutti e grazie!



--------------------
Il problema non è stato entrare, ma e' quello di uscire.
Nick su Quantica
 
pinellos
messaggio22 Sep 2020, 17:39
Messaggio #3





Gruppo: Gamer
Messaggi: 250
Iscritto il: 30 November 17
Da: everywhere
Utente Nr.: 21.677
SO Sono un BOT, cancellami l'account




Grazie 1000!
Avevo notato la cosa, ho apportato qualche modifica per renderlo più adattivo, dovrebbe fungere sia da mobile che da browser senza troppi problemi, per tutta la parte grafica poi ovviamente si può migliorare e fare quello che si vuole coi CSS:

https://www.pinellos.com/wp-content/uploads/sandbox/hyp/

Vado avanti...


--------------------
Visita il mio blog personale sullo sviluppo di giochi e altra roba: www.pinellos.com - C'è anche in inglese così sembra una cosa seria!
 
pinellos
messaggio23 Sep 2020, 18:11
Messaggio #4





Gruppo: Gamer
Messaggi: 250
Iscritto il: 30 November 17
Da: everywhere
Utente Nr.: 21.677
SO Sono un BOT, cancellami l'account




ho aggiunto il sistema per i salvataggi e debuggato un po' il tutto, ora mi pare che funzioni bene sia da browser che da cell, ma ho fatto in modo che sia comunque tutto customizzabile, diciamo che al momento questo è un template con più o meno tutto quello che serve, su cui poter fare ogni successiva modifica. Se interessa posto anche lo zip, ciao a tutti!

https://www.pinellos.com/wp-content/uploads/sandbox/hyp/



--------------------
Visita il mio blog personale sullo sviluppo di giochi e altra roba: www.pinellos.com - C'è anche in inglese così sembra una cosa seria!
 
riobros76
messaggio28 Sep 2020, 15:56
Messaggio #5





Gruppo: Gamer
Messaggi: 77
Iscritto il: 23 December 04
Utente Nr.: 1.623
BGE SILENT HILL
SO Linux




Perfetto!
Così da smartphone è veramente ottimo! Rinnovo i complimenti, lavoro davvero ben fatto!

Best Regards.


--------------------
Il problema non è stato entrare, ma e' quello di uscire.
Nick su Quantica
 
pinellos
messaggio15 Oct 2020, 17:36
Messaggio #6





Gruppo: Gamer
Messaggi: 250
Iscritto il: 30 November 17
Da: everywhere
Utente Nr.: 21.677
SO Sono un BOT, cancellami l'account




Ciao!
Ho raffinato il sistema, lavorando "dietro le scene" ad un sistema che consentisse di organizzare in modo ponderato la quantità di azioni ed interazioni e descrizioni che si genera andando avanti nella costruzione di un ipotetico gioco di medie dimensioni: mi sono reso conto che buttare tutto in un unico costrutto non era molto bello e rendeva caotico il mantenimento del progetto, così ho suddiviso tutte le azioni prima per verbo (esamina, parla, prendi etc...) e poi per oggetto, rendendo molto più intuitiva la ricerca e la lettura del codice (ad esempio, se devo modificare qualcosa che risponde al verbo "Esamina", vado nella scheda relativa a "Esamina" e lì trovo tutti i riferimenti che chiamano l'azione in questione, rendendo molto più chiaro il flusso). Usando la modularità ho poi fatto in modo che sia possibile suddividere tutta questa roba in modo arbitrario, ogni azione in ultima istanza è un widget che viene chiamato da uno dei costrutti-verbo di cui sopra, ma che può stare ovunque: per praticità per esempio potremo fare dei nodi riferiti ai singoli ambienti o a gruppi di ambienti in cui avvengono le azioni, in modo da avere un file per le azioni che avvengono nella villa e uno per quelle che avvengono nel parco... o uno per le azioni della prima parte dell'avventura e uno per il secondo, a nostra scelta (è sufficiente mettere il tag "widget" ad un nodo qualsiasi per renderlo un "contenitore di interazioni"). In questo modo si può tenere tutto perfettamente organizzato e maneggiare anche con progetti medio-grandi... quanto grandi è ancora una incognita, credo che mi metterò a scrivere un'avventura apposta per testare il sistema "sul campo" e sradicare eventuali problemi.
Sul fronte "quello che l'utente può vedere" ho aggiunto un paio di cose: un effetto grafico per la "digitazione" del testo, e ho introdotto un sistema per emulare la vecchia regola non scritta delle AT secondo cui la prima volta che entri in una nuova locazione ti viene fornita la descrizione lunga, mentre dopo solo quella breve (e se vuoi rileggere quella lunga devi fare "esamina" o "x" o quello che era). Mi sembra che il tutto funzioni abbastanza bene, manca un vero e proprio sistema di dialogo ma essendo nelle previsioni un classico albero a scelta multipla, credo che mi manterrò sul semplice non facendo altro che nascondere la lista dei verbi e l'inventario durante le chiacchierate coi NPG.
Qui il link per provare il framework, a cui nel frattempo ho dato il nome provvisorio di MMIFIF (ovvero: Ovvero: Maniac Mansion Interface For Interactive Fiction!):

https://www.pinellos.com/wp-content/uploads/sandbox/mmifif/

NOTA: il link precedente non è più valido, ho cambiato la directory del progetto blush.gif
Ciao a tutti!


--------------------
Visita il mio blog personale sullo sviluppo di giochi e altra roba: www.pinellos.com - C'è anche in inglese così sembra una cosa seria!
 

Fast ReplyReply to this topicStart new topic
1 utenti stanno leggendo questa discussione (1 visitatori e 0 utenti anonimi)
0 utenti:

 

Modalità di visualizzazione: Normale · Passa a: Lineare · Passa a: Outline


Versione Lo-Fi Oggi è il: 27th October 2020 - 08:18