Newsgroup: it.comp.giochi.avventure.testuali
Titolo: Strumenti per scrivere e per far giocare nel 2014

Ciao,
recentemente ho scritto una piccola demo di una text adventure per alcuni giovani amici che erano curiosi di capire come si giocava a questo fantomatico genere.
Avendo scopo didattico, la demo è stata scritta in js, il quale però espone tutto il codice (anche se devo dire è molto comodo come script language per scriverci avventure).
 
Stavo documentandomi su quali altri tool potrei usare se volessi tornare a pubblicare qualcosa di più serio.
 
Il fatto è che Inform secondo i MIEI gusti è troppo complesso.
 
Per quanto ammiri il lavoro sofisticato dietro ai parser della Infocom, non ho mai sopportato di guardare "SOTTO IL LETTO". Quando io dico "GUARDA IL LETTO" per me è assodato che l'Ego guardi pure sotto.
Inoltre non so se Inform in qualche modo può essere giocato su web (ma credo di sì): è importante che il gioco sia fruibile anche senza doverlo scaricare.
 
Da coder, la cosa più immediata per me sarebbe fare un bel server side così ho tutto sotto controllo... ma così devo scrivere tutto il motore e l'interfaccia da zero e forse è uno sforzo esagerato. Quindi prima di farlo vi chiedo se esistano strumenti precotti che contemplino determinate funzionalità.
 
Stavo guardando Twine, ma mi sembra una cosa più alla Hydra anzichè con riga di comando e parser.
 
 
Penso che un modo più conveniente per tentare di tenere incollato il giocatore, sia:
 
1) avere sempre su schermo una mappa grafica con la tua posizione corrente, e magari un distinguo tra le stanze che hai visitato e quelle ancora da visitare. Una delle cose che disincentivano più di tutte i casual player è il disorientamento: dopo aver scritto NORD spesso non sanno mai nè quali sono le direzioni percorribili, nè dove fossero prima rispetto a ora, tempo due movimenti e anche se la mappa è semplice hanno già perso la bussola.
Un sistema di mapping in real time, magari alla resident evil, messa in un angolino dello schermo potrebbe far molto.
 
2) avere sempre su schermo stats del gioco e del player: inventario e nome della stanza attuale, eventuali pg ecc. perchè come al punto precedente, un player che non si fa coinvolgere è un player che tende a non tenere a mente le informazioni e quindi a non fare nemmeno lo sforzo di capire cosa potrebbe usare per risolvere una situazione.
 
3) non necessariamente della grafica (anche se in certi punti forse sarebbe il caso) quasi più necessariamente qualche effetto sonoro (pensate ai salmi di Lurking Horror) che possa calare meglio nell'atmosfera.
 
Quindi ricapitolando:
 
- Giocabile subito da web (per i salvati penso che possa bastare un cookie..?)
- Parser non troppo complesso (costo di sviluppo relativamente breve)
- Possibilità di inserire ed aggiornare continuamente grafica localizzata su schermo
- Possibilità di inserire suoni
 
Se pensate si possa fare con un tool, datemi qualche consiglio, altrimenti ASP.NETo Php e pronti via :)
 
Grazie a tutti! :)

 con riga di comando e parser.
 
S�, confermo.
 
bye
-- 
Paolo Lucchesi - p...@NOSPAMpaololucchesi.it

 
Ciao, grazie per la risposta.
 
E' possibile usare JS come abito di OOP:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
 
 
Però nella mia avventura, essendo molto piccola, ho lavorato stile linguaggi pre-OOP, per cui ho usato semplici ricerche sequenziali splittando lo statement in verbo e oggetto dopo aver filtrato i non sostantivi. Approccio debole e da "3 word parser" ma per quello che dovevo fare andava benissimo. E' comodo perchè con jQuery l'accesso alle istanze della pagina è facile e immediato.
 Non te la linko perchè non era x una pubblicazione, contenendo per lo più riferimenti personali :) se ho tempo rimuovo i testi e ti mando la versione base, anche se appunto stavo optando per un qualcosa di ben più adatto.
 
Mi rincuora che Inform vada su web però non ho capito se Inform supporta funzioni grafiche, e quanta complessità permette a riguardo.
 
Come dicevo sopra, vorrei fare qualcosa di più friendly per l'utente, ma non ho mai considerato Hydra (scusa Erix!! ^_^) o Twain perchè i racconti a bivi per me non sono vere e proprie "avventure interattive", bensì un incrocio tra un racconto e "chi vuol essere milionario": opzioni chiuse di cui solo una è quella che ti fa avanzare davvero nel gioco. Quello che ti fa innamorare del gioco non è solo la storia ma il rapporto che instauri con il tuo amico parser.
 
Ho sempre avuto un pensiero su come ottenere un'interfaccia che non obbligasse l'utente a scrivere lettera per lettera: avevo pensato a una specie di SCUMM con i termini cliccabili, ma darebbe troppo l'impressione di essere una cosa che poi ti fa risolvere gli enigmi per tentativi di combinazione (come analogamente il pixel hunting è sempre stato il difetto delle avv. grafiche).
Forse la cosa migliore sarebbe un autocompletamento; non so, ci sto ancora lavorando :-)
 
La cosa importante, tornando a bomba su Inform, è la grafica. 
Vorrei ottenere come ho detto un sistema di mapping grafico che se ne sta in un angolino e traccia dove sei e quali sono le altre stanze. Mappa stilizzata dove ogni stanza è un quadratino, ci passi sopra col mouse e un tooltip ti dà info riassuntive su quella stanza, se magari è adiacente a dove sei ci clicchi sopra e ci vai automaticamente senza che il player debba scriverlo.
Analogamente vorrei fare qualcosina per gli stat e l'inventario.
Per il resto sarebbe tutto testuale con magari un'immaginetta nei punti dove servirebbe in modo particolare.
Non credo proprio che Inform possa customizzarsi fino a questo punto (se poi si può fare, tanto meglio eh) :-)
 
E' un esperimento che vorrei fare per capire se migliorando le parti noiose dell'interfaccia testo si avrebbe qualche possibilità in più di acchiappare i giocatori di oggi.
 
Se non esistono tool che mi permettano una cosa simile penso che l'unica a sto punto sia programmare da zero... Il che avrebbe altri svantaggi (dovendo lavorare lato server servirebbero post asincroni per evitare i roundtrip che ti aggiornano tutta la pagina ogni volta) però ti garantirebbe la massima libertà, specialmente quella di farti un mazzo tanto :-(

 parser.
 
Se vuoi il parser, indubbiamente un approccio tipo Idra non fa per te.
Comunque Idra non e' limitata ai racconti a bivi, anche se ha un paio di 
chiamate per realizzarli facilmente: dato che genera dinamicamente le 
pagine, puoi fare piu' o meno tutto cio' che faresti in PHP/ASP lato 
server, con le variabili al posto del database.
Per assurdo potresti anche metterci un parser e fare tutto nella stessa 
pagina :-)
 
(ovviamente Idra ha la sua veneranda eta', e' fatta sostanzialmente per 
HTML 3.2 e una ripensata/riscrittura totale non le farebbe male)
 
-- 
   .Erix.

Il fatto è che l'OOP è molto comodo perchè ti istanzi la classe oggetto base e da lì derivi tutto il resto, permette di strutturare il codice in modo ordinato.
Ma è un lusso, le avv. testuali sono il genere di gioco più antico della storia, si può usare ogni linguaggio ;-)
 
Comunque ho fatto un mockup per spiegare meglio quello che intendevo.
E' solo un mockup quindi non guardate tanto la grafica primitiva ma il layout dell'interfaccia: 
 
http://i59.tinypic.com/2hy8c5e.png
 
 
Vorrei che il gioco desse più assistenza in tempo reale al player, il quale almeno non avrebbe il problema di sentirsi disorientato e obbligato a tenere a mente le informazioni che non rimangono su schermo. 
Man mano che si visitano le location si valorizza la piantina, colorando le stanze dove si è già stati. Passando col mouse sui quadratini dove si è già stati si ottiene il tooltip con il riassuntino della stanza. Eventuali altri personaggi non giocanti vengono mappati insieme al player per aiutare meglio le fasi in cui occorre cercare o evitare un altro p.n.g.
 
L'inventario è sempre a disposizione, poi magari facendo tasto destro su un oggetto si accede a un menù rapido dove è possibile eseguire un comando associato (GUARDA, LASCIA, ecc.)
 
La riga di comando è assistita da un autocompletamento così non c'è bisogno di dover scrivere tutto lettera per lettera. 
 
FORSE, e dico FORSE, se magari si utilizza una GUI del genere allora il player non ha più scuse per sentirsi disincentivato anche quando la storia è coinvolgente. Certo che se uno non ama proprio il genere a priori allora non c'è niente da fare, ma magari con questi piccoli accorgimenti è possibile trattenere qualcuno per 5 minuti in più per vedere se dà una chance alla storia di poterlo intrigare.
 
Il tutto in questo esempio (ho tirato su un 
ASP.NET
 veloce veloce) sarebbe gestito con postback asincroni per ogni sezione dello schermo (che è un panel aggiornabile). Magari non si riesce a stare nel limite di Doherty ma si hanno questi vantaggi grafici e il codice è protetto dagli sbircioni.
 
Tornando quindi alla domanda del topic: se non esistono tool precotti che mi permettono questa flessibilità di sviluppo, mi sa che l'unica è farsi il segno della croce e reinventare la ruota.


 per tentativi di combinazione
 
A mio parere le avventure grafiche riescono a proporre buoni enigmi (di 
quelli che danno soddisfazione quando li risolvi) anche con 
l'interfaccia tipo SCUMM. Anzi, le ultime avventure grafiche che ho 
giocato avevano anche tolto i verbi dall'interfaccia, e non ne ho 
sentito affatto la mancanza.
Infatti un annetto fa stavo cercando di mettere proprio un'interfaccia 
del genere su un world model classico, e non stava venendo male.
Magari con le ferie ci rimetto le mani...


 
http://i59.tinypic.com/2hy8c5e.png
 
 
Una cosa del genere riuscirebbe bene (ad esempio) in Javascript lato 
client, con eventualmente un server per i dati se non vuoi dare accesso 
al sorgente dell'avventura. Considera che ogni cosa che sposti sul 
server implica un rallentamento e non penso che i giocatori gradiscano.
 
Dal punto di vista del giocatore, mi pare che esperimenti simili siano 
gia' stati tentati (anche da Infocom) nella fase di declino delle 
avventure testuali fine anni '80, con risultati non troppo incoraggianti.
Non mi aspetterei miracoli dall'interfaccia, ma e' anche vero che ogni 
gioco fa storia a se': un'avventura pensata esplicitamente per 
un'interfaccia originale (con elementi che non sarebbero possibili in 
un'interfaccia puramente testuale) potrebbe comunque essere gradita dai 
giocatori.
 
-- 
   .Erix.
 

 Penso che un modo più conveniente per tentare di tenere incollato il giocatore, sia...
 
Dai un'occhiata qui: 
http://www.youdev.it/milleuna/
 
 
Prova "Il Dr. Home" (una semplice demo) oppure "Aladino" (avventura completa).
Ho anche una demo più completa con una semplice mappa, ma non l'ho ancora portata sul nuovo sito.
Più o meno è quello che chiedevi, ma ci vuole Inform 7.

 
Ciao, devo dire che il tuo è un OTTIMO compromesso con quello che mi interessava fare :)
 
Tra l'altro ho passato la serata a giocare ad Aladino e a guardare i video dei tuo corsi I7, ti dico solo complimenti davvero, perchè ti sei veramente fatto un culo così. Terrò d'occhio il sito per vedere quando aggiorni la parte con le mappe.
 
Nei prossimi giorni inizio a svilupparci un pò su :) 
 
Grazie ancora!


 Tra l'altro ho passato la serata a giocare ad Aladino e a guardare i video dei tuo corsi I7, ti dico solo complimenti davvero, perchè ti sei veramente fatto un culo così. Terrò d'occhio il sito per vedere quando aggiorni la parte con le mappe.
 
Grazie per i complimenti!
Ho caricato la vecchia demo sul nuovo sito 
http://www.youdev.it/milleuna/_Per_Dieci_Cents
 
Ci sono parecchi messaggi di debugging che saltano fuori di tanto in tanto e, dato che c'è una sola stanza, la mappa e gli spostamenti sulla "rosa dei venti" sono solo abbozzati. Inoltre è una mappa "testuale", ma si può pensare di trasformarla in una mappa grafica.
Comunque la demo dà un'idea di quello che si potrebbe fare con Inform 7 + Quixe.

Notevolissimo !!! :) Questa come interfaccia è molto meglio di Aladino, perchè la finestra di testo incorniciata in piccolo e messa a centro schermo migliora molto la user experience, e le direzioni sono finalmente cliccabili dal pannello riassuntivo. 
Ho visto la mappa, certo adesso è in piccolo ed è in demo, ma l'idea è esattamente quella che intendevo io. 
 
Francamente, dopo aver visto tutte queste bellissime migliorie che hai fatto alla GUI, non vedo più motivi per i quali la gente non possa più tornare ad appassionarsi alle avventure. Ho letto che qualcuno sta aprendo anche IF-magazine e potrebbe essere l'occasione per rivedere questo genere in auge.
 
In USA la comunità completa di giocatori (stando a quanto detto nel documentario "Get Lamp") non va oltre le 2-3000 persone. Chissà se riusciremo a superarli :)
 
Cmq stamattina mi sono scaricato Inform. Passerò i prossimi giorni a farmi un'infarinatura generale sul linguaggio e poi passo alle tue estensioni ... speriamo di poter presto collaborare attivamente anche all'engine.
 
Complimenti vivissimi ancora ;)


Fai attenzione che le estensioni e la demo sono compatibili con la versione 6G60. Ora sono in ferie, ma appena rientro volevo rendere compatibile l'interfaccia con la nuova versione. Se ne riparla per i primi di agosto. ciao

 direzioni sono finalmente cliccabili dal pannello riassuntivo...
 
 
Ho appena notato che la versione del dimostrativo "Dr.Home" che hai visto è molto vecchia. Sul portatile ho quella nuova e l'ho caricata sul sito. La trovi qui: 
http://www.youdev.it/milleuna/_Il_Dr_Home/
 
Se vedi ancora quella vecchia, aggiorna la pagina.
 
Non c'è la mappa, ma mostra come inserire immagini nella pagina web dell'avventura (o fare qualsiasi altra cosa purché fattibile attraverso JavaScript) grazie alla versione modificata di Quixe + Inform 7.
 


Ciao e scusa il ritardo della risposta. Ho visto che avete gi�
ampiamente sviscerato il tema.
 
Aggiungo solo una cosa: per rispondere alle esigenze da te giustamente
espresse e da tanti di noi condivise, esistono gi� molte soluzioni che
partono dall'uso di inform, o altri simili, spesso basati su z-machine,
il cui output � per� rimodulato con vari tool, quasi tutti js.
 
Ad esempio, ci sono:
 
- 
http://vorple-if.com/
 
- 
http://glimmr.wordpress.com/
 
- 
http://undum.com/
 
 
Anche io ho fatto diversi studi sull'uso oo di js ma ci sono alcuni
problemi insuperabili come ad esempio usare jQuery o Mootools: il primo
molto diffuso ma incompatibile con le tecniche di oop applicate a js, il
secondo molto orientato agli oggetti e scritto molto bene ma in declino
e quindi rischia l'abbandono.
 
Io per� ho pensato di usare js solo per la parte di rendering non per la
scrittura.
 
pg