RubiChess
# RubiChess

RubiChess ist ein freies Schachprogramm. Es wurde im Jahr 2017 durch den deutschen Programmierer Andreas Matthies geschrieben und wird seitdem von ihm weiterentwickelt.

## Geschichte

Der Entwickler entdeckte sein Interesse am Computerschach relativ spät. Auslöser war ein Hinweis auf die Top Chess Engine Championship (TCEC), einen internationalen Wettbewerb zu dieser Thematik. Dies nahm er 2017 zum Anlass, selbst ein Schachprogramm zu schreiben, das er RubiChess nannte. Hauptmotivation war, neben dem Spaß am Hobby, die eigenen Fertigkeiten in der Programmiersprache C++ zu vervollkommnen. Dabei vermeidet er es, schlicht von anderen freien Engines bekannten Programmcode zu übernehmen, sondern er möchte die Methoden und Prinzipien verstehen, bevor er sie eigenständig und nach Möglichkeit etwas besser implementiert. Er selbst bezeichnet sein Programm bescheiden als: „Just another UCI compliant chess engine“ (deutsch „Nur eine weitere UCI-konforme Schach-Engine“).

Tatsächlich hat RubiChess inzwischen obere Tabellenregionen in internationalen Computer-Schachturnieren und Ranglisten erreicht. Beispielsweise belegte die Version RubiChess 1.8 im September 2020 in der Computer Chess Rating List 40/15 (CCRL 40/15), also bei einer Bedenkzeit von 15 Minuten für jeweils 40 Züge, mit 3297 Elo-Punkten einen sehr achtbaren zehnten Platz hinter Schwergewichten wie Stockfish (Elo=3494), Lc0 (3462), Komodo (3420) und Houdini (3399).

RubiChess ist eine Computerschach-Engine, also der „Motor“ ohne grafische Benutzeroberfläche (GUI). Um mit einem Schach-Frontend zu kommunizieren, wie beispielsweise Arena oder WinBoard (Bild), nutzt es das Universal Chess Interface (UCI), ein offenes Schach-Kommunikationsprotokoll.

Wie viele andere Programme auch, ersetzte RubiChess inzwischen die heuristisch optimierte Bewertungsfunktion durch eine maschinell generierte und wechselte zu NNUE, also zum Efficiently Updatable Neural Network (deutsch „effizient aktualisierbares neuronales Netz“). Diese innovative Methode nutzt ein neuronales Netzwerk, das bereits auf dem Zentralprozessor (CPU) eines Computers effizient läuft und nicht auf Grafikprozessoren (GPU) angewiesen ist. Damit konnte die Spielstärke von RubiChess auf Anhieb um mehr als 200 Elo-Punkte gesteigert werden.

