A new beta (beta 3) of kgsGtp is at http://www.igoweb.org/~wms/upload/ as before. Unless bugs are found, this will be the final version. It fixes some bugs in beta2, and it also knows how to play rated games on the server and prevent people from cheating it. You cannot use this yet, though! The current KGS server does not know about GTP clients, so it will not allow them to play rated! If anybody wants to test ranked games, let me know. I'm especially interested in the kgs-genmove_cleanup command, since the engine that I have doesn't use that command I couldn't test it very well. I can set up a beta version of server 2.5.6, then we can arrange a time for to connect and test.
The rules that I settled on for playing rated games are:
1. "Normal" accounts cannot play rated games via GTP, only via human players. 2. Admins can set an account to "Ranked Robot" authorization. With this authorization, the GTP engine can play ranked, and humans cannot. 3. A kgsGtp engine will refuse to start a new game with a player if there is already an unfinished rated games against that player. 4. To play rated games, an engine must support the final_game_status_list command. 5. The kgsGtp engine will refuse to play rated unless the rules of the game exactly match what is specified in the configuration file and/or command line. 6. If the engine and the human disagree on the status of living and dead stones at the end of the game, one of two things will happen: If the game uses non-Japanese rules and the engine supports the kgs-genmove_cleanup command, then the engine will recommend that the human press "undo", after which the engine will get kgs-genmove_cleanup commands until it passes. If the game uses Japanese rules or the engine does not support kgs-genmove_cleanup, then the engine will simply refuse to score the game unless the human agrees. 7. It is recommended that engines that play rated games support the kgs-genmove_cleanup command and play non-Japanese rules games. It is especially important that your engine support that command if it isn't so good at computing living/dead groups at the end of the game, otherwise you will get a lot of angry opponents left standing around in an unfinished game!
Do these look reasonable? I was trying to stop cheating both for the sake of the engine (so it gets an accurate estimate of its own strength) and for the sake of the users (so that it isn't easy to use engines to fake a different strength than you have).