UCI Engine erstellen
Was bedeutet UCI ?
Die grafische Programmoberfläche wurde als Multi-Engine-System konzipiert. Dies bedeutet, dass die grafische Oberfläche und das eigentliche Schachprogramm (=Schachengine) strikt voneinander getrennt sind und über eine vordefinierte Schnittstelle miteinander kommunizieren.
UCI steht für Universal Chess Interface und ist ein von Stefan Meyer-Kahlen entwickeltes Protokoll. Das UCI-Interface orientiert sich eng an dem Winboard-Protokoll. Dies bedeutet, dass bereits existente Winboard-Engines von den Autoren mit relativ geringem Arbeitsaufwand an den Betrieb unter dem Programm angepasst werden können.
Für interessierte Programmierer hat diese Lösung folgende Vorzüge:
• | Die eigene Engine kann komfortabel unter der GUI getestet werden. |
• | Die Engine läuft ohne weitere Zusatzadapter mit voller Performance. |
• | Die Akzeptanz der Engine nimmt beim Anwender zu, da eine aufwendige Konfiguration und Einbindung unter der Programm-GUI im Unterschied zu Winboard-Engines entfällt. |
• | Das UCI-Protokoll darf ohne Lizenzgebühr für das eigene Programm - auch für kommerzielle Zwecke - genutzt werden. |
Das Prinzip
Eine UCI-Engine wird über den Menüpunkt Engines - UCI Engine erstellen unter der Programmoberfläche eingebunden.
Dieser eingeblendete Dialog leistet zweierlei:
• | Eine neue UCI-Engine kann über den Dialog unter der Gui eingebunden werden. |
• | Die Parameter einer bereits eingebundenen Engine können modifiziert und geändert werden. Die modifizierte Engine kann mit einem anderen Namen gespeichert werden. |
Hinweis: Bei der Namensgebung gibt es Einschränkungen, die unbedingt zu beachten sind.
• | Der Originalname der Engine muss im Engine-Namen vorkommen. |
• | Wird die Engine mit den Standardparametern eingebunden, muss der Name dem Originalnamen entsprechen. In diesem Fall lässt sich der Engine-Name nicht editieren. Werden die Parameter verändert, muss der Name ergänzt werden, wobei der Originalname der Engine im neuen Namen enthalten sein muss. Auch der Originalname des Engine-Autors kann nicht entfernt werden. Dieser muss jedoch nicht mit den Parametern verändert werden. |
Beispiel: Nehmen wir an, Sie haben die UCI-Version von Shredder unter der Gui eingebunden und einige der Parameter geändert. Diese modifizierte Engine soll im Ladedialog mit einem anderen Namen angezeigt werden. Die Standardvorgabe für die Engine lautet “Shredder ”. Ein gültiger Name wäre z.B. “Shredder Taktikmonster”, weil hier der Originalname der Engine integriert ist. Nicht gültig wäre z.B. ein Phantasiename wie “Meine Engine”.
Einbindung einer UCI-Engine
Bevor eine UCI-Engine im Ladedialog (F3) angezeigt wird, muß sie zuerst unter der Programm -Gui eingebunden werden. Die Einbindung erfolgt in mehreren Schritten.
1. Wählen Sie Engine die Option UCI Engine erstellen ....
2.Im nächsten Schritt müssen Sie vorgeben, unter welchem Pfad oder auf welcher Partition die UCI-Engine gespeichert ist. Diese Informationen können Sie komfortabel über den nachstehenden, automatisch geblendeten Dialog eingeben.
3. Klicken Sie auf den Schalter “Durchsuchen”, um den Pfad für die UCI-Engine zu bestimmen. Das Programm muss wissen, wo die Engine auf dem Computer gespeichert ist.
Priorität: Die UCI-Engine läuft als separater Task neben der Benutzerschnittstelle. Eine niedrigere Priorität kann in manchen Fällen für eine bessere Laufstabilität der externen UCI-Engines beitragen. Mehr Informationen zu dem Parameter Priorität ....
Hinweis: die UCI-Engine kann in einem beliebigen Pfad auf einer beliebigen Partition gespeichert sein !
4. Nach dem Klick auf “Durchsuchen” erscheint der Dateiauswahldialog von Windows. Hier können Sie den Pfad zu der Winboard-Engine festlegen.
Nachdem dieser Schritt durchgeführt wurde, werden Enginename und Autor der Engine automatisch in den Dialogfeldern ergänzt. Der Schalter "Parameter..." für die spezifischen Einstelloptionen einer Schachengine ist jetzt ebenfalls aktiv.
Bestätigen Sie die Vorgaben mit dem Schalter OK. Die UCI Engine steht jetzt mit den Standardeinstellungen unter dem Programm zur Verfügung. Sie können die Engine jederzeit mit F3 unter der Oberfläche zur Analyse oder zum Partiespiel laden.
Engines modifizieren
Viele UCI Engines bieten die Möglichkeit, die Parameter einer Engine und damit das Spielverhalten zu verändern. Klicken Sie dazu auf den Schalter "Parameter...". Hinweis: je nach UCI Engine werden unterschiedliche Optionen zur Verfügung gestellt.
Sollten Sie Parameter oder Einstellungen ändern und mit einem Klick auf "Ok" bestätigen, werden im UCI-Dialog die Felder "Name" und "Autor" zum Editieren freigeschaltet. Bei UCI-Engines können Zeichenketten-Parameter im Parameter-Dialog der Engine bearbeitet werden.
Mit OK wird die modifizierte UCI Engine unter der grafischen Oberfläche (=Gui) angemeldet.
Hinweis: Beachten Sie, dass bei Namensgebung immer der Originalname enthalten sein muss !
Laden einer UCI Engine
Nachdem Sie die Vorbereitungen wie zuvor beschrieben vorgenommen haben, können Sie eine UCI-Engine unter der Programm-Oberfläche laden und dagegen spielen.
Drücken Sie im Hauptbildschirm des Programms die Taste F3 oder wählen Sie Engine - Engine laden.
Wählen Sie die Engine in der Liste aus und klicken Sie auf OK. Sie können jetzt mit der UCI Engine spielen oder analysieren.
Logo`s einbinden
Sie können für jede UCI-Engine ein eigenes Logo einbinden. Bei Enginematches wird z.B. das Logo jeder Engine angezeigt.
Voraussetzung dafür ist:
• | Das Logo muss im BMP-Format gespeichert sein. |
• | Die Pixelgrösse darf 100 x 50 nicht übersteigen. |
• | Die Grafik muss mit der Bezeichnung der Engine übereinstimmen. |
Hinweis: Bei UCI-Engines können Zeichenketten-Parameter im Parameter-Dialog der Engine bearbeitet werden.
Weitere Hinweise zum Betrieb von UCI-Engines finden Sie hier .....