UCI protocol in winboard

Discussions about the WinBoard protocol. Here you can also report bugs and request new features.

Moderators: hgm, Andres Valverde

Re: UCI protocol in winboard

Postby Roger Brown » 25 Sep 2009, 23:07

Dear All,

Of course I come to this discussion with a tremendous burden of ignorance but I want to see if I can understand what is being suggested.

One contributer suggested that Winboard (the gui) usage would increase were the gui not so cumbersome to use. This appears to me to be a separate issue from the protocol supported by such engines. Interestingly enough, I abhor the Chessbase gui for various reasons including its memory footprint and the fact that it does not properly support the Winboard protocol. These reasons do not seem to matter to an overwhelming number of persons when using the Chessbase gui.

What the users of that gui would have to tell me is precisely how less cumbersome is it to set up an adapter that translates Winboard to UCI instructions with the appropriate commands etc. in Chessbase than it is to set up a UCI engine (for which a configuration window is now generated) with the latest Winboard gui version.

Sigh.

Several Winboard authors use various ini files to send configuration instructions to their engines. UCI engines get their settings from the gui. That has nothing to do with the protocol. Winboard engines have been written with hard coded hash numbers and no tablebase support so no configuring. UCI engines can be used in Winboard and in a way that is transparent to the user. In fact, and I may be killed for this, the Winboard gui right now is a whole lot more friendly for UCI engines than it is for Winboard engines which is ironic. Why do I say this?

Configuring UCI engines is now done via a menu replete with all sorts of boxes. Winboard engines have basic settings done via the gui.

Winboard is cumbersome? Really? How?

Can we have a precise definition of the problem with using Winboard (the gui) which may be more helpful than suggesting a protocol that no-one is willing to write much less design an engine for at the moment?

The way I see it, difficulty has to do with:

(a) Installing the gui
(b) Installing engines so that they can be used in the gui
(c) Getting the gui to work with the engines
(d) Getting the engines to function as chess entities (playing, analysis, games etc.)
(e) Building in an ability to replicate tournaments etc.
(f) Ease of changing configuration etc. of engines.
(g) (a) to (f) again!


I would like a pinpointing of where the cumbersome aspect arises in using Winboard.

I will agree that Arena - and more recently the meteoric Chessgui - offers a number of features which make some of the list above easier to do but I would like a precise statement of the problem.

I bash Chessbase (not as often as Winboard is bashed, even here) but I have reasons are important to me and capable of definite statement.

Please feel free to do the same.

Let the games continue.....
Roger Brown
 
Posts: 346
Joined: 24 Sep 2004, 12:31

Re: UCI protocol in winboard

Postby Graham Banks » 25 Sep 2009, 23:30

I think that one big thing that would help users of Winboard engines would be for a default ini file to be packaged with the engine, rather than expecting the user to create one.
Not being an expert in creating ini files, it is much easier in such cases for me to use the engine with the wb2uci adapters (and I will always reject the argument that this harms performance).
Of course I would much prefer to use a Winboard engine with its ini file under either ChessGUI or Arena. Of course, the Chessbase and Shredder GUIs don't give the luxury of that choice at all.
User avatar
Graham Banks
 
Posts: 2537
Joined: 26 Sep 2004, 20:37
Location: Auckland, NZ

Re: UCI protocol in winboard

Postby H.G.Muller » 25 Sep 2009, 23:34

Graham Banks wrote:I think that one big thing that would help users of Winboard engines would be for a default ini file to be packaged with the engine, rather than expecting the user to create one.
Not being an expert in creating ini files, it is much easier in such cases for me to use the engine with the wb2uci adapters (and I will always reject the argument that this harms performance).
Of course I would much prefer to use a Winboard engine with its ini file under either ChessGUI or Arena. Of course, the Chessbase and Shredder GUIs don't give the luxury of that choice at all.

Isn't this always the case? I have never seen a WinBoard engine that did not come with its own ini file. If it did not, how could a user _ever_ create an ini file, no matter how expert he is? There is no standard for such files. They are not mentioned in WinBoard doc anywhere They are a pure invention of the engine author.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: UCI protocol in winboard

Postby Graham Banks » 25 Sep 2009, 23:41

H.G.Muller wrote:
Graham Banks wrote:I think that one big thing that would help users of Winboard engines would be for a default ini file to be packaged with the engine, rather than expecting the user to create one.
Not being an expert in creating ini files, it is much easier in such cases for me to use the engine with the wb2uci adapters (and I will always reject the argument that this harms performance).
Of course I would much prefer to use a Winboard engine with its ini file under either ChessGUI or Arena. Of course, the Chessbase and Shredder GUIs don't give the luxury of that choice at all.

Isn't this always the case? I have never seen a WinBoard engine that did not come with its own ini file. If it did not, how could a user _ever_ create an ini file, no matter how expert he is? There is no standard for such files. They are not mentioned in WinBoard doc anywhere They are a pure invention of the engine author.


I have downloaded a number of Winboard engines that don't have an ini file in the engine folder.
User avatar
Graham Banks
 
Posts: 2537
Joined: 26 Sep 2004, 20:37
Location: Auckland, NZ

Re: UCI protocol in winboard

Postby Teemu Pudas » 25 Sep 2009, 23:50

Roger Brown wrote:Winboard is cumbersome? Really? How?
...
(d) Getting the engines to function as chess entities (playing, analysis, games etc.)

This is my first time using Winboard outside ICS mode. Here's my attempt to get infinite analysis:

1) Start-up dialog: "Just view or edit game files" seems like the closest to what I'm trying to do
2) Look through the menus for a way to load an engine
3) None found. WTF?
4) Restart Winboard. "Play against a chess engine or match two engines" seems next closest.
5) How to only load one engine? By using the same engine twice, I guess.
6) Press the space bar. This starts analysis in all the GUIs I've ever used.
7) Not in Winboard. Back to menu-crawling it is.
8) Aha! Mode->Analysis mode or Ctrl+A.
...
9) Change the maximum number of CPUs for ALL ENGINES, as the default clearly isn't intended for single-engine analysis. Where is the option to set it individually?

Compared to just starting the GUI and pressing the space bar to load the default engine at default settings and start analyzing with it, this is pretty cumbersome.
Teemu Pudas
 
Posts: 124
Joined: 16 Apr 2007, 14:03

Re: UCI protocol in winboard

Postby Roger Brown » 26 Sep 2009, 02:51

Graham Banks wrote:I think that one big thing that would help users of Winboard engines would be for a default ini file to be packaged with the engine, rather than expecting the user to create one.



Hello Graham,

I am at a loss here. I look through my collection of engines here and they ship (mostly) with a configuration file (ini file if you will). There are Winboard engines which are written at specific hash table size etc. but by and large they ship with a configuration file to enable user settings different from the default. Should you not be using a configuration file with say a Crafty, it means that you are using the default settings which may place it at a disadvantage if the other engines are playing using (say) 1 gig of hash.

Winboard now enables you to set basic configurations dealing with hash size, tb location etc.



Graham Banks wrote:Not being an expert in creating ini files, it is much easier in such cases for me to use the engine with the wb2uci adapters (and I will always reject the argument that this harms performance).


It seems to me that you have simply substituted one sort of expertise for another. You are now an expert at wb2uci settings. As for what you reject, it is a free country and I reject your rejection.

:twisted:

Again, the discussion here has nothing to do with UCI engine support under Winboard - which I maintain is better for the final user than Winboard engine support is (in terms of ease of configuring the engine in a dialogue box) at the moment. It has to do with using Winboard - which is separate from the support for the UCI protocol which is the title of this topic.
Roger Brown
 
Posts: 346
Joined: 24 Sep 2004, 12:31

Re: UCI protocol in winboard

Postby Roger Brown » 26 Sep 2009, 02:59

Teemu Pudas wrote:
Roger Brown wrote:Winboard is cumbersome? Really? How?
...
(d) Getting the engines to function as chess entities (playing, analysis, games etc.)

This is my first time using Winboard outside ICS mode. Here's my attempt to get infinite analysis:

1) Start-up dialog: "Just view or edit game files" seems like the closest to what I'm trying to do
2) Look through the menus for a way to load an engine
3) None found. WTF?
4) Restart Winboard. "Play against a chess engine or match two engines" seems next closest.
5) How to only load one engine? By using the same engine twice, I guess.
6) Press the space bar. This starts analysis in all the GUIs I've ever used.
7) Not in Winboard. Back to menu-crawling it is.
8) Aha! Mode->Analysis mode or Ctrl+A.
...
9) Change the maximum number of CPUs for ALL ENGINES, as the default clearly isn't intended for single-engine analysis. Where is the option to set it individually?

Compared to just starting the GUI and pressing the space bar to load the default engine at default settings and start analyzing with it, this is pretty cumbersome.



Hello Teemu Pudas,

In your third point you used an abbreviation - WTF.

In the same vein, precisely what does this intervention have to do with the topic?

I am not in any way invalidating your contribution, merely questioning its relevance to the topic.

Your contribution has to do with using Winboard as a gui which is not the topic originally posed.

Certainly Winboard has a reputation for being somewhat the choice of geeks but it really has come some way since its inception.

I am trying to understand this part of what you posted:

Teemu Pudas wrote: Change the maximum number of CPUs for ALL ENGINES, as the default clearly isn't intended for single-engine analysis. Where is the option to set it individually?


Could you clarify please? This sounds like something that assistance could be given for.

Later.
Roger Brown
 
Posts: 346
Joined: 24 Sep 2004, 12:31

Re: UCI protocol in winboard

Postby Roger Brown » 26 Sep 2009, 03:04

Guenther Simon wrote:
May be there was a very very little time lag with older Polyglot versions, but even this very very little time lag still was much less,
than all time lag already produced by most of all other GUIs around, when simply running.
I don't see any need for UCI in Winboard and completely agree with HG on this.

Guenther




Hello Guenther,

Ahhhhh, brothers in arms and kindred spirits to the bitter end!!

8-)

Later.
Roger Brown
 
Posts: 346
Joined: 24 Sep 2004, 12:31

Re: UCI protocol in winboard

Postby Graham Banks » 26 Sep 2009, 03:20

Roger Brown wrote:
Graham Banks wrote:I think that one big thing that would help users of Winboard engines would be for a default ini file to be packaged with the engine, rather than expecting the user to create one.



Hello Graham,

I am at a loss here. I look through my collection of engines here and they ship (mostly) with a configuration file (ini file if you will). There are Winboard engines which are written at specific hash table size etc. but by and large they ship with a configuration file to enable user settings different from the default. Should you not be using a configuration file with say a Crafty, it means that you are using the default settings which may place it at a disadvantage if the other engines are playing using (say) 1 gig of hash.

Winboard now enables you to set basic configurations dealing with hash size, tb location etc.


Looking through my engine list (just the engines starting with "a"), I find that Amundsen, Anatoli and Atak don't have either ini or configuration files.

Cheers,
Graham.
User avatar
Graham Banks
 
Posts: 2537
Joined: 26 Sep 2004, 20:37
Location: Auckland, NZ

Re: UCI protocol in winboard

Postby Roger Brown » 26 Sep 2009, 05:27

Graham Banks wrote:
Looking through my engine list (just the engines starting with "a"), I find that Amundsen, Anatoli and Atak don't have either ini or configuration files.

Cheers,
Graham.




Hello Graham,

I know that this is going to be a waste of time but Amundsen ships with a fixed hastable size whilst Atak ships with fixed hashtable sizes. Anatoli I have never used.

All I am saying is that if you are unaware of this then perhaps using these engines in tournaments where other engines have far larger demands on the computer's resources is being unfair to these engines.

Your ability to find engines that do not use ini files in no way invalidates what I said previously - that authors of several Winboard engines use various configuration files to allow the user to set certain parameters.

You use uci converters that are supposed to do the same but if a converter is attempting to give these non tb enabled engines tb use it's the gui, not the engine that is making the moves.

Whichever gui you use, Winboard engines that require a configuration file require a configuration file. Unless you want to accept the arbitrary defaults that each author deems best.

Again this has nothing to do with the topic as I have pointed out before but I seriously doubt that point has any meaning any more.

Later.
Roger Brown
 
Posts: 346
Joined: 24 Sep 2004, 12:31

Re: UCI protocol in winboard

Postby Graham Banks » 26 Sep 2009, 05:40

Roger Brown wrote:Again this has nothing to do with the topic as I have pointed out before but I seriously doubt that point has any meaning any more.

Later.


No problem. I'll stay out of the discussion and let you guys get on with it.

Cheers,
Graham.
User avatar
Graham Banks
 
Posts: 2537
Joined: 26 Sep 2004, 20:37
Location: Auckland, NZ

Re: UCI protocol in winboard

Postby Olivier Deville » 26 Sep 2009, 06:40

I know that this is going to be a waste of time but Amundsen ships with a fixed hastable size whilst Atak ships with fixed hashtable sizes. Anatoli I have never used.


Anatoli has a configuration file called AnatoliOptions.txt where you can set up hashsize.

Olivier
User avatar
Olivier Deville
 
Posts: 1176
Joined: 26 Sep 2004, 19:54
Location: Aurec, France

Re: UCI protocol in winboard

Postby Roger Brown » 26 Sep 2009, 07:05

Olivier Deville wrote:
I know that this is going to be a waste of time but Amundsen ships with a fixed hastable size whilst Atak ships with fixed hashtable sizes. Anatoli I have never used.


Anatoli has a configuration file called AnatoliOptions.txt where you can set up hashsize.

Olivier




Hello Olivier,

I think that you should be addressing this point to Graham as he claims that the engine has no configuration file.

Is it a private engine or is there a site/link somewhere that I could go to have a look at it?

Later.
Roger Brown
 
Posts: 346
Joined: 24 Sep 2004, 12:31

Re: UCI protocol in winboard

Postby Graham Banks » 26 Sep 2009, 07:22

Roger Brown wrote:
Is it a private engine or is there a site/link somewhere that I could go to have a look at it?

Later.


http://wbec-ridderkerk.nl/html/enginesindex.htm
User avatar
Graham Banks
 
Posts: 2537
Joined: 26 Sep 2004, 20:37
Location: Auckland, NZ

Re: UCI protocol in winboard

Postby Olivier Deville » 26 Sep 2009, 07:27

Graham Banks wrote:
Roger Brown wrote:
Is it a private engine or is there a site/link somewhere that I could go to have a look at it?

Later.


http://wbec-ridderkerk.nl/html/enginesindex.htm


Hello Roger and Graham

It was a message to the world, just to clarify that Anatoli has a configuration file.

You will find Anatoli at Leo's :

http://wbec-ridderkerk.nl/html/details1/Anatoli.html

...but after checking the package, I see that the public version has a fixed hashsize and no configuration file. The version I have here is private.

Olivier
User avatar
Olivier Deville
 
Posts: 1176
Joined: 26 Sep 2004, 19:54
Location: Aurec, France

Re: UCI protocol in winboard

Postby Roger Brown » 26 Sep 2009, 07:55

Olivier Deville wrote:
Hello Roger and Graham

It was a message to the world, just to clarify that Anatoli has a configuration file.

You will find Anatoli at Leo's :

http://wbec-ridderkerk.nl/html/details1/Anatoli.html

...but after checking the package, I see that the public version has a fixed hashsize and no configuration file. The version I have here is private.

Olivier





Hello Olivier,

Do you think the author can be persuaded to release it eventually?

Evil laughter....

Later.
Roger Brown
 
Posts: 346
Joined: 24 Sep 2004, 12:31

Re: UCI protocol in winboard

Postby H.G.Muller » 26 Sep 2009, 08:37

Teemu Pudas wrote:This is my first time using Winboard outside ICS mode. Here's my attempt to get infinite analysis:

1) Start-up dialog: "Just view or edit game files" seems like the closest to what I'm trying to do
2) Look through the menus for a way to load an engine
3) None found. WTF?
4) Restart Winboard. "Play against a chess engine or match two engines" seems next closest.
5) How to only load one engine? By using the same engine twice, I guess.
6) Press the space bar. This starts analysis in all the GUIs I've ever used.
7) Not in Winboard. Back to menu-crawling it is.
8) Aha! Mode->Analysis mode or Ctrl+A.
...
9) Change the maximum number of CPUs for ALL ENGINES, as the default clearly isn't intended for single-engine analysis. Where is the option to set it individually?

Compared to just starting the GUI and pressing the space bar to load the default engine at default settings and start analyzing with it, this is pretty cumbersome.


I guess all your problems would be solved by shipping WinBoard with a shortcut / menu link especially for analysis. So that you only have to click on the menu item for it in the Windows start menu, or on the PGN file you want to analyze to start up WinBoard with the default engine in analysis mode. This is very easily accomplished. The point is that I cannot know that, and thus will not do it, unless someone tells me that this feature is in demand. I have never used analysis mode in my life.

Currently I set it up to associate PGN files with a shortcut to start WinBoard in game viewer mode (i.e. without any engine loaded). You would probably prefer to associate it with analysis mode. So it should be configurable in the installer which association is made.

All this has very little to do with intrinsic WinBoard properties, and nothing at all with WinBoard directly supporting UCI or not.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: UCI protocol in winboard

Postby H.G.Muller » 26 Sep 2009, 08:58

Graham Banks wrote:Looking through my engine list (just the engines starting with "a"), I find that Amundsen, Anatoli and Atak don't have either ini or configuration files.

On some engines there is nothing to configure. So it is only natural they do not come with a configuration file. Other engines are configurable through options on their command line. These will also not come with a configuration file. Joker belongs in that category; if you don't want to run it with the standard hash-table size of 128MB, you would have to start it as "joker.exe 20" (fo 64MB) or "joker.exe 22" (for 256MB).

None of this implies that the user would have to make a configuration file when none was shipped with the engine. Usually a README file is included with the engine to specify how the user should install it, and what the engine startup command should be (e.g. "GNUChess xboard" or "Pos1.17.exe --io-mode xboard" or "Smirfoglot /H64").

None of that has any bearing on the user-friendliness of WinBoard vs other GUIs. If you want to configure and run these engines in any other GUI, you still would have to use the same cumbersome command lines to start them, and you still would have to edit the same cumbersome ini files to change their default settings. That does not mean that properly installing native WinBoard engines is not a problem. Just that it is a completely independent problem from wat we started discussing in this thread.

Thus this problem also has a completely different solution. In fact a convenient solution was recently discussed on TalkChess. There should be a web-installer for engines, which would first fetch info on all available engines (name, author, rating, download link, install folder, command line) from "maintainer" websites like WBEC or RWBC, and use the info to download engines that the user selects, and install them automatically in the PSWBTM engine-manager database. The user would only have to start this "Engine Setup" utility, (which would have been configured at install to use the engine list from a preferred maintainer), sort the list that appears in the display by the properties he wants to select the engine on (alphabetical on name or author, on rating, on supported variants such as Chess960 or Xiangqi), and then click the engine of his liking. The Engine-Setup utility would then do the rest, and after the download completes he would be ready to use the engine from PSWBTM.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: UCI protocol in winboard

Postby Graham Banks » 26 Sep 2009, 09:08

H.G.Muller wrote:In fact a convenient solution was recently discussed on TalkChess. There should be a web-installer for engines, which would first fetch info on all available engines (name, author, rating, download link, install folder, command line) from "maintainer" websites like WBEC or RWBC, and use the info to download engines that the user selects, and install them automatically in the PSWBTM engine-manager database. The user would only have to start this "Engine Setup" utility, (which would have been configured at install to use the engine list from a preferred maintainer), sort the list that appears in the display by the properties he wants to select the engine on (alphabetical on name or author, on rating, on supported variants such as Chess960 or Xiangqi), and then click the engine of his liking. The Engine-Setup utility would then do the rest, and after the download completes he would be ready to use the engine from PSWBTM.


Sounds great. Let's hope that this can be done. :)
User avatar
Graham Banks
 
Posts: 2537
Joined: 26 Sep 2004, 20:37
Location: Auckland, NZ

Re: UCI protocol in winboard

Postby Teemu Pudas » 26 Sep 2009, 12:52

Roger Brown wrote:In the same vein, precisely what does this intervention have to do with the topic?

Oops. I took your post and added one more level of off-topicness (Topic: Engine communication protocols->Tangent: Why is Winboard cumbersome?->Off-topic: Practical example).
Roger Brown wrote:
Teemu Pudas wrote: Change the maximum number of CPUs for ALL ENGINES, as the default clearly isn't intended for single-engine analysis. Where is the option to set it individually?

Could you clarify please? This sounds like something that assistance could be given for.

Once I got Rybka running, I noticed it was using only one CPU. Engine #1 Settings... doesn't have the expected Max CPUs parameter - the only place where I found one was in Global Settings.

On topic:

Dann Corbit wrote:UCI is far better at setting up engine parameters in a uniform way.

Your posts give me the impression you haven't seen the updated Winboard protocol.

You do have a point, though. There's a bunch of options that masquerade as commands and/or "features": memory, variant, hard/easy, egtpath, post/nopost, nps, computer, rating, name, sd, st, ics, reuse. Adding a normal option to my engine is one line of code (plus whatever non-default handler function I may need to write). Adding a "feature <name>" option already requires supporting a different syntax.

It seems like "feature option=NAME" is intended for 'unsupported' options; all the others have some sort of special handling from Winboard. From an engine's perspective, though, they are all just options. UCI makes this distinction (for the most part. sigh) by prefixing option names with UCI_, which is infinitely better IMO.
Last edited by Teemu Pudas on 26 Sep 2009, 12:59, edited 4 times in total.
Teemu Pudas
 
Posts: 124
Joined: 16 Apr 2007, 14:03

PreviousNext

Return to WinBoard development and bugfixing

Who is online

Users browsing this forum: No registered users and 13 guests