What is JaksaH?In a future, JaksaH will be available on Linux as well, however no ETA on this work yet.
x86/x64 computer chess engine, developed by Aleksandar Jakšić in C++, from scratch! JaksaH is compatible with both UCI and WinBoard chess protocols. The engine has no GUI but can be used with many chess playing programs including the free Arena and Winboard as well as commercial Shredder, Fritz and HIARCS programs.
When compared to human players, JaksaH plays relatively strong chess, reaching expert strength even with moderate hardware. It should present a tough challenge and make a good sparring partner for the most amateur chess players.
JaksaH stands for everything that I love about Software Engineering and Computer Science!
It is simple yet powerful software. It is easy to use. It is fast and robust. It
is documented. It works on different platforms and architectures. It is light on resources. It is well
designed, passionately developed, and thoroughly tested. It is free. It utilizes versatile algorithms and data structures. It is known and used by thousands of people worldwide in 100+ countries. It
consistently ranks among Top 400 world engines!
JaksaH also, in a peculiar way, extends the multi-generational tradition of my family with a decent history of avid chess players.
The name JaksaH (Serbian: ЈакшаХ/JakšaH) implies two things actually.
Secondly, "jak" in Serbian means strong/powerful, and "šah" means chess. Therefore, "jak šah" literally translates to the "strong chess" engine. Not so close to the truth when it comes to competing with the world best chess programs nowadays; but hey, I am working on it, just give me another 13 years, and it will get really strong, I promise :)
What's unique about JaksaH?
Its source code, other than reserved keywords of C++ language, is entirely written with non-ASCII (Serbian Cyrillic) characters.
When I was young, I was passionate about two things (if you were thinking of beer and woman, no, you've got it wrong :) It was C++ and Chess! JaksaH was my very first attempt to combine those two passions of mine. Back in 2004, I was tricked into the world of chess programming when I started my early work on JaksaH. I began with Visual C++ 6.0 compiler that I got from Microsoft representative when I was student at the University of British Columbia. It took me about ten days to develop version 0.01. JaksaH's first moves were 1. g4 e6 2. Bh3. The rest was history...
As of v0.05, JaksaH fully supported FIDE rules. Since the development started, I've had many lengthy breaks. In fact, my estimate is that I've spent no more than 3-4 full-time person-months combined since the beginning of the project. Most of this time was spent on testing, debugging and optimization (design/code, run-time, compilation).
My lifetime goal is to make JaksaH particularly strong engine. This would require, as its minimum, competing at the Grandmaster’s level of play on average hardware as well as being consistently ranked among Top 100 engines in the world. My plan is to have fun while rigidly practicing proven software engineering principles. I want to keep it continuously enhancing it while experimenting with numerous algorithms, optimization techniques and new heuristics concepts suggested by research and chess programming communities.
There is so much space for further improvements, adopting more advanced concepts and so on but I am not in rush to work on them. Firstly, I'd rather have one feature that works well than dozen ones that are broken. KISS :) Secondly, I don't have enough time to pursue my hobby. And I really mean that :)
I am not young anymore, but I still find myself passionate about C++ and
Chess. I found no other professional or personal
project to be as challenging, frustrating and rewarding at the same time as
this one. Nothing came even close. And I doubt this is ever going to change ;)
JaksaH implements many widely used concepts typically seen in modern chess programs:
Arena config: You can configure JaksaH either as WB or UCI engine.
Make sure to select appropriate protocol Type from the dropdown (either Winboard or UCI), and also provide appropriate
parameter to the command line (either wb or uci).
Shredder, Fritz and HIARCS config: When installing JaksaH, use the UCI protocol.
As of v1.13, JaksaH is built with Visual Studio 2015 C++ compiler.
Bayesian Elo Rating
List of web sites (likely incomplete) that include JaksaH in computer chess tournaments and provide rating estimates:
Comments, bug reports, or suggestions are welcome. Mail me. Gens una sumus!