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).

Nessun commento:

Posta un commento