Skip to content
My very first successful attempt to write a chess engine
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Beginner's UCI chess engine for linux


	- 0x88 board representation;
	- move generation via calculations
	- copy-make make move approach
	- material and piece placement evaluation;
	- nega max brute force search algorithm;
	- UCI protocol with fixed depth search only;
After for about a three years of researching how
does particularly a chess engine works and numerous
unsuccessful attempts to write my own I've finally
managed to complete one.

Chengine is very slow and weak engine due to the lack of
piece lists, king square and material tracking. The brute
force nega max search doesn't cut any garbage branches, so
it takes ages to get the best move even at depth 6, but
nevertheless it is already a complete engine to play chess.

I appriciate any feedbacks at

Intents and purposes

Chengine is intended to be a source of inspiration for the
beginner and hobby programmers dreaming to write their own
bug free chess program. The very first chess engine I've
copy-pasted renaming the variables to get the idea how it
works was Bluefever's VICE which is absolutely great piece
of software, but still quite complicated, so I tried to write
something even more simple.

Next steps

I've finally realized the path to follow in chess engine
development. The idea is very simple - try to do the same
thing you've done before, but in less code and also try to
get the best performance out of a given algorithms.


- compile it with GCC;
- cd into src folder
- type "make" and that's it

the output file would be "chengine"
with no extension


Tested with Arena for linux


I want to thank the great chess engine development community
for providing reasonable resources, espacially to:
	-   Bluefever Software's VICE video tutorial series
	-   Bruce Moreland for his 0x88 board representaion explanations
	-   Chess Programming Wiki 
You can’t perform that action at this time.