Crafty UCI version

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Crafty UCI version

Post by bob »

syzygy wrote:
bob wrote:
Werewolf wrote:
Marek Soszynski wrote:I was just wondering...

Could someone out there fork Crafty and produce a UCI version?

I realise Crafty's author, Bob Hyatt, doesn't like UCI as it cedes too much control to the GUI.

Very well then, let someone else do it while keeping to all the legal proprieties including publishing the changed code, etc.
I think this is a great idea and it's such a shame some people have landed on your thread just to bash your idea.
UCI has huge GUI advantages and to get Crafty into this format would be brilliant.
Can you specify these "huge GUI advantages"?
I'll try to help the TS.

There are two points.

The first point is that if Crafty supported UCI, that would make it slightly easier to use Crafty with GUIs that only support UCI. There are always other ways to make it work, but they are slightly more cumbersome.

The second point is that if Crafty supported UCI options (or xboard/winboard options, for that matter), that would also make it easier for many people to configure Crafty. (Apparently Crafty relies on configuration files whereas more recent versions of the xboard/winboard protocol offer a "standard" way of configuration through the GUI.)

These points are really two separate points, even if they might be one and the same point in the view of the TS. But they are not unreasonable points and they do not mean that either protocol is superior to the other or anything like that.
There is no longer (version 25.0) much to configure in terms of the usual suspects. You can still alter piece values, but those are optimized already. I am finishing up the autotune code to optimize SMP parameters automatically.

I think it is easier for someone to get an xboard protocol program up and running, it doesn't have all the twists and quirks of UCI. Crafty works just fine as a console application, and works the same way under xboard. A UCI program is not exactly convenient to use as a standalone application because of the protocol. I like simple, and I also like what already works. If the world wants to go UCI that's fine by me. Personally I still also use C rather than C++, it works well too.
syzygy
Posts: 5943
Joined: Tue Feb 28, 2012 11:56 pm

Re: Crafty UCI version

Post by syzygy »

bob wrote:I think it is easier for someone to get an xboard protocol program up and running, it doesn't have all the twists and quirks of UCI. Crafty works just fine as a console application, and works the same way under xboard.
Sure, but most people happen to use a GUI that uses the UCI protocol.
A UCI program is not exactly convenient to use as a standalone application because of the protocol. I like simple, and I also like what already works. If the world wants to go UCI that's fine by me. Personally I still also use C rather than C++, it works well too.
The xboard and UCI protocols do not exclude each other. The engine only needs to switch to UCI upon receiving the string "uci".

Adding the xboard protocol to a UCI engine might be tricky, but adding UCI to an xboard engine should be pretty straightforward. Of course nobody can force you to do it, and nobody can force you to give permission to anybody else to do it.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Crafty UCI version

Post by Evert »

syzygy wrote:
Evert wrote:
Marek Soszynski wrote: Bob can speak for, and defend, himself.
Yes, and if you ask a question on a general forum, anyone can answer. If you wanted an answer specifically from Bob Hyatt, you should have contacted him directly.
In this case you were sort of asking Marek why Bob is of the view that UCI takes too much control. It makes sense for Marek to leave that question to Bob instead of trying to answer it himself. (And I think Bob has answered it many times already on this forum.)
Ah, I guess it could be interpreted that way. What I was responding to specifically was "doesn't like UCI as it cedes too much control to the GUI" for which the wording suggests that it's meant to be an objective statement (or at least not the opinion of Bob or the OP). I maintain that this isn't an objective truth.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Crafty UCI version

Post by Evert »

bob wrote: There is no longer (version 25.0) much to configure in terms of the usual suspects. You can still alter piece values, but those are optimized already. I am finishing up the autotune code to optimize SMP parameters automatically.
Does Crafty implement the "cores" and "memory" commands? Other options people might look for are whether tablebases are enabled or not, or the location of the opening book.
User avatar
hgm
Posts: 28475
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Crafty UCI version

Post by hgm »

syzygy wrote:Sure, but most people happen to use a GUI that uses the UCI protocol.
So they r eally should pester the GUI developer to implement WB protocol, (or use another GUI that already does), rather than the engine programmers!
jdart
Posts: 4428
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Crafty UCI version

Post by jdart »

I support both, but adding UCI was not exactly trivial, and there were quite a few bugs I fixed.

--Jon
mvk
Posts: 589
Joined: Tue Jun 04, 2013 10:15 pm

Re: Crafty UCI version

Post by mvk »

jdart wrote:I support both, but adding UCI was not exactly trivial, and there were quite a few bugs I fixed.
What kind of bugs can I expect? I'm planning to stop maintaining my xboard protocol mode and switch over to UCI, because with the first, there is always seems to be something that is not working right from the user point of view unless you implement it in the engine as well. (And secondly, because the GUIs I want to use don't understand xboard protocol). I don't see technical issues (yet), such as keep using my own book, or pondering on the moves I decide. That all seems possible.
[Account deleted]
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Crafty UCI version

Post by bob »

Evert wrote:
bob wrote: There is no longer (version 25.0) much to configure in terms of the usual suspects. You can still alter piece values, but those are optimized already. I am finishing up the autotune code to optimize SMP parameters automatically.
Does Crafty implement the "cores" and "memory" commands? Other options people might look for are whether tablebases are enabled or not, or the location of the opening book.
Since they were first added, yes.
syzygy
Posts: 5943
Joined: Tue Feb 28, 2012 11:56 pm

Re: Crafty UCI version

Post by syzygy »

hgm wrote:
syzygy wrote:Sure, but most people happen to use a GUI that uses the UCI protocol.
So they r eally should pester the GUI developer to implement WB protocol, (or use another GUI that already does), rather than the engine programmers!
I think there are a LOT fewer engines of interest that do not support UCI than there are GUIs that support only UCI.

(Are there any GUIs supporting winboard/xboard other than winboard/xboard and that are in somewhat active use?)
jdart
Posts: 4428
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Crafty UCI version

Post by jdart »

Some of the bugs (only the more interesting ones):

When in UCI analysis mode, output a move even in legal draw situations

F ix some bugs involving hash size settings for UCI.

Bug fix: declare on startup for UCI that the tablebase type is "TableBase type," not "TablebaseType".

Fix UCI protocol bug that could cause engine to hang in cases where ponder is on and the game is terminating due to draw by repetition or rule

Fix problem in UCI multi-PV analysis mode.

Fix UCI protocol bugs leading to occasional loss on time with ponder on.

Fix bug setting hash sizes > 2GB through Winboard/UCI.

Fix UCI multipv output when there are fewer legal moves than the specified multpv count

Fix UCI and console score output so upperbound & lowerbound status displayed when appropriate

Fix for UCI promotion move formatting bug.

Fix bug involving mate scores in UCI analysis mode.

Fixes to UCI analysis mode.

Fix handling of UCI Threads option.

Fix bug where UCI PV output was omitted in case search terminated very rapidly

Fix crash bug in UCI mode on Vista, Windows 7

Fix for PV display under Arena with UCI: use O-O, O-O-O for castling.

Fix illegal move after promotion under UCI.