Rezension aus der Fachzeitschrift Computerschach und Spiele

Die universelle Spiel-Engine

Alle Brettspiele der Welt auf einer CD

»Zillions of Games« heißt ein ziemlich geniales Programm, das aus den USA stammt und imstande ist, alle Brettspiele der Welt – auch solche, die noch nicht erfunden sind – zu spielen. Die Software liegt jetzt in deutscher Sprache vor und ist wie geschaffen, den Spieltrieb des Menschen zu befriedigen. Frederic Friedel hat damit einige sehr interessante Erfahrungen gemacht.

Man kennt das. Wer sich für Brett- und Strategiespiele für den PC interessiert, braucht nur in den nächsten Computermarkt zu gehen und in der Spieleabteilung zu stöbern. Die Begeisterung ist groß, weil die Sammlungen auf CD so preisgünstig zu haben sind. Umso größer ist die Enttäuschung, wenn man zu Hause feststellen muß, daß die Qualität der Spiele in der Regel ziemlich miserabel ist. Schlimmer noch: Jedes Spiel will (auf unterschiedliche Art) installiert werden, nimmt zwischen einigen und unverschämt vielen Megabyte auf der Festplatte für sich in Anspruch, und nistet sich in beunruhigender Weise im System ein. Es gibt Eintragungen im Startverzeichnis und neue Icons im Windows-Desktop – die Manipulationen der Windows-Registry bekommt man gottseidank gar nicht erst zu sehen. Nach kurzer Zeit nimmt man Abstand von solchen Spielesammlungen und sucht nach einem neuen Hobby.

Über diese mißliche Lage haben sich zwei Spiele-Experten vor einigen Jahren Gedanken gemacht. Mark Lefler, Kennern vielleicht als Autor des Schachprogramms Now und der Teilnahme an diversen Computerschach-WMs bekannt, tat sich mit Jeff Mallett, der sich ebenfalls mit der Programmierung von Schach und anderen Spielen beschäftigt hatte, zusammen. Über einige Jahre hinweg haben die beiden im Stillen ein Programm entwickelt, das in mehrfacher Hinsicht ziemlich genial ist.

»Zillions of Games« ist eine einzige Oberfläche, unter der man beliebige Spiele laufen lassen kann. Nicht nur »beliebige«, sondern alle Brett- und Strategiespiele, auch solche, die noch nicht erfunden sind. Wie das möglich ist, werden Sie gleich erfahren. Der Name »Zillions« (sprich: Silliens) stammt übrigens aus dem Amerikanischen und heißt soviel wie Abermillionen – oder besser: sehr, sehr viele. Auf der Zillions-CD gibt es vorerst weit über 300 Spiele.

Die Installation ist in wenigen Minuten besorgt und beansprucht knapp 18 MB auf der Festplatte. Über die Hälfte davon ist für grafische Elemente und Soundfiles. Löblicherweise läßt sich das Programm auch direkt von der CD starten, so daß man es auf anderen Rechnern benutzen kann, ohne gleich alles vorher auf die Festplatte zu kopieren. Das ist derart angenehm, daß ich diese Funktion nicht mehr missen möchte. Ich glaube, in Zukunft werde ich nur Spiele kaufen, die sich auch direkt von der CD starten lassen.

  Die »Steuerzentrale« von Zillions (siehe oben) ist klein und handlich, nimmt auf hochauflösenden Monitoren nur wenig Platz in Anspruch. Die 48 Icons stellen jeweils ein Spiel oder eine Spielgruppe dar, die durch Anklicken geladen werden können. Dann verschwindet der Hauptbildschirm und das Spiel erscheint in einem eigenen Fenster, das genauso viel Platz beansprucht, wie das Spielfeld und die Steuerelemente benötigen. Auch das ist sehr angenehm: man kann, wenn man von der augenblicklichen Tätigkeit eine kleine Abwechslung braucht, ein Spiel schnell mal in den Vordergrund holen, ohne den gesamten Arbeitsplatz zu verändern.

Hilfe beim Spiel

Die Bedienung der Spiele ist funktionell schlicht, aber sehr intelligent. Unter »Hilfe« findet man immer eine kurze Anleitung mit den Regeln – wer weiß denn in unserem Kulturkreis schon, wie Hasami Shogi gespielt wird? Weiter gibt es einen kurzen historischen Abriß, eine faszinierende Lektüre bei den exotischeren Spielen, aber auch bei denen, die man seit Jahren kennt (z.B. Mühle, das in Altägypten entstand und von dem man Bretter in Sri Lanka und Island gefunden hat). Falls Sie den Ehrgeiz entwickeln, Ihre Fähigkeiten in einem Spiel zu verbessern, lohnt sich ein Blick in den Menüpunkt »Strategie«, wo Hinweise und Referenzen zu finden sind.

Auch beim Spiel selbst haben sich die Programmierer viel Mühe gegeben, es dem Neuling so leicht wie möglich zu machen. Auf dem Spielfeld verwandelt sich der Mauscursor in eine Hand, wenn er ein Feld oder einen Bereich bestreicht, in dem ein Zug möglich ist. In der Statuszeile unten werden dabei die Zugmöglichkeiten der Figur beschrieben. Klickt man eine Figur an, werden auf dem Brett alle legalen Züge der Figur mit grünen Punkten angezeigt.

Schließlich kann man mit einem rechten Mausklick die »Eigenschaften« der Figur aufrufen, einschließlich ihres Wertes, oder auch neue Figuren auf dem Brett deponieren, ohne vorher in einem entsprechenden Menüpunkt Erlaubnis dafür geholt zu haben (nachahmenswert für die Stellungseingabe bei Schachprogrammen). Bei einer so luxuriösen Online-Unterstützung vermißt man kaum das fehlende Handbuch, zumal es auch eine komfortable allgemeine Hilfe für die Bedienung des Programms gibt.

  Variationen

Auf der Zillions-CD gibt es, wie bereits erwähnt, eine stattliche Anzahl von Spielen: Schach, Dame, Go-Moku, Shogi, Mühle, Halma, Reversi, Münzspiele, Solitaires, Puzzles, usw. Nach dem Laden eines Spiels sollte man gleich einen Blick in den Menüpunkt »Variante« werfen. Fast alle Spiele liegen nämlich in den verschiedensten Abarten vor – beim Schach sind es über zwanzig.

Zu jeder Variante kann man Regeln, Geschichte und Strategieanweisungen abrufen. Oft sind es ganz andere Spiele, und die Spielfeldgrafik ändert sich entsprechend. Übrigens gibt es neben den oben erwähnten direkten Schachvarianten auch getrennte Icons für Minischach (Schach auf verkleinerten Brettern), Märchenschach und Ultima (Schach mit unterschiedlichen Schlagformen). Diese bieten insgesamt 16 weitere Möglichkeiten des Spiels mit Schachsteinen auf dem Schachbrett. Daneben gibt es Dame (in fünf Variationen), das Springerspiel, das Acht-Damen-Problem (fünf Varianten) und einiges mehr. Außerdem natürlich noch Koreanisches, Burmesisches, Thailändisches und Chinesisches Schach sowie Tafl, ein Denkspiel mit Schachfiguren auf dem Schachbrett.

Spielstärke

Wie stark sind nun die Engines, die hinter den Spielen stecken? Diese Frage ist schwer zu beantworten, da man bei den allermeisten Spielen selber ein blutiger Amateur ist, und man auch kaum ein anderes Programm zufällig bei der Hand hat, um es auszutesten. Beim Schach schätze ich das Niveau auf das eines guten Vereinsspielers, obwohl kein Eröffnungsbuch benutzt wird. Schaltet man auf eine der vielen Abarten von Schach, ist der Vereinsspieler aber sofort chancenlos. Bei der WM in Paderborn haben wir erlebt, wie sogar die anwesenden Großmeister extreme Schwierigkeiten beim Zylinderschach hatten. Bei einfacheren Spielen erkennt man übrigens, daß Zillions mitunter in der Ausgangsstellung gleich bis zum »Matt« (oder Spielziel) vordringt. Der komplette Suchbaum wird dabei in wenigen Sekunden abgearbeitet, das Programm spielt absolut perfekt.

Zillions besitzt alle Algorithmen, um beliebige Brett- und Strategiespiele mit annehmbarer Spielstärke austragen zu können. Wie es das macht, werden wir gleich sehen. Man kann aber auch externe Engines (in Form von DLLs) einbinden. Das ist zum Beispiel für das Spiel Reversi geschehen – hauptsächlich weil Jeff Mallett schon vor Jahren ein Weltklasse-Reversi-Programm entwickelt hatte. Auf der Messe Spiel '99 in Essen, wo Zillions zum ersten Mal dem deutschen Publikum präsentiert wurde, war ein Reversi-Spezialist gegen Jeffs Engine völlig chancenlos. Ohne DLL hätte er das Programm sicher geschlagen.

Ich wette, daß in nicht allzu ferner Zukunft die ersten externen Schach-Engines für Zillions erscheinen werden – oder besser noch ein Winboard-Interface, womit alle Amateur-Engines in das Programm eingebunden werden können.

Künstliche Intelligenz

Wie schafft es Zillions, so viele Spiele auf so kleinem Raum zu vereinigen? Die Antwort ist recht spannend. Das Programm selbst besitzt alle notwendigen Suchalgorithmen in hinreichend allgemeiner Form, um beliebige Brett- und Strategiespiele bewältigen zu können. Die Spiele selbst werden nicht als Engines oder DLLs ins Programm eingebunden, sondern sie existieren als kleine Textdateien, in denen die Spielregeln stark formalisiert beschrieben sind. Diese Textdateien heißen »Zillions rules files« und haben die Endung .zrf. Man kann sie mit einem einfachen Texteditor öffnen, lesen und auch editieren (!).

Damit kommen wir zum vielleicht genialsten Aspekt von Zillions: die Art und Weise, wie er solche Spielregeln verwendet. Das Programm baut sich die Engines selber, wenn es ein Spiel lädt. Ja, Sie haben richtig gelesen. Wenn man auf »Schach« klickt, liest Zillions die Schachregeln aus der Textdatei und stellt (temporär) eine Engine her, die Schach zu spielen vermag. Für die Stellungsbewertungen verwendet das Programm materielle und strategische Gesichtspunkte, die es aus den Spielregeln ableitet. Man kann hier mit voller Berechtigung von künstlicher Intelligenz sprechen – ich kenne jedenfalls kein eindrucksvolleres Beispiel.

Das Ergebnis der Zillions-Interpretation kann man leicht überprüfen. Per Rechtsklick lassen sich wie oben berichtet die »Eigenschaften« der einzelnen Spielsteine erfragen. Wenn wir das für Schach tun, erhalten wir die folgenden materiellen Werte:

  Zillions Bauerneinh. Traditionell
Dame 14.121 7,63 9,0
Turm 8.603 4,65 5,0
Läufer 5.916 3,19 3,0
Springer 5.024 2,72 3,0
Bauer 1.850 1,0 1,0

In der ersten Spalte sehen Sie den Zillions-internen Wert, in der zweiten wurde er in Bauerneinheiten übersetzt, und in der rechten Spalte den Wert, der bei traditionellen Schachprogrammen Verwendung findet. Der König wird übrigens von Zillions mit 206.804 (= 111,8 Bauerneinheiten) taxiert, die schwarzen und weißen Figuren differieren geringfügig.

Wie Sie sehen, liegen die Zillions-Werte nicht sehr weit von den empirischen Werten entfernt, obwohl keiner sie dem Programm mitgeteilt hat. Es hat die Werte alleine aus den Schachregeln erschlossen, durch eine Analyse der Wirkungsweise, Mobilität und Zielsetzung der einzelnen Figuren. Natürlich sind die Werte nicht so genau wie in einem Profiprogramm (z.B. sind Dame und Turm leicht unterbewertet), dafür besitzt das Verfahren den unschätzbaren Vorteil, universell einsetzbar zu sein. Durch bloßes Lesen der Regeldatei kann Zillions den Wert von jeder Märchenschachfigur erschließen, ebenso für Spielsteine, für die noch überhaupt keine Erfahrungswerte vorliegen.

Für die Suche verwendet Zillions bei allen Spielen ein klassisches iteratives Verfahren. Natürlich kommen Minimax und Alpha-Beta zum Einsatz, wie auch weitere Techniken, die wir von der Schachprogrammierung her kennen. Sogar Hashtabellen werden angelegt und benutzt.


Kleiner Ausschnitt aus der Regeldatei für Schach

  Spiele selber bauen

Die Fähigkeit von Zillions, Regeldateien zu interpretieren, eröffnet eine weitere Dimension dieser Software. Es ist nämlich auf einfache Weise möglich, neue Spiele bzw. Varianten selber zu programmieren. Dafür verwendet man eine besondere Zillions-eigene Skriptsprache, die in der formalen Komplexität etwa bei Visual Basic liegen dürfte. Wer bereits über Programmierkenntnisse verfügt, kommt sehr schnell damit zurecht. Im Internet gibt es ein hundertseitiges Handbuch dazu, in den nächsten Ausgaben von CSS werden wir kleine Kurse in dieser spannenden Programmiersprache abhalten.

Ein Spiel wie Schach zu programmieren, dauert etwa einen Tag, die Abarten benötigen in der Regel einige Stunden. Wohlgemerkt, wenn man über hinreichende Vorkenntnisse verfügt. Aber auch absolute Laien können eine Menge mit der Zillionsprogrammierung anfangen. Man braucht nämlich nicht unbedingt ein Spiel von Grund auf neu zu entwickeln, man kann ein vorhandenes Spiel nehmen und die Regeldatei modifizieren. Das möchte ich mit einem Beispiel erläutern, die auf eindrucksvolle Weise demonstriert, wie einfach so etwas mitunter zu bewerkstelligen ist.

Auf der Messe Spiel '99 in Essen hat ein Spiele-Erfinder namens Michail Antonow den Zillions-Stand besucht. Wir haben uns einige Stunden lang sehr interessant über Spiele, Denksportaufgaben und das Leben im allgemeinen unterhalten. Als er von der recht traumatischen Zeit seiner Übersiedlung von Bulgarien nach Deutschland nach dem Krieg erzählte, machte Herr Antonow eine interessante Bemerkung. Er sagte, daß ein intelligenter Gegner ihm oft lieber gewesen sei als ein dummer Freund. »In diesem Satz steckt ein gutes Spiel«, sagte ich, und nach kurzer Zeit hatten wir es auch ersonnen: Tandemschach gegen den Computer, bei dem jede Seite einen absoluten Patzer als Partner hat, der jeden zweiten Zug ausführt.

Idiotenschach

Mit dieser Idee gingen wir hinüber zu Mark Lefler und fragten, ob man das in Zillions implementieren könnte. Klar, sagte er, und machte sich gleich ans Werk. Genau drei Minuten hat das Ganze gedauert, und schon war das Spiel fertig. Das meine ich wörtlich: nach 180 Sekunden konnten wir bereits die ersten Partien austragen. Mark hatte nämlich die Regeldatei für Schach geladen und mit lediglich vier Zeilen eine neue Variante hinzugefügt. Hier ist die komplette Modifikation:

(variant
(titel "Idiotenschach");
(players White Black ?Idiot)
(turn-order White Black (?Idiot White) (?Idiot Black)))

Die ersten beiden Zeilen bewirken nur, daß eine neue Variante des Grundspiels in das Menü eingefügt wird, und daß diese Variante »Idiotenschach« heißen wird. Die dritte Zeile bestimmt, daß es drei Spieler gibt: Weiß, Schwarz (wie in den Schachregeln definiert) und »?Idiot«. Das Fragezeichen vor einem Spielernamen bedeutet nach Zillions-Konvention, daß der Spieler Zufallszüge macht. Die vierte Zeile schließlich gibt die Reihenfolge der Spieler an: zuerst spielt Weiß, dann Schwarz, dann der Idiot für Weiß und dann der Idiot für Schwarz.

Mit dieser winzigen Änderung hatten wir ein völlig neues Spiel kreiert. Alle Anwesenden am Stand haben sich mehrere Stunden lang mit dem Ergebnis beschäftigt – und sich dabei halb schief gelacht. Man muß es selber einmal ausprobieren: Sie spielen vernünftig, der Computer spielt vernünftig, und dann kommen zwei Idiotenzüge, die alles verderben. Man ist stets dabei, die Fehler des Partners zu reparieren. Dieser hat keine Probleme damit, den rochadebereiten König nach e2 zu ziehen, oder die Dame zum Fraß anzubieten. Glücklicherweise kommt der gegnerische Idiot als nächster an die Reihe (wenn man mit Weiß spielt), so daß meist das allerschlimmste verhindert werden kann. Aber man kommt dabei auch nicht dazu, von den gegnerischen Idiotenzügen zu profitieren. Das Spiel ist nicht perfekt, da z.B. ?Idiot pseudolegale Zufallszüge spielt. Es kann also vorkommen, daß er den König im Schach stehen läßt. Außerdem spielt auch der normale Computergegner weit unter seinem normalen Niveau, da er in der Baumsuche durch Idiotenzüge ziemlich durcheinandergebracht wird. Um solche Probleme zu lösen und ein wirklich brauchbares Idiotenschach zu programmieren, braucht man wohl mehr als drei Minuten. Aber um eine Menge Spaß zu haben, reicht das allemal.

Neue Spiele

Die einzelnen Regeldateien von Zillions sind unterschiedlich groß und reichen von 50 KB für die aufwendigsten Spiele (z.B. Schach) bis zwei oder drei KB für einfache Spiele wie Kono oder Nim. Das ist ein entscheidender Vorteil für Benutzer mit Internetanschluß. Auf der Homepage des Herstellers und auch der deutschen Vertretung (www.zillions.de) gibt es laufend neue Spiele, die irgend jemand irgendwo in der Welt programmiert hat. Wenn die Zillions-Betreuer solche Spiele für interessant genug erachten, werden sie auf der Webseite bereitgestellt, und man kann sie in wenigen Minuten (manchmal Sekunden) herunterladen. Natürlich ist das alles kostenlos. Damit dürfte der Langeweile für etliche Jahre zuverlässig vorgebeugt sein.

  Apropos Internet: Für Zillions ist der weltweite Datenhighway das ideale Kommunikationsmittel. Das Programm verfügt selbstverständlich über die Option, jedes Spiel über das Internet zu betreiben. Man kann also gegen Zillionsbesitzer überall in der Welt antreten, z.B. koreanisches Schach gegen einen Koreaner spielen (oder von ihm lernen), Go-Moku gegen einen Japaner und Mühle gegen den Kumpel in Bayern. Auch über Modem und firmen- oder hausinterne Netzwerke kann man per Mausklick direkt aus Zillions heraus Verbindung zu anderen Spielern aufnehmen. Dabei gibt es selbstverständlich Chat-Möglichkeiten im Programm, so daß sich die Kontrahenten während der Partie miteinander verständigen können.

Das Internetspiel steckt noch im Anfangsstadium, dürfte aber sehr bald mächtig in Schwung kommen, da die beiden Autoren Lefler und Mallett im Auftrag der »Mind Sports World« einen großen Webserver aufbauen, selbstverständlich mit Zillions als »Front End Client«.

Schluß

Das Programm »Zillions of Games« lag bislang nur in englischer Fassung vor, unter Federführung der Zeitschrift Computerschach und Spiele wurde eine deutsche Fassung entwickelt. Der Preis beträgt DM 89,-. Hält man sich vor Augen, daß man für den Gegenwert einer einzigen Tankfüllung eines Mittelklasseautos nicht nur über 300 verschiedene Spiele bekommt, sondern vor allem die Option, die Sammlung jederzeit selbst oder über das Internet erweitern zu können, wagen wir die These, daß dem Produkt ein beachtlicher Erfolg beschieden sein wird.