Crafty UCI version

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

Moderator: Ras

User avatar
Marek Soszynski
Posts: 587
Joined: Wed May 10, 2006 7:28 pm
Location: Birmingham, England

Crafty UCI version

Post by Marek Soszynski »

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.
Marek Soszynski
User avatar
hgm
Posts: 28468
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Crafty UCI version

Post by hgm »

Perhaps Bob should explicitly forbid making UCI versions in the license agreement, to prevent such abuse. :wink:
User avatar
Matthias Gemuh
Posts: 3245
Joined: Thu Mar 09, 2006 9:10 am

Re: Crafty UCI version

Post by Matthias Gemuh »

One version of the clone "Patriot" was Crafty with UCI protocol-
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de
Frank Quisinsky
Posts: 7284
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: Crafty UCI version

Post by Frank Quisinsky »

Hi Matthias,

in the second / latest Version of Patriot are parts of Crafty if I understand the programmer of Wildcat and an other programmer at this time. The 2.0 Version are never realeased after I hear that and the contact to the programmer ended directly.

Often I am thinking (in the time the first IPPs are available) ... the programmer of Patriot have a bit to do with Ipp code because all the same mistakes in UCI protocol Patriot have (first version) IPP engines have too.

But can be random ...

Furthermore, Kaissa (main engine of the Patriot programmer) is an own program (not a clone, again same for the first Patriot version). The programmer of Patriot are talented but possible that he try bigger jumpings in ELO for the second version and so he made mistakes.

Allways the same ...
The question here must be (have the same opinion as the programmer of Critter) ... different parts of chess programming must not be again and again invented. But after all I understand Vladimir used main parts from Crafty and that can't be right.

Best
Frank
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Crafty UCI version

Post by Evert »

Marek Soszynski wrote:I was just wondering...

Could someone out there fork Crafty and produce a UCI version?
Yes, I'm sure someone could do that quite easily.

The question is: what's the point?
I realise Crafty's author, Bob Hyatt, doesn't like UCI as it cedes too much control to the GUI.
I don't really understand that. Both UCI and CECP allow a chess engine to communicate with a GUI. They both allow sending game history, different time controls, configurable engine options. What "control" does a GUI using the UCI protocol take away that CECP does not?
Opening book and to a lesser extend end-game tablebase play-out are the only examples I can think of where the protocols more or less make different default assumptions (UCI: the GUI handles it, CECP: the engine handles it) but under UCI you can always let an engine use its own book and under CECP you can always force an opening line. GUI adjudication of end-games is a GUI option, not a protocol feature.

So again, what's the point?

If this is about "the strongest engines are UCI, therefore using UCI makes an engine stronger than using CECP" (if it isn't about that, my apologies, but I've actually seen people make that exact claim in the past), I did an experiment a little while back. I wanted to debunk an assumption that exists in some quarters that to make a chess variant engine (in this case, Makruk) you could take a random strong engine (the usual request is Stockfish), hack the move tables, "fix" the piece values, and end up with something strong that could play said variant.

So I did that exact experiment using Senpai rather than Stockfish. One draw-back: it's UCI, which is pretty useless for playing chess variants. No problem, it took me perhaps an hour or two (I don't remember exactly, I think I was doing house-keeping at the same time) to convert Senpai from UCI to CECP. As a sanity check, I tested both versions against eachother. The result? Exactly 0 Elo difference between them. UCI or CECP makes no difference, as would be expected.

By the way, converting Senpai to play Makruk was a lot harder, but still mostly easy due to the way Senpai is written. I missed something though because it occasionally makes an illegal move. Leaving that aside, it still plays crap, as expected.
Very well then, let someone else do it while keeping to all the legal proprieties including publishing the changed code, etc.
Crafty isn't "free" software. I don't think you're allowed to distribute modified versions...
User avatar
Marek Soszynski
Posts: 587
Joined: Wed May 10, 2006 7:28 pm
Location: Birmingham, England

Re: Crafty UCI version

Post by Marek Soszynski »

Evert wrote:
Marek Soszynski wrote:I was just wondering...

Could someone out there fork Crafty and produce a UCI version?
Yes, I'm sure someone could do that quite easily.

The question is: what's the point? [...]
Evert wrote:
Marek Soszynski wrote:I realise Crafty's author, Bob Hyatt, doesn't like UCI as it cedes too much control to the GUI.
I don't really understand that. [...]
Bob can speak for, and defend, himself.

Evert wrote:If this is about "the strongest engines are UCI, therefore using UCI makes an engine stronger than using CECP" (if it isn't about that, my apologies, [...]
Apologies accepted. Quite simply, it is easier to set up and change the parameters of a UCI engine within a typical GUI; moreover, the typical GUI will display all the main settable parameters.
Evert wrote:
Marek Soszynski wrote:Very well then, let someone else do it while keeping to all the legal proprieties including publishing the changed code, etc.
Crafty isn't "free" software. I don't think you're allowed to distribute modified versions...
Then it won't be possible to keep to all the legal proprieties, will it?
Marek Soszynski
Roger Brown
Posts: 782
Joined: Wed Mar 08, 2006 9:22 pm

Re: Crafty UCI version

Post by Roger Brown »

Marek Soszynski wrote:
Could someone out there fork Crafty and produce a UCI version?
Marek Soszynski wrote: Apologies accepted. Quite simply, it is easier to set up and change the parameters of a UCI engine within a typical GUI; moreover, the typical GUI will display all the main settable parameters.
Hello Marek,

Given your stated purpose, perhaps it might be easier to use wb2uci than to hack the engine?

Later.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Crafty UCI version

Post by Evert »

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.
Apologies accepted. Quite simply, it is easier to set up and change the parameters of a UCI engine within a typical GUI; moreover, the typical GUI will display all the main settable parameters.
Huh?
CECP engines expose options in much the same way as UCI engines do, so I still don't get it.
Perhaps Crafty doesn't expose options to the GUI (the antique version I have here doesn't seem to), then that is a different issue (specifically one that converting it to UCI will not solve). Perhaps Bob would welcome patches for that?

Then it won't be possible to keep to all the legal proprieties, will it?
You can make a derivative of Crafty for your own personal use. There may be cases where Bob is ok with someone distributing the modified version, but the licence doesn't automatically allow it.
User avatar
Marek Soszynski
Posts: 587
Joined: Wed May 10, 2006 7:28 pm
Location: Birmingham, England

Re: Crafty UCI version

Post by Marek Soszynski »

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.
I didn't and don't have a question for him.

A UCI version of Crafty would be convenient for me as all my other engines are UCI and all the strongest engines are. Got it? GUIs generally handle UCI engines more ably and easily than other engines from the perspective of this user. That's just how it is.

Of course, if Crafty isn't legally forkable, then here endeth the matter.
Marek Soszynski
User avatar
mhull
Posts: 13447
Joined: Wed Mar 08, 2006 9:02 pm
Location: Dallas, Texas
Full name: Matthew Hull

Re: Crafty UCI version

Post by mhull »

Evert wrote:
Marek Soszynski wrote:I realise Crafty's author, Bob Hyatt, doesn't like UCI as it cedes too much control to the GUI.
I don't really understand that. ... Opening book and to a lesser extend end-game tablebase play-out are the only examples I can think of where the protocols more or less make different default assumptions (UCI: the GUI handles it, CECP: the engine handles it) but under UCI you can always let an engine use its own book and under CECP you can always force an opening line. GUI adjudication of end-games is a GUI option, not a protocol feature.

So again, what's the point?
UCI means that not-the-chess-engine can end-up playing part of the game (openings and endings). This is a wrong design. It's like having your friend play the opening moves and/or the endgames for you in any given match while you only play the middlegame. This is manifestly and fundamentally wrong-headed -- even perverse.
Matthew Hull