This program comes as a next step in my project which targets developing chess variant engines in the Go language, based on the CCRL listed decent bitboard UCI Go engine Zurichess by Alexandru Mosoi ( after successfully developing a Racing Kings and an Atomic engine ).
I have to admit that Horde is a difficult one for it is not obvious how to evaluate a position besides material. In Racing Kings you just have a king advance value and the king will march forward, in atomic you have a large pawn bonus and increased mobility score which makes the engine play the atomic way.
I was difficult to come up with some similar simple criterion in Horde to give direction to the game. Finally I decided that giving bonuses for center pawns does the trick ( the bonus is zero for flank pawns and increases towards the center ). On one hand this is good for the pawns for they have no chance on the flanks, and also makes the engine sacrifice pieces for center pawns ( of course just in a mindful way ), which is good for the pieces.
The engines are specifically designed to support the lichess rules of all variants, and the Horde engine is no exception: its default starting position is that of lichess.
Any suggestions for an evaluation function and feedback on the engine's performance are welcome, you can study the source code here:
( Note: all engines are based on the above library and they simply make a call to its Run function with parameters variant and protocol, so all meaningful code is in the three source files of this library, namely interface.go, search.go and movegen go. )
Hi, I'd advise you to post this in one of the main forums, you're a lot more likely to get some feedback.
There is some reason I only posted it here.
To be honest among the three variant engines I have, Racing Kings, Atomic and Horde, the first two are quite strong, however I don't trust the Horde engine too much, so I don't want to go to the wider public with it. Nevertheless I posted it here so people really interested in Horde can give it a go.
hello crashtestdummy0, did you play many horde chess games ? there are some fundamental pawn tactics in horde, that every good (horde) chessplayer knows. so, if its come to evaluating a position in horde, the good and advanced horde chessplayer can estimate very well, if the the pawns have a chance to succeed or not.
This topic has been archived and can no longer be replied to.