 | |  |
|
What is Go? How can I learn Go?
| |
 | |  |
|
|
A briefly described (and very incomplete) collection of excellent Go links can be
found here.
| |  |
| | |
|
|
|
|
|
SGF is the acronym of "Smart Game Format". It is a text based format. (That means it can be edited with a text editor
such as Notepad.) This format has become the universal standard for storing and exchanging Go games.
If you are not interested in SGF details, just use the commands "Open gametree", "Save gametree" and "Save gametree as"
from the File menu as in any application. Many SGF issues, which are mainly for experts, can be found in a
chapter completely dedicated to SGF here.
| | |
| | |
|
|
|
|
|
Some programs (as earlier versions of GoKnot) just support one answer to each move. A game is just a succession of
black, white, black, white, .. moves (which may include "pass" moves). This may seem enough for storing matches, but
it is clearly not enough to store problems and other Go projects. When you create a problem, you expect more than
one answer moves to a position. When the user "visits" those answer moves she can read "That looks good, but it
is a mistake because of bla, bla.", "That move is the correct answer.", etc.
This is why a game is now called a game tree. Understand the word tree as in "family tree", a tree is
a diagram. Each node is followed by: 0 nodes (= the last node of a branch), 1 node (the most usual case)
or more than 1 nodes. Of course, the new nodes may be followed by any number of nodes.
This explained, a variation is "an other option" for a move. A different move that could be played instead
of the move.
| |  |
| | |
|
|
|
|
|
A node is an abstract idea to define each "point" of a game tree. A node defines: a board position, a move (which may be
a pass move), timing information and other annotation information. Less precisely, you can talk about "a move" to mean
a node, but the same move can be repeated in a game or placed in different branches of a tree, while a node is unique.
A node contains more information than just what move was played.
| | |
| | |
|
|
|
|
|
Assuming you know what a game tree is (just explained under "What is a Variation?"), a game map
is just a procedure to insert a game tree in an HTML table.
The image to the right is the game map corresponding to the following tree:
->(C)
/
->(A) -->(B) -->(D) -->(E)
/
/
(*) --->(F) -->(G) -->(H) -->(I)
\ \
\ -->(J)
\
->(K) -->(L)
(*) Is the root node which is not represented in maps, unless it contains annotation.
The node that precedes any node is:
| |
 |
a. The node above, if the node title has a down arrow like this one:
| |
 |
b. The node above its first neighbor to the left containing a down arrow,
if the node title has a right arrow like this one:
| |
 |
The node after any node is:
| | |
a. Nothing (the node is the last node of its branch), if an End symbol is found
below the node.
| |
 |
b. The node below. And, if its neighbors to the right have right arrows in their titles,
they define variations to the main branch.
| | |
Please, note: If there is no room in the cell immediately below a node to deploy its next node
(and their variations), the next node will be shifted downwards and the empty cell(s) will be filled by
long down arrows to indicate where the next node is.
| |
 |
| | |
|
|
|
|
|
The SGF file format allows storing: a move, a node name, remarks (as text of any length), symbols (from a predefined set),
an evaluation of the position (also from a predefined set), evaluation of the move, timing information and
a value assigned to the node. Everything except the move itself is considered annotation.
Annotation conforms to SGF standards, it is saved to / loaded from the files, and is compatible with other
SGF edition software.
| | |
| | |
|
|
 | |  |
|
What do you mean by Publishing?
| |
 | |  |
|
|
Under the category of "publishing functions" I mean many GoKnot features oriented to create: Go books, web pages,
printed articles and such material. The most fundamental: being able to render Go boards to files in standard
(BMP & JPEG) file formats, controlling the cell size, textures and other details. You can also create game maps
in standard HTML file format. The game maps can include the evaluation of the position by an engine. Everything can
be run in batch mode by calling GoKnot with command line parameters, such as "GoKnot --htm myfile.sgf".
| | |
| | |
|
|
 | |  |
|
What is the HTML Assistant?
| |
 | |  |
|
|
The HTML assistant is a GoKnot feature that keeps an interactive game map of your main game tree
synchronized with it.
Interactive in this sense: if you click on the stones of the assistant, the main board goes to that node.
If you want the assistant to "go to" the current node of your main board, select <Ctrl>+<F1> "Go to node in
the HTML assistant". The complete tree is deployed in the assistant and you can find the nodes immediately.
Synchronized in this sense: Each time you create/erase/modify any node, the HTML assistant updates and reloads
the (internal) HTML file to keep up to date with the game tree. The assistant can be closed, floated, dragged away to a
second monitor, etc.
| |
 |
| | |
|
|
|
|
|
GKE is a GoKnot Engine. Unlike other Go programs GoKnot is complete and modular.
Complete, because it is a game edition tool + a publishing tool + an Internet client + a playing tool + an analyzing
tool + a platform to research on computer Go, modular because the engine may be replaced.
The engine is the program inside GoKnot that generates the moves, decides which stones are dead and other
such tasks.
As the user, the advantage of a modular system is: You can play against different engines. When you feel an
engine is too strong or too weak, you can change the engine without changing the software you like. You
download engines, with different playing styles, levels, from different authors ..
As a Go program developer you can benefit of: You don't need to reinvent the wheel. No need of writing and testing
SGF edition tools, realistic boards, communication, etc. Just write a GKE engine and you can distribute GoKnot with
it. If you have written a Go program already, have a look at the gke Toolkit, you will see it is not
complicated to write a gke interface to your program. That opens new opportunities for your software with nothing to
loose.
There is more on GKE engines here and more on writing engines
here.
| | |
| | |
|
|
|
|
|
Yes. Your engine is already installed, it is called gnu_link.dll and is the latest version of
GnuGo.
At the moment of writing this (end of 2005), a new engine called zkbf3 is not expected before the end of 2006.
I will promptly update gnu_link.dll if a new GnuGo version is released, and I hope, some programmers who already
have Go playing software may release gke engines before that date.
| |
 |
| | |
|
|
 | |  |
|
What is a Go Server? What is Telnet?
| |
 | |  |
|
|
One of the most interesting Go related experiences is to play against other players on the Internet. There is also
much to learn in observing games on the Internet. To play on the Internet, you must connect to a server. The server is
the computer to which hundreds (or thousands) for players/observers are connected. The players run a software which is
called a client program. When Internet Go started, servers were concerned about compatibility. This means that you
could use the same client program for many different servers. Unfortunately, mainly for the users, and also
unfortunately for the authors of client software, Go servers have oriented their businesses towards proprietary,
not documented protocols. As an example, the 3 most successful servers are: #1 IGS (Is more or less compatible with the
original standards, but they sometimes introduce changes that favor only their proprietary client software "Panda-Egg".)
#2 KGS (Proprietary and Java-based, not documented, incompatible with other servers.) #3 Yahoo (Proprietary, Java-based
and totally different.) Telnet is a text protocol used to access a computer as a remote terminal. The original protocol
was Telnet-based. This is why the clients are sometimes called Telnet clients.
GoKnot is a client for IGS. It has many features, mainly: keeping timing records, observing many boards
simultaneously, showing hints during play, analyzing games while observed, .. that are not found in other IGS
clients.
GoKnot has its own intranet protocol that supports interfacing two GoKnot copies (with, e.g. different
engines) or GoKnot as a client of an interface program. In this way, GoKnot can play on KGS or against other MS/DOS and
Windows programs not designed to support interfacing. These interface servers are usually beta versions that may
depend on particular hardware, etc. Advanced (and registered) users may contact me on the subject, and I will send them
a (source code included) beta version of a KGS interface.
| |
 |
| | |
|
|
 | |  |
|
What is that resizable windows system?
| |
 | |  |
|
|
It is called MAI, the Multiple Area Interface.
You can find a complete user manual here.
To enjoy MAI experience, you have to develop MAI instinct. Nothing is faster when you do the right actions,
but it may seem a little frustrating at the beginning. If you want to read a text that does not fit in the area
you are viewing, it is much faster to double click on the area's title, than to scroll using the scrollbars.
Double click again to restore it. <Alt>-<Z> deploys the MAI menu. Right double click on a goban's title
to get a "sketch copy" of it. <Ctrl>-double click on a help viewer, the telnet client, the telnet spreadsheet,
etc. to "float it out" of the main application, specially if you have a multiple monitor system.
| |
 |
| | |
|
|
|
|
|
Dialogs are created with tool called CGD. If you are a programmer, you may be interested
in this. The basic issues for a user are:
- All dialogs have the same "look and feel", which is as windowslike as possible.
- Toolbars, buttons, edit controls, hints, etc. are standard controls.
- All buttons support Windows desktop user preferences.
- Keyboard management: Arrow keys, <Tab>, <Shift>-<Tab>, Right arrow (for expand), Left
arrow (for collapse) are the same as in Windows Explorer.
- All dialogs support the clipboard in text mode automatically. You can copy the content of any dialog, paste
it into any text editor and save it for later use. You can modify the whole dialog at once by just pasting that text
into the dialog again.
- Edit controls support standard Windows copy, cut and paste.
- The whole dialog supports global undoing.

| | |
| | |
|
|
|
|
|
No. GoKnot is open and shareware. Open: when it is possible it conforms to standards (e.g. SGF) and
when not (as in gke, which was never done before), it creates a new interface which is: public, documented and you can
download the source code of a gke engine. It is open because you can make part of it, own the copyright of your work
and get the income of it. See GoKnot opportunities. Developing
Go software is mainly a hobby or a university research task.
It is shareware because if you are a regular user, it means that you get a benefit of using this program
rather than another. Returning a minimum part of that benefit (registering GoKnot costs less than buying a CD and you
can enjoy it for your lifetime) to the people who spent hundreds of hours working so that you can enjoy: an engine, a
translation to your language, a forum helping users and publishing tricks, etc. Is: the right thing to do and
something you do in your own benefit, because doing so, you encourage development, more than you may think.
It is only one click away. Thank you.
| |
 |
| | |
|
|
 | |  |
|
Is this the most recent GoKnot version?
| |
 | |  |
|
|
|
|