Take 2
During my final year exam at varsity, the chess bug bit me again. By now I’ve learned the C++ language and had access to the Internet (where I discovered the beauty of the Alpha-beta algorithm and better ways to represent a chess board.) My hardware was also much better (a Pentium 120MHz) and I owned a copy of C++ builder – something that would make it much easier to write a GUI for my program.
My objective for NagaSkaki (this is what I decided to call my chess program) was simple: create a program that could play chess on the same level as me. I was probably rated around 1600 elo, so I thought at least now I have an attainable goal.
Because of all the research I did, things went much better this time. I still remember the joy when NagaSkaki won his first game against a human (a few months after I started programming.) It was probably after a year of on-off programming that NagaSkaki reached its goal by beating me quite often.
Of course by that time I wasn’t all that interested in playing against NagaSkaki myself anymore, I just wanted to make it as strong as possible! I organised matches against all kinds of computer opponents and eagerly monitored its progress. This seems to happen to most people that get addicted to chess programming…
After releasing the first version on the Internet, people asked me if NagaSkaki can interface to winboard. I’ve never heard of Winboard before, thus I google’d it and realised that this thing would make my computer vs. computer matches much easier. After implementing the winboard protocol I was amazed at how many people were suddenly interested in downloading it. I then realised that I’m not the only one who became more interested in playing these machines against each other than playing against them ourselves!
And that is how NagaSkaki came to live. Of course it takes a lot of time and effort to create something that can play a decent game of chess. There were months when I programmed every day till late at night (or early in the morning), and then there were months (once even more than a year) when I didn’t do any programming at all. But every time you just find more and more ways to improve your program.