Sylvain GELLY's Home Page
Download MoGo
Important note: please do NOT distribute without permission. Please link to this page instead.
- Linux:
- Windows: MoGo on windows (Unfortunately MoGo supports only 1 processor on windows, and is also 30% slower)
- Mac OS: Coming soon
Installation and use instructions
If you don't have a go front-end yet, install one, e.g.
GoGui, Drago (Windows), qGo (need Version >= 2), or the numerous free Go front-end.
- Uncompress MoGo package: tarball on Linux and Mac (use tar xzvf MoGo_release3.tar.gz), zip file on Windows (use e.g. winzip).
- Under the program selection of your front-end, put the path to MoGo binary with the following options:
- "/path/to/MoGo/mogo --9 --time 12" : plays against MoGo with 9x9 settings, allowing 12 seconds per move
- "/path/to/MoGo/mogo --13 --time 12" : plays against MoGo with 13x13 settings, allowing 12 seconds per move
- "/path/to/MoGo/mogo --19 --time 12" : plays against MoGo with 19x19 settings, allowing 12 seconds per move
- "/path/to/MoGo/mogo --9 --totalTime 150" : plays against MoGo with 9x9 settings, giving 150 seconds for the whole game (see below)
- "/path/to/MoGo/mogo --13 --totalTime 300" : plays against MoGo with 13x13 settings, giving 300 seconds for the whole game (see below)
- "/path/to/MoGo/mogo --19 --totalTime 600" : plays against MoGo with 19x19 settings, giving 600 seconds for the whole game (see below)
- Other available options:
- --totalTime xx : tells MoGo than the game will have a total length of xx seconds, and let MoGo manage the time (dont mix with "--time xx"). Only relevant if you play with a frontend sending the GTP "time_left" command (e.g. if you set MoGo on KGS). MoGo only supports Sudden Death. Note: when the time left is < 20 seconds, MoGo will play randomly to avoid loosing by time.
- --nbThreads xx : use xx threads to think. Best is to match the number of threads with the number of core (Up to 8 supported).
- --pondering 1 : enabling pondering (thinking while you are thinking).
- --useOpeningDatabase 0 : disable opening database
- --collectorLimitTreeSize xx : limit the tree size to xx nodes. Attention: the number of nodes is less than the number of simulations. IMPORTANT: if it happens that the tree is too big and does not fit into memory, then your computer is likely to swap memory and you are going to experience huge slow down. Decrease this value if you have little memory (by default it is 400000 with --9, 200000 with --13 and 100000 with --19).
- --minNumberOfSimulationsOfResign xx : minimum number of simulation before considering resign. If you set it too low, MoGo can resign won games, but if you set it too high, depending on your time settings, MoGo will never resign, even if the game is completely lost! (default value: 10000)
- --dontDisplay 1 : disable most of the output.
- --playsAgainstHuman 0 : prevent MoGo passing before there is no possible move left. Don't use it if you want to play against MoGo! However it is useful if you want it to play against other bots in a server which does not support "advanced" scoring.
Known issues and FAQ
- Important Note: MoGo plays with chinese rules and not japanese rules! If you afterwards count the score with japanese rules, you are cheating ;).
- "How can I read a line in the MoGo's log?": as an example is better than a long talk, this line:
0.619097(36%) || 9551/ 22932(42%)(75%)(24%/0.39) || 53 |14 || H10 O13 Q13 S13 S14 R14 R13 Q14 T14 ||SSP:H10 G12 J15 D13 T13 ||PSP:H10 G12 J15 D13 T13
Means: MoGo thinks he is winning with probability 61.9097%, the best move had 9551 simulations over 22932 total simulations, the deepest branch of the tree is 14, the principal variation is "H10 O13 Q13 S13 S14 R14 R13 Q14 T14", and the 5 prefered moves are "H10 G12 J15 D13 T13".
- "What is the level of MoGo?": all depends on the time you give to it. With very little time, it can be no better than random, and with infinite time, it plays perfectly! You are surely in between :-). Seriously, if it is too strong, give it less time. If it is too weak, buy a faster computer, give it more time, or play with handicap. Anyway, we did our best, sorry if it is still too weak :-p. On a fast computer it should be at about 3 dan on 9x9 and 3 kyu on 19x19.
- "MoGo plays on existing stones after undo.": While undo is supported, in some case (apparently when the program pass or resign) there is no more consistency between the real position and what the program believe. In such case, simply reattach the program (reload the program into the front-end).
- "I want to play japanese rules, but I can't. What option should I set?": MoGo only supports chinese rules.
- "MoGo continues playing after the game is over?": MoGo never consider a pass unless you pass first. If you think the game is over, simply pass. If MoGo does not pass it can mean two different things:
- if MoGo is winning, it is likely that some stone status is not clear enough, just clarify it. You can check the program logs to see which stone has an undecided status (a line such as: "nbTerritoriesUndecided: 357 (prob 153.333333). nbUnclearScores 300/300 = 1.000000 (black 0.556667). Dead strings uncertainty 0.193333 (D4 )" means that D4 has an uncertainty of 19.3333%, and that is the highest uncertainty of all stones).
- if MoGo is loosing, it is likely that the lower bound on simulations before resign is not reach, i.e. it does not have enough time to be sure it should resign. Simply change the option "--minNumberOfSimulationsOfResign " with a smaller parameter (default 10000).
- "MoGo does not understand well the status of that group on the corner?": it is a known weakness of MoGo on some situation that it does not read well the L&D status of a group in a corner. Sorry for that.
- "When I win, I kill everything, when I loose, I loose only by 0.5 point, is it normal?": That is not a bug, that is a feature! MoGo only cares about victory, i.e. if it wins it will play very secure moves, and usually win by 0.5 point. If it is loosing, it will try tricky moves, sometimes too obviously wrong, but for it, it is his best chance to win!
- "When I let MoGo think a very long time in a fixed position, the values begin to diverge!": This compiled version use the "float" type to keep its values, so it has quite limited precision. This is ok for "normal" time settings, but it is too limited for very long thinking times. You can try with the linux version "double precision".
- "I set the --19 option, but MoGo is playing on 9x9!": the options set the parameters of MoGo, but does not replace GTP. MoGo will listen to the GTP commands, and set the boardsize accordingly. The "default" boardsize is 9x9, but you should not care as your frontend should set the size anyway.