Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: ping/pong implementation in crafty

Author: Russell Reagan

Date: 14:15:40 09/12/02

Go up one level in this thread


On September 12, 2002 at 11:02:51, Miguel A. Ballicora wrote:

>You are looking at a derivative of WB-II. :-)
>With the "feaure" command, you can alter winboard in any way you want keeping
>compatibility to WBII. So, nobody stop any GUI writer to come up with
>improvements over winboard. If Tim Mann is the one that makes the improvement,
>it will be called WB-III.

The feature command is too restrictive for what I'm talking about. I'm talking
about a protocol that would allow you to support Winboard (any version), UCI,
and any other protocol that comes along. Even if an engine doesn't support a
protocol, but only has a text mode console interface, you could make that work
also. The basic idea is that the new protocol has certain commands, and you can
set those commands to do other things. Kind of like aliasing or overridding. For
example, if the new protocol's command to start a new game was "newgame", then
you could have a configuration file called winboard.cfg and have the line:

newgame=new

Similarly, you could have a file named uci.cfg and have:

newgame=position startpos

In reality it would be a little more advanced than that to support aliasing for
positions and moves and such, but the idea seems to work (in my head). The true
advantage of this is that now you don't even have to implement a protocol. If I
create Russell's Simple Chess Program and the command I use to start a new game
is 'reset', then I just write a .cfg file russell.cfg:

newgame=reset

and my engine will now run under the new protocol in it's GUI.

Another idea that I think should certainly be included is the ability to modify
the GUI's menu. So if you wanted to be able to turn swindle mode on or off in
Crafty, Crafty could send something like this to the engine:

menu Mode>Swindle On "swindle on"
menu Mode>Swindle Off "swindle off"

That would add a top level menu called Crafty and add whatever items Crafty
tells it to add to the menu, and when the user clicked on Crafty>Mode>Swindle On
the GUI would send "swindle on" to the engine, and now you can play in swindle
mode from the GUI. You could do this to support any command that you wanted FROM
THE GUI.

Current protocols are just communication protocols, they aren't GUIs, and I
think it would be very cool if people had the ability to focus their attention
on writing their engine, and still have access to a kick ass GUI that was fully
customizable. Winboard is customizable from the user's point of view (like
setting colors), but the user is stuck with a set of commands he/she can send to
the engine from the GUI, and that's no good. It should be easier without making
assumptions about the engine as UCI does.

So anyway, I have a few ideas about things I think would be great to add to a
new protocol, but I also need people who are more experienced to provide input
on this subject. If I knew that people would be interested in this topic, I'd
give it a go and draft a new protocol and let people blast away at it, rewrite
it, blast away, over and over until it's decent, but my inquiries have led me to
believe that I'm in the minority in wanting a new protocol and GUI. If I'm
wrong, speak up and we'll get something done.

Russell



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.