Wooah, un nuovo plugin!
Questo è un po’ meno serio, però. ![]()
Discourse Frotz
Non è più necessario menzionare il bot con @ a ogni passo. Una volta iniziato il gioco, basta rispondere a lui.
Che cos’è
È un ‘bot’ con cui giocare a narrativa interattiva, ovvero classici giochi di avventura testuale, sul tuo forum Discourse. È essenzialmente un adattatore per l’interprete Z-machine standard e straordinario chiamato ‘frotz’, disponibile su David Griffith / frotz · GitLab
Come usarlo
La configurazione aggiunge due giochi; puoi aggiungerne altri nelle impostazioni.
Ogni voce contiene un Titolo e il nome del file della storia.
Per avviare l’interazione, devi menzionare con @ il bot impostato nelle impostazioni. Dopo di che, rispondere al suo post è sufficiente.
Per elencare i giochi disponibili, devi prima menzionare il bot e chiedere:
@mybot list games
Questo ti mostrerà le opzioni disponibili.
Per iniziare un gioco, digita:
start game x sostituendo x con il numero dell’opzione.
Se vuoi passare a un altro gioco, puoi farlo; il plugin salva il tuo progresso ad ogni mossa, così puoi tornare alla prima storia in qualsiasi momento. Il plugin mantiene un salvataggio per ogni storia per ogni utente che la prova.
Per continuare una partita esistente, digita:
continue game x sostituendo x con il numero dell’opzione.
NB Una ricostruzione completa distruggerà tutti i file di salvataggio. Questo è un compromesso necessario.
Come si gioca a un gioco di IF (Narrativa Interattiva)?
Molti “Meta” sono cresciuti con queste cose. Per chi è meno familiare, consulta questa guida rapida: Play Some Interactive Fiction
Configurazione
Crea l’utente Bot
(scusa, automatizzare questo è nella mia lista di cose da fare!)
In una sessione ssh, entra nel tuo container e nella console rails:
./launcher enter app
rails c
Poi fai questo:
u = User.create!(username: "Frotz", name: "FrotzBot", id:-5, email: "not@really.valid")
u.activate
Il tuo nuovo bot sarà quindi disponibile per la configurazione nell’interfaccia utente. Vai alle impostazioni dell’utente nell’UI tramite il pulsante admin e disattiva tutte le email. Aggiorna l’avatar a tuo piacimento.
Installa Discourse Frotz
Aggiorna il tuo app.yml
Questa procedura è un po’ più invasiva rispetto a un normale plugin.
Aggiungi questo al file app.yml:
hooks:
after_code:
- exec:
cd: $home
cmd:
- git clone https://gitlab.com/DavidGriffith/frotz
- exec:
cd: $home/frotz
cmd:
- make dfrotz
- exec:
cd: $home/frotz
cmd:
- mkdir savegames
- exec:
cd: $home/frotz
cmd:
- mkdir stories
- exec:
cd: $home/frotz/stories
cmd:
- wget -O zork1.z3 https://eblong.com/infocom/gamefiles/zork1-r119-s880429.z3
- exec:
cd: $home/frotz/stories
cmd:
- wget --no-check-certificate http://www.douglasadams.com/creations/hhgg.z3
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/merefield/discourse-frotz
prima delle altre voci dei plugin.
Ora devi anche aggiungere il plugin Discourse BBCode!!
Ricostruisci con il solito comando ./launcher rebuild app
Ora vai alle impostazioni del plugin e seleziona l’utente bot che hai aggiunto in precedenza:

Storie
Noterai che ho incluso un paio di storie. Puoi trovarne di più su https://ifdb.tads.org/.
Tuttavia, fai attenzione ai limiti di velocità qui! Ottenere troppe storie dalla stessa posizione potrebbe causare un errore.
Nota anche che le storie non si trovano su server protetti da HTTPS (tut tut).
Se insistete per caricarne di più, aggiungetele all’app.yml. Potreste anche aggiungerle manualmente dal prompt dei comandi, ma tenete presente che queste verranno cancellate alla prossima ricostruzione completa.
Abilita FrotzBot per i messaggi privati (consigliata cautela)
Permette agli utenti di giocare in privato, ma l’utilizzo sarà meno trasparente. Se hai un server abbastanza grande, questo potrebbe non essere un problema per te. In ogni caso, sii consapevole delle implicazioni per la capacità. In alternativa, incoraggia gli utenti a giocare in una Categoria dedicata.

default: OFF
Se non è abilitato lì, l’utente riceverà un messaggio gentile:
Limita FrotzBot per Categoria
Puoi limitare il bot a una (lista di) Categoria per evitare di riempire altre aree:
Scorciatoie da tastiera!
Questo è davvero importante per migliorare l’esperienza di ‘gioco’. E devi davvero ricordare solo due:
-
Shift-R per rispondere al bot
-
Ctrl-Enter per inviare la tua prossima mossa
Limitazioni e considerazioni
Non tutti i formati di storia e i giochi sono ancora supportati, né è probabile che lo siano. Ci sono molti giochi che non funzionano a causa della natura dei loro protocolli di richiesta e risposta. Dato che interagiamo post per post, dobbiamo chiedere a Frotz di salvare lo stato dopo ogni mossa. Se un passo del gioco non porta a un prompt in cui il sistema può salvare (ignorando i prompt “premi un tasto” o “Altro” che dovrebbero essere gestiti), allora la storia non funzionerà. Ad esempio, in Act of Murder (grande gioco!), la donna alla porta chiede se sei un poliziotto. Purtroppo questo è uno stato del gioco che non può essere salvato, quindi non soddisfa questo requisito e non vedo un modo per farlo funzionare.
NB La modalità mailing list è un disastro con questo plugin, quindi assicurati che non sia qualcosa che usi prima di provare a utilizzare questo plugin!
Si può dire che sprechi un po’ le risorse del forum, poiché richiede almeno due post per ogni ‘mossa’. È ovviamente spesso più appropriato giocare a questo tipo di giochi usando un’interfaccia di chat piuttosto che un forum, ma potresti obiettare che questo potrebbe essere usato per creare Guide di gioco? ![]()
Per una soluzione meno invasiva, considera: Turning a topic into interactive fiction ;)
Feedback
Tutti i feedback sono benvenuti!
Crediti
Questo plugin sfrutta David Griffith / frotz · GitLab, l’interprete Z-Interpreter di Frotz, che viene clonato e ‘compilato’ dallo script di configurazione.
Grazie a @P16 per avermi permesso di utilizzare estratti di codice da un chatbot a codice chiuso su cui abbiamo lavorato insieme.









