This javascript tool allows all bots/AI that support GTP (Go Text Protocol) to communicate with OGS (Online-Go.com Server).
After being configured, gtp2ogs is ready to work as-is, but it is also possible to customize it.
Being a bot admin on OGS means:
- you can put your bot online whenever you want
- choose settings to automatically accept or reject challenges (example: rank, board size, blitz/live/correspondence, etc.), or to control your GPU/computing device power spent (max number of simultaneous games, corrqueue, etc.)
- choose your bot-specific options (for example
-v 1600
for leela-zero, etc.)
The full tutorial has screenshots, examples, and detailed explanations for windows and linux.
You can see it here.
The "node.js" package is bundled with:
- node: to run gtp2ogs.js
- npm: (node package manager), to install gtp2ogs.
You can find operating system specific instructions below:
- for Windows, see the Windows Installation Guide
- for Linux, see the Linux Installation Guide
After installing gtp2ogs, we need to specify the settings. This is what we do with gtp2ogs options.
To set up an option in gtp2ogs, you need to enter it as a command-line argument.
Command-line arguments can be written in any order.
Some options are mandatory:
You can find all available options in OPTIONS-LIST.
After that, use a --
(with one space before and one space after the --
)
to separate gtp2ogs arguments from bot arguments.
Then specify your bot arguments.
All in all, general use is something like this:
node_executable path/to/gtp2ogs.js --username <yourbotusername> --apikey <apikey> [arguments] -- path/to/your/ai/executable [bot arguments]
In this example AI is PhoenixGo, but it works in a similar way for any AI.
The number of gtp2ogs options and of bot arguments is free.
node C:\Users\yourusername\gtp2ogs\gtp2ogs.js --apikey 5rg46ze84f68e4g6v4e4g68es4g8 --username somebot --debug --ogspv PhoenixGo --noclock --unrankedonly --minrank 1d --noautohandicapranked --maxhandicap 0 --boardsizes 19 --komis 7.5 --speeds live --maxmaintimelive 600 --maxperiodsliveranked 5 --maxperiodsliveunranked 10 --maxperiodtimeliveranked 60 --maxperiodtimeliveunranked 180 -- C:\Users\yourusername\PhoenixGo\mcts\mcts_main --gtp --config_path C:\Users\yourusername\PhoenixGo\etc\mcts_1gpu_beta.conf --logtostderr --v 1
node ~/gtp2ogs/gtp2ogs.js --apikey 5rg46ze84f68e4g6v4e4g68es4g8 --username somebot --debug --ogspv PhoenixGo --noclock --unrankedonly --minrank 1d --noautohandicapranked --maxhandicap 0 --boardsizes 19 --komis 7.5 --speeds live --maxmaintimelive 600 --maxperiodsliveranked 5 --maxperiodsliveunranked 10 --maxperiodtimeliveranked 60 --maxperiodtimeliveunranked 180 -- /home/amd2020/PhoenixGo/bazel-bin/mcts/mcts_main --gtp --config_path=/home/amd2020/PhoenixGo/etc/mcts_1gpu_beta.conf --logtostderr --v=1
Before you can play on official OGS server server, OGS admins will often ask that you run tests to make sure everything is running fine.
You need to do these tests in beta OGS server, by adding the option --beta.
When all testing is OK, you can remove the --beta
and play in the real OGS.
To avoid accidental misclicks while spectating a game from your bot account, see Submit-Move Button.
gtp2ogs has native support for showing ingame winrate and variations for some AI, see: --ogspv
- You may also use Issues to report issues.
- Contributing is most welcome, if you want to add features or submit fixes we'd be glad to review them with you and make gtp2ogs more awesome!
- You may also be interested in joining the Discord chat: in leela zero's #bots channel
This discord can also be useful if you want to have fast and quick, interactive chat, or ask simple and quick questions, however github issues are preferred for long problems because they leave a track that can be useful later)
You can find notes for developers here.