1 Pachi is a simple modular framework for robots playing the game of
2 Go/Weiqi/Baduk. The aim is to make it easy to plug your engine
3 to the common infrastructure and implement your ideas while
4 minimalizing the overhead of implementing the GTP, board tools, etc.
5 Also, there are premade random playout and UCT tree engines, so that
6 you can directly tweak only particular policies.
8 The infrastructure is optimized for speed to make it well suited
9 for bruteforce engines, however tradeoffs are made to make it useful
10 for heavier MonteCarlo playouts as well (e.g. real liberties are
11 tracked instead of pseudoliberties). If you are looking for raw
12 light playout speed, libEGO is better choice.
14 Pachi is under the MIT licence (close to public domain) so that as
15 many people as possible can use it. Some of the bundled engines
16 or policies might be under a more restrictive licence (GPL).
19 Currently, Pachi supports a simple idiotbot-like engine and an example
20 MonteCarlo-player with bits of optional domain-specific knowledge.
21 Also, example UCT engine is provided, reusing the same knowledge.
22 The infrastructure is pretty fast and it should be quite easy to extend
23 it to provide more facilities for your engine (but it should be at
24 the same time kept as simple as possible).
26 Pachi uses New Zealand scoring, currently. That means, it simply counts
27 the number of stones and one-point eyes of each color on the board,
28 plus komi and handicap correction.
30 New Zealand rules also mean that multi-stone suicide is allowed! If you
31 do not like that (basically if you want to pretend it plays according
32 to Chinese rules), you need to rule that out in your engine, currently.
33 The provided engines avoid multi-stone suicide.
35 New Zealand rules have positional superko. It is checked in every move
36 played, even during random playouts.
39 Also, Pachi supports only few GTP commands now. Most importantly,
40 it does not support the known_command and final_status_list commands.
43 To build Pachi, simply type:
47 Built zzgo binary (named that way from historical reasons) in the current
48 directory is a GTP client; use your favorite Go client to connect to it
49 (generally it should be possible to use it in place of GNU Go), or use kgsGtp
50 to connect to KGS. The zzgo binary can take some parameters.
52 To build better optimized binary, type:
56 This will also create binary zzgo, but while the build will take
57 more time (probably less than a minute anyway), the resulting binary
58 will be about 1/4 to 1/5 faster.