|Revision 0.12||17 Mar 2004|
Frequently asked questions about the gGo client.
What is gGo?
gGo is an editor for SGF files, a client for the Internet Go Server and an interface to play against GNU Go.
What is Go?
Go is an ancient and extremely fascinating board game which is very common in Japan, Korea and China. Since about a century Go is being played in the western world, too. The rules of Go are very simple, however the game is extremely difficult to master.
What is IGS?
IGS, the Internet Go Server, is an international server to play Go online with people from all over the world. IGS-PandaNet is the oldest and probably the largest server available. IGS-PandaNet is located in Tokyo and run by PandaNet. Please visit the IGS web page for further informations.
What are SGF files?
SGF, the Smart Game Format, is a commonly used format for several games including Go. SGF files are basically plain text. The game and moves informations are arranged within tags.
There are some other formats for Go games available, but SGF is the most common one. Other formats are UGF (used by PandaEgg) and XML (used by Jago). gGo can read UGF and XML games, but only save in SGF format. Maybe I will implement saving in UGF and XML in the future.
Since release 0.4.3 gGo can read Ishi format games. They usually have a .go file suffix.
How stable is gGo?
gGo is beta software. This means, it should run mostly stable and do what it is supposed to do, but has not all planned features implemented yet. From my own experience using gGo on IGS it works pretty well. As most features are now implemented, I will probably release gGo as stable software soon.
Is there a mailing list, forum or discussion group?
There is a gGo mailing list for public discussion. You find it here. You can read the archive online, but to post you either need to subscribe or wait until I approved your unsubscribed post. Why? Because I want to keep the spam out.
On which operating systems does gGo run?
gGo runs on any operating system that supports Java 1.3. This includes Linux, Unix, Mac OS X, OS/2 and Windows. gGo is developed on Linux, but I test it regularly on Windows as well. As I don't have a Mac myself, I cannot test it on OS X. But one of my main beta testers is running OS X, so I can make sure OS X is properly supported.
What do I need to run gGo? Which Java version? What is Java?
gGo is written in Java. Any Java application requires a Virtual Machine to run in. The virtual machine is included in the Java Runtime Environment (JRE) from Sun or IBM. You need to install a JRE 1.3 or higher to run gGo.
On Windows there usually already is Java preinstalled. But this Microsoft virtual machine is very old, version 1.1.whatever. gGo does not run on this. You need to install Java 1.3 or 1.4, which is not available from Microsoft. I recommend using Java 1.4 from Sun.
Java is a modern programming language. As Java programs are not compiled into native code like C++ programs, but run inside a virtual machine, Java application can run on many operating system. I chose Java for exactly this reason, to offer a Go client that is available on Linux, Macintosh, Windows and more. I did not want to write yet another Windows client. Java is generally somewhat slower than native programs which only run on Windows or Linux, but that is the price for getting a platform independent program. However, we are talking about a Go client, not Quake. So the speed difference does not matter too much.
Which of those installers should I download?
I offer several installers for the various operating system. You get the same gGo program with all of the installers, only the way how Java and gGo are started differs.
The command line freaks can download the gGo.jar file and run it manually. However, some extension libraries which are included in the installers will be missing. gGo will run, but the themes and manual won't be available.
How do I get Japanese, Chinese or Korean fonts working?
gGo uses logical fonts to guarantee the platform independent usage of all the fonts. Basically you can install and use any font you wish. To get Asian fonts displayed, you need to do the following three steps:
How do I input Japanese, Chinese or Korean characters?
You need to install and use an input method for your operating system. gGo does not include an own input method.
On Linux you can use kinput2 and the canna server. Details on how to configure this is out of the scope of this document. Please read the documentation that comes with kinput2 and canna. I got it working on my Linux system.
On Windows this seems somewhat ugly. Java supports Microsoft IME, but obviously not all of the JRE releases do so on all Windows versions. As I have been informed by Japanese users, a Japanese Windows XP supports IME input with Java 1.4 applications out of the box. IME input also works on my German Windows 2000 with JRE 1.4.1_02, while it was not working with JRE 1.4.1_01. This is somewhat miraculous.
How do I maximize the board?
The board window is very customizable. Look at the "View" menu and the preferences dialog and you will find a couple of options. Most options appear twice, in the View menu and the preferences dialog. The difference is, when you change an option in the View menu, it will only affect the current board and not be saved as default. If you change something in the preferences dialog, it will be used for all new board windows you will open. So you can define a set of defaults in the preferences and to adjust something for the current window only use the View menu.
To get an optimal sized board, turn off the slider, toolbar and statusbar and enable the "Integrated textarea" option (new in release 0.4). Maximize the complete window. This results in a pretty optimal sized square board on my 1024x768 resolution.
Does gGo only work on IGS-PandaNet or can I also use it to play on NNGS or other servers?
gGo is developed for IGS. As most IGS clones have small differences in the protocol, gGo will not work properly on other servers. gGo would work on a server that behaves exactly as IGS, but NNGS and the like do not.
I don't intend to implement support for other servers. There are simply too many clones around that all have small protocol variations. You can try gGo on another server, but I cannot guarantee it will work. It depends on how much the server protocol differs from the original IGS protocol.
How do I login with my account on IGS?
When you install gGo the first time, by default a guest account is configured. To use your own IGS account, you need to add the account name and optional the password in the account setup dialog in gGo. You find this dialog in the IGS main window, menu Connection - Configure. If you do not enter a password in the dialog, you need to type it every time you login.
gGo can save several accounts, so you can switch between sessions. However, you can only be online with one account at the same time, gGo does not support multiple logins. This might be added in the future.
How do I register an account on IGS with gGo?
Not at all. Account registration for IGS is done on the IGS web page. This has nothing to do with the client. Once you already have your account, you enter the existing name and password in the gGo server configuration. By default, a guest account is configured, so if you want to use a real account, you need to edit it in the account configuration.
How do I play?
If you want to play a game, either click the 'O' button in the main window which flags your account to be open for a game (or '!' which means you are really looking for one), and wait for someone to challenge you. You will then receive a dialog displaying the requested match parameters.
Or you can match another player. Open the Players table and look for an opponent. You can select a ranking to limit the display and apply the 'Available' filter to see who is currently open for a match and not already playing. Right-click on a player opens a popup menu from where you can select 'Match'. Input your desired game parameters and then send the request. If you are accepted, the game will start. An alternative way instead of right-clicking and using the popup menu is to do a double middle-click on a player (for those with a three button mouse).
What do the "X", "O" and "!" buttons in the toolbar mean?
These three buttons reflect the status of the server-side flags "open" and "looking". "X" means open off and looking off, "O" means open on and looking off, "!" means open on and looking on.
Trying to say the same in normal english: If you do not want to play and not receive match requests, set yourself to "X". If you want to receive match requests, set yourself to "O". If you badly want to play, set yourself to "!", which means something like: I _really_ want to play! Match me!
The careful reader might say there is a forth state with open off and looking on. But I did not include a forth button for this as this state makes little sense to use.
How does IGS work? Which commands are available?
This is out of the scope of this document. There is an extensive help system available on IGS, just try "help".
Basically gGo supports a graphical interface for the most common IGS commands to limit the need to type in telnet commands manually. However, not all and every IGS command has a button or the like, so occasionally you will need to use the telnet command line. I think, currently the common IGS usage as of observing and playing games, chatting via tell, shout and yell is properly supported, so the need to use plain telnet input should be limited to some rare cases. However, having the possibility to control the client via plain telnet commands is basically good, as it offers you full access to all IGS functions. I do not plan to remove the telnet console completely, my goal is to provide an interface for the important and regular used commands.
How do I get a rank?
Type "help start", "help rank" and "help rating" in the terminal and read it. It is generally a good idea to look at the online IGS help system as almost all questions are answered there.
In short: "rank 1d" or whatever you estimate yourself.
What does the friend/ignore list do?
You can mark players as friend or ignored. A friend will be displayed with a blue line in the player table and appear if you toggle the "Friends" button. This is convenient to see who of your buddies is online. Otherwise marking a friend has no effect.
If someone is on your ignore list, tells and match requests to you are blocked, as well as all shouts, kibitz and chatters from him, so you won't be bothered anymore by this player. If you are mean, you can enable an automatic response, gGo will send this as a response when he tries to contact you with a tell. If this is disabled, incoming tells or matches are simply ignored.
I don't see anything in the Shouts window. Why?
You probably have 'shouts' disabled on the server side. Type "toggle shout true".
Why do I receive match requests while I am playing?
You probably have 'singlegame' disabled on the server side. Type "toggle singlegame true".
I hate those several windows which clutter my desktop!
You might try the "tabbed mode". Enable it in the preferences dialog in the "IGS" tab. Then instead of a single window for each shout, chat, players, games etc. these windows will integrate as tabs into the main window, like for example Opera and Mozilla do it. Some people prefer this, some others prefer single windows. So both is available and you can chose what you like better.
Please note that you need to close and open the main IGS windows for the change to take effect. But you don't need to restart gGo. Just close the main IGS window and click the "Play on IGS" button in the start screen again.
Multiple windows is a bit more unix'ish while tabbed mode might fit more a typical Windows design.
What other IGS clients are available?
A lot! Popular clients for Windows are PandaEgg, WinIGC, TgWin or Tango. For Mac OS X there is the beautiful client Goban. For Linux good clients are CGoban1, Xgospel and Vizigo. qGo, my first Go program from which gGo branched off, now also has a client for IGS. qGo runs on Linux, Windows and Mac OS X. A very good platform independent Java client is Jago.
If you want a sort of "gGo, but not in Java", have a look at my current glGo project which aims at porting gGo to a native C++ program and adds a fancy 3D goban display.
So if you do not like gGo, try one of those other clients. Sorry to the authors of the clients I forgot to mention. A collection of SGF viewers and IGS clients is available at Gobase.
How do I navigate through a game and variations?
Use the cursor keys. Left/right moves backward/forward one move. Up/down switches through the variations, if any exist in the current node. Home moves to the first move of the game, End to the last move in the current variation (or the last move of the game if you are in the main branch). PageUp/PageDown moves to the start or end of the current branch. Insert moves back to the main branch.
The buttons in the toolbar do exactly the same, have a look at the tooltips of each button to get some hints.
If you have a mousewheel, you can use this to move backward and forward. The slider below the board does the same and also offers to jump several moves.
This might sound complicated now, but just try it out. It is easier than it appears on first glance.
Currently there is no tree view like you might know from other editors. This is planned to be implemented in the future.
Which file formats are supported?
In short: SGF, MGT, UGF, Ishi and Jago XML files.
In long: The main format used by gGo is the FF SGF specification. gGo saves files in this format. However, it supports reading of older SGF files like the old long notation. UGF, which is the format used only by the PandaEgg editor can be read. gGo can load Ishi format games, Ishi is a somewhat outdated format but still around on the net. Ishi files usually have the .go file suffix. Jago implements an own XML format, gGo can read this. MGT files are identical with SGF, it is only a different file suffix.
There is a standalone converter available which allows you to convert UGF and Ishi files into SGF. You can download ugf2sgf and ishi2sgf on the glGo SGFTools webpage.
SGF is todays standard for Go games. I personally like the Jago XML format very much, but unfortunately no other editors support it.
Can I load and view Kogos Joseki Dictionary with gGo?
Yes, Kogos Joseki Dictionary is fully supported and properly displayed. Loading might take a while, depending on how fast your computer is. It will require quite some memory, this file has about 28.000 nodes. You might make sure you have enabled variation display as siblings in the preferences dialog, this is convenient to view Kogo.
Can I create diagrams with gGo?
Not really. You can take a snapshot of the current board. Check the File-Import/Export menu to export the current position as image file. However, a simple screenshot utility might do the job better. gGo can not print diagrams. Maybe I implement this in the future, but this has low priority.
To automatically number all moves of the current position, which should be interesting for diagrams, try "Number moves" in the Edit menu.
To create professional looking diagrams, I recommend using sgf2tex or sgf2misc. GoWrite2 is also worth a look.
How do I add variations?
Just play a new move and if there is no following move of the current node, it will be automatically added as variation. You can add several variations this way.
How do I set and remove marks? How do I delete moves?
The editor differs two modes. Normal and edit mode (actually, three modes: Score mode). When you click on the board in normal mode, a move of alternating stone color is played, just like playing a real game. Each move creates a new node. To delete a move, use "Delete" from the Edit menu. This will delete the current move and all following moves in this branch. Imagine you cut off this branch of the tree. Of course, if there are no following moves, only the current move is deleted.
In edit mode you can add or remove stones to setup a position, or add and remove marks. To toggle between normal and edit mode, use the button in the sidebar. When in edit mode, the sidebar will change and let you select what exactly you are want to edit. Here you can select a certain mark type. Left click on the board will add a stone or mark (depending what you have selected in the sidebar), right click on the board will remove a stone or mark (again, depending on what the sidebar shows, and if there is already a stone or mark on the clicked spot). Just try it out, it should be pretty obvious how it works.
What is GNU Go? What is GTP?
GNU Go is a program which plays Go. GNU Go is open source and available free of charge. As GNU Go does not come with an own interface like some commercial products as Many Faces of Go, you require a client for it. gGo is one of those clients for GNU Go, as well as some other programs like CGoban1 or Jago.
GTP is one of two protocols GNU Go uses to talk to the client, the other is GMP. gGo uses GTP, as this protocol is newer and much superior to the old GMP. Basically gGo can serve as an interface for any Go playing program which supports GTP, but the only one I know which supports GTP at the moment is GNU Go. You require GNU Go version 3.0 or later, the older GNU Go 2.6 does not support the GTP protocol.
gGo can also use the GNU Go score estimator to guess the score of an ongoing game. You can access this through "Guess score" in the Edit menu of a board window. However, if you use this feature in one of your own games on IGS, this might be considered as cheating. Remember you cheat yourself and not your opponent if you don't learn to count the score yourself.
Where do I get GNU Go?
If you are on Linux, GNU Go is already included in most distributions. You need GNU Go version 3.0 or later, older versions do not support GTP. So check if your distribution has a recent GNU Go version. Else you can download a binary or the sources to compile it yourself from the GNU Go webpage.
A GNU Go binary for OS X is available on the gGo webpage.
How do I use GNU Go with gGo?
You need to make sure gGo will find the GNU Go binary. Basically, either make sure "gnugo" or "gnugo.exe" is in your PATH environment, or tell gGo the exact location.
When I try to resume a game, why does it not work?
The most common reason for this is, you are on Windows and try to load a SGF file from a folder which name includes spaces, for example C:\Documents and Settings\myusername\Own files\Go\game123.sgf. Spaces in directory names is a Windows disease, and GNU Go can not handle them when loading this file. Put the SGF files in some folder which contains no spaces, like C:\Go\game123.sgf, then GNU Go will properly load the game. This is a limitation of GNU Go, not gGo. So I cannot do much about it.
I got gGo 0.2 from the GNU Go webpage. That is an old version! What's up?
The people responsible for the GNU Go webpage have a strict policy not to link to software which is not open-source, so they do not link to the gGo webpage but to some old archive with outdated files. Please ask them about this, not me, as I do not have any influence on the GNU Go webpage. However, considering you are reading this FAQ now, I guess you found your way to the real gGo webpage already. :)
Do I need to pay or register for gGo?
No. gGo is distributed free of charge. You can download and use it for free. There is no registration for gGo. I am happy if you like and use my client. I do not write gGo for money but to contribute my part to the Internet Go community.
Is gGo free software?
That depends on the definition of "free software". Some people define it as software which is distributed under a certain license (OSI approved open source licenses like the GPL). If you use this definition, then gGo is not free software. Some other people define "free software" as software you can download and use free of charge. If you use this definition, gGo is free.
You can download and use gGo free of charge. You may not redistribute it without my permission. If you want do to that, ask me first.
Is gGo open source? Can I have the source code?
The first versions of gGo were released as open source under the terms of the GPL. But this did not work. I am not willing to take the responsibility for changes other people do, misusing some features of the software to gain an advantage. Because of this I decided not to release gGo as open source anymore. So you can not have the source code of the versions 0.3 and later.
This sucks! I want gGo being open source and implement my modifications.
Sorry, as explained above, the open source status has caused problems for me. I am not willing to invest my time and efforts into something I give away for free and then encounter trouble. Additionally, if there are problems with modified gGo versions, people will complain to me. But I only feel responsible for the bugs I produce myself.
Either use the gGo sources from version 0.2, which are published under the terms of the GPL, or write your own client.
I am on Linux and gGo does not start. Why?
A likely problem might be you run a sound daemon like esd on Gnome or artsd on KDE. Or you already started Xmms or a similar player. Unfortunately Java sound support on Linux is quite a mess. Java will lock the /dev/dsp device. If another program has already locked this, Java occasionally fails to start. I do not know a good solution for this at the moment. Disable esd or artsd.
For version 0.3.3 I added a command line parameter '-nosound'. If the sound device causes problems for you, you can force gGo to disable global sound output this way. You can enable sound in the gGo preferences dialog later again.
I am on Windows and gGo does not start. Why?
There can be dozens of problems on Windows. First make sure you have Java 1.3 or 1.4 installed. The Microsoft Java engine that comes with the latest service packs is not sufficient to run gGo as it is version 1.1.
If you use the .exe installer, there is a log file ggostarter.log. In case, have a look there if gGo completely fails to start. This installer looks up the path to Java in the Windows registry, there are many reasons why the registry could be messed. The logfile is written to C:\Program Files\gGo\ggostarter.log (or wherever you installed gGo) or to C:\ggostarter.log in older gGo versions (0.3.9 and earlier).
Ok, gGo starts. But then I have problems. What should I do?
As gGo is still beta software and not completely stable, chances are you stumbled over a bug. First please try to repeat what you were doing and see if you can reproduce the problem. If this is the case, you can help me greatly to fix the problem by sending me the gGo log file. You find this file in your users home directory: $HOME/.ggo.log. Don't confuse this log file with the above mentioned ggostarter.log. Latter is only used on Windows during the startup sequence when Java is started. .ggo.log is available on all systems and contains informations during runtime.
Please note, this log file is overwritten when gGo starts. So copy it in time. Email me this log file and a detailed description of your problem. That way you can help me to fix the problem in future releases.
When you write me a bugreport please include which operating system, which Java version and which gGo version you are using. Also include how you installed gGo, either which installer you downloaded or if you use Webstart. Explain what exactly the problem is, when it occurs and how it can be reproduced.
Emails in the form of “It does not work! Fix it!” are not very helpful and are likely to be ignored.