Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Is it time for the Winboard Protocol to go the way of the Dodo?

Author: Tord Romstad

Date: 02:51:30 03/10/05

Go up one level in this thread


On March 10, 2005 at 04:33:59, Lance Perkins wrote:

>Can you name an engine that does not keep track of the move list, and that it
>needs to be told what the move list is for every move?

Of course I can.  My own engine does not keep track of the move list, and it
needs to be told the move list for every move.  It makes life a lot easier
to me.  The engine becomes a simple program which receives a position and
a command to start searching, and nothing move.  I don't need any data
structures except those I use in the search.  I don't need a move history.
There is no need to write code to undo moves, or to handle several different
modes (normal play, analyze, force, etc.).

My code becomes much cleaner and simpler when I can keep my engine modeless
and stateless.  Of course I would be able to cope with the complexities of
the xboard protocol if I really needed to (my old engine supported both
protocols), but I am very happy that I can now avoid it (thanks to
Fabien's excellent PolyGlot adapter).

>The engine know a lot more - like, how to score book moves (and the scoring
>varies between engines) and learn from it.

I'm not sure I understand what you mean here.

>This UCI issue is simple - its a bad design.
>
>In contemporary software design, we think of 'personas' and 'scenarios'. In this
>regard, UCI has missed the persona of the engine, and missed the scenario of
>exchanging moves - the most common scenario ('core' scenario).
>
>So how does xboard address the other scenario where one must really set the
>board state to some position? You just send a 'setboard' command.

I find it very convenient that setting up positions and exchanging moves
can be done with a single command rather than two different commands.
It means less work and less code in my engine.

>Sure it is cheap to write code to work around it, but its still a bad protocol
>design.

I think this depends on where you are coming from.  If you start with an
xboard engine and try to add UCI support, I can understand your views.  For
an engine which is designed with the UCI protocol in mind from the outset,
the situation is rather different.  For me it is the xboard protocol which
would require cheap (but ugly) code to work around it.

The UCI protocol is not perfect, but in my opinion sending the move list
with every move is not one of the weaknesses.  I prefer not having to keep
track of the moves in my engine, and to unify exchange of moves and setting
up positions to a single scenario.

Tord



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.