UCI variants support

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

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

UCI variants support

Post by bpfliegel »

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: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: UCI variants support

Post by hgm »

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: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: UCI variants support

Post by gbtami »

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: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: UCI variants support

Post by hgm »

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: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: UCI variants support

Post by gbtami »

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 10:16 am

Re: UCI variants support

Post by bpfliegel »

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: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: UCI variants support

Post by lucasart »

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: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: UCI variants support

Post by hgm »

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