Perhaps it could be usable, if someone can write a specification designed for a chess program author's point of view, and not for a human chess player. Reading lots of ICC help files with the goal of finding out just what you have to do to enable your program to play automatically is neither easy nor fun. I've tried.hgm wrote:Designing a new protocol sounds like a really bad idea.
The existing ICS protocol is actually very suitable; The handling of it only gets very complicated if you want to use all the features meant for human interaction. There is no reason for an engine to do that, if the only purpose is to play an automated game, it can pretty much ignore anything it receives.
Unless we can get either a better description of how to interface to the ICC or some sort of simple server designed especially for automated computer tournaments, I almost certainly wouldn't bother to join such a tournament.
No, that's not the same thing. I wouldn't mind linking to and calling a few library functions for communicating with a chess server, but XBoard does far too much: It replaces half of my chess program (the entire GUI). I can't participate in an official tournament and rip out half of my program and replace it with something I didn't write.Your position on the Glaurung / XBoard hybrid does seem a bit extreme, though, and pretty much precludes any form of internet play. I am all for outlawing use of code from others that affects move decisions (such as EGTB or book code). But if software written by others is not allowed to relay your moves, you will of course also have to write your own TCP/IP stack, (preferably using an alternative protocol, of course), your own network-card driver, re-program your modem, etc.
Of course, informal, fun tournaments are another matter. I hope to be able to participate in the next tournament on your server. Will there be one next weekend?
Tord