kaorahi / lizgoban

Leela Zero & KataGo visualizer
GNU General Public License v3.0
169 stars 28 forks source link

Thoughts on improving the score graph #108

Closed qcgm1978 closed 7 months ago

qcgm1978 commented 8 months ago

The currently displayed score graph y-axis range seems quite large. Could it be adjusted to show a smaller range based on the specific game situation? I feel that for players of a certain level, a score difference over 20 points loses significance, so it could be limited to -20~20. If the score difference falls within this range, display the smallest possible range to better reflect the real situation. Different score differences can be shown in different colors, for example >20 in green, < -20 in red, while the score text always shows Black's perspective to stay consistent with the win rate graph above.

The y-axis on the right seems to show total loss, which doesn't seem that relevant to analyzing the actual game. For determining wins and losses in Go, we don't really care about that data. The resulting graph would be somewhat similar to a strip plot. I tried modifying the code and the effect is shown in the video.

https://github.com/kaorahi/lizgoban/assets/3024299/233dd4ab-381d-4110-a860-cca761533184

kaorahi commented 8 months ago

I agree that a large score difference in the endgame, such as B+50, detracts from the visibility of the important part of the score chart in the middle game. This is often just the result of aggressive play to avoid an inevitable loss, and the final score number itself doesn't hold much essential meaning. I once thought about introducing a cutoff or nonlinearity on the y-axis of the chart for this reason, but I didn't decide to use these ideas at that time. I'd like to reconsider them (4e6caed90). Thanks for the suggestion! Also, we shouldn't forget that things work differently in handicap games.

The notation W+2.5 is familiar to me as the standard and popular format for game results in SGF, so I prefer it over B-2.5.

As for the cumulative score loss chart, it is one of my favorite features in this app. Have you noticed that the difference in the heights of the green and pink lines exactly equals the score difference? If the green line is 3 points higher than the pink, it indicates that Black is leading by 3 points. I believe this chart is an interesting invention that effectively separates and individually illustrates the mistakes of Black and White, along with information on how these affect the total win/loss of the game.

The use of colors would be effective if we only show the score plot and remove other plots. But actually, various other plots are the heart of this app, distinguishing it from popular GUIs. I noticed that focusing only on win rate can make game watching boring, and my aim is to provide various insights to better understand the game's progression from multiple perspectives. This is the motto of my project.

qcgm1978 commented 8 months ago

I am very sorry for the delay in my reply. I have been wanting to implement a better effect before replying, but due to various reasons, it has not been realized. Currently, what I can do is to convert the winning rate or score change graph according to the black or white player perspective, and at the same time support line charts or scatter charts. I hope that in the future, I will be able to add other data to the graph as needed, such as the total loss of scores, information about ko, etc. This seems more suitable for me to reflect on the whole game. I am also considering using d3 or other UI libraries for visualization, but these may go beyond the original intention of this project. As shown in the video: 录屏2024-01-10 22.13.23.webm

kaorahi commented 8 months ago

I admire your ability to craft such cool charts. Unfortunately, I cannot accept them for my app as I have another personal motto: "If a feature is invisible without explicit operation, it will eventually go unnoticed". So how about forking the app and publishing your own version? Your charts are appealing and users will prefer them.

The screen area is the bottleneck resource now. Ideally, I want to use two or three displays like a day-trader to show various charts when I analyze a game.

qcgm1978 commented 8 months ago

I think AI playing games like Go is very interesting. Unlike humans, AI will not get bored or tired; human reward mechanisms and emotions can affect our gameplay, but AI will simply strive to find the best move available at any given time. Studying how an AI plays therefore seems more interesting than actually competing against other human players myself. From a religious perspective, it could be argued that humans intrinsically possess a "flaw" or original sin, whereas AI has no such innate shortcomings. AI has shown me another possibility for life.

kaorahi commented 7 months ago

implemented