1. GoFish: A customizable open-source chess engine in Go.
- Author
-
Jubair, Fahed, Abu Salem, Ahmad, Assaf, Yazan, and Darabkh, Khalid A.
- Subjects
- *
CHESS , *ENGINES , *PROGRAMMING languages , *COMPUTER engineering , *SOFTWARE architecture - Abstract
Chess engines, computer programs designed to play chess, have become increasingly popular in recent years due to their ability to challenge human players and provide insights into the game that were previously inaccessible. However, many existing chess engines prioritize maximum performance at the expense of customizable and extensible software design, which would benefit new coming developers in the field. To address this issue, we present GoFish , a chess engine developed in Golang that achieves a balance between performance and design to serve as a modular and easy-to-extend chess engine development framework. At its core, the chess engine has two vital functions: the move search function and the position evaluation function, both of which are performance-critical. The engine has been developed with the aim of decoupling the search and evaluation modules, enabling developers to easily integrate their custom implementations for these two functions. Simultaneously, the engine automatically handles other intricate internal modules. Consequently, our proposed framework significantly reduces the development effort required to implement and compare core algorithms within the chess engine. Moreover, the engine includes default move search and evaluation implementations that have reached a playing strength comparable to that of a grandmaster. Our work is the first in the literature to present a chess engine developed in the Go programming language that strikes a balance between code performance, extendibility, and readability. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF