LeelaChessZero / lc0

The rewritten engine, originally for tensorflow. Now all other backends have been ported here.
GNU General Public License v3.0
2.46k stars 535 forks source link

Request: Print move stats in higher frequency #946

Closed nguyenpham closed 4 years ago

nguyenpham commented 5 years ago

I have started making BanksiaGUI (my own chess GUI, still in development) support Lc0. As typical ones, BanksiaGUI can show visually what chess engines are thinking, which moves they are considering as best moves (all based on pv moves, scores...). Now it can show Lc0's move stats (information is shown when option VerboseMoveStats set to true). I think it is interesting to see that information directly on the chessboard.

However different from normal chess computing information (such as pv moves), that information is not up-to-date when Lc0 thinking. It shows only when Lc0 finished computing for a move, printed out right before the best move. It turns out that is hard to show them to users since after making the best move, moves in stats may become illegal/ out of date and another engine may be in turn, the whole chessboard should be reserved for that engine to show.

Thus Lc0 should show more move stats when thinking. The best if it could show whenever the stats of a move changed - similar to pv moves/scores, searched nodes... Lc0 doesn't need to print all moves stats at once, only changed ones or at least when it reached 1 more depth.

if the team can support that, I suggest VerboseMoveStats may have three values as below (use any words you think suitable, I am not good at English anyway): -off: turn off moves stats (similar to currently it sets to false) -one: show moves stats right before printing the best move (similar to currently it sets to true) -onfly: show move stats whenever the stat of a move changed. 1st time it should show all move stats, then only the changed ones

killerducky commented 5 years ago

There is a hidden UCI option for this: LogLiveStats-- Do VerboseMoveStats on every info update.

nguyenpham commented 5 years ago

Wow, thanks. It works like a charm!

However, I have to add that option manually to the JSON file for configurations thus my chess GUI can understand and allow to modify. Please let that option to be public. It is better if the team can combine it with VerboseMoveStats.

Ipmanchess commented 5 years ago

Hi..will your BanksiaGUI come public/released later on!

Can you put a screen here from your Gui.

Thanks, Ipman.

nguyenpham commented 5 years ago

I plan to release the alpha version within 2 months. I am still considering how to support lc0, any ideas, suggestions are move than welcome. Below is a screen when working with lc0 (in analyze/infinite mode):

Screen Shot 2019-09-15 at 2 06 55 am
nguyenpham commented 5 years ago

I see VerboseMoveStats is very useful. However, it prints out too much. Even my chess GUI can work very well with that frequency but it may grow log-engine file so quickly. If the team is going to publish it, please consider that issue and/or allow users to select update-frequency.

Ipmanchess commented 5 years ago

Thanks..looks very nice! A detail for later..other Gui's put the chess pieces in the middle off there fields and not on the botton. But of course if you like this more,then let it be.

Ipman.

Naphthalin commented 4 years ago

This seems to not be an issue, but a feature request, as the author isn't happy with defaults (not printing enough) and verbose (printing too much).

nguyenpham commented 4 years ago

I get used to it now (even verbose still high IMO). Closed