Author: Matthew Herman
Date: 17:41:42 12/14/98
Go up one level in this thread
On December 14, 1998 at 20:22:12, Robert Hyatt wrote: >On December 13, 1998 at 20:13:47, Heiko Mikala wrote: > >>Hi everybody! >> >>I bought Fritz 5.32 yesterday and tried to make my program (Winboard- >>engine) work inside of Fritz. I faced some problems and thought I should >>share my experiences with you. >> >>I read in C. Liebert's report, that some Winboard engines don't work inside >>of Fritz, and I think I know some of the reasons why some engines work >>and others don't. >> >> >>Here is, what I found out: >>-------------------------- >> >>First of all, Fritz uses the Winboard protocol quite differently than >>Winboard itself does. Fritz sends a "new" command for every move your >>program must make. >>Then it sends "hard" "easy" "force" and then the sequence of moves of the >>current game up to the point where the engine has to calculate a new move. >>After this it sends a level command in the form "level 0 1:32 0" (!!!) >>"post" "white/black" "go". >>After your engine has finished calculating and output a move , Fritz (or >>any other engine) is on move and after that there comes again the command- >>sequence "new" "hard" "easy" "force" and so on. >> > > >Surely you are kidding? If not this is the absolute grossest piece of >programming garbage I have seen/heard of. IE Crafty carries things from >search to search through the hash tables, the killer move tables, the >history counts, and so forth. "new" resets everything, including any idea >of how much time is left in the time control and everything. > >This is going to significantly weaken Crafty, and probably any other program >that gets treated this way by the interface. IE I would discount any engine >vs engine games played with this sort of nonsensical interface... > > > >>Conclusion: >>----------- >> >>1. Your program must implement the "new" command correctly. Some of us >> relied on the "xreuse/reuse1/reuse2" feature of Winboard to start a >> completely new instance of the engine for every game. This doesn't work >> in Fritz, furthermore the "new" command is beeing sent for *every* >> move! > >that is simply gross programming. I think I'd hide if I wrote something >like that... :( > > > >>2. The force mode has to work correctly in your engine. >>3. THIS IS IMPORTANT: I think this is the reason, why many engines don't >> work correctly in Fritz concerning time-management: >> Your engine has to implement not only the "level 0 1 0" form of the >> level command, but also the "level 0 0:42 0" form! This form is not >> being used by Winboard, but it is documented in the engine-inf file! >> I think that many programmers didn't implement this version of level >> command, because it's never sent by Winboard (just like me..), but >> Fritz uses this command to tell your engine how much time is left! >> It uses it instead of the "time" command, and it's logical that it >> uses it, because after a "new" command a "level" has to be set... > > >this is also stupid. IE when I predict a move correctly, I expect to save >time, or when I move quickly for an obvious recapture, I expect to get that >time to use later. Apparently my time control logic is *also* screwed up by >a poor interface programmer? > >It's bad enough that the database stuff is messed with, and that engines >get stuck with the "fritz book"... > > >>3. You don't have to implement the Winboard analyze command. You will be >> able to use Fritz analysis functions even if you don't implement >> Winboard analysis. Fritz will send similar commands as mentioned above, >> then send a "level 10 30000 0" and then "go". This let's your engine >> analyze the current board position for at least two days... >> Isn't it fun? Use your own engine for all analysis functions in Fritz! >>4. You don't need an opening book. Using the above commands and the force >> mode, Fritz sends your engine opening moves taken from Fritz opening >> book (tree). This means, that you can utilize Fritz opening book, and >> that you can play matches between different engines using the same >> book. Find out, how good your engine is with a good book! >> > > >this is also stupid. IE In tournament mode, I search the book moves, but never >get the chance in this interface... From my perspective, I call this "totally >broken..." > > > >>Some negative criticism: >>------------------------ >> >>Although the above mentioned command sequences enable the use of Fritz >>opening book for all engines, I don't really like the idea of sending >>a "new" command for each move. "new" means that all the initialization >>stuff of an engine is executed, including clearing of hash-tables, eval- >>cache etc. >> >>First of all this may be very time-consuming, especially in blitz games! >> >>Secondly some engines (including my own) rely on not clearing the tables >>between the moves. Some of us try to utilize the information that was >>gathered in previous searches (especially when pondering is disabled), >>and all of this is lost after a "new" was sent. >> > >that's why I said it is stupid. Not only does it waste time, but it prevents >information from being carried across searches via the multiple hash tables >most of us use. Not to mention killers/history counts/timing information, >saved time, etc... > > > >> >>The positive things: >>-------------------- >> >>Man, this is fun! This is so much fun!! It's really unbelievable, a dream >>come true. I always hoped that Chessbase would make their engine-interface >>public, so that I could be able to use the Fritz-interface. Now it's >>possible! >> > > >Sort of like saying "Boy an elephant is a neat pet, but look at all of this >crap in my yard!" > >:) > > > > >>You can play matches against other engines not only in the way it's >>possible in Winboard, but you can run huge tournaments. Automatically! >>And Fritz will generate a cross-table automatically. It can generate >>Elo-lists, based on your tournaments. And, hey, you can match your own >>engine against the strongest programs available! Not only other Winboard >>engines, but Fritz, Junior, Nimzo, Hiarcs etc. No matter, if your engine >>loses these matches (like my own one does ;-), you can learn a lot and >>have much fun! > > >yes but the matches are somewhat tainted by poor programming, IMHO... > > >> >>And you can use your own engine in all of the analyse functions that are >>available in Fritz. Analyse the games of your just finished tournament >>with your own engine! Fritz saves information about search depth and >>evaluation for every move of a game, for every engine. So you can see, >>where the important turning-points of a game were, and start analysing at >>these points. See what your engine says, and then look at what Fritz >>or Junior etc say. >> >>There's so much more. Man, I'm happy ;-) This is heaven on earth for an >>engine programmer :) >> >> >>I'm looking forward to Genius 6.0! Another dream come true? >> >> >>If you have problems making your engine work with Fritz, feel free to >>ask me. >> > > >Actually I'm thinking of making mine *not* work, in light of the above >nonsense.. :) > > > > >> >>Greetings, >> >>Heiko. There is a *workaround* use the crafty161.eng provided by cb at the download site. But of course that doesn't allow you to tweak with the crafty settings as much! ChessBase's implementation was very weak and a crap job. They instead should've followed WINBOARD's Implementation by tim mann.. Matt herman
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.