Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GTP support and debug #49

Open
promindsd opened this issue Feb 28, 2021 · 4 comments
Open

GTP support and debug #49

promindsd opened this issue Feb 28, 2021 · 4 comments

Comments

@promindsd
Copy link

promindsd commented Feb 28, 2021

Hello there,
I do like your q5go very much but, in my opinion it should provide a better GTP support.
I do use and test tens of go engines and I would like to use them with q5go, unfortunately it seems your program is not providing much help in debugging gtp engines.
For example, in case a GTP transaction fails for any reason, you simply get a "Invalid response from GTP engine" message without knowing why it failed. This makes GTP debugging very difficult. I would like to suggest a change in GTP_Process::default_err_receiver (src/qgtp.cpp) like so:

void GTP_Process::default_err_receiver (const QString &error)
{
    QString errMsg = "Invalid response from GTP engine: ";
    
    errMsg += error;
    
    m_controller->gtp_failure (this, tr (errMsg.toLatin1()));

    quit ();
}

You would at least know what was the invalid response from the GTP engine and fix it. And it would also be VERY helpful to know why the "GTP process exited unexpectedly" which is shown in case a "who knows why" error is happening with a GTP engine.

Another thing I would love to see, and for the very same reason about GTP debugging, is to have a window with the whole GTP transaction and log. I see this log window is opened at the moment of the engine startup and then it is closed: Why don't you add an option in order to have this window always open and showing the whole communication with the engine?
It would immensely help to track and debug any GTP engine without the need of using another program offering this useful feature.

I truly like your program, also because it was written for Qt, and it would be GREAT if it would have a better GTP integration and logging. I also find sometimes difficult to use q5go when connecting to GO servers: it connects to the service but it will not show anything, no rooms, no games, no users, just an empty window.

Despite of that, this is a very good program which could replace all the other ones around and offering an "all in one" solution, from playing with a GTP engine, to connecting to a server, analyzing games and learning the game.

@bernds
Copy link
Owner

bernds commented Mar 2, 2021

I've added a menu item to the board window to show the message dialog for the analyzer, that's something I had on my to-do list. But on the whole the program is intended for end-users who have working GTP engines installed. But there's nothing to stop you from adding patches locally like the one you posted.

The server problem is not something I've seen or heard of before. Does that happen with IGS?

@promindsd
Copy link
Author

I will be waiting for this new menu item to be released. It is a pity, however, you are not considering a better support for GTP messages: this would make your program more complete solution for every WeiQi/Go/Baduk enthusiast.
For example, in case you send an unsupported GTP command you just get a generic error message and this does not help at all to understand why the engine failed. And the GTP transaction window would certainly help, not to mention to check the whole engine activity.
As for the IGS, I am using igs.joyjoy.net, port 7777: q5go says it connects to the server but no information, games, players are shown in the window.

@bernds
Copy link
Owner

bernds commented Mar 2, 2021

No need to wait, you can just pull the repo again.
The program shouldn't be sending unsupported GTP commands. There's a list of required ones and we check the others with known_command. In case of an unexpected error, it should be good enough to be able to show the messages dialog.
Do you have an account set up on the server or are you trying to connect as guest?

@promindsd
Copy link
Author

I pulled from the repo and I see the windows only reports the analyzer's activity but not of the engine.
As for known commands, I see it sometimes sends "time_settings" (as well as other commands) also in case it is not supported by the engine.
As for IGS, I am using my account and the status bar says is connected to the server but the window (player list) is empty.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants