Computer Go Server

    Keywords: Software, Tournament, Online Go

The Computer Go Server was setup to allow computer go programs to play 9x9, 13x13 and 19x19 games 24/7 with games being organized automatically by the server.

The server is located at [ext] http://cgos.boardspace.net . Games are played at 5 minutes per side for 9x9, 10 minutes for 13x13 and 20 minutes for 19x19.

A CGOS wishlist contains topics found on the mailing-list. An alternative client for connecting to CGOS is available at [ext] http://cgos.sourceforge.net/client-python/

Here is a list of the programs that play on the server. If you are the author, please tell us a little bit about your program.

Table of contents

9x9 Programs

This was the original purpose of the server, to provide a proving ground for 9x9 Go. The games are played at a time control of 5 minute sudden death.

Author: Stoney Ballard, Todd Johnson, Markus Enzenberger - Language: C/C++ - Desc: AmiGo was one of the first Go programs publicly available with source code. Original Pascal code written by Stoney Ballard in 1983 and posted to USENET; ported to C and the Amiga by Todd Johnson in 1989; GTP interface and CGOS ruleset added by Markus Enzenberger in 2007. Source is available at [ext] http://www.cs.ualberta.ca/~games/go/software/gtpengine/
  • AverageLib?
Author: Martin Müller - Language: C++ - Desc: Simple algorithm that maximizes the average number of liberties per block. Opponent blocks count negative. Stops playing when territory is statically safe. Source is available in the Fuego SVN repository [ext] http://fuego.sf.net
Author: Hiroshi Yamashita - Language: C++ - Desc: Latest version of Aya. Aya uses selective full board search up to 9 plies in 9x9. Search is extended 2 plies when horizon effect occurs. Evaluation function includes string capture search and connections search up to 5 plies(5 plies is 80 rating points stronger than 9 plies version because of fast evaluation function.). Eye recognition and group life and death are static, Usually it runs on Opteron 248. [ext] http://www32.ocn.ne.jp/~yss/
Author: Rémi Coulom - Language: C++ - Desc: Monte-Carlo program. [ext] http://remi.coulom.free.fr/CrazyStone/
  • FatMan?
Author: Don Dailey - Language: C - Desc: An older version of Lazarus playing at a fixed level - designed to be a stable presence on CGOS with a fixed rating of 1800.
Author: Edward de Grijs - Language: C - Desc: Monte Carlo program
Author: Tim Foden - Language Java - Desc: Monte Carlo. Currently in the very early stages of development.
Author: Markus Enzenberger, Martin Müller, et al., Computer Go group, University of Alberta - Language: C++ - Desc: UCT with MoGo-style enhancements. Source is avaliable at [ext] http://fuego.sf.net
  • GGMC Go
Author: Hideki Kato - Language: C - Desc: Monte Carlo with UCT. Support both PC and Sony Playstation 3 (Cell BE). Source code is avilable at [ext] http://www.geocities.jp/hideki_katoh/.
  • gnugo-CVS?
Author: GNU go dev team - Language: C - Desc: This will always be a current GNU Go version, run by Arend Bayer. Default level 15 on a Pentium-M 1.4 GHz.
  • goanna
Author: Joel Veness - Language: C++ - Desc: A simple monte-carlo based program under active development.
Author: Richard Lorentz, et. al. - Language: C - Desc: A Monte-Carlo based program being developed at Cal State Northridge, largely through the efforts of student work.
  • Gomorra
Author: Lars Schäfers and team

Very fast playouts. gom_* on CGOS.

  • Goober
Author: Thomas Lavergne - Language: ansi/C
Desc: An MonteCarlo engine using UCB1-tunned/RAVE with heavy playouts. Current version doesn't have pondering neither time control so it start by doing lots of playouts for each play and reduce in as the game progress. Code will be released soon under MIT licence, as soon as I have finished code cleanup.
  • greenpeep
Author: Chris Rosin - Language: C - Desc: UCT with MoGo-style enhancements, and playouts guided by patterns extracted from offline self-play
Author: Jason House - Language: D - Desc: Different variations of basic MC play. UCB variants use 1 ply UCT. Shuff variants are also 1 ply and use a uniform simulation policy with monte carlo transposition reuse.
  • libEGO-v0.115-100k?
Author: Łukasz Lew - Language: C++ - Desc: Library of effective GO Routines, avaliable at www.mimuw.edu.pl/~lew. Pure light MC + UCT - 100k playouts per move.
  • lingo
Authors: Zhiqing Liu at Beijing University of Posts and Telecommunications - Language: C++ - Desc: UCT and other published algorithms.
Authors: Ben Lambrechts and Fuego programmers - Language: C++
  • mfgo12-date-nc or mfgo12-version-nc
Author David Fotland, Language C, Description: Engine shipping in The Many Faces of Go version 12 as of that date. UCT search using Many Faces of Go's knowledge and fairly light playouts. nc indicates the number of cores.
Autor Frank Karger, Language C++, Description: MyGoFriend is a MCTS program with typical extensions.[ext] http://www.mygofriend.com/
  • pachi
Author Petr Baudis, Language C. Description: Open source framework with engine using UCT/MC 3x3 patterns, etc.
  • Pebbles
Author Brian Sheppard. Description: Based on UCT and RAVE, using only published algorithms
  • StoneGrid?
Author ? - Language: C++ - Desc: MC/UCT/RAVE hand coded patterns around 3x3, avoid "bad" self-atari moves, detect big eyes (nakade), absolute live and death analysis (benson's algorithm)
Author Folkert van Heusden - Language: Java - Desc program still in its infant stage. The goal is to write a Go program which does not use the regular algorithms (like montecarlo).
  • ToGo
Author: T To - Language: C++ - Desc: A MCTS-based program, using RAVE, basic Mogo 3x3 patterns and hand-written Go knowledge.
  • Troisgro?
A version of Mogo running on a cluster from Bull (32 octocores at 3 GHz with Infiniband interconnect.)
  • tryinguct?
Author David Fotland, Language C, Description: Basic UCT, simple move ordering, a few hand-selected 3x3 patterns, similar to Mogo's in playouts, Uses RAVE and progressive unpruning. Runs on 2.3 GHz Core Duo, 1 CPU.
Author: Magnus Persson - Language: Delphi - Desc: A MCTC program that uses AMAF and very heavy handwritten playouts.
  • Zen
Author: Yamato - Language: C++ - Desc: Monte-Carlo with patterns
  • Zoe
Author : Ivan Dubois - Language : Java - Desc : A UCT based program in Java. Playouts are guided by some hand crafted rules (like avoid self atari, etc). Currently uses AMAF (All Moves As First) information to prune moves from the tree. Highest rating achieved on cgos is 2053 elo.

The CGOS Basic UCT Bots list shows nicks and exact parameters of various basic UCT implementations.

19x19 programs

The server now supports 19x19 programs, playing at a time control of 20 minutes sudden death.

Two weaker versions are also playing: Aya1PO6 and Aya1PO
Aya1PO is one heavy playout. It uses 3x3 pattern and Remi's pattern methods(distance previous and edge). Only interesting features are territory and attaching life and dead stones. Playing neither territory, and next to opponent live stones are high. [ext] http://www32.ocn.ne.jp/~yss/pattern.html (in Japanese)
Aya1PO6 uses string capture search and group life and death. AyaMC is a monte-carlo and UCT program. It is already stronger than old Aya unfortunately. I hope someone will beat MC by classic program...
  • erica19?
the active bot is named "CS-8-26-2CPU".
  • GNU
experimental version of GnuGo (?)
the 1800 rating anchor. It plays at level 10.
A program by Gian-Carlo Pascutto, author of the strong chess program Sjeng. Both single- and dual-thread versions are competing. [ext] http://www.sjeng.org/leela
A program by Ben Lambrechts.
  • mfgo-11
Author: David Fotland - Language: C - Desc: This is The Many Faces of Go, version 11. It uses a rule and pattern based move generator. It does one ply search on about 20 moves on the full board, with a local quiescence search and a smart but very slow evaluation function. The evaluation function does many local searches, so the program only does a few hundred full board evaluations per move played.
A weaker version, mfgo-11-level1, is also participating.
  • mfgo12exp-xxx
Author: David Fotland - Language: C - Desc: These are devlopment versions of The Many Faces of Go, version 12. They use the Many Faces 11 move generators, evaluation function, and quiescence search, but with an alpha-beta full board search. The seach uses iterative deepening, partial ply extensions, transposition table, and null move.
The move generator is rule and pattern based. It does a highly pruned search with 20-40 moves at the first play, up to 10 moves per ply during the main search, and a few moves per ply during quiescence.
The evaluation function does local search, so it only evaluates 50 positions per second in the middle game and about 500 positions per second in the endgame. The main seach is typically 2 or 3 ply in the middle game and 6 ply in the endgame on CGOS (running on one processor of a 2.3 GHz CoreDuo?).
  • mfgo12-date-nc or mfgo12-vers-nc
Author David Fotland, Language C, Description: Engine shipping in The Many Faces of Go version12 as of that date. UCT search using Many Faces of Go's knowledge and fairly light playouts. nc indicates the number of cores.
  • MoGoRel3?_100Tree
This is the MoGo for Linux that is available from [ext] http://www.lri.fr/~gelly/MoGo_Download.htm run with this command line: mogo --19 --limitTreeSize 100 --playsAgainstHuman 0
  • MoGoRel3?_1kTree2
Same as above, but with --limitTreeSize 1000
  • ptr = Isolated pattern player of Lithops
A program by Ben Lambrechts.
  • Suzie
Author: Peter Woitke and Chrilly Donninger - Language: C. Suzie is a chess program that plays the game of go. It is based on alpha-beta search with iterative deepening, ply extensions, quiescence search, null-move pruning, null-window pruning and multi-cut pruning. Suzie uses a MoyoGo-like shape generator to hardprune away "useless" moves, and the search becomes purely "local" beyond a certain depth. The position evaluation function uses tree-search for tactical stability and to resolve small semiai. Suzie reaches about 3000-7000 positions evaluations/sec on 9x9, and 1000-3000 on 19x19. With the aggressive hard- and softpruning techniques applied, Suzie reaches a search depth (without extensions) of 6-8 on 9x9 (5min) and 4-6 on 19x19 (20min).

Historical 9x9 programs (not recently active)

Author: Don Dailey - Language: ? - Desc: Fixed 1500 ELO rating. This is an older version of Don Dailey's botnoid program (a monte carlo style Go program which generates moves by simulation.) Botnoid uses the same engine in Ogo, a Go playing program for Palm Os. AnchorMan does 5000 simulation to generate a move.
  • antigo
Author: Dave Hillis - Language: C - Desc: program using machine learned patterns and a coevolved artificial neural net. Plays as antbot9x9 on KGS.
  • Brown?
Author: Gunnar Farneback - Language: C - Desc: Random but not terminally suicidal player. Source code at [ext] http://www.lysator.liu.se/~gunnar/gtp/brown-1.0.tar.gz.
  • Chuk
Author: Seo Sanghyeon - Language: Python - Desc: In flux. You can see the latest source here: [ext] http://sparcs.kaist.ac.kr/~tinuviel/chuk/
  • ControlBoy?
Author: Don Dailey - Language: ? - Desc: Same program as AnchorMan but without a fixed rating to measure rating convergence and drift.
  • CrazyRandom?
Author: Rémi Coulom - Language: C++ - Desc: Random player used in the random simulations of CrazyStone (see below)
  • Disco
Author: Mark Dufour - Language: Python/Shedskin - Desc: An implementation of UCT-RAVE without expert knowledge, used to demonstrate the benefits of the Shedskin Python-to-C++ compiler.
  • Dimwit
Author: Álvaro Begué, John Tromp - Language: C++ (1763 lines and counting)- Desc: UCT with adaptive MC.
  • DtlGo?
Author: DeepThought Lab - Language: C++ - Desc: Monte-Carlo based program using UCT algorithm as the search tree. [ext] http://weiqi.driftbottles.com.
  • DumbTactic?
Author: David Silver - Language: C++ - Desc: Simple algorithm that tries to extend/reduce liberties. Plays the following, in priority order: 1. If own group has single liberty, play there 2. Amongst opponent groups without two eyes, find the one with the least libs, and fill the one with the most second order liberties. If there is a tie pick one at random. 3. Make a random move that doesn't fill own eye 4. Pass. Stops playing when territory is statically safe. Source is available in the Fuego SVN repository [ext] http://fuego.sf.net
  • Explorer?
Author: Martin Müller - Language: C++ - Desc: [ext] http://www.cs.ualberta.ca/~mmueller/cgo/explorer.html
  • ggexp
Author: GNU Go dev team - Language: C - Desc: Latest development version of GNU Go with a bunch of experimental patches.
  • GNUGo-2.0
Author: GNU go dev team - Language: C - Desc: GNU Go 2.0. This is an ancient version of GNU Go. Probably could be called as a next version after Liberty 1.0. Runs under meta-engine that does dead stone removal (GNU Go 3.6) and super-ko checks (SimpleGo).
  • GNUGo-1.2
Author: GNU go dev team - Language: C - Desc: GNU Go 1.2. This is an ancient version of GNU Go. Runs under meta-engine that does dead stone removal (GNU Go 3.6) and super-ko checks (SimpleGo). Initially didn't have 9x9 support.
  • gnugo_3.7.4
Author: GNU go dev team - Language: C - Desc: Recent development release of gnugo.
  • gnugo1.7ghz
Author: GNU go dev team - Language: C - Desc: ?
Author: Richard Lorentz, et. al. - Language: C - Desc: A GoJin branch.
  • Gonzo
Author: Peter McKenzie? - Language: Java - Desc: A chess program that plays Go.
  • GoTraxx?
Author: Phil Garcia - Language C# 2.0 - Desc: Experimental Open Source Go Engine. [ext] http://www.gotraxx.org
  • I41Welcome
Author: Alistair Turnbull - Language: Java - Desc: Prototype of a new Monte-Carlo algorithm based on local patterns. Slow compared to UCT-RAVE, but competitive with it, at least in the case of no expert knowledge.
Author: Aloril - Language: Python - Desc: Uses part of SimpleGo engine (version 0.0 + changes). Source code at [ext] http://cvs.sourceforge.net/viewcvs.py/londerings/go/simple_go/ (idiot_bot.py)
  • Influence
Author: Martin Müller - Language: C++ - Desc: Simple influence based algorithm. Counts surplus liberties of all blocks above 2 (penalty for less than 2 liberties) and adds value of a simple influence function. Stops playing when territory is statically safe.
  • Irene
Author: Bruno Bouzy - Language: C++ - Desc: Experimental version of Indigo on 9x9. Uses UCT and pseudo-random simulations.
  • Lardo
Author: Don Dailey - Language: ? - Desc: an implementation of simple rules proposed by Doug Larson (via David Fotland): 1) If I have a one stone block with one liberty, add a stone to it. 2) Pick the enemy block with the smallest number of liberties, and play in the liberty with the most adjacent empty points. 3) play a point at random, that does not fill my own point eye.
Author: Don Dailey - Language: C - Desc: Lazarus is a modern UCT based program. The Monte Carlo portion of Lazarus search is directed by a small amount of additional intelligence as opposed to uniformly random.
  • Liberty-1.0
Author: GNU go dev team, Daniel Bump - Language: C - Desc: Liberty 1.0. This is an ancient GNU Go 1.2 fork. Runs under meta-engine that does dead stone removal (GNU Go 3.6) and super-ko checks (SimpleGo). Initially didn't have 9x9 support.
  • LibRatioAtari?
Author: Aloril - Lanaguage: Python - Desc: Scores moves using size * liberties / (size * 2 + 2) and doing some atari checks.
Author: Gunnar Farneback, slightly modified by A.Baeckeroot- Language: C - Desc: very experimental Monte-Carlo on top of GNU Go 3.7.9.
Author: Sylvain Gelly, Yizao Wang - Language: C++ - Desc: Monte-Carlo based program using UCT algorithm as the search tree. Bringing UCT algorithm to computer go was the main motivation of writing MoGo.
  • MoonGo?

Public version of MoGo. Running on an old, single core AMD Sempron 2600+.

  • MyGoBot?
Author: Phil Garcia - Language C# 2.0 - Desc: Experimental Go Engine.
Author: Markus Enzenberger - Language: C++ - Desc: [ext] http://www.cs.ualberta.ca/~emarkus/neurogo/ This is the version used at the Computer Olympiad 2006. To increase variety, the first two moves are selected randomly from points which are not on the first or second line and not adjacent to a stone. NeuroGo-1ply uses a depth-one search. Otherwise it uses an iterative deepening search. The search depth depends on the hardware it runs on and is at least three on an Athlon XP 2800+. If the hardware is defined, it will be appended to the login name (A64_3400=Athlon64 3400+).
  • Pass
Author: Aloril - Language: ? - Desc: Always passes. Reveals interesting amount of stuff from opponents it plays against. Will be mostly offline.
  • PythonBrown?
Author: Aloril - Lanaguage: Python - Desc: Should be semantically equivalent to Brown, except it checks for super-ko. Random but don't fill single space eyes unless adjacent block is in atari. Intention is to keep this offline when Brown is online.
  • Random
Author: Aloril - Lanaguage: Python - Desc: Random player with source available here: [ext] http://londerings.sourceforge.net/go/simple_go/0_0/ (play_gtp.py) This selects move randomly from legal moves including pass move so it can even pass as first move. Usually it starts passing only near end.
  • Random_UCT
Author: Aloril - Lanaguage: Python and C - Desc: UCT which reasonable random games including eye filling and passing moves, source code: [ext] http://londerings.cvs.sourceforge.net/londerings/go/simple_go/random_uct.c?view=markup It might violate super-ko during random games but otherwise should be close to what Random is.
  • randomGo
Author: Hellwig Geisse - Language: C - Desc: Just an experiment to test the GTP machinery. Source code: [ext] http://homepages.fh-giessen.de/~hg53/go/randomGo.tar.gz. Here is a little bit of information about RandomGoMoveSelection.
  • ReadyToGo
Author: Don Dailey - Language: C - Desc: The stand-by player used to fill in when an even number of opponents is needed. ReadyToGo is the same program as AnchorMan but running much weaker (doing 512 simulations.)
  • Resign
Author: Aloril - Language: ? - Desc: Always resigns. How low can rating go? Almost always offline.
  • ri_gnugo_3_7_10
Author: GNU Go dev team - Language: C - Desc: Out-of-the-box GNU Go 3.7.10
Author: Aloril - Language: Python - Desc: Version 0.2.8 + dead removal enabled of SimpleGo with source available here: [ext] http://londerings.sourceforge.net/go/simple_go/0_1/ (play_gtp.py)
Author: Aloril - Language: Python/C - Desc: Version 0.4.X of SimpleGo with source available here: [ext] http://cvs.sourceforge.net/viewcvs.py/londerings/go/simple_go/(play_gtp.py) In addition uses GNU Go libboard.
Author: David Doshay and the SlugGo team - Language: C - Desc: Meta-engine using GnuGo on a cluster of OS X Mac computers
Author: John Nixon - Language: C++ - Desc: Monte Carlo program under active development. Also plays on KGS.
Author: Alain Baeckeroot - Language: C - Desc: dev version of the meta-engine. run at level 12
Author: Alain Baeckeroot - Language: C - Desc: meta-engine using gnugo-3.7.8. Stable, run at level 12.
  • Uct
Author: Markus Enzenberger and Martin Müller, Computer Go group, University of Alberta - Language: C++ - Desc: UCT with MoGo-style enhancements. Later renamed to Fuego. Source is avaliable at [ext] http://fuego.sf.net
  • Viking5_noGDB
Author: Magnus Persson - Language: Delphi - Desc: Viking5 with no opening data base.
Author: Magnus Persson - Language: Delphi - Desc: see Viking.
  • Wally?
Author: William H. Newman - Language: C - Desc: A version of Wally modifed to use gtp and play the first 4 moves randomly (but not on edges.) Source code available here: [ext] http://www.britgo.org/downloads/wally.zip.
  • WeakBot50k?
Author: Aloril - Language: Python - Desc: Version 0.1.6 + dead removal enabled of SimpleGo with source available here: [ext] http://londerings.sourceforge.net/go/simple_go/0_1/
  • wmarkhamMC
Author: Weston Markham - Language: C++ - Desc: A simple Monte Carlo Go program. May change over time as I fix bugs, tune, and generally make improvements.
  • wmarkhamPatty
Author: Weston Markham - Language: C++ - Desc: Designed to quickly rank moves via pattern matching, and always selects the "best" move. Fast. No lookahead. Nearly deterministic.
  • wmarkhamTerry
Author: Weston Markham - Language: C++ - Desc: Plays to optimize an evaluation function that predicts the eventual status of each point based on its local neighborhood. Looks ahead two moves.
  • wmarkhamTricia
Author: Weston Markham - Language: C++ - Desc: Deeper search of "terry" evaluation function, using move ordering according to "patty". May change over time due to tweaking/retraining.
  • Yellow
Author: Gunnar Farneback - Language: ? - Desc: Anti-random bot. See: [ext] http://www.lysator.liu.se/~gunnar/gtp/random_go_challenge.html
  • ZenBot?
Author:Dave Hillis - language Om: - Desc: Doesn't try to win, doesn't try to play, in fact, it doesn't even try to connect, but enlightenment may be found from contemplating the moves it doesn't make. Created as a public service in hopes that by establishing the metaphysical nadir, other authors will be freed to resume the pursuit of _better_ performance. Oh, and I hope you weren't expecting to be just handed a link to The Source.

Historical 19x19 programs (not recently active)

  • goala INACTIVE
experimental version of MoGo (?)

Viewing games the programs play on CGOS

Goto [ext] http://cgos.boardspace.net, and download cgosview.

If you have problems, try [ext] http://computergo.wikispaces.com

To view 9x9 games run: cgosview.exe cgos.boardspace.net 6867
To view 13x13 games run: cgosview.exe cgos.boardspace.net 6813
To view 19x19 games run: cgosview.exe cgos.boardspace.net 6819

(Of course there are also non-MSWindows programs available)


Computer Go Server last edited by 82.67.178.146 on June 27, 2012 - 11:56
RecentChanges · StartingPoints · About
Edit page ·Search · Related · Page info · Latest diff
[Welcome to Sensei's Library!]
RecentChanges
StartingPoints
About
RandomPage
Search position
Page history
Latest page diff
Partner sites:
Go Teaching Ladder
Goproblems.com
Login / Prefs
Tools
Sensei's Library