Hi everybody!
So I finally found the time to complete the documentation of v0.11, so here is the official announcement
The big change for that version are:
- each bot can be configured in 2 profiles, a slow profile (good for analysis) and a fast profile (good for real time play)
- the new Live Analysis mode
For the live analysis, I am going to copy paste the description I put in the documentation:
A live analysis makes it possible to record a game or play against a bot, while, in the background, having the analysis proceed. This is a way to save on the analysis time, so that when the game is over, part of the analysis is already completed, and the review can start immediately.
It also has the advantage to make the result of the analysis directly available (given the bot performing the analysis is fast enough to catch up with the game speed) which is interesting during a live review.
So first, you have to select the bot that will perform the analysis. It is probably better to select a slow profile bot.
Second, you select who will be playing as black and white. You basically have three options:
- Human : you will enter the move one by one for that color.
- Bot used for the analysis : you want to reuse the bot performing the analysis in the background to play for that color as well
- Another bot : that other bot will play for that color

So here are different way to use the live analysis mode:
- Human VS Human:
- You can use that mode when watching a game online or at a tournament. If the bot used for analysis is faster than the players, then it will provide you with real time data about the on going game, like win rate, and different possibilities for the on going moves.
- You can use it when playing across the board, to record the game. At the end of the game, then the analysis result can be used to discuss the game with your opponent and check out your respective mistakes.
- It can also be used as well when reading a game commentary: you enter the moves as you read the commentary, and play the variations in the open position mode. Then you can stop at different moves and check the bot own opinion against the commenter opinion.
- Of course, the bot opinion is relevant only if the bot is stronger than the human players.
- Human VS Bot: This is mainly for training. You play the bot, and at the end of the game, you review the analysis. You can also stop mid game and check the analysis of the first part of the game.
- You can have the bot playing with you different from the bot used for analysis. Then it makes sense to have this bot weaker than the bot performing the analysis:
- You can use the slow profile version of a bot for analysis, and the fast profile version of that same bot to play against you.
- If your level is DDK (11 kyu or weaker) then you can play against GnuGo, and have Leela to perform the analysis, and point out your mistakes and how to avoid them, but also GnuGo's mistakes and how to exploit them.
- You could also set Leela Zero with an old weights file as her fast profile and using the latest weights file for her slow profile for the analysis.
- You can have the bot playing with you to be the same as the bot used for analysis. This is interesting to save on computing, because the bot analysis is performed at the same time it is choosing its next move. But in that case, you will have to wait for the bot to finish analysing your last move before it starts thinking about its next move. Also, because it plays and analyse at the same time, the Delta for its moves will all be at zero (meaning it considers its move the best moves).
- Bot VS Bot: this is a possibility, but I am not sure for what use case...
When a bot is selected as black or white, that is not the same as the bot used for analysis, or when black and white are played by different bots, then an additional option appears
No overlap thinking time that indicates to GRP to make sure the bots are no thinking at the same time, so that your computer processing power (CPU, GPU, RAM) does not becomes a shared resource.
Depending of the situation, this option will be or won't be useful:
- If the bots have a limited number of play-outs, then it is not really necessary
- If one bot run on CPU and the other one on GPU, then it is not that necessary
- If one of the bots is ran across the network from another computer, then it is not really necessary
- If the bot has a limited thinking time, then you should use it
Generally speaking, it is best to use play-outs limits for your bots. You can also set the process of the bot performing the analysis to run at low priority, so that it won't make your opponent slower.

During the live analysis, there is an
Open position button available at any time to try out variations. And when the analysis for the 2 first moves is completed, a
Start review button will appear that starts the usual review panel for this game. Of course, only the moves already analysed will be available, but the review panel will update itself automatically as the analysis progresses.
So basically I have been using this mode a lot since i started implementing it, playing Live against an older version of Leela Zero, and having our game reviewed by Leela.
To me this was eye opening.
Some of the other improvements since v0.10:
- More graphs available
- Quick evaluation in Open Position mode
- Auto update of the Review Panel and graph to follow the analysis
- All analysis data are now saved as SGF (non standard) properties
- RSGF to SGF converter (at the moment now really working apparently)
- A GTP tester (like a terminal) to quickly check the bot is running fine and find out issue, because at the moment, issue with bot settings is a big obstacle to the adoption of Leela Zero (and other bots)
- More check for Leela Zero to handle configuration issues (opencl tunner, wrong weights files...)
- A table to summarize the data off the position and all variations
- Several options to display the variations labels and colors
- Fixed plenty of bugs
- Added plenty of new bugs
pnprog wrote:
Added plenty of new bugs
In fact, I now realize I tried to put too much things into this version, and by doing so, I kept delaying and delaying and delaying this new v0.11, which is detrimental to GRP. More frequent small versions are better to try out the features and find bugs. In fact, there are more bugs than usual in this version, because it's hard for me now to try out all configurations options and combination of those options.
So I will probably release a v0.11.1 soon after I fix all current issues, before going on implement more features.
For the next version v0.12, the main feature I plan to add is support for generic GTP bots that can be used in Live Analysis (and
Open Position). Now, we have plenty of very strong bots to analyse our games, and it's good also to have some weaker bots to play against (while leaving the analysis to the strong bots of course).
Then Ideally, that v0.12 will be the last version before v1.0
For v1.0, v1.1, v1.2, v1.3... I would like to stop adding new features, only maintenance:
- Adding support for new strong bots when they appears
- Bug fix
- Translation
The last point is important to me: I received a translation in German after v.10, but with all the interface changes I made since then, that translation is all broken. I feel bad about this, and I cannot really fix that by myself. So I would like to stabilize the programme (at least the interface) so that any work on translation won't be broken in the future, before asking for help for translation.
Then, once V1.0 will be out and living it's own life ("in production" as they say), I will probably slowly start a v2, that will be a restart from scratch, avoiding the design issues I made with v1, probably using
wxpython instead of
tkinter,
python3 instead of
python2, and that one will be opened to new features.
So, here you are: