UCI variants support

Discussion of chess software programming and technical issues.

Moderators: hgm, Dann Corbit, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
bpfliegel
Posts: 71
Joined: Fri Mar 16, 2012 9:16 am

UCI variants support

Post by bpfliegel » Sun Dec 15, 2013 9:05 am

Hello all,

I'm trying to create the basic infrastructure to work on an engine that plays atomic and suicide chess. XBoard protocol supports them (you can enlist the variants that the engine plays and you could instruct the engine to play a certain variant), but as far as I know this support is neither part of UCI, nor have I seen any engine to support it in its UCI implementation. Should I go for an XBoard implementation or is there anything I missed? :)

As for testing I would like to make offline tournaments and also have it play on FICS - I suppose it is sufficient to implement XBoard and I can do both.

I'm thankful for any insights you could give me on protocol implementation and testing.

Cheers, Balint

User avatar
hgm
Posts: 26127
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: UCI variants support

Post by hgm » Sun Dec 15, 2013 1:31 pm

Well, of course it is always better to use XBoard protocol rather than UCI, even if you were writing an engine for orthodox Chess! :wink: But for Atomic I guess there really isn't any choice. I am not sure there exist other GUIs than WinBoard/XBoard that support Atomic, Win/XBoard does not directly support UCI, and Polyglot does not support Atomic. (There is a slight change that you could manage with a modified UCI2WB, however, which is pretty variant-independent.)

And yes, having it play under Win/XBoard makes it automatically possible to connect to an ICS and play Atomic there (provided the ICS supports it).

In WB protocol Atomic wouldn't look any different from orthodox Chess, except that the engine receives a command variant atomic just after "new", and that it would have to print feature variants="atomic" at startup (well, in response to protover 2, really, although the GUI probably couldn't see that difference).

User avatar
gbtami
Posts: 387
Joined: Wed Sep 26, 2012 11:29 am
Location: Hungary
Contact:

Re: UCI variants support

Post by gbtami » Sun Dec 15, 2013 5:24 pm

PyChess supports all FICS variants (except bughouse). On top of that it's own python engine can play them too! It's rather week though :wink:

User avatar
hgm
Posts: 26127
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: UCI variants support

Post by hgm » Sun Dec 15, 2013 5:56 pm

Oh, I did not know that. The pychess.org website also does not mention it. It only mentions Losers, Chess960, and other shuffle/odds variants that aren't really variants at all, but just standard Chess from a different opening position.

User avatar
gbtami
Posts: 387
Joined: Wed Sep 26, 2012 11:29 am
Location: Hungary
Contact:

Re: UCI variants support

Post by gbtami » Sun Dec 15, 2013 6:05 pm

You are right. These features just appeared in 0.12 beta releases, so not mentioned on about page yet.
http://pychess.org/news/

bpfliegel
Posts: 71
Joined: Fri Mar 16, 2012 9:16 am

Re: UCI variants support

Post by bpfliegel » Mon Dec 16, 2013 9:19 am

Thanks a lot HGM and Tamás! (Tamás, gratulálok a pychess-hez, belenéztem egy kicsit, jó munka lehetett).

So if we do not plan to extend UCI as a protocol in the near future, I will also make an XBoard implementation.

Thanks again!
Balint

User avatar
lucasart
Posts: 3198
Joined: Mon May 31, 2010 11:29 am
Full name: lucasart
Contact:

Re: UCI variants support

Post by lucasart » Mon Dec 16, 2013 10:27 am

bpfliegel wrote:Hello all,

I'm trying to create the basic infrastructure to work on an engine that plays atomic and suicide chess. XBoard protocol supports them (you can enlist the variants that the engine plays and you could instruct the engine to play a certain variant), but as far as I know this support is neither part of UCI, nor have I seen any engine to support it in its UCI implementation. Should I go for an XBoard implementation or is there anything I missed? :)

As for testing I would like to make offline tournaments and also have it play on FICS - I suppose it is sufficient to implement XBoard and I can do both.

I'm thankful for any insights you could give me on protocol implementation and testing.

Cheers, Balint
UCI is mainly for playing chess (+Chess960).

For chess variants, XBoard is the best (only) choice.
Theory and practice sometimes clash. And when that happens, theory loses. Every single time.

User avatar
hgm
Posts: 26127
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: UCI variants support

Post by hgm » Mon Dec 16, 2013 11:45 am

Well, UCI is also quite popular with Xiangqi engines (e.g. Cyclone), while Shogi uses a close dialect of it, called USI.

Post Reply