I’ve been learning to play Go lately. Like many people, I learned the rules when I was much younger and then forgot them due to lack of play. Growing up in America, Chess has always been the traditional game of strategy played by geeky sorts. (I’ll admit to being in chess club in junior high school.) Go has fulfilled that same role in much of Asia but has never taken off as much in America (or, I suspect, Europe). That said. it has a strong following these days and has been gaining popularity over the last few decades. After my childhood Chess days, I went on to role-playing games (Dungeons and Dragons) and various popular board and card games, continuing these, off and on, to this day. I haven’t played Chess much in many years though I do have a set or three around the house. I never really got into Go though.
Now, here I am decades later and a bit of a fan of many things Asian, though I already was as a child to some degree thanks to my mother’s love of Japanese culture, especially Toshiro Mifune. I’m a Zen Buddhist and, strangely, it is hard to be a Zen practitioner and not run into Go on a regular basis. In addition, there is a strange intersection of people who play Go and computer geeks. At least a few acquaintances of mine originally met playing Go. Because of this irregular exposure and a lifelong love of games, I’ve been wanting to really learn how to play.
The problem with learning Go, especially by yourself, is that the rules are deceptively simple and the game is amazingly subtle. It is easy to play bad chess and to start to get a feel for the different pieces and how they interact. You have to learn to see patterns in play by playing against a real person and getting a sense of what works and what doesn’t. It is additionally difficult to play go against a computer as there aren’t really good programs for it. Unlike chess, which various specialized supercomputers can play admirably well, there has not been a mastery of go exhibited by a computer program at this point. I gather that the game is a complex enough problem that computers are still relatively incapable of winning against a good go player (which I am not).
The end result is that you really need to play against people, as well as study existing games or perhaps read a few books on the matter. Since this is not an uncommon problem and people love to play, there are a variety of solutions.
You can join one of the many Go clubs, if you happen to have one in your area. Near where I live, the Berkeley Go Club has been going for a many decades. There is a regular meetup group for people who play in Oakland, as well. This provides for the ideal, which is in person play with people. (A longterm leader of the Berkeley Go Club was the original owner of the goban at the top of this post, which now resides at Ace Monster Toys.)
As a geek, though, I’ve found that I like online play. With some resources, you can play asynchronously, allowing each player to play a turn when ready without the other having to watch, or you can play simultaneously in a live match.
The dead simplest way to play online that I’ve found is Dave Peck’s Go, a simple webserver based system that allows you to play with single opponent and which will email each player when it is their turn. You can specify board size, handicap, etc., which is rather convenient. Like a real mensch, Dave even has his code for this up on GitHub so you can even run your own server if you want. This just requires a web browser and email, which makes it pretty easy, and allows for people to send moves and move on to other things.
The downside of the Dave Peck’s server is that it is a little clunky and only really works if you already have a designated player available (such as I did above). If you need to find an opponent because you don’t have a handy Go partner (or it is frustrating to play with only that person), there are places to go to find many other players.
For the real Go action, the place to…go…seems to be Pandanet, which runs the big “Pandanet Go Server.” There is a KGS Go Server as well but it requires you to run a Java client and friends don’t let friends run Java in their browsers (it is probably the #2 vector for attacks on your computer and should be disabled), leaving it out for me.
The Pandanet Go Server is an IRC-like application (you can watch text stream by in the console) that mediates Go games. This server has a number of very cool things going for it. Once you make an account, you can provisionally self-assign yourself a rank. (Did I mention that Go players are ranked by skill?) Once you play a 20 games against another ranked opponent in a conforming manner, your rank is set in the system. Pandanet’s server allows you to see a list of players who are connected to it, their official rank, and whether they want go play a game. This means that you can select an opponent of a suitable skill level to work on your play (or even a much more skilled player and play with a handicap) and actually advance your rank over time. You can record your games for later review and even send them to others. Additionally, you and others can observe the play of any games on the server, allowing you to watch (and review) the games of much more skilled players. All in all, this makes it an ideal environment in which to play Go if you aren’t going to do it in person.
The really cool thing about Pandanet’s server is that it is so ubiquitous that many people have written clients that can talk to the server. For OS X, which I normally run, there is Sente Goban, which is very nice even though not entirely open source. It is based on the Free Software Foundation’s GNU Go application, an open source (cough free software) project going back over 20 years (which hasn’t released a new version in three years now). Sente Goban is able to connect to Pandanet’s server, allowing me to log in and play games from my laptop. Pandanet offers their own older client, glGo (or here) but the OS X version doesn’t work anymore and I haven’t tried the Linux and Windows versions. Their officially listed client, GoPanda is another Java app that you shouldn’t run. They also offer the Panda Egg Go client for Windows.
The best way I’ve found to play on Pandanet is on a portable device. They have wonderful iOS and Android clients called “Panda-Tetsuki.” The clients have a lovely page with links to the various versions and they are available as free applications. I’ve embedded their video for the iPad client below and it is a great app.
As far as basic resources for learning to play Go, there are a number of decent ones online. You can download a free copy of the introductory book, The Way of Go by Karl Baker to get you started on learning the rules and play. There is also the somewhat clunky The Interactive Way of Go. Sensei’s Library also has a set of dedicated beginner’s pages. “ChiyoDad” wrote a delightful blog for a few years, ChiyoDad Learns Go about his adventures learning Go as well.