In a recent posting I used the phrase "client side time". Someone has asked me what I meant. As well as answering him, I am posting my answer here, for three reasons: (1) to inform those who do not know, (2) to invite correction from those who know better than me, (3) as a gentle nag to any Go server programmers who be read this.

"Client side time" means that the clients, rather than the server, measure the time used by the players. This means that only the time which the player has available for thinking is counted against him. So the way a good chess server works is:
  The server sends my opponent's move to my client.
  My client starts my clock and displays my opponent's move.
  I think, my clock ticks.
  I input my move to my client, my clock stops ticking.
  My client sends my move to the server.

This differs from the way Go servers work (or at least, all Go servers that I know about). With Go servers, time for both players is measured by the server. This has the disadvantage that communication time is counted against the player, increasing both the time used (which does not matter much) and its variance from random netlag (which matters a lot).

Providers of Go servers claim that it would be pointless to try to implement client-side time, as players would be able to cheat by hacking their clients and fiddling with the clock. I don't doubt that they would try to cheat, indeed I know that they would; but providers of chess servers have been able to prevent cheating. As I understand it, their clients perform CRC checks on themselves to ensure that they have not been hacked, and the packets they send are CRC-checked by the server to ensure that the packets have not been hacked.

Nick
--
Nick Wedd    n...@maproom.co.uk
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to