Marek Soszynski wrote:It would be convenient for me if all my engines were of the same protocol. My engines tend to be drawn from the strongest engines. Nevertheless, I sometimes wish to experiment with other engines. All of the strongest engines are UCI, but a few of the weaker ones that I may try are not.
I don't think anyone would argue that it wouldn't be easier if there was just the single protocol, but that's not the world we live in.
Although I can run non-UCI engines like Crafty on my GUIs (Aquarium, Scid...) they require "special measures" and don't quite run like the UCI ones, don't quite display like the UCI ones, and don't implement everything the UCI ones tend to do.
Now, if you read some of the posts here, that is the fault of the adaptor, the GUI, or even of me!
No. It's because they're a different protocol.
It really isn't.
There is no reason a GUI could not present a UCI and a CECP engine to the user in the same way. Both protocols are equally functional and offer a similar range of features (CECP has facilities for chess variants, sends more "meta-data" to the engine and allows engines to resign or offer draw, but I think that's the extend of the difference).
Really, all the difference it
should make is whether you tick a box that says "UCI" or "CECP" - assuming that the GUI is unable to do some sort of auto-detection, which would make even that unneeded (but still desirable because the user should be able to override it if the GUI gets it wrong somehow, or one mode or the other works better).
If it's less transparent than that, then yes, that
is the fault of the GUI - which is not necessarily something that is easy to fix.
The heat and interest shown in this thread is because supporters of non-UCI protocols are anxious to defend their corner. They can do so without calling me misguided, thank you very much.
Funny. The only protocol-bashing I see here is of CECP, and it's entirely gratuitous.
In my very opening post I gave the justification as to why Crafty isn't UCI. (I hope I was fair to its author.)
I don't know that I'd say it was
the reason, I'll leave that for Bob to comment on if he wants, but I would think a more obvious reason is that Crafty
pre-dates UCI.
Nevertheless, from my point of view and for my purposes, I wanted the GUI to have more control over the engine.
I still don't understand this point. You can treat a CECP engine exactly the same through the CECP protocol as you treat a UCI engine: it has exactly the same control. You can give the engine
more control if you like (resign, draw offer, don't assume it doesn't have an own book) but you don't have to.
What I didn't expect was to be told, in effect, that it doesn't matter what protocol an engine is because users should attempt to engineer their own solutions anyway,
No one told you that. What you were told is that the perceived difference you claim (control) has nothing or very little to do with the protocols - the protocol shouldn't matter.
Now, you have an issue with the way your GUI of choice (which one, by the way?) works with CECP engines. That's unfortunate, but perhaps it's something that can be solved reasonably well with some effort. Changing Crafty to UCI is a
lot of effort, and is not guaranteed to solve the problem you have (which is still no more concrete to me than "it's not UCI").
So if you want to be constructive about it, perhaps you could mention the GUI you're using and what it is exactly that is not working in the way you think it should. It's impossible to improve software without that kind of detailed feedback.