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.

3 commenti:

  1. Buon articolo , pero' un po' oscuro per me che non ci capisco nulla di tecnologia , cos'è un client fat , un actionscript , flex , tutti termini arabi per me.... :-) , forse un linguaggio meno tecnico alla portata di tutti sarebbe accettato meglio.
    Alex

    RispondiElimina
  2. Grazie del suggerimento, in realtà i concetti di fat e thin sono alla fine dell'articolo mentre per le tecnologie web hai ragione non ho speso molte parole, ma del resto non basterebbe un blog per parlarne. Lascio al lettore la possibilità di approfondire se vuole, comunque per questo post mi sembrava doveroso far sapere almeno qual'è il nome della tecnologia che si usa nei siti di scacchi.

    RispondiElimina
  3. Usare terminologia meno tecnica aiuta la comprensione dei meno esperti....

    RispondiElimina