Requesting Engine Critiques

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

jmcd
Posts: 58
Joined: Wed Mar 18, 2020 10:00 pm
Full name: Jonathan McDermid

Requesting Engine Critiques

Post by jmcd »

Hello everyone!

I recently decided that I needed to refresh my programming skills as I'm not doing much coding this semester. I am not really a chess player, but I thought a chess engine would be a good project that wasn't overly complex to start off with while always having room for improvement. I haven't had any feedback or guidance outside of the wiki until now, so I'm sure I've done a million things wrong. Please give me your unfiltered opinions!

The engine utilizes a negamax algorithm, iterative deepening, principle variations, hashtables, zobrist keys, null moves, quiescent search, variable alpha beta windows, and more. Some of these features might not be functioning as intended. I only downloaded arena today, so the UCI compatibility is barebones and it is currently only working for player vs engine for me at the moment. This is obviously a major area that needs to be worked on. Another is that I haven't implemented FEN strings yet.

Thanks for reading! The github contains the source code and the drive contains the exe file.



https://github.com/jonathanmcdermid/Chess-Engine
Clovis GitHub
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Requesting Engine Critiques

Post by Dann Corbit »

I can tell you have put a lot of work into it.
I have definitely seen a lot worse.

When I gave the UCI command go infinite, it moved instantly.
That seemed strange to me.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
jmcd
Posts: 58
Joined: Wed Mar 18, 2020 10:00 pm
Full name: Jonathan McDermid

Re: Requesting Engine Critiques

Post by jmcd »

Thanks! Like I said, the UCI compatibility is pretty minimal, as I just started on that today. I wrote it so that the engine reads one word at a time, and if it recognizes the word in the UCI message, it will take the next word and see if it recognizes that as well. In the tournament mode that I first tested, I saw that the standard UCI message was go, followed by integers for the time remaining for each team and increments. Right now the engine looks for the words "wtime" or "btime" and takes the concurrent word to set the time limit in the search. I will add a case for "infinite" now.
Clovis GitHub
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Requesting Engine Critiques

Post by Dann Corbit »

The grammar of the whole UCI standard is fairly minimal. It might be a good time to make sure your engine complies with the commands you promise in the UCI capability inquiry.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.