Elements of the ULTIMATE Chess GUI?

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

sovaz1997
Posts: 292
Joined: Sun Nov 13, 2016 10:37 am

Re: Elements of the ULTIMATE Chess GUI?

Post by sovaz1997 »

Yes, I looked, we really can not save the state of the process easily. Therefore, we can extend the standards of UCI and Winboard. We introduce 2 commands to save the transposition table and restore. Teams should simply save the table, which they themselves will be able to restore on command.
Zevra 2 is my chess engine. Binary, source and description here: https://github.com/sovaz1997/Zevra2
Zevra v2.6 is last version of Zevra: https://github.com/sovaz1997/Zevra2/releases
User avatar
hgm
Posts: 28519
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Elements of the ULTIMATE Chess GUI?

Post by hgm »

Well, the protocols already support ways to do this: engines can define 'Save Hash' and 'Load Hash' button options (and possibly a 'Hash File' string option to specify where the hash table should be saved), and the user can then simply operate those from the Engine Settings dialog. It is not something that would need special support from the GUI; the latter doesn't even have to be aware anything like this is possible.

Note that WB protocol includes 'pause' / 'resume' commands, which are more limited (they do not cause any saving on disk), but just freeze all engine activity. (So you can use your computer for something else without losing the engine state.) Hardly any engine supports those commands, though.

Extending a protocol is easy, but it is usually also completely futile, as no engine developer will bother to implement the extension. GUI functions that depend on such a protcol extension will thus remain completely unusable / useless. So my advice is not to focus on GUI features that would only work because of newly proposed engine functionality, no matter how fantastic it would be, as in the end it will almost never work. Trying to enhance standards is a completely different and much more frustrating job than developing a GUI.

Also note that operating systems sometimes already support some of the things you propose, and that it is not clear to me that it would have any advantage at all to duplicate that functionality in a GUI. E.g. Windows does have a task manager, which you can use to manipulate the priority of an engine process (e.g. lower it when you want to do something else, to not interrupt an ongoing long analysis), or assign it to a specific core by specifying an affinity. (I often use that to assign all analyses I have running in parallel to a single core, making the others available for more pressing business). distributing the work over several computers is usually also possible without any specific GUI support, just making use of the general OS feature that allows access to files on other machines. E.g. If you want to run a tournament distributed over several computers with WinBoard, you can simply start a WinBoard instance on each computer, and instruct it to run the tournament from the corresponding tourney file in the distributed file system. This then works exactly the same as when you had several WinBoard instances running the tournament concurrently on the same machine; there is no need for WinBoard to know it was running on a distributed system at all.
User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: Elements of the ULTIMATE Chess GUI?

Post by gbtami »

sovaz1997 wrote: Sun Mar 31, 2019 10:37 pm Yes, I looked, we really can not save the state of the process easily. Therefore, we can extend the standards of UCI and Winboard. We introduce 2 commands to save the transposition table and restore. Teams should simply save the table, which they themselves will be able to restore on command.
Andscacs has it already:

Andscacs 0.94 by Daniel Jose
uci
id name Andscacs 0.94
id author Daniel Jose
option name Ponder type check default false
option name Hash type spin default 128 min 1 max 65536
option name Clear Hash type button
option name NullMove type check default true
option name MultiPV type spin default 1 min 1 max 100
option name Threads type spin default 1 min 1 max 512
option name AlwaysFullPv type check default false
option name Contempt type spin default 0 min -100 max 100
option name NeverClearHash type check default false
option name HashFile type string default hash.hsh
option name SaveHashtoFile type button
option name LoadHashfromFile type button
uciok
User avatar
hgm
Posts: 28519
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Elements of the ULTIMATE Chess GUI?

Post by hgm »

Note that saving and restoring the hash in itself is not sufficient for restoring the complete engine state; it would still be like you aborted and then restarted the analysis.

But the main point is really that this isn't a GUI feature and doesn't require special GUI support. Controlling it through the engine options seems as good as any other method, and that is how it already works.
sovaz1997
Posts: 292
Joined: Sun Nov 13, 2016 10:37 am

Re: Elements of the ULTIMATE Chess GUI?

Post by sovaz1997 »

hgm wrote: Mon Apr 01, 2019 11:33 am Note that saving and restoring the hash in itself is not sufficient for restoring the complete engine state; it would still be like you aborted and then restarted the analysis.

But the main point is really that this isn't a GUI feature and doesn't require special GUI support. Controlling it through the engine options seems as good as any other method, and that is how it already works.
I agree. If the OS does not give the opportunity to freeze the process and maintain its state, then this should be provided to the engine itself.
Therefore, my idea with background tasks will not work as I would like. At the same time, if this option will be included in the standard, it will be very good. But at the moment it is only needed for debugging the engine, as I understand it.
Zevra 2 is my chess engine. Binary, source and description here: https://github.com/sovaz1997/Zevra2
Zevra v2.6 is last version of Zevra: https://github.com/sovaz1997/Zevra2/releases
sovaz1997
Posts: 292
Joined: Sun Nov 13, 2016 10:37 am

Re: Elements of the ULTIMATE Chess GUI?

Post by sovaz1997 »

Well, I started to make GUI design. I am not a designer. Criticism is needed. This is only the first attempt (and then unfinished). I will improve the design according to criticism. Also, I will be glad if the designers suggest which literature is better to read on the subject of design.

Image

P. S. It seems to me too many shadows. But perhaps there are some architectural problems. Also, ideas on program features are welcome.
Zevra 2 is my chess engine. Binary, source and description here: https://github.com/sovaz1997/Zevra2
Zevra v2.6 is last version of Zevra: https://github.com/sovaz1997/Zevra2/releases
User avatar
hgm
Posts: 28519
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Elements of the ULTIMATE Chess GUI?

Post by hgm »

There doesn't seem to be much interest...

I guess the point is that it doesn't really seem to do anything other GUIs don't do already. It just presents it in a slightly different way on the screen. Which some people will like, but most others won't, as this is purely a matter of taste, an many tastes are possible, each having their own favorites.
sovaz1997
Posts: 292
Joined: Sun Nov 13, 2016 10:37 am

Re: Elements of the ULTIMATE Chess GUI?

Post by sovaz1997 »

hgm wrote: Wed Apr 03, 2019 10:27 pm There doesn't seem to be much interest...

I guess the point is that it doesn't really seem to do anything other GUIs don't do already. It just presents it in a slightly different way on the screen. Which some people will like, but most others won't, as this is purely a matter of taste, an many tastes are possible, each having their own favorites.
Probably yes. Because while we need more ideas, I think.
Zevra 2 is my chess engine. Binary, source and description here: https://github.com/sovaz1997/Zevra2
Zevra v2.6 is last version of Zevra: https://github.com/sovaz1997/Zevra2/releases
Dann Corbit
Posts: 12885
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Elements of the ULTIMATE Chess GUI?

Post by Dann Corbit »

There are lots of things that chess GUIs do not do that I need them to do.
They don't teach me how to play better.
They do not take millions or billions of analyzed EPD records or chess games with annotation and then minimax it (using a chess engine to fill in the holes where data is missing).
They do not analyze games and bare EPD records and produce standardized EPD with the annotation of the analysis attached to the EPD records.
They do not show strategy.
They do not have good statistical information.
They do not store their chess information in a real database (one that I can manipulate with SQL, though the chess systems that use CQL are interesting)
They do not store chess engine configuration information in a database.
They do not graphically display the best place to move chessmen as a function of statistics.

Quite frankly, I have been tempted to make my own, but I find that I can get by with the various utilities I have created so I am not motivated enough to do it.

Even more so, I think it would be great for beginners to have better tools.
Imagine, for instance, a GUI that would show a raw beginner how to win with a king and a rook against a bare king by explaining the process graphically (showing the attacked squares and the little wall that the king makes)
Then take it up a little notch and explain how to win with two bishops (graphically demonstrating how they can force the king into the corner and mate).
One more notch to graphically explain the KBN vs k checkmate.

In my view, chess GUIs are woefully inadequate systems that show you a picture of the GM players and will scroll through a game.
They have been able to do that for 20 years, and have not advanced much.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
Dann Corbit
Posts: 12885
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Elements of the ULTIMATE Chess GUI?

Post by Dann Corbit »

sovaz1997 wrote: Fri Mar 29, 2019 4:23 pm Ok, at this stage, I see 5 modules:

+ Analysis
Analysis module Allows you to view PGN-files, view games, analyze them with engines, comment.
And EPD records. Saving the analysis in a database. (Hopefully accessible with both SQL and CQL).
+ Testing
Module testing chess engine. Allows you to flexibly set test parameters (for example, SPRT testing or testing with a fixed number of games), the ability to set the testing queue, the ability to pause testing.

+ Tournament
Creating tournaments engines with different modes. Also, the generation of Web-pages for broadcast tournament on the network.

+ Playing
Game Mode. Ability to play against the chess engine or against yourself.

+ Learning (optional)
Learning mode. The ability to create interactive books on chess.

Are these modules enough? Or can some of them be combined, and some divided? Write your suggestions. When we select the modules, it will be possible to start working each separately.
Teaching. That is the most important task, and is missing from all of them.
And, no, playing a video that came with the chess database does not count.
white-knight-first-twenty-ply-winning.png
black-knight-first-twenty-ply-winning.png
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.