About:

GNUGoS60 is a port of the FSF's GNU Go game engine to Nokia's S60 smartphone platform running on SymbianOS.

It is Free Software.

Wednesday, April 18, 2007

Internet Go Protocols

There seem to be 5 main protocols out there for playing go over the internet. They are:

  • GMP - Go Modem Protocol
  • GTP - Go Text Protocol
  • NNGS - No Name Go Server Protocol
  • IGS - Internet Go Server Protocol
  • KGS - Kiseido Go Server Protocol
GMP seems to have an open spec. The protocol is supported by some programs, but may be old by now, and my impression is that it may not be so popular anymore.

GTP seems to have replaced GMP as the default protocol that people implement in their Go game. I think it was implemented originally for Gnu Go. The GTP spec is open, as you'd expect.

NNGS
is a Go server, and has it's own protocol, but seems maybe this server is not really popular anymore, and not many sites run it. The source code is open, but the spec is not documented outside of the code. Seems there are many private variations of this as a result.

IGS is a popular go server, and their protocol is open-ish. At least there is a IGS protocol spec from them floating on the net, and seems many software implement the protocol. The spec says it's for implementing a client only, so no big problem I guess.

KGS is a popular go server, and their protocol seems closed. However Marc Lehmann has kindly reverse engineered and documented it, so there is an open KGS protocol spec available.

GTP and GMP are already implemented in GNU Go (though as a server rather than client), so it's probably fairly straightforward to implement them in GNUGoS60 as a client, though I am not entirely sure how useful that would actually be.

The other 3 would probably be harder to do, not least because you probably need to have more gui support also. Presumably they would be more useful for the average person though.

Anyway, lots to implement in standalone client before that though...