This is a rough first draft for the FAQ. There have not yet been many questions asked.
What is glGo?
glGo is an editor for SGF files, a client for IGS-PandaNet and an interface to play against GNU Go. glGo aims to be a successor of the gGo Java client written by me. glGo is written in C++ and Python, and based on wxWindows, OpenGL and SDL.
Under which operating systems is glGo available?
There are installers available with Windows and Linux binaries. Theoretically it should compile on Mac OS 9 and OS X, too, but as I do not have a Mac, I cannot provide a Mac package. If someone is willing to take over this task, please contact me. Or donate me the money to buy a Mac. In this matter Java certainly has an advantage as I can provide Mac OS X packages without the requirement of having a Macintosh computer myself. But this is not possible with glGo.
Note (03-11-06): Currently someone is trying to get a Mac OS X version working. But I don't know if or when a Mac OS X binary release will be available.
Why on earth another client?
I enjoy writing software, and especially software for my favorite game. I also enjoy trying and learning new things, and the idea of a 3D board has been in my mind for some months already. However, the support for 3D in Java is not very interesting, so I somehow had to come up with another solution.
What is this "2D and 3D board" talking about?
There are two different boards available in glGo: One in 2D and one in 3D. The 2D board looks pretty much like the board in Java gGo and does not require a 3D driver installed. So users who have trouble with their 3D drivers can use this 2D board. Also tastes are different concerning the need of a 3D look. While I personally enjoy observing games with the 3D board, for playing own games I prefer the straight 2D board. So glGo simply offers both, you decide which you use. As of release 0.0.5.4 the 2D board is the default view because the 2D board has no driver requirements and should run on any system. You can switch between 2D and 3D boards in the preferences dialog. Someone brought up the suggestion to define "profiles", like always open 3D for observing and open 2D for own games. I like this idea, should be implemented in one of the future versions.
When I open the 3D board, I only see a 2D view. What's up?
This is the 3D board. Try rotating and zooming it with Control-Cursor keys. Please see the glGo manual, chapter "Usage", for a list of all keyboard shortcuts. If the board does not respond instantly, you need to give it the focus, simply click somewhere on it (this needs to be somehow improved). Currently you can only rotate and zoom with the keyboard, I plan to implement some way to do this with the mouse somewhen.
What is wxWindows?
wxWindows is a graphical user interface library which creates windows, buttons, menus etc. The nice thing with wxWindows is, it is a cross-platform library and the same code can be compiled on Linux, Windows and Macintosh systems. Basically this is what Java has been for gGo, the basic framework for the whole program.
What is OpenGL?
OpenGL is a library to create 3D applications is and commonly used for commercial games.
Why don't you use DirectX instead?
DirectX is only available on Microsoft Windows systems. My philosophy is to offer software which runs on Linux and possibly Macintosh, too. DirectX does not meet this requirement. Besides that, OpenGL is much superior to DirectX.
The 3D board is very slow and ugly! What to do?
You probably do not have a proper driver for your graphic card installed. If you are running Windows, the default drivers do not work well. Visit the webpage of your graphic card vendor to download a driver.
How do I install a 3D driver?
Visit the webpage of your graphic card vendor, download the driver for your specific card and read the provided instructions. Installing the 3D driver on your computer is your business, not mine.
What graphic card do I have? Which operating system do I run?
How should I know that?
I cannot get sound working. What's up?
On Windows, the glGo installer already includes an installer for OpenAL and will automatically run it. You should get two files in your Windows system32 directory: OpenAL32.dll and wrap_oal.dll. If this fails for whatever reason (works fine on my system), download and run the OpenAL installer (follow the link to "OpenAL installer", the target page seems to change occasionally) manually. However, exactly this file is run when glGo is installed, so it theoretically should make no difference.
If things fail, use the SDL_Mixer sound system. You can change it in the glGo preferences dialog. However, sometimes it fails to switch during runtime, then you can force glGo to load the specific sound library on startup. Open a DOS console, cd C:\Program Files\glGo, glGo --sdl or glGo --openal. You only need to do this once, this is stored in the settings and remembered.
If you run Linux, please make sure OpenAL or SDL_Mixer are installed on your system. The Linux glGo installer does not include them, as they ship with every Linux distribution. It is much better to use those libraries suited for your distribution.
What is SDL?
SDL is a library to create 2D and 3D applications. A couple of commercial games, mainly games for Linux, are based on SDL. SDL also provides facilities to load and rescale images in a high quality and play sound. glGo uses SDL for the 2D board display. I admit I am astonished how easy it was to create a goban display in the quality of the Java board in just one evening, while I was sitting two weeks on the gGo board.
gGo/Java was once open source, you changed that. Now glGo is open source again. Are you nuts?
Yes, I probably am. Now, seriously, I believe that open source is the better and more productive way to develop software. gGo has been made closed-source for a couple of ugly reasons and troubles I encountered. I plan to steer clear of these troubles and ignore any complains targeted at me for modifications other people do to the code. And in worst case, if things annoy me too much, I spend my free time with something else, like reading a book or drinking beer. However, the Java gGo client will stay closed source.
Is the gGo Java client development dead?
Nope, but currently asleep. I cannot work on two clients at the same time. Somehow my time for this is limited. gGo 0.4 is pretty stable and usable, there is no need for urgent updates anyways. I suppose at some point I will get the motivation back and work on gGo again. Right now I have more fun with glGo. And after all, I do all this for fun. If you think you can demand from me that I work on something, you could consider how much you are willing to pay me for the work. If you dislike the thought of paying me, then do not demand something from me.
I get odd looking characters instead of Japanese/chinese/korean letters. What's wrong?
Currently glGo only supports Latin characters. Unicode support will be added at some point.
Do you provide installation support for glGo?
I do not provide any support. You download it, you install it, you deal with possible problems. Please ask questions about how to download and execute files, how to handle your webbrowser and operating system elsewhere. I got tired of being asked stupid questions about how to work with Windows. I am not the Microsoft customer service.
So you do not want to be contacted at all or what?
I did not say that. I said I do not provide general support. But of course I am very interested in bug reports, feature requests, ideas and suggestions related to glGo. You can either write me an email or use the forums on the glGo project page on sourceforge.
When will glGo be as usable as gGo, when can I use it for daily IGS operation?
Tricky question, simple answer: It will be finished when it is finished. That certainly won't be next week. With release 0.0.5.4 glGo should implement all the essential features required for playing and observing on IGS. All the gimmicks and additional features available in the Java gGo client will be added step by step.
Under which licence is glGo distributed?
The source code is released under the GNU General Public Licence (GPL). The graphics and artwork are copyrighted work and are *not* distributed under the terms of the GPL and must not be redistributed without permission. See the files LICENCE and COPYING which are packaged with the glGo releases for details.
What are the conditions of this GPL licence?
If you simply want to download and run glGo, or compile it for your own usage, you are free to do so without worrying about licence costs or copyright issues. If you want to modify and/or redistribute glGo, I assume you will know the conditions of the GPL already, if not read the LICENCE and COPYRIGHT files that come with the glGo source code to inform yourself. If you want to distribute a modified version, you cannot include the graphics and artwork without special permission, as the artwork is not distributed under the terms of the GPL. (Why not? Because I am not the creator of the images and I cannot give permission to use something I do not own. You are a FSF fanatic and think this sucks? Your problem. Provide me with free replacements of same quality.) Either strip off the images and replace them with own files, or drop me a mail and ask for details. You may redistribute an unmodified glGo including the original artwork.
I found a bug! glGo crashed! What to do?
First, don't panic. glGo is very new software and neither finished nor stable. If you use this software, you should expect bugs, problems and crashes. Second, you can tell me about the problems to help me improving the software. Either drop me an email or use the forums on the glGo project page on sourceforge.
What is this Playermanager about?
The Playermanager is a standalone application which offers you some extended functions to view and modify certain IGS players. You can define players as friend or bozo, which works quite similar to the Java gGo client. A friend will be shown if you apply the "Friends" filter to the players list, so you can quickly see who of your buddies is online. Bozo means, certain actions of such a player will be blocked by glGo: Incoming tells and match requests are ignored, and all shouts and kibitzes by this players will not be shown. This way you can get rid of these chatty idiots, if you want. You can write and store short comments about a player and assign customized flags, like for example "Escaper" or "Cool dude". Additionally you can collect SGF files using the glGo autosave feature or the IGS automail, and view the games of each player and plot a rank graph. This should be interesting if you collect all your own IGS games and want to see how you progressed over time.
What's the difference between the standalone and the built-in friends/bozo list?
Friends/Bozo status can be applied to a player both within the standalone Playermanager and the built-in dialog in glGo. You can also use the popup menu in the glGo player list for this. It makes no difference how you assign a friend/bozo status, the result is the same. The major difference between the standalone and the glGo built-in editor is, the Playermanager offers much more features. The basic idea is to run both glGo and the Playermanager at the same time, they use the same database to store the information, so what you edit with Playermanager you instantly get in glGo.
Why on earth a standalone application, why don't you just do everything inside glGo?
The Playermanager is written in Python. Things like GUI programming and database access can be done much easier and faster in Python than in C++. This simply saves me much time and work. I think it makes little difference if you have a window open which is a standalone program or a window created by glGo.
Isn't Python hell of slow?
Not really, depends what you do with it. For a GUI and some database and hard disc access you won't notice any speed difference if you compare a Python and a C++ program. The difference is in the milliseconds range, now I want to see someone who will notice if a window opens within 10 or 20 milliseconds. Of course, one would not want to write Quake IV in Python. glGo utilizes Python itself, too. The player database is accessed with Python, and the UGF and XML parsers are written in Python, too. All the rest of glGo, where speed matters a little more like the 3D board or the SGF parser (think about loading Kogos Joseki Dictionary), are written in C++.
I assign someone Friend status and it does not appear instantly in Playermanager. Why?
When you edit something in glGo, click the "Reload" button in Playermanager to tell it to re-read the database. The other way works smoothly, if you edit something in Playermanager, glGo will reload it automatically. I will fix that somewhen, so Playermanager doesn't need the "Reload" button anymore.
What's "Scan directory" for?
You can scan a directory with SGF files. The SGF headers are read and stored in an index database. Then you can open a player dialog (double-click on a player entry) and in the second tab you get a list of all games of this players - assuming there are games of this player in your SGF collection. In the third tab you get a graph with rank over time, which is also read from your SGF files. When you scan a directory, all subdirectories are automatically parsed, too. You also can scan several directories, one after each other.
What's "Cleanup games" for?
This will remove all games from your index database where no SGF file can be found. Assume you scanned a directory previously but deleted it, then all these games will be removed by the cleanup.
What's the "Graph" for?
If you have a couple of SGF files of a certain player, Playermanager will plot you a graph with the data read from the SGF files. The graph shows the rank on the y axis and the time on the x axis, where the origin ("0") is date of the oldest SGF file and the x axis shows the number of days since that. Enjoy watching your progress with this. Of course, you need to collect the SGF files first. Use the gGo or glGo autosave feature, or let IGS automail you your games.
What's "Edit flags" for?
You can assign certain flags to a player and define these flags yourself. You can create up to 5 flags. To create a flag, go to "Edit flags" in Playermanager and type something in the first row. Also make sure you enable the checkbox left of the text to make the flag active. For example, type "Escaper" in the first row and "Cool dude" in the second, and active the checkboxes of both. Then double-click on some player entry and you will see these flags, now you can assign each flag to each player. The flags are also available and can be edited in the player dialog within glGo. You can also apply a flag filter to the complete list in Playermanager, try the combobox in the lower right which lets you select "No filter" or one of the flags you previously created.
I made these flags customizable as probably everyone wants to put something else there, so feel free to create flags like you want. You don't need to create all five flags, if you want only one or two, keep the checkbox of the others disabled. Just try it out, it probably sounds more complex than it is.
Sounds all quite useless to me, do I need this?
No! The whole Playermanager is an optional add-on. If you only want the friends/bozo list (like in Java gGo), you can do this with glGo only and don't need the Playermanager at all. But without Playermanager you cannot edit the custom flags.
Why is the Playermanager installer so big?
It contains the Python and wxPython runtime environment. I assume not many people will have Python installed on their Windows, and even fewer wxPython. So the installer includes these required libraries, which makes it rather large. If you are a Python Guru and have Python and wxPython installed, you can get the small Playermanager source package and install it like you install other Python programs: "setup.py install". The standalone installer works like any other installer, just start it and follow the instructions, no need to do stuff manually.