Adding a skill command to the Winboard protocol

Discussions about the WinBoard protocol. Here you can also report bugs and request new features.

Moderators: hgm, Andres Valverde

Adding a skill command to the Winboard protocol

Postby ignacioalex » 23 Oct 2009, 19:37

What do you think about adding a skill command to the Winboard protocol?

A new skill feature could be introduced like:
feature skill=n
where n is the number of skill levels the engine supports (0 meaning it does not support the feature).

The skill level could them be set like:
skill n

The exact meaning of the skill level could be left unspecified, but higher values of n would indicate stronger levels.

Crafty already implements a similar command, with n ranging from 1 to 100.

I think that allowing the strength of play to be adjusted greatly improves the usability of the engine to the end users, since one might not be willing to come back to play against the machine again after being crushed 10 times in a row... :?
Adding this command to the Winboard protocol would encourage engine developers to implement it.
ignacioalex
 
Posts: 22
Joined: 02 Sep 2009, 21:38

Re: Adding a skill command to the Winboard protocol

Postby H.G.Muller » 23 Oct 2009, 20:02

I don't like commands with an undefined meaning. For such commands there is no way to set them globally to an equal value for all engines. If any engine is free to interpret the parameter value in its ow way, it would be more fitting to make it an engine-defined option. That makes it easy to set it separately for each engine. This is already supported in WB protocol. Just let the engine send feature option="skill -spin 50 0 100". Another engine could then set feature option="skill -spin 100 80 120", if it wanted.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Adding a skill command to the Winboard protocol

Postby ignacioalex » 24 Oct 2009, 11:23

H.G.Muller wrote:[...] For such commands there is no way to set them globally to an equal value for all engines. [...]


Why would this be desirable?
The skill command wouldn't be used in computer tournaments, in which case the default behaviour would be that the engines should play at full strength. It would only be useful in configuring games against humans. Of course it would make no sense to compare playing against Crafty's level 50 and Sjeng's level 2, but it would make the user experience a lot more enjoyable when playing against any of them.

H.G.Muller wrote:[...] This is already supported in WB protocol. Just let the engine send feature option="skill -spin 50 0 100". Another engine could then set feature option="skill -spin 100 80 120", if it wanted. [...]


A specialized command would add a standard semantics for configuring playing strength. When configuring new games GUIs could detect the available levels and display a spinner widget for configuring the engine strength.

By the way, it seems that the current Winboard protocol standard does not define an option feature. It might be that either I have overlooked it or I'm missing your point. Could you please point me to a source of more information?
ignacioalex
 
Posts: 22
Joined: 02 Sep 2009, 21:38

Re: Adding a skill command to the Winboard protocol

Postby Teemu Pudas » 24 Oct 2009, 14:24

By the way, it seems that the current Winboard protocol standard does not define an option feature. It might be that either I have overlooked it or I'm missing your point. Could you please point me to a source of more information?


WinBoard/engine-intf.html
Teemu Pudas
 
Posts: 124
Joined: 16 Apr 2007, 14:03

Re: Adding a skill command to the Winboard protocol

Postby H.G.Muller » 24 Oct 2009, 14:56

ignacioalex wrote:A specialized command would add a standard semantics for configuring playing strength. When configuring new games GUIs could detect the available levels and display a spinner widget for configuring the engine strength.

But that is exactly what the option feature I proposed would do: display the spinner widget. Provided you open the Engine-Settings dialog, of course. If it is not meant for tournaments, this is exactly the place where the user would expect to find it.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Adding a skill command to the Winboard protocol

Postby ignacioalex » 24 Oct 2009, 17:43

After checking the reference above I could understand how the option command works. Very cool and will do the job of allowing the GUI to set the engine skill as you said.

Unfortunately I couldn't find it earlier because I was looking at the old protocol specifications here and here.

Can the link you provided be considered the official Winboard protocol specification?

It would be nice to contact the maintainers of the old protocol specification pages to add a pointer to the revised current specification. At a minimum we could update the Wikipedia article about the Chess Engine Communication Protocol.
ignacioalex
 
Posts: 22
Joined: 02 Sep 2009, 21:38

Re: Adding a skill command to the Winboard protocol

Postby H.G.Muller » 24 Oct 2009, 19:18

Oops, I was not aware that I stil had that on my website. :(

I have updated it now, and will ask Tim to do the same.

[edit] I see the Wikipaedia links to these two documents, so when we update, that will be OK too.
Strange remark in the Wikipaedia article, btw, that we "borrowed" setting hash table size and nr of cores from UCI. Like anyone would need UCI to realize it is "convenient" to have commands for setting paramaters that engines universally need... One could as well say that UCI borrowed from WinBoard protocol the convenient idea of telling the engine the moves that the user does. :D
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Adding a skill command to the Winboard protocol

Postby Teemu Pudas » 24 Oct 2009, 23:04

H.G.Muller wrote:[edit]Strange remark in the Wikipaedia article, btw, that we "borrowed" setting hash table size and nr of cores from UCI.

Not anymore. :)
Teemu Pudas
 
Posts: 124
Joined: 16 Apr 2007, 14:03

Re: Adding a skill command to the Winboard protocol

Postby ignacioalex » 25 Oct 2009, 11:19

Tim has removed his page with the old Winboard protocol specification. Do you think we could edit the Wikipedia article to point to the link posted by Teemu and quote it as the current official Chess Engine Communication Protocol specification?

Now we have two pages on the web which are up to date. I would suggest keeping only one, as keeping it in two separate locations would be a recipe for forgetting to update one of them when the protocol is updated again.
ignacioalex
 
Posts: 22
Joined: 02 Sep 2009, 21:38

Re: Adding a skill command to the Winboard protocol

Postby H.G.Muller » 25 Oct 2009, 12:23

The natural place to link to would be on the the GNU XBoard website. But that does not run this protocol specs as a web page yet. I will ask Arun to update the website by adding this page. An alternative would be to ink to the version here at WB forum. WB forum will be our official distribution site for the WInBoar binary package ayway, as GNU does not allow them on their website. (Because timeseal and timestamp are not open source, and their policy forbids advertizing "non-free software". They do not even allow links to it, or to a page that contains a link to it.)
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Adding a skill command to the Winboard protocol

Postby what_no2000 » 03 Nov 2009, 18:12

ignacioalex wrote:Crafty already implements a similar command, with n ranging from 1 to 100.

I think that allowing the strength of play to be adjusted greatly improves the usability of the engine to the end users, since one might not be willing to come back to play against the machine again after being crushed 10 times in a row... :?


(Re)adding Crafty (or another engine with a simular skill command) in the WinBoard package would be very nice.
what_no2000
 
Posts: 5
Joined: 03 Nov 2009, 10:03

Re: Adding a skill command to the Winboard protocol

Postby Don Cross » 09 Dec 2009, 16:07

ignacioalex wrote:Tim has removed his page with the old Winboard protocol specification. Do you think we could edit the Wikipedia article to point to the link posted by Teemu and quote it as the current official Chess Engine Communication Protocol specification?
...


I have edited the Wikipedia articles to point to the current protocol specification (my user name there is CosineKitty). Both links are present, but I listed one of them as a "mirror" so that it is clear that both links contain the same information.

http://en.wikipedia.org/wiki/Chess_Engi ... n_Protocol
http://en.wikipedia.org/wiki/XBoard

If you see anything in those articles that needs fixing, anyone can edit Wikipedia. Or if you feel shy, post here and I will take a look :) .

- Don
Author of Chenard - http://cosinekitty.com/chenard
User avatar
Don Cross
 
Posts: 29
Joined: 13 Nov 2008, 04:13
Location: Florida, USA


Return to WinBoard development and bugfixing

Who is online

Users browsing this forum: No registered users and 4 guests