The project I’m working on at the moment is an open-source, open-protocol Go server. Basically, that means that anybody could write a program to connect to this server to play Go. At the moment, most servers don’t allow this—you have to use their program to connect, and if there are features you want that their program doesn’t have, you’re out of luck.

It’s a bit strange testing this server, however, because I’m not actually writing my own program to connect to it. Instead, I’m using somebody else’s program that speaks a different protocol (the “Go Text Protocol”), and writing a thin wrapper that translates GTP to my server’s protocol.

In the end, it seems really odd, because in essence I’m writing an extra bit of logic between two programs—that, by themselves, could talk to each other just fine—just to add my new server in between and make sure it works fine. In the end, of course, this will be great because other programs that couldn’t normally talk to each other will be able to because of my server. But in the meantime, it’s more than a little strange to be looking at these odd conversions back and forth that seemingly could be all stripped away without any change in behavior.

Leave a Reply