Hello H.G.Muller : upgrading the protocol

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
Matthias Gemuh
Posts: 3245
Joined: Thu Mar 09, 2006 9:10 am

Re: Hello H.G.Muller : upgrading the protocol

Post by Matthias Gemuh »

bob wrote:
Matthias Gemuh wrote:BTW, ChessGUI must ignore all this draw stuff if the opponent is an UCI engine. WB engines should note that.

Matthias.
Not sure what you mean? You can't offer a draw to a UCI engine???

UCI engines cannot offer nor can they be offered a draw :D .

So GUI must ignore all draw offers if opponent is UCI, or at least pretend that UCI opponent rejected the offers.

Matthias.
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Hello H.G.Muller : upgrading the protocol

Post by bob »

F. Bluemers wrote:
bob wrote:
Matthias Gemuh wrote:BTW, ChessGUI must ignore all this draw stuff if the opponent is an UCI engine. WB engines should note that.

Matthias.
Not sure what you mean? You can't offer a draw to a UCI engine???
and it won't offer a draw either .
There's another great reason for not trying to support UCI. Leave out critical components of real chess rules...
henkf

Re: Hello H.G.Muller : upgrading the protocol

Post by henkf »


My point in the previous discussion was that I can not tell whether I am playing another engine in a local match, or playing on ICS.
I think winboard sends the host command when playing on a chess server. And if I remember correctly it sends "-" as host when playing locally.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Hello H.G.Muller : upgrading the protocol

Post by bob »

henkf wrote:

My point in the previous discussion was that I can not tell whether I am playing another engine in a local match, or playing on ICS.
I think winboard sends the host command when playing on a chess server. And if I remember correctly it sends "-" as host when playing locally.
Never seen a "host" command, and I don't handle such and crafty would complain...
User avatar
hgm
Posts: 27812
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Hello H.G.Muller : upgrading the protocol

Post by hgm »

bob wrote: My point in the previous discussion was that I can not tell whether I am playing another engine in a local match, or playing on ICS. And we at least need consistent behavior for both cases.
The current protocol provides this: you don't need to know if you are running in ICS or local mode. In all cases you have to do exactly the same to claim "after-the-move draws": send offer draw, and send your move, and then send the 1/2-1/2. This sequence works in all modes on all versions of xboard.

The current protocol specs cleary point out the problem for the new benefit of new engine authors, bot in th description of the offer draw and the RESULT command.
henkf

Re: Hello H.G.Muller : upgrading the protocol

Post by henkf »

bob wrote:
henkf wrote:

My point in the previous discussion was that I can not tell whether I am playing another engine in a local match, or playing on ICS.
I think winboard sends the host command when playing on a chess server. And if I remember correctly it sends "-" as host when playing locally.
Never seen a "host" command, and I don't handle such and crafty would complain...
You are quite correct, it is the "ics" command, i just called the argument to this command "host" in my program. But my point was that you could know if playing on server or locally.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Hello H.G.Muller : upgrading the protocol

Post by bob »

henkf wrote:
bob wrote:
henkf wrote:

My point in the previous discussion was that I can not tell whether I am playing another engine in a local match, or playing on ICS.
I think winboard sends the host command when playing on a chess server. And if I remember correctly it sends "-" as host when playing locally.
Never seen a "host" command, and I don't handle such and crafty would complain...
You are quite correct, it is the "ics" command, i just called the argument to this command "host" in my program. But my point was that you could know if playing on server or locally.
I am not seeing any "ics" command either. It is not in the winboard protocol specification I have.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Hello H.G.Muller : upgrading the protocol

Post by bob »

hgm wrote:
bob wrote: My point in the previous discussion was that I can not tell whether I am playing another engine in a local match, or playing on ICS. And we at least need consistent behavior for both cases.
The current protocol provides this: you don't need to know if you are running in ICS or local mode. In all cases you have to do exactly the same to claim "after-the-move draws": send offer draw, and send your move, and then send the 1/2-1/2. This sequence works in all modes on all versions of xboard.

The current protocol specs cleary point out the problem for the new benefit of new engine authors, bot in th description of the offer draw and the RESULT command.
Correct, but notice we are _not_ talking about winboard at the moment. This is another interface that uses the winboard protocol and missed this important nuance of offering/claiming a draw before making the move. If someone does this just like xboard currently does, all is well. Otherwise there are issues and a race condition that is ugly.
henkf

Re: Hello H.G.Muller : upgrading the protocol

Post by henkf »

bob wrote:
henkf wrote:
bob wrote:
henkf wrote:

My point in the previous discussion was that I can not tell whether I am playing another engine in a local match, or playing on ICS.
I think winboard sends the host command when playing on a chess server. And if I remember correctly it sends "-" as host when playing locally.
Never seen a "host" command, and I don't handle such and crafty would complain...
You are quite correct, it is the "ics" command, i just called the argument to this command "host" in my program. But my point was that you could know if playing on server or locally.
I am not seeing any "ics" command either. It is not in the winboard protocol specification I have.
you really force me to go all the way don't you?

from http://www.tim-mann.org/xboard/engine-intf.html

ics HOSTNAME
If HOSTNAME is "-", the engine is playing against a local opponent; otherwise, the engine is playing on an Internet Chess Server (ICS) with the given hostname. This command is new in protocol version 2 and is not sent unless the engine has enabled it with the "feature" command. Example: "ics freechess.org"
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Hello H.G.Muller : upgrading the protocol

Post by bob »

henkf wrote:
bob wrote:
henkf wrote:
bob wrote:
henkf wrote:

My point in the previous discussion was that I can not tell whether I am playing another engine in a local match, or playing on ICS.
I think winboard sends the host command when playing on a chess server. And if I remember correctly it sends "-" as host when playing locally.
Never seen a "host" command, and I don't handle such and crafty would complain...
You are quite correct, it is the "ics" command, i just called the argument to this command "host" in my program. But my point was that you could know if playing on server or locally.
I am not seeing any "ics" command either. It is not in the winboard protocol specification I have.
you really force me to go all the way don't you?

from http://www.tim-mann.org/xboard/engine-intf.html

ics HOSTNAME
If HOSTNAME is "-", the engine is playing against a local opponent; otherwise, the engine is playing on an Internet Chess Server (ICS) with the given hostname. This command is new in protocol version 2 and is not sent unless the engine has enabled it with the "feature" command. Example: "ics freechess.org"
I have about a million log files from playing on ICC and I have _never_ seen that command sent to crafty. I just did a grep for "ics" in the log files and it is not present in a single one. Which simply means xboard is not sending it to crafty..

That's all I have said. I just looked and one has to enable that feature to get it which is probably why I don't see it. But it is a moot point in my opinion. The point is that a protocol is a _standard_ that you follow all the time. Not one that you modify for playing online or when playing locally, or anything else. I really don't care how I (Crafty) am playing. I accept the same commands whether playing online or not, although some commands will not normally be sent (rating, name, etc). But I make no distinction, and don't want to make a distinction. That only makes for more code and more bugs.