List of open source engines?

Discussions about Winboard/Xboard. News about engines or programs to use with these GUIs (e.g. tournament managers or adapters) belong in this sub forum.

Moderator: Andres Valverde

Re: List of open source engines?

Postby Miguel A. Ballicora » 08 Aug 2008, 21:39

[quote="Dann Corbit"]I am sure I left out a lot of them (I have several hundred source codes, though many of them are not publicly available), but all of these are good learning tools:
Code: Select all
gerbil {simple -- interesting callback idea that nobody else does}


Hi Dann, what do you mean exactly by this idea? I am fond of using pointer to functions in several places. Either I am doing something similar or I may like to borrow it from now on :-)

Miguel
User avatar
Miguel A. Ballicora
 
Posts: 160
Joined: 03 Aug 2005, 02:24
Location: Chicago, IL, USA

Re: List of open source engines?

Postby Dann Corbit » 09 Aug 2008, 06:40

Miguel A. Ballicora wrote:
Dann Corbit wrote:I am sure I left out a lot of them (I have several hundred source codes, though many of them are not publicly available), but all of these are good learning tools:
Code: Select all
gerbil {simple -- interesting callback idea that nobody else does}


Hi Dann, what do you mean exactly by this idea? I am fond of using pointer to functions in several places. Either I am doing something similar or I may like to borrow it from now on :-)

Miguel


It's actually a very good idea. When I say that nobody is using it, I mean that hardly anyone uses it to drive the interface. Of course, people call qsort() with a compare function and things like that. There are even a few instances I have seen with replaceable functions for evaluation and search (championed by Earnst Heinz, IIRC).

Looking at the ancient stuff in my gav folder, I see:
BUILD_TH_FUNC
movegenfunc_t
mc_compfunc_t
pickfunction_t
and xb_func from xboard_command
so your code is definitely way above average in this regard.

I guess that if done right, it will be the most efficent way to do many of the things that are often done with timers and alarms in other programs.
Dann Corbit
 

Re: List of open source engines?

Postby David Dahlem » 09 Aug 2008, 16:01

Tony Thomas wrote:
Olivier Deville wrote:Many thanks Dann for this list. Let's add Buzz, that was even cloned recently.

Vegan may improve the way he posts (he got a PM from my side) but he still gave us an interesting discussion topic.

Olivier


He made it all the way to the top of the food chain, just to eat veggies. :mrgreen: I am pretty sure there are many engines we are forgetting..Here is a list of additional engines that I compiled just by glancing at Jimbo's page.

Xpdnt
MFchess
Kace
Dabbaba
Obender/Chessone
Cyrano
Philemon
Freyr
GK
Hoichess
Scidlet
Resp
Romichess
Sloppy
Exchess
Prophet
St andersen
Sunsetter
Kiwi
Slowchess (early versions)
Knightcap
Chesterfield
Braincrack
Drunkenmaster


You can add Simon to the list.

Regards
Dave
User avatar
David Dahlem
 
Posts: 3
Joined: 25 Aug 2007, 05:18

Re: List of open source engines?

Postby Olivier Deville » 09 Aug 2008, 16:39

David Dahlem wrote:
Tony Thomas wrote:
Olivier Deville wrote:Many thanks Dann for this list. Let's add Buzz, that was even cloned recently.

Vegan may improve the way he posts (he got a PM from my side) but he still gave us an interesting discussion topic.

Olivier


He made it all the way to the top of the food chain, just to eat veggies. :mrgreen: I am pretty sure there are many engines we are forgetting..Here is a list of additional engines that I compiled just by glancing at Jimbo's page.

Xpdnt
MFchess
Kace
Dabbaba
Obender/Chessone
Cyrano
Philemon
Freyr
GK
Hoichess
Scidlet
Resp
Romichess
Sloppy
Exchess
Prophet
St andersen
Sunsetter
Kiwi
Slowchess (early versions)
Knightcap
Chesterfield
Braincrack
Drunkenmaster


You can add Simon to the list.

Regards
Dave


...and CPW that was discovered the other day :)

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

Re: List of open source engines?

Postby Miguel A. Ballicora » 11 Aug 2008, 23:39

Dann Corbit wrote:
Miguel A. Ballicora wrote:
Dann Corbit wrote:I am sure I left out a lot of them (I have several hundred source codes, though many of them are not publicly available), but all of these are good learning tools:
Code: Select all
gerbil {simple -- interesting callback idea that nobody else does}


Hi Dann, what do you mean exactly by this idea? I am fond of using pointer to functions in several places. Either I am doing something similar or I may like to borrow it from now on :-)

Miguel


It's actually a very good idea. When I say that nobody is using it, I mean that hardly anyone uses it to drive the interface. Of course, people call qsort() with a compare function and things like that. There are even a few instances I have seen with replaceable functions for evaluation and search (championed by Earnst Heinz, IIRC).

Looking at the ancient stuff in my gav folder, I see:
BUILD_TH_FUNC
movegenfunc_t
mc_compfunc_t
pickfunction_t
and xb_func from xboard_command
so your code is definitely way above average in this regard.

I guess that if done right, it will be the most efficent way to do many of the things that are often done with timers and alarms in other programs.


Thanks for the info Dann, you are an encyclopedia about what all the engines are doing. I am surprised not more people are doing that type of things with the interface. It is really convenient. I might have got the idea from a book ("Code complete", maybe). Whenever I need to add a new command, I pack everything in one function, I register the name of the function in one table, I register a "help string", an "error string" and that's it. Then, whenever I type "help", I see all the commands available, sorted alphabetically. I can type "help commandname" and I see its help etc. with no extra effort.

Miguel
User avatar
Miguel A. Ballicora
 
Posts: 160
Joined: 03 Aug 2005, 02:24
Location: Chicago, IL, USA

Re: List of open source engines?

Postby Dann Corbit » 12 Aug 2008, 02:12

Miguel A. Ballicora wrote:
Dann Corbit wrote:
Miguel A. Ballicora wrote:
Dann Corbit wrote:I am sure I left out a lot of them (I have several hundred source codes, though many of them are not publicly available), but all of these are good learning tools:
Code: Select all
gerbil {simple -- interesting callback idea that nobody else does}


Hi Dann, what do you mean exactly by this idea? I am fond of using pointer to functions in several places. Either I am doing something similar or I may like to borrow it from now on :-)

Miguel


It's actually a very good idea. When I say that nobody is using it, I mean that hardly anyone uses it to drive the interface. Of course, people call qsort() with a compare function and things like that. There are even a few instances I have seen with replaceable functions for evaluation and search (championed by Earnst Heinz, IIRC).

Looking at the ancient stuff in my gav folder, I see:
BUILD_TH_FUNC
movegenfunc_t
mc_compfunc_t
pickfunction_t
and xb_func from xboard_command
so your code is definitely way above average in this regard.

I guess that if done right, it will be the most efficent way to do many of the things that are often done with timers and alarms in other programs.


Thanks for the info Dann, you are an encyclopedia about what all the engines are doing. I am surprised not more people are doing that type of things with the interface. It is really convenient. I might have got the idea from a book ("Code complete", maybe). Whenever I need to add a new command, I pack everything in one function, I register the name of the function in one table, I register a "help string", an "error string" and that's it. Then, whenever I type "help", I see all the commands available, sorted alphabetically. I can type "help commandname" and I see its help etc. with no extra effort.

Miguel


That reminds me...
'help' should be both a Winboard/Xboard and UCI command for the standards.
Why should we have to guess what an engine can do?

I also find that the Xboard feature string is lacking, because it only covers Xboard commands and not other things (e.g. if your program can run an EPD test suite, it won't be documented by the feature command).
Dann Corbit
 

Re: List of open source engines?

Postby Zach Wegner » 12 Aug 2008, 02:44

Dann Corbit wrote:That reminds me...
'help' should be both a Winboard/Xboard and UCI command for the standards.
Why should we have to guess what an engine can do?

I also find that the Xboard feature string is lacking, because it only covers Xboard commands and not other things (e.g. if your program can run an EPD test suite, it won't be documented by the feature command).
I disagree here. I think that any help or features transmitted to the GUI should be the ones available while in the GUI. ZCT supports epd testing, and tons of other stuff that only works/is useful in console mode. Why would an xboard user need to know that? I think a "help" command in console mode or a readme is sufficient, so in ZCT "help" only works in console mode. ;)

I do agree with Miguel that using a function framework is the best for command parsing. It makes it much cleaner IMO.
User avatar
Zach Wegner
 
Posts: 182
Joined: 26 Sep 2004, 22:02
Location: Austin, Texas, USA

Re: List of open source engines?

Postby Dann Corbit » 12 Aug 2008, 05:01

Zach Wegner wrote:
Dann Corbit wrote:That reminds me...
'help' should be both a Winboard/Xboard and UCI command for the standards.
Why should we have to guess what an engine can do?

I also find that the Xboard feature string is lacking, because it only covers Xboard commands and not other things (e.g. if your program can run an EPD test suite, it won't be documented by the feature command).
I disagree here. I think that any help or features transmitted to the GUI should be the ones available while in the GUI. ZCT supports epd testing, and tons of other stuff that only works/is useful in console mode. Why would an xboard user need to know that? I think a "help" command in console mode or a readme is sufficient, so in ZCT "help" only works in console mode. ;)

I do agree with Miguel that using a function framework is the best for command parsing. It makes it much cleaner IMO.


I have several thousand chess engines. If I knew I could open a readme and find out what the commands are, it would not be so bad. Less than 1% of the engines will have the commands listed in a readme, I am sure.

I usually resort to:
strings < "exename" > strings.txt
uedit32 strings.txt

I am also kind of surprised that more people don't use callbacks because they are so handy.
Dann Corbit
 

Previous

Return to Winboard and related Topics

Who is online

Users browsing this forum: No registered users and 20 guests