Go im Internet mit JagoClient

R. Grothmann

Warum dieser Artikel?

Vor circa zwei Jahren, also ganz am Anfang der Hysterie um Java, habe ich das Projekt Jago gestartet. Eigentlich sollte es nur ein konkretes Vorhaben werden, an dem sich die Sprache erproben konnte. Dann aber hat Java diesen Test so gut bestanden, daß ein vollwertiges Programm daraus wurde. Inzwischen ist das ganze auf ein Maß angewachsen, das sich nur noch mit einer objektorientierten Vorgehensweise beherrschen läßt. Auch die gute Fehlerdokumentation, die Java zur Laufzeit erzeugt, war mehr als hilfreich.

Obwohl die Benutzeroberfläche ganz in Deutsch erscheint, wenn Java hierzulande gestartet wird, ist die Dokumentation eigentlich fast vollständig in Englisch. Inzwischen sind zwar die Hilfstexte übersetzt, es fehlt aber eine komplette Einführung für den Neuling. Dieser Text soll dem Wunsch vieler deutschsprachiger Anwender Rechnung tragen, und die Notation von Gospielen, sowie das Gospiel im Internet vorstellen. Alles wird natürlich an Hand des Programms Jago beschrieben. Es existieren einige natürlich andere Programme zu demselben Zweck, etwa WinIGC für Windows oder CGoban für XWindows. Java hat hier den Vorteil, plattformübergreifend zu sein. Es läuft auf allen Rechnern, sei es unter Linux, Windows, MacOS oder Sun Solaris.

Was man braucht!

JagoClient ist ein Java-Programm. Dies bedeutet, daß zur Ausführung des Programms eine virtuelle Java-Maschine notwendig ist. Wenn man Windows 95/98/NT verwendet, ist es sehr einfach, sich eine solche JVM zu beschaffen. Dazu empfehle ich das Java Runtime Environment (JRE) von Sun in der Version 1.1.8. Es ist nicht schwer, diese Java-Version zu installieren, wenn man die entsprechende Installationsdatei hat. Dazu startet man einfach das Installationsprogramm, das den Namen jre1_1_8-win.exe trägt. Diese Datei besorgt man sich über das Internet entweder direkt von Sun, oder man folgt den Links auf der Homepage von JagoClient

http://mathsrv.ku-eichstaett.de/MGF/homes/grothmann/jago/Go.html

Dort findet man auch alle Versionen von JagoClient. Für Windows empfehle ich die selbstinstallierende Version, deren Installationsprogramm jago95i.exe heißt. Man startet nun beide Installationsprogramme nacheinander und findet im Startmenü einen funktionierenden Eintrag für Jago vor, auch einen für Jago mit deutscher Oberfläche. Zusammenfassend sind also folgende Schritte nötig

Den Rest dieses Abschnittes braucht man nicht zu lesen.

Nach dem Start des Programms müßte sich das Hauptfenster öffnen. Es enthält eine Liste von vorkonfigurierten Internet-Servern, eine Menü und einige Knöpfe, mit denen man sofort loslegen kann.

Hat man nur eine schwache Internetanbindung, aber Windows und den Internet-Explorer ab Version 4, so kann man auch diesen zum Start von JagoClient benutzen, anstatt die Java Laufzeitumgebung von Sun herunterzuladen. Man benötigt dazu immer noch die Datei jago.zip, die man über die obige Seite bezieht, muß diese entpacken und dann in einer DOS-Eingabe im Jago-Verzeichnis den Befehl

jview -cp jago.jar;JagoResource_de.jar Go

eingeben. Details sind auf der Homepage von Jago nachzulesen. Für Hilfe stehe ich hier gerne zur Verfügung.

Andere Betriebssysteme benötigen andere Installations-Mechanismen, die alle auf der JagoClient-Homepage beschrieben sind. Für Linux enthalten z.B. alle Distributionen eine Version von Java 1.1, die man mit den beigelegten Tools installieren kann, etwa mit yast unter Suse-Linux. Man benötigt dann nur noch jago20.zip, das man auspackt, und kann JagoClient über die Kommandozeile starten. Alles ist detailliert auf obiger Seite beschrieben.

Jago als Spieleditor

Das installierte Programm läßt sich nun zunächst einmal zum Nachspielen, Bearbeiten und Speichern von Spielen verwenden. Das verwendete Format nennt sich Smart Go Format, und die abgespeicherten Dateien tragen demnach die Erweiterung ".sgf". Im Internet gibt es Sammlungen von mehr oder weniger gut kommentierten Partien. Z.B. existiert eine Auswahl aus der Deutschen Go-Zeitung mit leicht eingeschränkten Kommentaren. Sie finden diese Sammlung auf

http://mathsrv.ku-eichstaett.de/MGF/homes/grothmann/dgoz/partien.html

Um also lokal Partien aufzuzeichnen, öffnet man ein lokales Spielbrett. Der ensprechende Menüpunkt ist gleich im ersten Menü. Es erscheint ein Spielbrett mit einer Holzmaserung, daneben ein Kommentarfenster, darunter Navigationsknöpfe.

Man kann sofort anfangen, mit der Maus Züge einzugeben. Gefangene werden automatisch entfernt. Markierungen auf dem Brett, Buchstaben und Symbole, gibt man ein, indem man in den entsprechenden Modus mit der Tastatur oder dem Menü umschaltet. In der Hilfe ist die Bedienung der Tastatur erklärt. Um eine Vorgabe zu setzen, wählt man "Schwarze Steine setzen", setzt die Vorgabesteine und wählt dann "Weiß am Zug".

Am Ende der Partie müssen zunächst alle toten Gruppen entfernt werden. Auch dafür existiert ein Menüpunkt. Danach kann man das Programm veranlassen auszuzählen. Das Ergebnis wird in japanischer und in chinesischer Zählweise ausgegeben.

Varianten

Es ist an dieser Stelle nützlich zu erfahren, wie das Spiel intern abgespeichert wird. Es leigt nämlich einfach als eine einfache Liste von Zügen vor, sondern als Baum von Knoten. Der Baum hat eine Wurzel, der dem leeren Brett entspricht, und eine Hauptast, der die Hauptvariante enthält. Jeder Knoten enthält eine Zug, eventuell mehrere gesetzte oder entfernte Steine, Brettmarkierungen und den Kommentar. Deswegen verschwinden alle Markierungen und der Kommentar auch, wenn ">" drückt, und damit zum nächsten Knoten voran schreitet.

Der Baum kann allerdings auch Nebenäste, die Varianten, enthalten. In CGoban wird diese Baumstruktur in einem separaten Fenster angezeigt. Jago geht einen anderen Weg, der von GoScribe abgeschaut wurde. Dazu werden die Varianten auf dem Brett angezeigt, und zwar jeweils als Alternativen zum aktuellen Zug. Die Alternativstellen sind mit kleinen grünen Kreuzen markiert. Die Alternative kann mit "V>" gewählt werden, oder man klickt einfach mit der rechten Maustaste auf die Stelle, an der die Alternative angezeigt wird. Auf die gleiche Weise kann man mit der Maus auch Alternativen erzeugen.

Um sich in den Varianten zurechtzufinden, beachte man die Navigationsknöpfe rechts unten. Der Knopf "V>" ist zum Beispiel nur dann aktiviert, wenn eine Variante existiert. Mit Hilfe von "V" gelangt man stets an den Anfang einer Variante, und mit "*" in die Hauptvariante, und zwar genau an die Stelle, wo man in die Nebenvariante eingestiegen ist.

Jago besitzt auch Suchmechanismen. So kann man alle Varianten nach einem Kommentar oder eine Schnipsel daraus durchsuchen. Außerdem besitzt das Programm die Möglichkeit, Markierungen anzubringen. Diese Markierungen bestehen aus einem Namen und werden unterhalb des Brettes angezeigt. Dort wird übrigens auch angezeigt, welcher Zug als nächster einzugeben ist.

Go und das Internet

Spielen und Chatten sind wahrscheinlich die faszinierendsten Anwendungen im Internet. Obwohl ich selbst da nicht so beteiligt bin, habe ich schon Menschen stundenlang on-line Adventure spielen sehen. Sie tauschen dabei Nachrichten mit anderen Spielern aus und lösen irgendwelche geheimnisvollen Rätsel. Desgleichen gibt es Flugsimulationen im Internet, ja sogar ganze virtuelle Airlines. Auf dem Spielesektor existieren Server für Schach, Bridge, Backgammon und eben auch Go.

Man muß zugeben, daß die Spielerdichte in Deutschland nicht gerade hoch ist. Nicht jeder hat Lust und Zeit, Duzende von Kilometern zum nächsten Spielort zu fahren, nur um dort nicht mehr als eine Handvoll Spieler anzutreffen. Das On-line Spiel ist da durchaus eine Alternative. Nur leider muß man umgekehrt fürchten, daß die Heimaktivitäten nicht gerade zur Förderung des Spieles in Deutschland beitragen.

Man braucht natürlich eine Anbindung ans Internet. Dazu gibt es kommerzielle Anbieter, und auch Vereine. In Bayern haben sich zum Beispiel die Bürgernetzvereine, die im Zuge der Initiative "Bayern On-Line" enstanden sind, verdient gemacht. Im allgemeinen ist es leichter als man denkt, eine Anbindung zu bekommen. Man benötigt einen PC, der am einfachsten unter Windows 95 oder höher läuft, und ein Modem. Das ist alles. Auch für alternative Betriebssysteme, wie Linux, steht in den erwähnten Vereinen Hilfe zur Verfügung. In diesem Fall sollte man das Know-How auch in Anspruch nehmen.

Hat man erst einmal den Anschluß geschafft, so ist die Hälfte getan. Die andere Hälfte ist die Installation von Java und von Jago, die wir ja schon besprochen haben.

Die Go-Server

Es existieren inzwischen eine Reihe von Servern, an denen man kostenlos Go spielen kann. Der bekannteste und am meisten frequentierte ist IGS, der Internet Go Server. Da weder der Code für diesen Server noch das Protokoll öffentlich zugänglich sind, mußten eifrige Programmierer den Server nachprogrammieren. Dies führte zu NNGS, dem No Name Go Server, dessen Code zur Verfügung steht, und einigen weiteren Servern.

Inzwischen exsitieren Server auf anderer Basis, etwa Java-Server. Der Vorteil dieser Server ist die unproblematische Installation, da sie einfach im WWW-Browser laufen. Auf der anderen Seite wird das Java-Applet jedesmal über das Netz geladen, was bei der heutigen Netzüberlast nicht unerhebliche Startzverzögerungen bedeuet. Überdies machen alle diese Server einen experimentellen Eindruck.

IGS war zuerst dazu gedacht, per Telnet bedient zu werden. Eine solche Textverbindung ist natürlich nicht mehr zeitgemäß. Daher gibt es sogenannte Clients, die eine graphische Oberfläche zur Verfügung stellen. Jago ist ein solcher Client.

In Jago sind die wichtigsten Server vorkonfiguriert. Zum Start der Verbindung wählt man IGS mit der Maus aus und drückt den Knopf "Verbinden". Es erscheint ein Terminalfenster mit einem großen, farbigen Ausgabebereich, und eine Eingabezeile. Darunter befinden sich einige Knöpfe, mit denen man Aktionen starten kann. Irgendwann wird man aufgefordert, eine Benutzerkennung einzugeben. Dazu gibt man in der Eingabezeile zunächst "guest" ein. Eventuell muß man dazu mit der Maus in die EIngabezeile klicken oder die Tabulatortaste solange drücken, bis in der Eingabezeile der Cursor blinkt. Es erscheint die Meldung, daß man auf einem Gastkonto angemeldet ist.

Zur Probe sollte man einmal "help" in die Eingabezeile eingeben und auf die Antwort des Servers warten. Auf die gleiche Weise erhät man vom Server Hilfe über wichtige Kommandos. Dazu gibt man einfach z.B. "help register" ein.

Man kann den Server auf diese Art vollständig mit Kommandos steuern. Außerdem kann man am allgemeinen Chat teilnehmen. Besser ist es jedoch, gezielt Aktionen vorzunehmen. Insbesondere ist es nicht die feine Art, mit "shout Ich bin da!" einen Text an alle zu verschicken. Allenfalls kann man dies benutzen, um zu einem Spiel einzuladen, etwa mit "shout Game anyone with 10k?". Aber bitte nicht dreimal wiederholen!

Am Anfang sollte man einem Spiel zuschauen. Dazu drückt man den Knopf mit der Aufschrift "Spiele". Es erscheint ein Fenster mit den gerade ablaufenden Spielen, und zwar nach der Einstufung von Weiß sortiert. Man kann in diesem Fenster ein Spiel mit der Maus markieren.

Drückt man darunter den Knopf "Zuschauen", so öffnet sich ein Spielbrett, und nach einer Weile erscheint der aktuelle Spielstand. Man kann dann dem Spiel Zug für Zug folgen. Im Unterschied zum lokalen Brett erscheinen in der Titelzeile Informationen über das Spiel und über dem Kommentarfenster sieht man die Zeit, die beider Spieler verbraucht haben. Natürlich läßt sich das Spiel von Anfang an nachspielen. Dazu drückt man "<<" und dann ">" für jeden Zug. Mit "**" gelangt man jeweils zum aktuellen letzten Zug. Außerdem kann man Varianten anlegen oder Kommentare, ganz so wie bei einem lokalen Spielbrett. Man kann das Spiel auch lokal abspeichern.

Will man nicht weiter zuschauen, so schließt man einfach das Fenster. Jago sendet das nötige Kommande "unobserve" automatisch an den Server.

An dieser Stelle ist vielleicht einmal ein Wort über die Verzögerungen angebracht, die im Internet auftreten können, und die man Netlag nennt. Insbesondere die Verbindungen mit IGS, das in Korea steht, sind davon betroffen. Es kann manchmal erscheinen, als wäre die Verbindung unterbrochen. Nach allem, was ich weiß, ist dies nicht auf Jago oder einen bestimmten anderen Client zurückzuführen, sondern tritt in allen Client-Programmen auf.

Man kann darüber spekulieren, ob der Server dafür verantwortlich ist. In jedem Fall muß man ständig darauf gefaßt sein, minutenlang keine Antwort vom Server zu bekommen. Ich melde mich in diesem Fall ab und wieder neu an. Die anderen Server sind zum Teil besser zu erreichen.

Selbst Spielen!

Um selbst spielen zu können, muß man sich registrieren. Dazu dient das register-Kommando, das man in der Kommandozeile eingibt.

register Name EMail

Für "Name" muß man den gewünschten Benutzernamen auf dem Server angeben. Manche wählen Ihren Vornamen, die meisten erfinden einen Namen. Die elektronische Postadresse muß tatsächlich existieren. Der Server schickt dorthin eine Mail mit einem Kennwort. Dieses Kennwort kann man nun in den Einstellungen des Servers eintragen, ebenso wie den gewählten Benutzernahmen. Jago verbindet dann mit dem Server automatisch. Alternativ kann man den Namen und das Kennwort, oder auch nur das Kennwort, jedesmal auf Aufforderung eingeben. Das Kennwort läßt sich auf dem Server mit dem "password" Kommando ändern, so daß man ein leichter zu merkendes wählen kann.

Nachdem man nun ein registrierter Benutzer ist, kann man anfangen selbst Partien zu spielen. Die einfachste Variante ist, sich als Spieler einzutragen, der gerne Spielen möchte. Im IGS gibt man dazu

toggle looking

ein. Dieses Kommando setzt den Status dieses Flags um. Wenn man nicht mehr spielen will, gibt man das Kommando einfach nochmals ein.

Übrigens erfährt man über sich oder andere mit dem "stats" Kommando allerhand. Dazu gibt man

stats Name

ein. Viele dieser Einstellungen kann man ändern. Insbesondere sollte man sich einen Rang zuweisen. Dabei gilt es, einen Abschlag von 2 Kyu-Graden auf den deutschen Rang zu machen.

rank 4k

Dies entspricht einem Deutschen 6 Kyu. Wenn man den Rang derart eingestellt hat und seinen Status auf "Looking" gestellt hat, dauert es normalerweise nicht lange, bis jemand zum Match auffordert. In Jago erscheint dann ein Fenster, das die Aufforderung anzeigt. In dem Verbindungsfenster erscheint zusätzlich ein Text, der den Wunsch nach einem Match anzeigt. Die Anzeige ist etwas kryptisch. Sie lautet etwa

match Name W 19 1 10

Dabei steht 19 für die Brettgröße, W für die Farbe, die der andere haben will, 1 für die Gesamtzeit in Minuten und 10 für die Reserverzeit. Hat man die eine Minute aufgebraucht, so muß man je 25 Züge in 10 Minuten machen..

Man nimmt die Aufforderung an, indem man auf den entsprechenden Knopf in dem erscheinenden Fenster drückt, oder die Match-Anforderung wiederholt.

Das Handicap wird nach dem Start des Spieles von Schwarz mit dem Kommando

handicap Zahl

gesetzt. Natürlich sollte man sich vorher mit dem Gegner darüber einigen. Man kann mit dem Gegner sprechen, indem man

say Text

eingibt. Jago hat dafür den "Senden"-Knopf. In dem erscheinenden Dialog kann man den Text eingeben. Will man vor dem Spiel mit jemanden reden, so kann man das Kommando

tell Name Text

eingeben, oder in Jago in der Spielerliste (die man per Knopfdruck vorher anfordern muß) den Spieler auswählen und dann per Knopfdruck mit ihm reden. Dies kann man auch benutzen, um anzufragen, ob ein Spiel genehm ist.


... to be continued