ottobre

31

Un client web per MUD.it

Un client per MUD.it.
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à.

Phudbase & Chromud.
Fortunatamente nell’ultimo periodo l’implementazione e sviluppo su vari browser dei websock, che semplificando potremmo considerare come uno strumento di connessione, ha dato vita a vari progetti di pregio, PHUDBASE e CHROMUD in particolare, a partire dai quali è stato possibile realizzare il nostro “MUD.it Client”. L’iniziativa non avrebbe avuto tuttavia seguito, va detto, senza il provvidenziale aiuto offertomi da Eclipse di “Lands Of Darkness – Reload” che, casualmente anche lui alle prese con PHUDBASE per il proprio mud, ha potuto mettere sul piatto lo spazio fisico sul proprio server “ALIENGINE.IT” nel quale lavorare – e dove tutt’ora il client gira – e l’installazione di base del servizio.

MUD.it Client.
Il client, cui potrete accedere da QUI, per quanto appurato garantisce piene funzionalità utilizzando Chrome come web browser. Non è però al momento disponibile una lista di compatibilità/incompatibilità che potrà comunque essere redatta in base agli eventuali riscontri che il pubblico vorrà noi offrire all’indirizzo info@mud.it. I mud supportati sono solo ed esclusivamente quelli che risultano regolarmente schedati sul sito MUD.it e classificati come “attivi”. Troverete nella schermata principale di connessione anche “Isylea” per ragioni puramente promozionali considerato che tale mud è giocabile solo tramite un client dedicato. Le funzionalità offerte, è bene dirlo, non sono esenti da difetti ma comunque più che ottime per l’utente occasionale che intende approcciarsi al genere. Ora dunque non ci sono più scuse: potrete in ogni istante invitare gli amici a provare il vostro mud di fiducia con un semplice click.

Sotto al cofano.
Da phudbase deriva la gestione di base delle connessioni tramite websock, mentre da chromud derivano le funzionalità ancellari per la creazione di “alias, triggers, e macro”. Sono state invece aggiunte o riscritte le seguenti caratteristiche:

  1. 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.
  2. Tastierino numerico preconfigurato in base al mud con comandi informativi di base e di spostamento pronti all’uso.
  3. 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.
  4. Possibilità d’inviare comandi multipli a mezzo del comando separatore “;”.
  5. 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”.
Sono invece noti i seguenti difetti:

  1. Occasionalmente l’input inoltrato non viene riconosciuto dal server: la problematica è ancora sotto osservazione anche se probabilmente già risolta.
  2. 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
                           />_______________________________
[########[]_________________________________>
                           \> 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

RSS Feed

2 commenti su Un client web per MUD.it

MUD.it
3 novembre 2014

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

MUD.it
7 novembre 2014

UPDATES!
Sono state apportate alcune modifiche al client:

  1. 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.
  2. Migliorata la gestione delle opzioni e dei “Logs”.
  3. 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.

Lascia un commento

Occorre aver fatto il login per inviare un commento

« | »