31
Un client web per MUD.it
Programmazione MUD.it Nessun tags
Tante volte ho pensato che sarebbe stato utile disporre di un client per connettersi via browser ai vari mud senza bisogno d’installare alcunchè, di un client destinato in particolare all’utente occasionale che non si intende di mud ma che vorrebbe semplicemente fare una prova e connettersi con un click senza doversi accollare l’onere di cercare tra decine di clients che, per altro, non sempre si rivelano all’altezza. Il problema, in quest’ultimo caso, è particolarmente significativo nei confronti dei principianti che, privi d’esperienze pregresse, non hanno nemmeno elementi di riferimento per fare confronti e magari accorgersi che eventuali difetti riscontrati potrebbero essere imputabili al client in uso e non al mud, difetti che talvolta possono rendere l’esperienza di gioco anche molto negativa a tutto a danno del mud provato. Ne ho visti parecchi di tentativi succedersi negli anni, tuttavia praticamente tutti quelli esaminati per un motivo o per l’altro peccavano principalmente in modo evidente o nella resa dei colori, o nelle funzionalità offerte o nella reattività.
- Sostituzione in blocco dell’interprete dei colori ansi che, per altro, ha richiesto varie modifiche nella gestione dei pacchetti in arrivo in modo da evitare che eventuali sequenze escape in arrivo risultassero “spezzate” tra un pacchetto e l’atro, cosa che di fatto rendeva impossibile una corretta interpretazione dei colori. Sono tuttavia al momento ignorate alcune sequenze specifiche proprie dei terminali VT: 100/2.
- Tastierino numerico preconfigurato in base al mud con comandi informativi di base e di spostamento pronti all’uso.
- Per i browser che supportano il “local storage” i settings inseriti permarranno durante la sessione in corso; diversamente le impostazioni potranno essere salvate su file e importate all’occorrenza.
- Possibilità d’inviare comandi multipli a mezzo del comando separatore “;”.
- Predisposizione sperimentale per una sorta di MXP da me pensato che potrebbe permettere di mandare in output al client pressochè qualsivoglia elemento html: immagini, suoni, filmati, … con un impatto pressochè nullo sul codice del proprio mud (si veda la documentazione speciale inserita a seguire). Un esempio immediato della funzionalità ora descritta è riscontrabile nel banner che si visualizzerà connettendosi al mud “Rocca d’Argento”.
-
Occasionalmente l’input inoltrato non viene riconosciuto dal server: la problematica è ancora sotto osservazione anche se probabilmente già risolta.
-
Affinchè il client possa effettuare la connessione al mud ed inviarvi i dati, il vostro sistema non deve trovarsi bloccato da un proxy-firewall come quelli tipicamente in uso in molte connessioni aziendali.
Il sorgente è libereramente accessibile e può essere impiegato e modificato senza restrizioni. Invito tuttavia chiunque apporti migliorie o nuove funzionalità a collaborare al progetto a beneficio di tutti.
Documentazione speciale.
Impiegando la sequenza “/e[#m” con “#” rappresentato da un numero intero maggiore o uguale a 200, si otterrà che nel punto d’inserimento della sequenza escape verrà caricato il contenuto del file ononimo a “#” presente sul server. Supponiamo ad esempio di avere sul server un file di nome “200” contenente il seguente codice html:
<span>
<br><img src=”spada.jpg” />
</span>
…e supponiamo ora di voler far si che esaminando una spada il pg veda l’immagine di quest’ultima in calce alla sua descrizione letterale. Per far ciò basterà scrivere nell’appropriata sezione specifica del proprio mud la descrizione della spada ponendo in calce il codice “ansi” del file da richiamare come di seguito viene mostrato:
E’ una spada lunga di metallo, molto leggera.ESC[200m
Notate la parte evidenziata in rosso: tale sequenza ansi verrà ignorata dai comuni interpreti telnet mentre sul nostro client attiverà il codice presente nel file “200” permettendo la visualizzazione della spada. Esiste inoltre la possibilità di creare un output differenziato per chi non utilizza il nostro client. In questo caso occorrerà estendere e spezzare il contenuto del nostro file “200” a mezzo del seguente tag separatore “<!--break-->” in modo da poter oscurare all’occorrenza il contenuto ascii tradizionale. Ecco come apparirà dunque il nostro file:
<span>
<br><img src=”spada.jpg” />
<span style=”display:none“>
<!--break-->
</span>
</span>
Mentre nella descrizione del nostro oggetto “spada” avremo:
E’ una spada lunga di metallo, molto leggera.ESC[70;200m
/>_______________________________
[########[]_________________________________>
\> ESC[71;200m
Notate in questo caso nella descrizione dell’arma l’aggiunta alla sequenza escape standard del numero “70” prima e del “71” dopo. Il primo valore segnala al cient di insirire il codice html presente nel file “200” antecedente al markup “<!--break-->”, mentre il secondo valore consentirà l’inserimento di quanto ne segue. Questa segmentazione permette di attivare il blocco di stile “display:none” in modo da oscurare il disegno ascii della spada che, nel nostro caso, sarà superfluo poichè verrà mostrata l’immagine jpg vera e propria. I normali client dovrebbero invece semplicemente ignorare le sequenze escape inserite mostrando semplicemente l’immagine ascii della spada. In conclusione, mettendo insieme i pezzi, i dati che perverranno al web-client una volta interpretati assumeranno la seguente forma:
E’ una spada lunga di metallo, molto leggera.
<span>
<br><img src=”spada.jpg” />
<span style=”display:none“>
/>_____________________________________
[########[]_________________________________>
\>
<!--break-->
</span>
</span>
E’ evidente che lo strumento in questione – sebbene embrionale – apre le porte a prospettive molto interessanti che va ben oltre l’inserimento di semplici immagini con un impatto decisamente minimo sul codice di base del proprio mud. In proposito segnalo che anche nel caso non si abbia la reale necessità di segmentare il codice html da includere nell’output, è comunque possibile utilizzare a propria discrezione il valore speciale 70 o 71 nella sequenza escape a patto di non inserire nel file contenente il codice html alcun markup “<!--break-->”: così facendo il codice sarà comunque caricato per intero. Tale approccio può tornare utile nel caso si voglia in futuro, ad esempio tramite grep, individuare tutti i punti del prioprio mud in cui una di queste sequenze speciali è stata invocata per apportare eventuali cambiamenti o estrazioni.
Ora a voi la palla!
Matteo by MUD.it
3 Comments su Un client web per MUD.it
Una precisazione: questo web-client offre il massimo delle performance quando installato direttamente sul server che ospita il mud.
Diversamente la vostra connessione dovrà prima giungere al client, poi dal client raggiungere il server del mud. Analogamente le “risposte” fornite dal mud dovranno prima giungere al sito che ospita il client e da lì giungere infine a voi. Ovviamente tutto questo percorso causa una latenza che può essere più o meno rilevante: molta agli occhi di un esperto, probabilmente poca agli occhi del principiante.
Nel caso specifico, se non erro, il server che ci ospita e su cui gira il client attualmente è lo stesso di “Lands Of Darkness – Reload”, ragion per cui il massimo delle performance dovreste riscontrarle connettendovi a tale MUD.
Ciao!
Matteo
7 Novembre 2014
UPDATES!
Sono state apportate alcune modifiche al client:
- Al fine di migliorare le prestazioni ora, della sessione in corso, non viene più mantenuto l’intero testo dal principio ma, progressivamente, i contenuti più vecchi vengono automaticamente rimossi in modo da garantire una buona reattività anche giocando a lungo.
- Migliorata la gestione delle opzioni e dei “Logs”.
- Introdotta la possibilità di puntare direttamente al proprio MUD del cuore, sempre che questo risulti schedato tra i MUD attivi archiviati sul portale. Per farlo dovrete utilizzare come link per la connessione il seguente url prototipo: http://mudit.aliengine.it/wm_client/index.php?mud= immediatamente seguito, ad oggi, da una delle seguenti sigle: anathema, clessidra, equilibrium, isylea, leu, lod, neon, rda, redemption, silmarillia o ts2.
4 Ottobre 2019
ATTENZIONE: il sito “http://mudit.aliengine.it” che ospitava il nostro client non è più attivo. Chi però fosse interessato a creare una versione locale del client per il proprio MUD può liberamente contattarci: mud.info.it@gmail.com
Leave a comment
Devi essere connesso per inviare un commento.
« Rocca 5.0 – Tempo di cambiamenti! | LEU: un mare di novità! »
3 Novembre 2014