venerdì 25 febbraio 2011

Scacchi on-line - Parte 1.7 - Sfide

Ok, una volta entrati nel sito per giocare a scacchi on-line siete pronti per giocare la vostra partita, ma come scegliere l’avversario? Ci sono molti modi. Il più comune è la sfida diretta: dalla lista degli utenti in linea è possibile sceglierne uno e giocar con lui. Forse si conosce già il nickname dell’avversario con cui voler giocare, oppure si vuol giocare con una persona un po’ più forte così che in caso di vittoria sarà possibile incrementare il proprio punteggio. La scelta in questo caso spetta all’utente.


Figura 7http://www.chesshere.com permette al giocatore di invitare un altro giocatore e di mostrare la lista degli inviti correnti.

Esiste un’altra possibilità: si può creare la partita che si vuole (un tavolo) e aspettare che qualcuno accetti di “sedersi” e giocare. Dal punto di vista di chi dovrà accettare la sfida, è possibile ispezionare una lista di tavoli aperti con le loro caratteristiche e scegliere di unirsi alla partita che si vuole. Ottimo, ma ci si potrebbe chiedere: ”perché dovrei vedere una lista di un mucchio di partite che non voglio giocare?”. Infatti, la maggior parte delle sfide aperte non sono interessanti, vuoi perché l’avversario è troppo forte oppure troppo debole o i limiti di tempo non sono quelli desiderati. Ecco perché alcuni buoni siti web permettono ai loro utenti di impostare dei vincoli quando si crea una partita. Questi vincoli filtrano l’insieme degli avversari a quei giocatori con un punteggio compreso in un intervallo prestabilito o compreso in un range di valori che include il punteggio del creatore (ad esempio 300 punti sotto e 300 punti sopra).


Figura 8 – creazione di una partita con il vincolo del punteggio entro un range in http://www.chesscube.com

Un concetto simile viene usato da altri siti dove ciascun giocatore specifica i vincoli ed è il sistema che trova automaticamente un avversario che rispetta i requisiti cercati: l’utente non sceglie di unirsi ad un tavolo perché non gli è permesso di vedere la lista dei tavoli aperti.

Cosa accade se non c’è nessuno in linea che può giocare? Giocare con un computer sembrerebbe la scelta forzata ed è utilizzata da alcuni, ma è veramente quel che si vuole? Meglio forse essere chiari:”spiacente, nessun avversario è disponibile al momento. Riprova o se vuoi gioca con il nostro calcolatore”.

Alcuni siti propongono una interessante possibilità, quella di invitare un amico a giocare con te anche se non è un utente registrato. L’invito ha bisogno solo dell’indirizzo e-mail e quindi se questo amico sta controllando la posta in quel momento, può accettare la sfida e la partita può aver luogo (ma se non è connesso...).

Ho parlato di amici. Ebbene il concetto di “amico” è diffusamente utilizzato tra i siti di gioco on-line. Si può mantenere una lista di utenti (gli amici appunto) e controllare se sono connessi, in questo caso è possibile invitarli a giocare o semplicemente a chattare. Dietro c’è un concetto molto semplice: un amico è qualcuno a cui si vuol essere connessi, qualcuno con cui voler giocare spesso. Qualche sito di gioco ha un’altra interessante caratteristica che può essere considerata l’opposto della lista degli amici: la lista delle persone contro cui non voler mai giocare. Infatti quando il sistema trova un avversario automaticamente per te, non hai la possibilità di rifiutare l’incontro (in certi casi è possibile anche questo: la partita è nulla se il giocatore non esegue la prima mossa o non accetta il match). Usando la lista nera (o block list o no-play list) il sistema non creerà la partita con un avversario indesiderato.

giovedì 3 febbraio 2011

Scacchi on-line - Parte 1.6 - Punteggi e livelli

Perché il gioco degli scacchi è come una droga per molte persone? Perché è un bellissimo gioco, si potrebbe rispondere. Certo. Perché si incontrano persone diverse. Sicuramente. Perché è affascinante la sua teoria. Si, ma inconsciamente la risposta migliore è perché si vuol dimostrare di essere più forti dell’avversario. Un’altra variante: perché si vuol dimostrare di essere più forti di tante altre persone. Una risposta più modesta: perché si vuol provare di essere il giocatore più forte e basta!

Il punteggio allora aiuta a misurare la propria forza con quella degli altri giocatori. Il punteggio ELO è il più usato. Si tratta di una semplice formula che tira fuori un numero: più grande è questo numero maggiore sarà la forza.


Figura 6 – Formula per il calcolo del punteggio. W=1(vittoria) o 0.5(patta) o 0(sconfitta); R1 è il punteggio corrente del giocatore, R1’ è il nuovo punteggio, R2 è il punteggio dell’avversario, K è il massimo aggiustamento possibile per partita e questa costante è impostata a 32 a meno che il giocatore non abbia un rating provvisorio, in questo caso K dipende dal numero di partite giocate dall’avversario.

Parlare proprio di ELO non è completamente corretto per essere precisi. E’ più corretto parlare di un tipo di punteggio utilizzato per avere un posto in classifica. Ogni provider utilizza una formula specializzata, modificata a suo piacimento, specialmente perché la formula originale di ELO non funziona bene quando i giocatori hanno al loro attivo ancora poche partite. E’ il problema di come far partire il punteggio.
Per far partire il punteggio occorre avere un punteggio iniziale e per questo esistono diverse scuole di pensiero:
  • utilizzare un punteggio iniziale fisso (si può partire da 1200, 1400 o 1500 per i principianti) che il sistema attribuisce automaticamente alla registrazione; 
  • si gioca una serie di partite senza punteggio in modo che il sistema riesca a determinare dopo questo periodo la migliore stima del punteggio iniziale. Talvolta il sistema accetta anche suggerimenti da parte dell’utente, indicazioni sull’esperienza di gioco in modo tale da trovare gli avversari più appropriati durante il periodo di valutazione; 
  • si gioca con un punteggio provvisorio per 20 partite, dopodiché il punteggio diviene effettivo. In questo caso il punteggio viene calcolato usando una formula differente a seconda che il giocatore sia nella fase provvisoria oppure quella effettiva. Il punteggio iniziale viene scelto dall’utente durante la registrazione.
Un problema derivato è come prendere in considerazione il fatto che un giocatore potrebbe aver smesso di giocare per anni prima di ricominciare nuovamente a giocare. Questo caso molto singolare è di fatto un caso particolare del problema precedente perché in entrambi il punteggio del giocatore è incerto. Per tali motivi alcuni provider una formula diversa e più complicata rispetto a quella di ELO: il sistema Glicko [1].

Un’alternativa al punteggio è il ladder (o scalata). Nessun punteggio infatti ma un posto in classifica (nel ladder appunto). I vincitori salgono in classifica, gli sconfitti non salgono ma ben presto verranno sorpassati dagli altri. L’obiettivo è raggiungere l’apice della classifica (il primo posto) piuttosto che ottenere il punteggio più alto.

I programmi di scacchi più famosi hanno il concetto di livelli: principiante, intermedio e maestro, per fare un esempio classico. Talvolta, soprattutto nei siti più datati, ci si imbatte nelle sale da gioco (room). Raggruppare le partite in room è utile dal punto di vista del provider per distribuire il carico tra più server, così ogni macchina avrà la capacità di servire al più un numero massimo di partite (quelle al massimo consentite dalla room). Allora perché non creare delle room basate sui livelli di gioco? E’ quel che accade in alcuni siti ma probabilmente è meno attraente un sistema basato sui livelli piuttosto che assegnare un punteggio ad ogni giocatore.

Punteggi, ladder e livelli sono solitamente differenti per le diverse categorie di gioco: per corrispondenza, classico, blitz (3-5 minuti), bullet (meno di tre minuti) e le variazioni del gioco hanno infatti il loro proprio sistema di misura della forza di gioco.

Oggi mi sento un po’ distratto ma vorrei comunque giocare una partita, solo per passare il tempo ma se perdessi comprometterei il mio punteggio! Alcuni siti risolvono questo problema dando la possibilità di giocare partite amichevoli (senza alterare il punteggio) così che il giocatore che vuole allenarsi non compromette la sua posizione o il suo punteggio.

Quasi tutti i providers chiedono al giocatore di registrarsi prima di utilizzare il servizio. Questo è del tutto ragionevole se si pensa che almeno il proprio nickname dovrebbe essere visibile all’avversario. Ci si potrebbe però chiedere perché occorre fornire informazioni personali come la e-mail e la nazionalità se l’intenzione è quella di giocare solo una partita (ad esempio solo per provare). Pochi siti web lasciano giocare l’avventore come anonimo: non ci sarà punteggio, nessuna partita sarà registrata, nessuna possibilità di personalizzare, solo gioco! Nel caso l’avventore si riveli soddisfatto del servizio reso potrà sempre registrarsi in un secondo momento.

[1] The Glicko System, Mark E. Glickman, http://math.bu.edu/people/mg/glicko/glicko.doc/glicko.html

venerdì 28 gennaio 2011

Scacchi on-line - Parte 1.5 - Incontri sociali

Di solito chi gioca a scacchi non parla con l’avversario...o non parla affatto, ma on-line è un’altra cosa. Alla gente piace chattare, conoscere qualcosa di più sull’avversario oltre il suo nome e la nazionalità (e opzionalmente il suo avatar). La chat è una caratteristica sempre presente da qualsiasi sito web di gioco on-line. Si possono trovare differenti tipi di chat:
  • durante la partita: si tratta di una chat privata tra i due giocatori;
  • chat pubblica (anche detta generale): ogni utente può inviare un messaggio e di solito ha lo scopo di render nota una sfida;
  • in room (sale da gioco) o room a tema: non hanno niente a che vedere con il gioco degli scacchi, si tratta solo di un luogo per scambiare due parole;
  • tra i membri di un team: un team è un gruppo di giocatori che compete contro altri team;
  • in club: un club è il posto dove si possono incontrare nuovi amici, discutere su argomenti diversi e giocare. Il club può essere fondato da chiunque e il fondatore insieme con i moderatori sono responsabili di tutto ciò che accade nel club.
Le chat sono di solito controllate in modo da filtrare ogni parola ritenuta offensiva. L’abuso della chat è sempre menzionato nel documento “termini e condizioni del servizio” ed ogni abuso viene punito bannando il responsabile. In molti casi la chat è vietata ai minori di 13 anni.

Figura 4 – la chat privata di www.instantchess.com



Figure 5 – La chat private e la chat room di www.chesshere.com


Quasi tutti i siti web permettono ai loro utenti di avere una lista di amici in modo da connettersi ad essi facilmente sia per chattare che per giocare. Quando ci si imbatte in un buon giocatore oppure si scopre che con quella persona è piacevole scambiare due chiacchiere, si tende a tenerlo tra gli amici per trovarlo più facilmente la volta successiva.

Insomma, i siti di gioco on-line sono di fatto una sorta di social network ed in molti casi è possibile trovare connessioni con i social network più popolari come facebook.

venerdì 21 gennaio 2011

Scacchi on-line - Parte 1.4 - Tempo reale o corrispondenza

A cosa si pensa generalmente quando si parla di scacchi? Sicuramente a due persone sedute davanti ad una scacchiera, che pensano la maggior parte del tempo, maneggiando i loro pezzi di tanto in tanto e che pigiano il bottone del loro orologio altrettanto spesso. Ah si, ci sono anche quelli che non fanno altro che muovere i loro pezzi all’impazzata e senza sosta, premendo il pulsante dell’orologio con violenza e pensando solo nel tempo libero. Questi due scenari sono esempi tipici di gioco classico (il secondo si chiama blitz).
Un momento. C’è un altro tipo di modalità di gioco, storicamente anche molto importante. Gli scacchi per corrispondenza. I due giocatori si scambiano le mosse per posta. Non ci sono limiti di tempo (per lo meno non come nella modalità classica, i limiti sono molto più rilassati).
Gli scacchi per corrispondenza sono facilmente implementabili in internet. Ogni mossa viene memorizzata in un database ed al giocatore potrebbe venir notificato via e-mail che l’avversario ha mosso. Questo tipo di gioco viene anche chiamato gioco turn based o postal. Una partita di questo genere deve comunque avere una fine, per questo esistono limiti lunghi per terminare la partita ma anche limiti di tempo per effettuare una singola mossa (si parla di giorni). Inoltre viene previsto anche il caso in cui un utente che sta giocando una partita da giorni abbia la necessità di allontanarsi dal proprio PC per lunghi periodi. Per non far perdere la partita alcuni siti danno la possibilità di andare in vacanza (vacation) per un certo numero di giorni: la partita viene sospesa e tutti sono più contenti. Il tempo della vacanza è però limitato, ovviamente, e durante una partita non si può andare in vacanza più di un certo numero di volte.

L’equivalente del gioco classico è il gioco in tempo reale o live. In questo caso l’orologio ha un ruolo cruciale perché la variabile tempo può condizionare la partita (ed indurre i giocatori a commettere errori, ma questo fa parte della bellezza del gioco). Spesso è possibile scegliere il controllo del tempo con una quantità di tempo in più per mossa piuttosto che l’approccio classico cosiddetto sudden-death (morte improvvisa). Con il primo metodo è possibile vedere due numeri quando si sceglie il controllo di tempo, il primo è il tempo che ha a disposizione il giocatore per terminare la partita mentre il secondo è un bonus in secondi che viene aggiunto al timer ad ogni mossa effettuata. Con il metodo della morte improvvisa, molto semplicemente, quando il tempo scade non c’è più a disposizione nemmeno un secondo per l’ultima mossa.

Ora pensiamo al seguente scenario: un giocatore sta giocando una partita a scacchi live, muove ed il suo orologio si ferma mentre quello del suo avversario riparte (questo avviene automaticamente grazie al programma client – che enorme privazione! Adoravo premere il pulsante dell’orologio.) ma l’avversario non vedrà la mossa istantaneamente perché a causa della lentezza della connessione, l’informazione relativa alla mossa deve essere trasferita al server e poi inoltrata al client dell’avversario. Questo tempo perso viene chiamato lag. L’avversario vedrà l’orologio del primo giocatore andare avanti ancora per il tempo del lag e quando finalmente la mossa verrà ricevuta vedrà l’orologio tornare indietro al valore di tempo reale relativo a quella mossa.


Figura 3 – Esempio di Lag: il client A invia la sua mossa al server il quale la inoltra al client B. Il client B riceve la mossa e comincia a contare il tempo di B (Tb). Quando B muove, invia al server sia la mossa che il tempo speso per la mossa, Tb. A causa del ritardo della connessione di B, il server riceve l’informazione dopo un tempo chiamato LAG. Nel frattempo l’orologio B del client A è andato avanti e quando A riceve la mossa e il tempo dell’avversario, l’orologio B viene aggiornato facendo sembrare che il giocatore B ha guadagnato del tempo, ma non è così.

Conseguenze? Il tempo totale della partita è maggiore di quello concordato all’inizio. Non è un problema grave perché il tempo di lag è un tempo morto per entrambi i giocatori. Noiosa invece è la situazione prossima allo scadere del tempo totale: stai giocando ed è il turno dell’avversario ma il tempo a sua disposizione è una manciata di secondi ormai e stai assaporando la vittoria. Quando il contatore dell’avversario diventa negativo cominci ad esultare e poi...zac! improvvisamente il contatore ritorna a 0.00.03 e un messaggio ci avvisa che la mossa dell’avversario è uno scaccomatto! Ops!
Non è consigliabile giocare partite a punti quando si ha un grande lag e qualche sito per il gioco on-line addirittura non permette di giocare partite blitz nel caso in cui il lag è molto consistente, ed ora abbiamo capito il perché.
Talvolta i giocatori si accorgono che il loro lag si sta incrementando troppo durante una partita e il servizio fornisce loro la possibilità di abortire la partita in corso o di aggiornarla ad un altro giorno. Altri siti web hanno approcci differenti al fenomeno del lag:

  • semplicemente non fanno nulla
  • compensazione del lag: i tempi sono automaticamente compensati con il lag medio misurato. In questo modo l’effetto di un lag eccessivo viene ridotto
  • aborto oppure aggiornamento automatico della partita
  • aborto o aggiornamento non automatico ma i giocatori devono accordarsi
  • adottare politiche in caso di lag.

Le connessioni lente sono affette da interruzioni. Alcuni buoni siti di gioco si accorgono della scarsa connettività dei suoi utenti e quando capita la disconnessione accidentale il gioco viene automaticamente aggiornato oppure all’utente che è rimasto connesso viene notificato di aspettare un po’, dando il tempo necessario all’utente disconnesso di riconnettersi e continuare la partita. Questo approccio potrebbe favorire gli imbrogli e quindi forzare gli erogatori del servizio a fronteggiarli (come? vedi l’articolo sulla sicurezza).

mercoledì 19 gennaio 2011

Scacchi on-line - Parte 1.3 - Supporto della lingua

Per chi conosce l’inglese è possibile giocare contro avversari da ogni parte del mondo perché la maggior parte dei siti di scacchi usano l’inglese come lingua supportata. Controllando con attenzione ho verificato che il supporto della lingua non è una caratteristica della maggioranza dei siti di scacchi. Per supporto della lingua si intende la possibilità che un giocatore italiano, ad esempio, possa entrare nel sito e trovare una interfaccia con contenuti in italiano (bottoni, link, informazioni, avvisi, tutorial e così via). Ovviamente non potranno mai essere supportate tutte le lingue del mondo, ma la possibilità di fornire il servizio nelle lingue più comuni attira molti più giocatori. Ok, si può obiettare che un giocatore di scacchi al giorno d’oggi deve conoscere almeno la lingua inglese e che comunque se vuol giocare in un modo o nell’altro ci riuscirebbe anche in un sito di lingua inglese (il gioco degli scacchi di fatto ha il suo linguaggio proprio) ma perché limitare le persone all’uso del servizio di gioco perché non hanno mai studiato l’inglese visto che ormai ci sono tecnologie che permettono in modo abbastanza semplice il supporto della lingua?


Figura 2 – Il supporto della lingua in www.chessmaniac.com è tutt’altro che perfetto. Parole italiane e inglesi convivono disordinatamente nella home page.

Alcuni siti hanno adottato una interessante quanto limitativa soluzione per permettere a giocatori di diversa nazionalità di chattare tra loro: viene confezionato un insieme di frasi già pronte che l’utente può scegliere nella propria lingua e il destinatario può leggere tradotte nella sua lingua. Indubbiamente è un plus ma che succederebbe se la discussione dovesse essere più complessa?

domenica 16 gennaio 2011

Scacchi on-line - Parte 1.2 - Programmi Client

I siti web che consentono il gioco on-line hanno una interfaccia client. Il programma client è un software che interfaccia il giocatore con il server di gioco. Nel passato il programma client era prevalentemente un software scaricabile dal sito ma questa soluzione non è considerata molto positivamente perché una volta istallato il software in un PC occorre utilizzare sempre quel PC per giocare. Al contrario, se l’interfaccia giocatore-server fosse utilizzabile senza scaricare ed istallare alcun software, il giocatore potrebbe giocare teoricamente da qualsiasi PC o altro dispositivo in grado di connettersi ad internet (il principio del gioca-dove-vuoi-quando-vuoi). Ci sono comunque dei vantaggi ad utilizzare il software scaricable:

· il client ha una grafica migliore con effetti particolari
· una volta istallato non è necessario aspettare di scaricare ulteriormente dati prima di iniziare a giocare.

Questa è la ragione per cui i server di scacchi più popolari sono ancora accessibili tramite software scaricabili. Di solito questi server hanno interfacce standard che permettono a differenti programmi di connettervi (come ad esempio Fritz e WinBoard). Inoltre i client che si scaricano sono molto semplici da usare sui dispositivi mobili perché possono essere customizzati per quella piattaforma, perciò è abbastanza comune avere una piccola applicazione per apparecchi mobili scaricabile gratis anche se l’accesso da PC è permesso attraverso browser.
Al giorno d’oggi i “fat client” possono essere implementati con tecnologie web relativamente recenti (actionscript, java, javascript, Ajax, Silverlight, ...) supportate da qualsiasi browser che in aggiunta a computer e connessioni internet sempre più veloci rendono i software scaricabili sempre meno attraenti. La maggiorparte dei programmi client per gli scacchi che si possono trovare sul web sono scritti in javascript. Gli applet java sono anch’essi utilizzati ma il tempo per caricare il programma è notoriamente più grande. Con le ultime versioni di java (JRE e JDK > 1.6) gli applet sono stati resi più veloci quindi, anche se non sono considerati da molti l’approccio migliore, forse meriterebbero più considerazione ora che in passato. ActionScript è il linguaggio di Adobe Flash ( o Flex): non si tratta di una tecnologia free come il java ma è potente e permette di sfruttare le librerie di Flash per la grafica. Vale la pena ricordare che Apple sta attaccando Adobe al momento perché Flash non ha buone prestazioni sui dispositivi portatili; Microsoft e Google stanno supportando Apple contro Adobe sicché il futuro non sembra così brillante per Flash come in passato, considerando che tecnologie come HTML5 sono dietro l’angolo.

Figura 1www.chesscube.com interfaccia client implementata usando flash.

Ovviamente per giocare usando un client java il PC (o il dispositivo mobile) devono avere Java correttamente istallato ed abilitato nel browser. E’ gratis e probabilmente l’utente se lo ritrova già istallato perché java è utilizzato da molte altre applicazioni. Le stesse considerazioni valgono per actionscript. Occorre avere Flash istallato sul proprio PC. Anche in questo caso è gratis e molti altri siti web usano Flash per altri scopi.

Tipicamente un programma client permette all’utente di prendere un pezzo dalla scacchiera ed eseguire la mossa. La mossa è validata e inviata al server (sperabilmente criptata) il quale la dovrà inviare a sua volta al programma client dell’avversario. I client possono essere “thin” (magri), nel senso che non eseguono alcun controllo di validità ma si limitano a riportare la mossa al server il quale effettuerà i controlli necessari e tiene traccia dello stato della partita, oppure “fat”, in questo caso essi hanno la logica per eseguire tutti i controlli necessari e possono o meno mantenere lo stato della partita. Alcuni client inoltre hanno la responsabilità di mostrare la lista dei giocatori connessi, in altri casi invece questo genere di informazioni è gestito al di fuori del programma client e visualizzato nelle pagine del sito con altre tecnologie.

venerdì 14 gennaio 2011

Scacchi on-line - Parte 1.1 - Concetti

Il gioco degli scacchi appassiona moltissime persone in tutto il mondo ogni giorno. Ricordo che da bambino giocavo a scuola, nei circoli e nei tornei. Il gioco mi richiedeva di tenermi aggiornato sugli eventi e di cercare circoli vicino casa. Quando arrivò internet fu una grande rivoluzione, trovare un avversario divenne improvvisamente più semplice. Sebbene giocare davanti ad una scacchiera vera, con pezzi reali, con l’orologio e contro un avversario umano è un esperienza che non potrà mai essere sostituita dal gioco on-line (l’odore del legno, il rumore dello scambio di pezzi, la pressione sul bottone dell’orologio, per non parlare della bandierina dell’avversario che sembra stia per cadere ma che non cade mai, ...), giocare su internet è facile, veloce e a costo zero (a meno che non si cercano servizi particolari). Questo articolo ha come obiettivo quello di portare il lettore attraverso il mondo degli scacchi on-line. Comincerò ad introdurre quelli che sono i concetti fondamentali e le caratteristiche del generico servizio sulla base di quello che è possibile trovare in internet, gratis o a pagamento, nella prima parte di questa serie, per concludere valutando una serie di siti web nella seconda parte.
Sommario parte 1:
- programmi client
- il supporto della lingua
- tempo reale o corrispondenza
- incontri sociali
- punteggi e livelli
- sfide
- altre possibilità di gioco
- osservare le partite
- archivi di partite e statistiche
- analisi
- personalizzazioni
- sicurezza
- giocare ovunque
- grafica
- popolazione
- altre considerazioni
- giocare gratis

Scacchi on-line - Introduzione

Questa serie di articoli esplora il mondo degli scacchi on-line, i concetti che vi sono dietro e le opzioni che un giocatore può trovare quando decide di imbattersi nel gioco degli scacchi on-line. Conlude la serie un confronto tra le caratteristiche offerte dai siti web più popolari racchiuso in forma tabellare e a disposizione di tutti coloro che volessero scegliere su quale sito giocare a scacch gratis.

Benvenuto!

Salve Mondo!

Questo primo post apre il blog di MindTheCheck a tutte quelle persone che vogliono leggere di scacchi, tecnologia e altro. Quindi, caro lettore, sei il benvenuto nelle prossime discussioni e spero di rivederti presto tra le linee di questo blog.

A presto e ... stai attento allo scacco!