<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MUD.it</title>
	<atom:link href="http://www.mud.it/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mud.it</link>
	<description>Tutto sui MUD</description>
	<lastBuildDate>Sat, 12 Jun 2010 13:26:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Silmaril: Quest ed una pagina Facebook</title>
		<link>http://www.mud.it/10-06-2010/silmaril-quest-ed-una-pagina-facebook/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=silmaril-quest-ed-una-pagina-facebook</link>
		<comments>http://www.mud.it/10-06-2010/silmaril-quest-ed-una-pagina-facebook/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 17:59:00 +0000</pubDate>
		<dc:creator>Silmaril</dc:creator>
				<category><![CDATA[Silmaril]]></category>

		<guid isPermaLink="false">http://www.mud.it/?p=842</guid>
		<description><![CDATA[L&#8217;estate è ormai alle porte e presto i fortunati che potranno andranno in vacanza, godendosi finalmente il meritato riposo da un anno passato in ufficio o tra i banchi di scuola, a combattere cruenti battaglie per conquistare l&#8217;oggetto di turno. Per tutti quelli meno fortunati, su Silmaril continuano le avventure e, per rimanere in contatto... [<a href="http://www.mud.it/10-06-2010/silmaril-quest-ed-una-pagina-facebook/" title="Leggi il resto dell'articolo">Continua</a>]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify"><em>L&#8217;estate è ormai alle porte e presto i fortunati che potranno andranno in vacanza, godendosi finalmente il meritato riposo da un anno passato in ufficio o tra i banchi di scuola, a combattere cruenti battaglie per conquistare l&#8217;oggetto di turno. Per tutti quelli meno fortunati, su Silmaril continuano le avventure e, per rimanere in contatto ovunque andrete (se non resistete alla tentazione di accedere ad un computer), abbiamo creato anche una pagina su Facebook per rimanere in contatto.<br />
</em></p>
<p style="text-align: justify">La lunga avventura che mesi or sono è cominciata con i giocatori che loro mal grado hanno liberato un potente negromante al servizio di oscuri poteri, prosegue. Non si sa che fine egli abbia fatto: nelle mani dei giocatori un misterioso scrigno e tanti guai che costringono gli abitanti di Silmaril a dover fare continuamente i conti con il loro coraggio. Le cose sembravano volgere al meglio, quando un gruppo di avventurieri provenienti dalle varie capitali del Regno ha deciso di imbarcarsi in una rischiosa spedizione. Ma solo uno di loro è tornato, ed è diventato un<em> bodak</em>. Il negromante sembra ogni giorno più potente, quali saranno le sue mire di conquista? Riusciranno gli abitanti di Silmaril a fermarlo?</p>
<p style="text-align: justify">Infine, per tenerci aggiornati con i tempi e poter offrire una maggiore interazione tra i giocatori che rappresentano la comunità di Silmaril, abbiamo deciso di creare una pagina Facebook, da affiancare al già esistente <a href="http://silmarilforum.altervista.org/">forum</a> e alla storica mailing list. Vista la grande diffusione di cui i social network come FB godono, ci piace pensare che questo possa essere un modo per rimanere in contatto anche con i vecchi giocatori, che in passato si sono divertiti con noi e che, pur avendo scelto strade diverse o non giocando più ai mud, sono ancora affezionati a Silmaril così come noi lo siamo a loro.</p>
<p style="text-align: justify">I contenuti della pagina su Facebook saranno allora costantemente aggiornati con Eventi, Quests, i disegni dei giocatori, le foto dei raduni e dei contenuti che i giocatori di Silmaril vorranno condividere con il resto della comunità.</p>
<p style="text-align: justify"><strong>Links alle pagine di Facebook</strong>:</p>
<ul style="text-align: justify">
<li><a href="http://www.facebook.com/pages/Silmaril-Mud/293062298821">Bacheca di Facebook</a></li>
<li><a href="http://www.facebook.com/album.php?aid=171383&amp;id=293062298821&amp;ref=pb">Galleria &#8220;Piazza degli Eroi&#8221;</a><br />
<em>Una galleria potrete conoscere i ritratti dei volti dei tanti eroi ed avventurieri che solcano le terre di Silmaril, ad opera dei rispettivi giocatori.</em></li>
<li><a href="http://www.facebook.com/album.php?aid=169597&amp;id=293062298821&amp;ref=pb">Galleria &#8220;Bestiario Bestiale&#8221;</a><br />
<em>Una galleria dedicata a tutti coloro che non vedono il fantasy con i paraocchi, dove le &#8220;stranezze&#8221; dei mostri di Silmaril sono visti e ridisegnati dagli occhi divertiti dei giocatori.</em></li>
<li><a href="http://www.facebook.com/album.php?aid=171368&amp;id=293062298821&amp;ref=pb">Galleria &#8220;SilmaComics&#8221;</a><br />
<em>Una galleria sono raccolte le caricature, le strisce brevi e vignette divertenti che provenienti dalla fantasia dei giocatori che attingono alle vicissitudini del mondo di Silmaril.</em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mud.it/10-06-2010/silmaril-quest-ed-una-pagina-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TS2: Apre la lotteria</title>
		<link>http://www.mud.it/02-06-2010/ts2-apre-la-lotteria/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ts2-apre-la-lotteria</link>
		<comments>http://www.mud.it/02-06-2010/ts2-apre-la-lotteria/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 19:11:21 +0000</pubDate>
		<dc:creator>Tempora Sanguinis 2</dc:creator>
				<category><![CDATA[Tempora Sanguinis 2]]></category>

		<guid isPermaLink="false">http://www.mud.it/?p=821</guid>
		<description><![CDATA[Il banco della lotteria di Midia apre i battenti. Potranno giocare tutti i personaggi dal livello 21 in su recandosi dal banditore e comprando il biglietto. E&#8217; possibile comprarne solo uno per ogni personaggio ad ogni ciclo, il costo è di 2000 monete per livello.
﻿Le estrazioni avverranno una volta al giorno, ai reboot, se il banditore... [<a href="http://www.mud.it/02-06-2010/ts2-apre-la-lotteria/" title="Leggi il resto dell'articolo">Continua</a>]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Il banco della lotteria di Midia apre i battenti. Potranno giocare tutti i personaggi dal livello 21 in su recandosi dal banditore e comprando il biglietto. E&#8217; possibile comprarne solo uno per ogni personaggio ad ogni ciclo, il costo è di 2000 monete per livello.<span id="more-821"></span></p>
<p style="text-align: justify;">﻿Le estrazioni avverranno una volta al giorno, ai reboot, se il banditore avrà venduto un numero minimo di biglietti, e contemporaneamente a ciò parte il successivo ciclo. Il numero di biglietti vincitori dipende anche dalla quantità di biglietti venduti.</p>
<p style="text-align: justify;">Ad ogni estrazione i personaggi in possesso del biglietto vincente verranno avvisati con una mail dallo scriba inviata loro dal banditore. Per ricevere il premio basta recarsi dal banditore e ovviamente consegnare il biglietto. I premi secondari sono in monente, il primo premio è una Pozione Divina casuale tra 5 tipi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mud.it/02-06-2010/ts2-apre-la-lotteria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pausa estiva per RdA</title>
		<link>http://www.mud.it/10-05-2010/pausa-estiva-per-rda/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=pausa-estiva-per-rda</link>
		<comments>http://www.mud.it/10-05-2010/pausa-estiva-per-rda/#comments</comments>
		<pubDate>Mon, 10 May 2010 08:50:55 +0000</pubDate>
		<dc:creator>Rocca d'Argento</dc:creator>
				<category><![CDATA[Rocca d'Argento]]></category>

		<guid isPermaLink="false">http://www.mud.it/?p=809</guid>
		<description><![CDATA[Come ogni anno, in questo periodo, RdA si prepara alla consueta pausa estiva.  Salvo imprevisti il MUD resterà operativo sino alla fine di Giugno, per poi  chiudere e riaprire nella seconda metà di Settembre. Le locande per l´affitto  del PG già da oggi saranno gratuite con buona pace per l&#8217;anima di tutti,... [<a href="http://www.mud.it/10-05-2010/pausa-estiva-per-rda/" title="Leggi il resto dell'articolo">Continua</a>]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Come ogni anno, in questo periodo, RdA si prepara alla consueta pausa estiva.  Salvo imprevisti il MUD resterà operativo sino alla fine di Giugno, per poi  chiudere e riaprire nella seconda metà di Settembre. Le locande per l´affitto  del PG già da oggi saranno gratuite con buona pace per l&#8217;anima di tutti, ma si segnala anche che eventuali comunicazioni rivolte allo staff non potranno essere concretamente vagliate prima di Settembre.</p>
<p style="text-align: justify;">Contiamo nel periodo di pausa che ci attende di operare affinamenti sulle aree esistenti e tornare per Ottobre con alcune novità, ad esempio la contestualizzazione di un misterioso cubo apparso di recente su Waverlay e con cui qualche giocatore già si è trovato letteralmente a fare i conti.</p>
<p style="text-align: justify;">Ringraziamo tutti i giocatori per  i contributi apportati al mud tramite le segnalazioni critiche ricevute, ma anche per i sinceri e sempre graditi attestati di stima. Inoltre questa sera (10.05.2010) vi diamo <span style="text-decoration: underline;">appuntamento online</span> su <a title="Connettiti al MUD: Rocca d'Argento." href="telnet://rdamud.afraid.org:4000">rdamud.afraid.org:4000</a> alle 21:30 per un saluto ed <span style="text-decoration: underline;">una piccola caccia al  tesoro</span> adatta ad ogni livello.</p>
<p style="text-align: right;">by <a title="Visualizza gli articoli dell'autore" href="../category/notizie-mud/rda/">Rocca d’Argento</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mud.it/10-05-2010/pausa-estiva-per-rda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utenti Online?</title>
		<link>http://www.mud.it/16-03-2010/utenti-online/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=utenti-online</link>
		<comments>http://www.mud.it/16-03-2010/utenti-online/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 13:12:20 +0000</pubDate>
		<dc:creator>Matteo</dc:creator>
				<category><![CDATA[Programmazione]]></category>

		<guid isPermaLink="false">http://www.mud.it/?p=9</guid>
		<description><![CDATA[Qualche tempo fa un vecchio giocatore di MUD ora in pensione (Arthedain) parlando su ICQ mi raccontava che una features che gli sarebbe sempre piaciuto trovare sul sito di questo o quel mud era la visualizzare via web degli utenti correntemente connessi al gioco.


Personalmente trovo la cosa abbastanza futile, tuttavia appena ho avuto occasione ho... [<a href="http://www.mud.it/16-03-2010/utenti-online/" title="Leggi il resto dell'articolo">Continua</a>]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Qualche tempo fa un vecchio giocatore di MUD ora in pensione (Arthedain) parlando su ICQ mi raccontava che una features che gli sarebbe sempre piaciuto trovare sul sito di questo o quel mud era la visualizzare via web degli utenti correntemente connessi al gioco.</p>
<p><span id="more-9"></span></p>
<p style="text-align: center;"><img class="aligncenter" style="border: 1px solid whitesmoke;" src="http://www.mud.it/wp-content/uploads/2010/03/rda_webwho.gif" alt="Esempio di webwho" /></p>
<p style="text-align: justify;">Personalmente trovo la cosa abbastanza futile, tuttavia appena ho avuto occasione ho voluto provare a realizzare tale funzionalità a scopo puramente ricreativo avvalendomi  della linea guida suggeritami dallo stesso Arthedain:</p>
<p style="padding-left: 30px; text-align: justify;"><span style="color: #ff0000;">Arthedain</span>, 09/02/2010:<br />
<em>…quello che dico io e&#8217; semplicemente: Il tuo mud fa&#8217; un chi e salva i dati su un file, poi manda il file al mio server, e abbiamo finito.</em></p>
<p style="text-align: justify;">L&#8217;idea mi pare sensata anche se probabilmente potrebbero essere sviluppate meccaniche più funzionali ed economiche, ad esempio producendo la lista degli utenti connessi solo su richiesta e non magari periodicamente: ciò, nel caso dei mud italiani in cui l&#8217;utenza è  esigua, ridurrebbe senz&#8217;altro il carico di trasmissione dati tra mud-server e web-server. Per contro però l&#8217;utenza web potrebbe influenzare in modo indefinito il carico di richieste verso il mud-server, salvo ricorrere a strategie di controllo che esulano dalla mia competenza di programmatore dilettante.</p>
<p style="text-align: justify;">L&#8217;implementazione che segue è basata sul sorgente smaug 1.4 usato da RDA e operativo su server Linux, ma credo possa essere facilmente adattato ad altri sorgenti o piattaforme. Si tenga conto tra l&#8217;altro che lo smaug a quanto pare aveva abbozzato una simile funzionalità, che potrebbe persino essere stata completata nelle versioni più recenti del codice. Troviamo infatti nella funzione do_who, responsabile della visualizzazione degli utenti connessi mentre si è in gioco, la variabile fShowHomepage che permette la stampa sul file degli utenti connessi.</p>
<h1>Codice C</h1>
<p style="text-align: justify;">La prima cosa da fare quindi è scrivere una funzione che stampi su file la lista degli utenti connessi, e io per comodità ho fatto in modo che il file generato sia già in formato html di modo che possa essere incluso facilmente in qualunque pagina web con la direttiva include o readfile di php. Ecco come potrebbe apparire la funzione di base:</p>
<pre style="padding-left: 30px; line-height: 15px;"><span style="color: #0000ff;">#define</span> WHOWEB_FILE SYSTEM_DIR<span style="color: #993300;"> "whoweb.php"</span>
<span style="color: #0000ff;">void </span>whoweb_check( )
{
  DESCRIPTOR_DATA *d; CHAR_DATA *wch; <span style="color: #0000ff;">int</span> count = 0;
  FILE *fp = fopen( WHOWEB_FILE, <span style="color: #993300;">"w"</span> );
 <span style="color: #0000ff;"> if</span> ( !fp )
  { bug( <span style="color: #993300;">"Impossibile scrivere il file whoweb.php!"</span>, 0 ); <span style="color: #0000ff;">return</span>; }
  fprintf( fp, <span style="color: #993300;">"Utenti connessi...&lt;hr&gt;"</span> );
  <span style="color: #0000ff;">for </span>(d = last_descriptor; d; d = d-&gt;prev)
  {
 <span style="color: #0000ff;">   if </span>( !d ) <span style="color: #0000ff;">continue</span>;
 <span style="color: #0000ff;">   if</span> (d-&gt;connected != CON_PLAYING &amp;&amp; d-&gt;connected != CON_EDITING)
 <span style="color: #0000ff;">   continue</span>;
    wch = (d-&gt;original ? d-&gt;original : d-&gt;character);
 <span style="color: #0000ff;">   if</span> ( IS_NPC(wch) || xIS_SET(wch-&gt;act, PLR_WIZINVIS) )
 <span style="color: #0000ff;">   continue</span>;
    count += 1;
    fprintf( fp, <span style="color: #993300;">"%s&lt;br&gt;"</span>, wch-&gt;name );
  }
  fprintf( fp, <span style="color: #993300;">"%s&lt;hr&gt;Giocatori: %d | %.24s | &lt;a style=\"href=\"#\"
  onclick=\"javascript:window.location.reload(true)\"&gt;Aggiorna&lt;/a&gt;"</span>,
  count ? <span style="color: #993300;">""</span> : <span style="color: #993300;">"Nessuno."</span>, count, ctime(&amp;current_time)  );
  fclose( fp );
 <span style="color: #0000ff;"> return</span>;
}</pre>
<p></p>
<p style="text-align: justify;">Come si può notare, in questo esempio, ho predisposto semplicemente la stampa del nome del giocatore online e, in fondo a seguire, il loro numero complessivo,  il riferimento alla data e ora in cui il listato è stato generato, e un link per il refresh della pagina web. Chiaramente, volendo, si potranno registrare per ciascun utente ben piu&#8217; informazioni del nome. Nel caso di RDA, ad esempio, ho incluso la razza, l&#8217;età, l&#8217;altezza, il peso, la classe d&#8217;appartenenza, il livello, il luogo in cui il pg si trova al momento, etc&#8230; Per fornire tutte queste informazioni in modo compatto mi sono servito dei cosiddetti tooltips multiline in javascript di cui ho inserito la sintassi specifica direttamente nella funzione whoweb_check() (&#8230;nb: il tooltips usato da me è reperibile <a href="http://www.walterzorn.com/tooltip/tooltip_e.htm">QUI</a>).</p>
<p style="text-align: justify;"><strong><span style="color: #ff0000;">ATTENZIONE!</span></strong> Tra le info del pg che potrete stampare su file sconsiglio vivamente d&#8217;inserire: il titolo, la biografia, o in generale elementi che il pg può modificare più o meno a piacere, salvo introdurre funzioni di sicurezza specifiche che blocchino eventuali tag inseriti dal giocatore e che sappiano rielaborare anche eventuali codici colori utilizzati. La ragione è semplice: cosa accadrebbe se un pg scrivesse nel proprio titolo una cosa come &#8220;<span style="color: #999999;">&lt;div&gt;</span>&#8220;?</p>
<p style="text-align: justify;">Ora la domanda è: &#8220;dove inserire nel codice la chiamata alla nostra funzione whoweb_check()?&#8221;. La mia scelta è stata di farlo ogni due tick, generando dunque indicativamente un aggiornamento del listato ogni due minuti e mezzo. Nulla vieta comunque d&#8217;invocare la funzione con differente frequenza,  ma in ogni caso la zona d&#8217;inserimento della nostra procedura cadrà quasi senz&#8217;altro all&#8217;interno della <strong>update_handler()</strong>, ovvero la funzione che gestisce la maggior parte degli update periodici nello smaug.</p>
<h1>Codice Linux</h1>
<p style="text-align: justify;">Giunti a questo punto, se il web-server coincide col computer sul quale gira il nostro mud la storia si può dire conclusa. Basterà infatti porre in una qualunque pagina web del nostro sito un get_file_content, un include, o un readfile che punti al nostro neonato file whoweb.php. Diversamente dovremmo preoccuparci di inviare il file al nostro web-server ogni tot tempo, che di regola dovrebbe corrispondere all&#8217;intervallo di tempo con cui il listato viene prodotto. Su server linux creeremo dunque un file <strong>whowebloop</strong> a cui attribuiremo permessi d&#8217;esecuzione e nel quale inseriremo uno script di questo tipo:</p>
<pre style="text-align: justify; padding-left: 30px; line-height: 15px;"><span style="color: #993300;">#!/bin/bash</span>
<span style="color: #0000ff;">while</span> :
<span style="color: #0000ff;">do</span>
<span style="color: #008000;">#Aggiornamento ogni 90 secondi</span>
sleep 90 &amp; pid=$!
 curl <span style="color: #993300;">-m 30 --connect-timeout 30 -s -T /directory/mud_server/whoweb.php
 ftp://host.web.server --user nome_utente:password</span>
 wait $pid
<span style="color: #0000ff;">done</span></pre>
<p></p>
<p style="text-align: justify;">Chiaramente <span style="color: #999999;">/directory/mud_server</span> dovrà coincidere col percorso ove è collocato il vostro file <span style="color: #999999;">whoweb.php</span>, l&#8217;<span style="color: #999999;">host.web.server</span> sarà l&#8217;indirizzo di connessione ftp al server in cui risidere il vostro sito e a cui vi autenticherete tramite il vostro <span style="color: #999999;">nome_utente</span> e <span style="color: #999999;">password</span>.</p>
<h1>Codice Web</h1>
<p style="text-align: justify;">Un aspetto ulteriore da tenere in conto è l&#8217;eventualità che un utente acceda alla pagina web contenente il nostro listato mentre questo viene aggiornato. Il mio consiglio in questo caso è di inserire, tramite la whoweb_check(), un tag commento di verifica in coda al file whoweb.php come segue: <span style="color: #888888;">&lt;!-<font face="Courier New, Courier, mono">-</font>WHOWEBEOF-<font face="Courier New, Courier, mono">-</font>&gt;</span> ed effettuare poi il caricamento del file whoweb.php in modo tradizionale invece che tramite include. Ecco come:</p>
<pre style="text-align: justify; padding-left: 30px; line-height: 15px;"><span style="color: #0000ff;">&lt;<span style="color: #ff0000;">?php</span>
  if</span> (<span style="color: #ff0000;">is_file</span>(<span style="color: #993300;">"whoweb.php"</span>))
  { $handle = <span style="color: #ff0000;">fopen</span> (<span style="color: #993300;">"whoweb.php"</span>, <span style="color: #993300;">"r"</span>);
    $whowebtxt = <span style="color: #ff0000;">fread</span>($handle, <span style="color: #ff0000;">filesize</span>(<span style="color: #993300;">"whoweb.php"</span>));
<span style="color: #ff0000;">    fclose</span>($handle);
  }
  $checkEOF=<span style="color: #ff0000;">substr</span>($whowebtxt, -16);
<span style="color: #0000ff;">  if</span> ( $checkEOF == <span style="color: #993300;">"&lt;!--WHOWEBEOF--&gt;"</span> )
  { <span style="color: #ff0000;">echo </span>$whowebtxt; }
<span style="color: #0000ff;">  else </span>
  { <span style="color: #ff0000;">echo</span><span style="color: #993300;"><span style="color: #ff0000;"> </span>"Attendere: la lista dei giocatori sta temporaneamente aggiornandosi."</span>;
<span style="color: #ff0000;">    echo </span><span style="color: #993300;">"&lt;script&gt;var t; t=setTimeout('window.location.reload(true)',7500)
          &lt;/script&gt;"</span>;}
<span style="color: #0000ff;"><span style="color: #ff0000;">?</span>&gt;</span></pre>
<p></p>
<p style="text-align: justify;">Potete vedere <a href="http://www.rdamud.altervista.org/giocatori.php">QUI</a> lo script in azione ed eventualmente studiare la sintassi completa impiegata sul sito di RDA visualizzando l&#8217;origine della pagina. Se non ci sono giocatori connessi &#8211; mannaggia &#8211; entrate voi stessi e ricaricate la pagina dopo 2 minuti circa per vedere il risultato. Gli aggiornamenti da me imposti sono ogni 2,5 minuti per la precisione, valore che ritengo un buon compromesso tra informazioni fornite e &#8220;privacy&#8221; per chi gioca. Per dubbi o commenti: <a href="mailto:rdamud@gmail.com">rdamud@gmail.com</a>.</p>
<p>Un saluto,<br />
Matteo (Alek)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mud.it/16-03-2010/utenti-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un articolo storico</title>
		<link>http://www.mud.it/15-03-2010/analisi-mud/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=analisi-mud</link>
		<comments>http://www.mud.it/15-03-2010/analisi-mud/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 12:00:30 +0000</pubDate>
		<dc:creator>MUD.it</dc:creator>
				<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://www.mud.it/?p=511</guid>
		<description><![CDATA[Nonostante siano passati ormai molti anni è nostra intenzione riproporre, anche per dovere d&#8217;archivio, un vecchio articolo diviso in due parti scritto da Paolo Matrascia datato rispettivamente martedì 17 luglio 2001 e giovedì 13 settembre 2001, in ragione dei numerosi spunti di riflessione offerti oltre che per i dettagli di rilievo contenuti. Può inoltre valere... [<a href="http://www.mud.it/15-03-2010/analisi-mud/" title="Leggi il resto dell'articolo">Continua</a>]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Nonostante siano passati ormai molti anni è nostra intenzione riproporre, anche per dovere d&#8217;archivio, un vecchio articolo diviso in due parti scritto da <strong>Paolo Matrascia</strong> datato rispettivamente martedì 17 luglio 2001 e giovedì 13 settembre 2001, in ragione dei numerosi spunti di riflessione offerti oltre che per i dettagli di rilievo contenuti. Può inoltre valere la pena rileggere l&#8217;articolo, in particolare la seconda parte, anche per vedere a distanza di anni quanto delle previsioni e aspettative siano andate o meno realizzandosi.</p>
<p style="text-align: right;">Il team di MUD.it</p>
<h1 style="text-align: justify;">Analisi storica e critica dei MUD</h1>
<p style="text-align: justify;"><em>La nuova miniera dell’intrattenimento elettronico, da sfruttare fino all’ultimo grammo, pare stia ormai diventando quella dei MMORPG (Massive Multiplayer Online RPG). Molti attribuiscono la paternità di questo genere a Richard &#8220;Lord British&#8221; Garriot che ormai quattro anni fa diede luce a quel capolavoro che è Ultima Online. Pochi invece sanno che il primo accenno di mondo persistente ha visto la luce agli inizi del 1979 sui dischi di un Mainframe universitario Inglese.</em></p>
<h1 style="text-align: justify;">Cosa sono i MUD</h1>
<p style="text-align: justify;">Ci sono diversi correnti di pensiero riguardo la definizione dell’acronimo MUD. I canonici lo traducono in Multi User Dungeon mentre altri ne condannano la troppo limitante definizione e preferiscono utilizzare Multi User Dimension. In verità il termine MUD non è nato come definizione di un genere ma era il nome di un particolare gioco creato nella primavera del 1979.</p>
<p style="text-align: justify;">Comunque possono essere definiti MUD tutti quegli ambienti virtuali dove è possibile esplorare interagendo con gli altri utenti (tipicamente chattando o combattendo) che sono connessi al server contemporaneamente a noi. I MUD possono essere testuali o grafici, possono prevedere dei client proprietari ma la maggior parte delle volte è sufficiente utilizzare un terminale TELNET, alcuni MUD sono orientati al combattimento, altri all’esplorazione di caverne &#8211; i Dungeon appunto &#8211; e mondi alla ricerca di tesori nascosti, altri ancora sono orientati alla socializzazione con altri utenti.</p>
<p style="text-align: justify;">Riassumendo un MUD è un programma per computer nel quale gli utenti possono connettersi, giocare ed esplorare nuovi mondi. Ogni utente controlla un proprio alter ego attraverso il quale cammina, parla con altri personaggi, esplorare aree infestate da mostri pericolosi, risolvere enigmi, evitare trappole e a volte avere anche una propria dimora dove riposare e riporre gli oggetti, frutto di gesta eroiche, furti o missioni. Capiamo quindi che applicando quanto detto finora anche le ultimissime produzioni MMORPG come Anarchy OnLine possono definirsi dei &#8220;particolari&#8221; e sofisticati MUD Grafici. Ma adesso vediamo di scorrere brevemente la storia dei MUD.</p>
<h1 style="text-align: justify;">Gli antenati dei MUD</h1>
<p style="text-align: justify;">La prima (conosciuta) avventura dotata di parser testuale mai realizzata è stata creata da Will Crowther su un DEC PDP-10 agli inizi del 1970, essa fu in seguito ampliata e perfezionata da Don Woods alla Stanford University nel 1976, che decise di ambientare il gioco nell’universo Tolkeniano del &#8220;Signore degli Anelli&#8221; e di chiamarlo semplicemente Adventure.</p>
<p style="text-align: justify;">Scopo di Adventure era quello di trovare un certo numero di tesori nascosti dando dei comandi a riga di comando in base alle descrizioni che di volta in volta il programma emetteva, il giocatore poteva interagire con il computer in questo modo:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.mud.it/wp-content/uploads/2010/03/adventure.gif" alt="" /></p>
<p style="text-align: justify;">Adventure è spesso riconosciuto col nome di Advent perché il file system del sistema operativo utilizzato, il TOPS-10, limitava la lunghezza massima dei nomi dei file a 6 caratteri.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">Il filone delle avventure testuali – questo è il nome attribuito a questo genere di giochi, dove il giocatore deve risolvere enigmi dando istruzioni al computer tramite un parser testuale &#8211; ebbe un’esistenza florida fino alla fine degli anni novanta. Software House come la Infocom e la Magnetc Scrolls diedero vita ad intere saghe la più famosa delle quali è senza dubbio quella dell’impero sotterraneo di Zork. L’avvento della grafica prima, e delle interfaccie punta e clicca poi &#8211; introdotte per la prima volta dalla SIERRA con il titolo King Quest e perfezionate poi dalla Lucas con Maniac Mansion – sancirono però, (quasi) definitivamente, la fine di questo filone di giochi. Ma questa è un’altra storia.</p>
<h1 style="text-align: justify;">Il primo MUD: MUD1</h1>
<p style="text-align: justify;">Dicevamo prima che l’aspetto caratterizzante dei MUD è sicuramente quello dell’interazione tra più persone.</p>
<p style="text-align: justify;">Il primo gioco ad implementare questa caratteristica fu programmato in MACRO-10 &#8211; il linguaggio macchina del DECsystem-KL10 utilizzato in università &#8211; da uno studente, di nome Roy Trubshaw, della Essex University nella primavera del 1979. Il gioco venne chiamato MUD e all’inizio non era altro che una serie di locations (stanze) interconnesse tra loro che potevano essere esplorare per cercare altri utenti con cui dialogare.</p>
<p style="text-align: justify;">Una seconda versione del gioco fu riscritta quasi immediatamente &#8211; sempre in MACRO-10 – prevedendo la definizione di tutti gli oggetti del gioco (stanze, armi, comandi) in un file di testo condiviso da tutti gli utenti. In questo modo si poteva consentire a giocatori &#8220;particolari&#8221; di poter aggiungere di volta in volta le proprie definizioni di nuovi oggetti e di nuovi comandi. Gli utenti con questi particolari poteri furono in seguito chiamati Wizard e sono comparabili con quelli che oggi vengono più comunemente definiti Game Master (GM).</p>
<p style="text-align: justify;">La versione finale del progetto, la terza, fu terminata di essere riscritta per la pasqua dell’anno successivo, adesso il linguaggio utilizzato non era più quello macchina – fu utilizzato infatti il BCPL &#8211; e Trubshaw decise di rirprogettare l’intera gestione della memoria per ovviare alle limitazioni imposte dal sistema utilizzato (l’originario MUD occupava solamente 50K di memoria) perfezionando intanto anche il linguaggio di scripting utilizzato per l’interrogazione della rudimentale base dati..</p>
<p style="text-align: justify;">A questo punto Trubshaw decise di abbandonare il progetto, egli infatti era più interessato alla parte di programmazione che non quella di Game design (in particolare l’intero progetto nacque perché voleva testare alcune funzioni di condivisione per l’accesso alla memoria in sistemi multi concorrenziali), e prese quindi in mano il progetto Richard Bartle, amico e compagno di università che lo affiancò fin dall’inizio e che finalmente aggiunse tutte quelle caratteristiche che sono proprie dei MUD di oggi.</p>
<p style="text-align: justify;">Bartle sviluppò un sistema di punteggi, implementò l’utilizzo del mobilio e dei contenitori, fornì agli avventurieri degli enigmi da risolvere e degli obiettivi da raggiungere, perfezionò tutta la &#8220;fisica&#8221; del mondo simulato (come ad esempio il sistema di luci). Racconta Bartle che il lavoro iniziale di Trubshaw, che era comunque il nucleo dell’intero progetto, a lavori ultimati consisteva nel 25% del codice scritto, mentre il restante 75% fu aggiunto appunto da lui.</p>
<p style="text-align: justify;">Il primo MUD della storia poteva ormai definirsi concluso: MUD1 aveva cominciato a vivere.</p>
<p style="text-align: justify;">Il primo contatto con un giocatore esterno alla rete interna dell’università avvenne nella primavera del 1980, quando l’università del Essex si connetté all’allora ARPANET (l’infrastruttura portante che fece poi nascere Internet) e a JANET (il network accademico Britannico) . Da quel giorno ogni pomeriggio studenti da ogni parte dell’Inghilterra si collegavano al server della Essex University per avventurarsi nei meandri del mondo ricreato dai due novelli Game Designer.</p>
<p style="text-align: justify;">MUD1 girò sul mainframe dell’università per ben 8 anni (1980 – 1988) fu quindi acquistato da CompuServe (il noto provider americano) e lasciato in servizio fino al 1999 quando fu dismesso a causa del famigerato Y2k Bug.</p>
<p style="text-align: justify;">Oggi se puntate il vostro browser all’indirizzo <a title="Collegamento a MUD1" href="http://www.british-legends.com/" target="_self">http://www.british-legends.com</a> potrete comunque giocare a MUD1 grazie alla conversione, da parte di un appassionato, di tutto il codice per poter girare su piattaforma Windows NT/2000.</p>
<p style="text-align: justify;">Ma non furono i vichinghi a scoprire per primi l’America?</p>
<p style="text-align: justify;">The scepter of Goth, oltre ad essere il primo MUD ad essere scritto in C per poter funzionare su un sistema IBM XT con un sistema operativo Unix Like chiamato QNX (ed ancor oggi sviluppato, NdR) e oltre ad essere ricordato come uno dei primi, se non il primo in assoluto, MUD commerciale &#8211; gestito da una compagnia chiamata &#8220;GameBits TimeSharing&#8221; fondata dal creatore del gioco Alan Klietz che creò una vera e propria BBS per gestirne tutti gli aspetti organizzativi – è anche l’unico progetto che può contendere a MUD1 la primogenitura dei MUD.</p>
<p style="text-align: justify;">Pare infatti che una primissima versione di The scepter of Goth fu scritta nel 1979 da Alan Klietz che volle creare una variante multiutente di Advent dove i giocatori potessero combattere uno contro l’altro. Il programma fu scritto in Basic (con alcune particolari routine in Assembler) e venne chiamato inizialmente Empire.</p>
<p style="text-align: justify;">Nonostante numerose ed approfondite ricerche non sono ancora riuscito ad avere la certezza &#8220;storica&#8221; sul primato di nascita dei MUD. L’unica cosa sicura è che Empire e MUD furono due progetti totalmente indipendenti l’uno dall’altro. Fatto sta comunque che se oggi parliamo del genere dei MUD e non di quello degli EMPIRE un motivo ci dovrà pur essere.</p>
<h1 style="text-align: justify;">MUD2 e i diretti discendenti di MUD1</h1>
<p style="text-align: justify;">Come già detto MUD1 aveva un solo Database (un file di testo) per tutti gli oggetti del gioco ed essi potevano essere acceduti tramite il linguaggio di scripting MUDDL (MUD Definition Language) creato appositamente da Trubshaw per l’occasione. Questo sistema tuttavia era alquanto limitativo sia dal punto di vista prestazionale che da quello funzionale (non era altro infatti che una particolare metodo di &#8220;glorified table-lookup system&#8221; come aveva fatto notare lo stesso programmatore).</p>
<p style="text-align: justify;">Richard Bartle decise perciò di riscrivere una nuova versione di MUD suddividendo tutto il database in file diversi (utilizzando una tecnica denominato Including) ed implementando per l’occasione un nuovo linguaggio di manipolazione dati più potente e flessibile. Pensò quindi di utilizzare MUDDLE, ovvero il linguaggio conosciuto oggi col nome di MDL: una versione modificata del LISP orientata agli oggetti utilizzato all’epoca già dalla INFOCOM per scrivere Zork ed altre numerose avventure testuali..</p>
<p style="text-align: justify;">Nacque così la quarta versione di MUD: chiamata per l’occasione MUD2. Anche MUD2 fu poi utilizzato per scopi commerciali &#8211; questa volta fu la British Telecom a comprarne i diritti &#8211; ed è giocabile ancor oggi, lo potete trovare (ed eventualmente provare) presso il sito <a title="Collegamento a MUD2" href="http://www.mud2.com/" target="_self">http://www.mud2.com</a>.</p>
<p style="text-align: justify;">Un altro progetto nato a partire da MUD1 è AmberMUD. Esso fu scritto da Alan Cox ,(a partire dal codice sorgente di MUD1) uno studente dell’università di Aberystwyth (da qui il nome del gioco) in Scozia, e assiduo giocatore di MUD1.</p>
<p style="text-align: justify;">Inizialmente il gioco fu sviluppato per girare su Honeywell ma fu poi velocemente portato in ambiente Unix. Nonostante l’architettura generale fosse particolarmente pesante (il core era infatti ancora quello di MUD1 e quindi tutta l’infrastruttura poggiava su un unico immenso file condiviso da tutti) e perciò non particolarmente amata dai sistemisti del tempo, i codici sorgente di AmberMUD ebbero una grossa diffusione fino ad arrivare nelle università degli Stati Uniti e fare così in modo che AmberMUD fosse il primi MUD ad essere giocato nel Nord America e comunque il primo ad essere implementato su più Server diversi tra loro.</p>
<p style="text-align: justify;">Ci numerose altre varianti di MUD in quel periodo tra cui valgono la pena di essere menzionati VAXMUD, scritto in FORTRAN e caratterizzato dal fatto che, a differenza di tutti gli altri MUD del periodo, i giocatori non perdevano gli oggetti dal proprio inventario quando venivano disconnessi … il primo tentativo di mondo persistente; e MUNDI che, pur non essendo mai stato distribuito, è ricordato per essere il primo MUD ad essere espressamente creato cercando di ottimizzare le prestazioni di rete.</p>
<p style="text-align: justify;">Nonostante quindi già da meta degli anni ‘80 i MUD cominciarono ad essere giocati più o meno in ogni parte del mondo la vera esplosione dei MUD la si deve al progetto TinyMUD.</p>
<p style="text-align: justify;">TinyMUD nacque da una stanca settimana di lavoro di James Aspnes, allora studente della Carnegie Mellon University (adesso insegna a Yale). Come base per lo sviluppo di TinyMUD Aspnes decise di utilizzare i sorgenti di Monster – un abbozzo di MUD scritto in Pascal per MVS e con sorgenti di pubblico dominio– con l’intenzione di mantenerne la flessibilità ma di renderlo più snello (TinyMUD infatti prevedeva di mantenere la definizione del database tutto su memoria, a differenza del padre che gestiva tutto su file). TinyMUD fu installato per la prima volta nel 1989 sulla porta 4201 della macchina &#8220;lancelot.avalon.cs.cmu.edu&#8221;.</p>
<p style="text-align: justify;">Nonostante le ovvie limitazioni del programma &#8211; Aspnes infatti decise inizialmente di abbandonare il progetto quando TinyMUD andò in crash superando i 32 megabyte imposti come limite sulla grandezza dei processi – TinyMUD è, insieme ai suoi derivati TinyMUCK e TinyMOO, uno dei sistemi MUD più popolari su Internet. Con i server TinyMUD nacquero così le prime definizioni alternative al genere classico, si cominciò ad utilizzare dei termini come MUSH (Multi User SHared allucinations) e MOO (MUD Object Oriented). TinyMUD infatti si distingueva dai suoi predecessori soprattutto per il fatto che il gameplay era più orientato alla comunicazione e alla creazione di mondi che non al combattimento e alla mera esplorazione di caverne.</p>
<p style="text-align: justify;">Fu Lars Pensjö, un ragazzo svedese, che decise di scrivere un server che unisse i pregi di AmberMUD con quelli di TinyMUD. Prese vita così LPMUD: steso dapprima in C (su piattaforma System V usando IPC) fu poi riscritto interamente in C++ (per poterne sfruttare le caratteristiche Object Oriented). Le ultime versioni di LPMUD si distinguono per il fatto di prevedere un linguaggio di scripting (molto simile al C) che finalmente consentiva di poter aggiungere nuove funzionalità (comandi, magie, oggetti , etc…) al progetto in maniera graduale e scalabile senza andare a mettere mano direttamente sui file di definizione e senza utilizzare astrusi linguaggi di interrogazione.</p>
<p style="text-align: justify;">Grazie a LPMUD i wizards poterono finalmente costruire i propri mondi a proprio piacimento: non erano più limitati ad aggiungere qualche contenitore qua e là, ma adesso erano in grado di costruire case, strade e tutto quanto gli venisse in mente (non tralasciando tuttavia tutti i problemi gestionali che questo doveva comportare, N.d.R.).</p>
<p style="text-align: justify;">Da questo momento in poi è sempre più difficile tracciare in maniera concisa e schematica l’evolversi della nascita di nuovi MUD: la crescita di nuovi sistemi e l’installazione di nuovi server fu esponenziale. Basti pensare che ad oggi la più autorevole risorsa di catalogazione di Server MUD attivi nel mondo (<a title="Collegamento a MUD-Connector" href="http://www.mudconnector.com/" target="_self">http://www.mudconnector.com/</a>) ne conta più di 1700.</p>
<p style="text-align: justify;">Non possiamo comunque non ricordare anche alcuni progetti commerciali come Meridian59 della 3DO, o il tentativo della Sierra di commercializzare una versione OnLine di Bards Tale (forse il primo vero RPG Grafico OnLine multiutente) fino ad arrivare, come già detto, ad Ultima OnLine: il vero punto di contatto fra i MUD vecchia maniera ed i nuovi MMORPGs dell’ultima generazione.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.mud.it/15-03-2010/analisi-mud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
