Chess - Chess Engines

Chess Programming

URL Description
Better Chess through Genetic Programming
Chess Programming Wiki
Computer Chess Programming Theory
  • Negamax Search
  • Analysis Function
  • Iterative Deepening
  • Alpha-Beta Pruning
  • Principal Variation Search
  • Aspiration Windows
  • Transposition Table
  • Killer Moves
  • History Heuristic
  • Quiescence Search
  • Quiescence Width Extensions
  • Bitboards
  • Internal Iterative Deepening
  • Null Move Heuristic
  • Futility Pruning
  • Razoring
  • Search Extensions
  • Static Evaluation
Genetic Algorithms for Optimizing Chess Position Scoring

Since the invention of computer, people have been utilising its fast computation ability, and nowadays, computer is far better than human in many routine tasks. However, there are the fields, such as computer chess, in which computer is not superior. Best human chess players still rival best computer chess programs successfully. This might happen due to the fact that chess includes something beyond pure calculations, which is beyond the capabilities of a computer, but what is quite normal for human. As an alternative, this might happen because of inaccuracy how computers estimate the goodness of a given chess position. In this thesis,an effort on the second assumption is made by means of using the advantages of genetic algorithms, which are very well known as an excellent tool for solving optimisation problems.

In this thesis, the main components of a computer chess program are first reviewed. These include the well-known tree search and alpha-beta pruning. Concepts such as quiescence search, null move, and table bases are also discussed. Basic introduction to genetic algorithmsis given. An own evaluation function of a chess position is constructed. A genetic algorithmis used for optimising the values of the parameters. The system is implemented and tested using an own chess engine, and the results are presented.

GullChess Gull.cpp - GitHub
Java Chess Protocol Interface The Java Chess Protocol Interface provides a clean object-oriented interface to the UCI protocol. It handles all the standard I/O communication and creates well defined Java objects for the engine to consume.
Micro-Max Chess Engine
MisterQueen - Chess Engine written in C GitHub
Open Source Engines

Beginner

  • FCP (written in Forth)
  • Mirco-Max (good docs, very small amount of code)
  • p4wn
  • pChess
  • Pulse (written in Java)
  • SCP
  • Sunfish (written in Python)
  • TSCP

Middle Tier

  • CPW-Engine
  • Faile (very clean)
  • Gerbil
  • NG-play (written in C)
  • Vice (written in C)

Advanced

  • ChessV
  • Crafty
  • Daydreamer
  • Fruit
  • Glaurung
  • GNU Chess
  • Scorpio
  • Senpai
  • Stockfish
Pulse Chess Engine - GitHub Simple but easy to learn.
Stockfish - Chess Engine written in C++ GitHub

The Stockfish project started with the open source Glaurung engine, authored by Tord Romstad. In November 2008, Marco Costalba forked the Glaurung 2.1 code and introduced Stockfish 1.0. Tord and Joona Kiiski joined the Stockfish project and the Glaurung project slowly faded away. Meanwhile, Stockfish quickly rose to become the strongest open source chess engine, with frequent updates every few months. Today, it remains one of the strongest engines in the world.

Stockfish

Pull source code from GitHub and from the src directory execute the following make command to create an executable on Windows:

make build ARCH=x86-64 COMP=gcc
TSCP - Tom's Simple Chess Program

Tom Kerrigan’s Simple Chess Program (TSCP) is a small, open-source chess engine that I made in 1997. It’s a tutorial engine, i.e., it’s designed to teach people how chess engines work.

The 5 Best Computer Chess Engines
UCI Protocol for Stockfish