Where it all began
Mark Uniacke, author of HIARCS, explains the largely untold history and origins of his chess program, its influences and even some of the algorithms. So where and when did it all start?
As a child I was a strong junior chess player and won a number of titles including the Hertfordshire County under 12 and under 13 chess championships. For Christmas 1978 my father brought me a Chess Challenger 10. This was the 'A' version which did not castle under almost any circumstances. From the advertising we were told this was going play like an expert or a GM! I set to playing it and won game after game. Was I disappointed? Yes, but I was hooked on computer chess!
I was very interested in knowing how a computer could play chess. Fortunately, we came across possibly the best book ever written on computer chess in the Foyles book store in Charring Cross Road. The book "Chess Skill in Man and Machine" was to have a great influence on my future. I consumed the contents of this book as if my life depended on it. I had lots of ideas and was sure I could write a chess program stronger than Chess Challenger 10, but being only 14 and knowing almost nothing about computers this was not going to be as easy as I thought at the time!?
Fortunately, in September 1979 I started my computer studies class. I was very lucky as my school was one of the first comprehensive schools in the County to offer this subject. We had use of a "Research Machines 380Z" microcomputer and limited access to a PDP11 via teletype. Not like the IT lessons in schools today, we learnt the "real" stuff like ferrite core storage, assembly language, Basic programming etc - all great stuff to a kid fascinated by computers!
My first project after doing all the coursework normally set, was to produce a chess program which could play and win the ending of King and Rook against King. I called this program UCT (Uniacke's Chess Technique). It could occasionally deliver the mate but also had a habit of moving the Rook off the chess board!?
As part of the 'O' level (for those outside the UK this is the exams done at age 15/16) Computer Studies we had to produce a relatively large working project. I had decided on my project in 1980 almost a year before the actual project was due - I was going to write a full working chess program!
I needed a name for this new chess program (most important when you are 15 years old). At this stage there were a number of commercial chess computers, with names such as Auto Response Board, Chess System III, Intelligent Chess, Sargon 2.5 etc. I was sitting in the physics classroom having a computer studies lesson with my friends Robert Golden , Timothy Johnson and Winston Menzies thinking about these chess computers names (instead of paying attention to the teacher Mr Owen who was by the way very good) and suddenly it hit me: Higher Intelligence Auto Response Chess System - HIARCS for short! Perfect I thought. Now all I had to do was actually write the program!?
The design for this very first HIARCS in 1980 was to write a program which could search one move ahead but actually understand the tactical exchanges without searching them. At this time I was influenced by the classic book "Sargon: A computer Chess program" which a friend called Winston had at the time. I remember the first objective was to get HIARCS playing legal chess. I programmed this in the Basic programming language and rapidly had a working structure. I was surprised that this was actually easier than the original UCT KRvK program I had written some months earlier - mainly because I was learning fast how write software.
The overall design was as follows:
- Pseudo Legal Move Generation
- Mobility Calculation for both sides - this enabled HIARCS to check for move legality, compute basic tactical exchange swap offs and include a mobility evaluation term
- Evaluation "function" which was as follows: N5(N6) = T2 - T3 + C4 - X7 + E6 - B3 + B4
The above terms were: T2 - Development bonus, T3 - Penalties e.g. pawn promotion threat, C4 - mobility for both sides, X7 - tactical exchange swap offs threatened, E6 - Material count pawn=100, knight=335, bishop=350, rook=500, queen=900, B3 - misc. penalties, B4 - misc. bonuses.
- Make Move
- 4 levels of play mainly based on mobility values
The program consisted of 550 lines of Basic and was finally named HIARCS 3 (lets call it 0.3 to avoid confusion with commercial versions over a decade later) and was finished by 20th March 1981. It ran on a PDP 11/70 based at Hatfield Polytechnic (now Hertfordshire University) and took anywhere between 5 and 30 seconds to make each move.
It is interesting to consider that at about this time Richard Lang was beginning development of his Cyrus program a forerunner of the famous Mephisto dedicated chess computers.
I am sure you are all wanting to know how strong did the first ever HIARCS play. On its top level 4 running on a PDP 11/70 it was about as strong as Chess Challenger 10 on level 2 or 3 so roughly 1150 Elo.
Games from this era are in short supply but I have uncovered two games from the project documentation and these can be viewed here: Game 1 and Game 2. I also found a game played against the commercial Voice Chess Challenger and this can be viewed here: Game 3.
Overall the project was very successful and helped me achieve a A grade in Computer Studies 'O' level.
You can see the source code for HIARCS 0.3 here.
By now I had new ideas on how HIARCS could be improved and soon begun designing HIARCS 4 (really 0.4) but that is the subject of our next article...Now Walking