Universal Chess Interface deficiencies/wish list

Programming Topics (Computer Chess) and technical aspects as test techniques, book building, program tuning etc

Moderator: Andres Valverde

Universal Chess Interface deficiencies/wish list

Postby Jaap Weidemann » 22 Sep 2007, 05:17

First of all let me just clarify that this post is not intended as an attack on the UCI, but rather to ascertain what other authors (that use the UCI) finds absent.

The only thing on my wish list is the ability to send messages/commands directly from the engine to an Internet Chess Server when connected (similar to the XBoard protocol commands “tellics” and tellicsnoalias”).

Jaap
Last edited by Jaap Weidemann on 22 Sep 2007, 17:29, edited 1 time in total.
Jaap Weidemann
 
Posts: 18
Joined: 11 Aug 2006, 21:34
Location: Stellenbosch, South Africa

Re: Universal Chess Interface deficiencies/wish list

Postby Onno Garms » 22 Sep 2007, 07:11

Hello,

first of all let me say that I don't think it's a good idea to multipost to Talkchess and this forum. This splits the discussion into two branches and for people who are not interested in the topic costs some extra time to see the topic.

About UCI, why should it be able to talk to the internet? At first glance it seems that it should be transparent for the engine if the GUI is connected to the internet or not.

What I am missing is:
- complete information about time control. UCI is blind for what happens after movestogo are played. Try a game with 1 hour for 20 moves and 1 second for the rest of the game ;-)
- command to set average time per move. Even the shredder GUI has a feature to set this (set time per move and do not set "exact time"), but it cannot be passed to UCI directly. "exact time" is passed as movetime, but without exact time, the Shredder GUI multiplies the time by 60 and sends 60 movestogo. The latter is a dirty workaround and does not work for all engines.

Onno
User avatar
Onno Garms
 
Posts: 128
Joined: 17 Feb 2007, 11:17
Location: Bonn, Germany

Re: Universal Chess Interface deficiencies/wish list

Postby Volker Pittlik » 22 Sep 2007, 11:38

Onno Garms wrote:Hello,

first of all let me say that I don't think it's a good idea to multipost to Talkchess and this forum. ...


In priciple I agree here but unfortunately we have to notice that usenet netiquette is almost unknown meanwhile. It has been ignored in the old days of r.g.c.c. and is ignored by many regular posters.

About cross- and multiposting: look in the tournament forums to find dozens of examples for it.

Most important: please let the moderator do the moderation. It is also possible to create a two hundred replies monster thread which leads to nowhere without violating the netiquette.

I think this is an important topic so why not doscuss it in two places.

Volker
User avatar
Volker Pittlik
 
Posts: 1031
Joined: 24 Sep 2004, 10:14
Location: Murten / Morat, Switzerland

Re: Universal Chess Interface deficiencies/wish list

Postby Jaap Weidemann » 22 Sep 2007, 13:21

Onno Garms wrote:first of all let me say that I don't think it's a good idea to multipost to Talkchess and this forum. This splits the discussion into two branches and for people who are not interested in the topic costs some extra time to see the topic.


Hi Onno,

Fair enough, CCC post removed.

Onno Garms wrote:About UCI, why should it be able to talk to the internet? At first glance it seems that it should be transparent for the engine if the GUI is connected to the internet or not.


The engine need not be aware that the GUI is connected to an ICS. The GUI just have to relay messages to the ICS when connected. This would enable the engine to send additional information either to the opponent or spectators. This is particularly useful in tournament conditions.

Jaap
Jaap Weidemann
 
Posts: 18
Joined: 11 Aug 2006, 21:34
Location: Stellenbosch, South Africa

Re: Universal Chess Interface deficiencies/wish list

Postby Dann Corbit » 24 Sep 2007, 20:11

I think it would be a good idea to simply combine both Winboard and UCI grammar.

Then (for instance) a UCI engine could be fed the next move instead of an entire movelist and the engine could have better understanding of its current state and be able to learn better. On the other hand, the Winboard protocol has almost nothing for engine setup, and so authors just wing it and invent their own command line stuff or read ini files. So the best solution (I think) is a combination of both protocols into 1 protocol.

I would call it Unified Chess Character Interface (UCCI).
Dann Corbit
 

Re: Universal Chess Interface deficiencies/wish list

Postby Fritz Grau » 26 Sep 2007, 16:24

Onno Garms wrote:What I am missing is:
- complete information about time control. UCI is blind for what happens after movestogo are played. Try a game with 1 hour for 20 moves and 1 second for the rest of the game ;-)

That sounds good to me (although for most usual time controls the current information seems sufficient for reasonable time management).
Onno Garms wrote:- command to set average time per move. Even the shredder GUI has a feature to set this (set time per move and do not set "exact time"), but it cannot be passed to UCI directly. "exact time" is passed as movetime, but without exact time, the Shredder GUI multiplies the time by 60 and sends 60 movestogo. The latter is a dirty workaround and does not work for all engines.

I wouldn't know how to implement this in an engine: How am I to know what the average per move time is going to be when I don't know how difficult the future move decisions are going to be?

On the other hand, if the average move time is only supposed to be correct a posteriori, the GUI could already handle that under the present specification by pretending to the engine that it has to survive for 5 moves with e.g. 5*[average move time] time and adjusting this interval depending on the question whether the engine has been using too much or too little time. As this is a rather imprecise job, I would prefer it to be done by the GUI instead of the engine.

Some improvements I would like are:
- allow the engine to set its own options with "set option ..." (then it could e.g. offer some personality presets which are like macros for changing several other options)
- add support for crazyhouse/bughouse fen strings (I believe it is called BFEN); perhaps X-FEN is more important in general.
User avatar
Fritz Grau
 
Posts: 23
Joined: 12 Jul 2006, 13:49
Location: Germany

Re: Universal Chess Interface deficiencies/wish list

Postby Onno Garms » 26 Sep 2007, 17:42

Fritz Grau wrote:That sounds good to me (although for most usual time controls the current information seems sufficient for reasonable time management).


From my active time I remember 2h/40 plus 30min/rest. I also remember that some friends of mine who are active now told me about games with more unusual time controls, starting at n*(3 min) for n moves, then 15 min for the rest (I don't remember the value of n, but it was not very large). Unusual enough?

I wouldn't know how to implement this in an engine: How am I to know what the average per move time is going to be when I don't know how difficult the future move decisions are going to be?


That's why SMK doesn't like my suggestion.
User avatar
Onno Garms
 
Posts: 128
Joined: 17 Feb 2007, 11:17
Location: Bonn, Germany

Re: Universal Chess Interface deficiencies/wish list

Postby Jaap Weidemann » 01 Oct 2007, 02:14

Fritz Grau wrote:- add support for crazyhouse/bughouse fen strings (I believe it is called BFEN); perhaps X-FEN is more important in general.


Support for more variants is certainly desirable.

Jaap
Jaap Weidemann
 
Posts: 18
Joined: 11 Aug 2006, 21:34
Location: Stellenbosch, South Africa

Re: Universal Chess Interface deficiencies/wish list

Postby PulsarMike » 28 Nov 2007, 19:11

i have found the tellics command useful. Just recently i was using it to ouput tells directly to the ics to my computer account ( yes its talking to itself ) and the tells gave me a bunch of counter values so i could see sort of the state of the program from move to move. I could have outputed to a file but it was easier and quicker to do it to the ics sometimes.

I also like to know the name of the interface and if i'm on an ics wich winboard tells me when the engine loads. I can do things differently depending on that. Like for crazyhouse if its not an ics i check legality and send messages to the user in some cases.

More info and options is not bad you can choose not to use it.

Mike Adams
www.adam16mr.org/pulsar.html
User avatar
PulsarMike
 
Posts: 83
Joined: 27 Nov 2007, 00:01
Location: California


Return to Programming and Technical Discussions

Who is online

Users browsing this forum: No registered users and 36 guests