Page 1 of 3

Chesser: A Chess Engine derived from wingletx by Syed Fahad

Posted: Wed Dec 24, 2014 10:11 am
by vittyvirus
"Chesser is a Bitboard chess engine based on Stef Luijten's Winglet Chess
Engine. This program came into existence because I saw a huge room for
improvement in Winglet."

My first Chess Engine!

https://sourceforge.net/projects/chesser/

Chesser code has lots and lots of speed-ups and new things...
I've done lots and lots of speed-ups, and heavily tweaked the evaluation function. Although it does a perfect score against wingletx at times, my tests show it's around 2000...

The download includes the 32-bit executables and source for Chesser and wingletx. My compiler (MSVC++ 2010 Express) doesn't support 64-bit for now. So please compile for 64-bits if you can!!! The project files for Chesser are also included.

I'd also request CCRL to test this Winboard engine...

Re: Chesser: A Chess Engine derived from wingletx by Syed Fa

Posted: Wed Dec 24, 2014 12:20 pm
by Bloodbane
I tried compiling Chesser on VS2013, but it fails due to massive amounts of linker errors caused by multiply defined objects. On a quick glance the cause is globals.h and the plain variables contained within. If you have something like "int DISTANCE[64][64];" in a header file in the global namespace every time the file is included somewhere else the variable is duplicated which causes severe problems for the linker leading to the errors. Do you get any warnings or errors related to this?

Re: Chesser: A Chess Engine derived from wingletx by Syed Fa

Posted: Wed Dec 24, 2014 12:29 pm
by vittyvirus
Bloodbane wrote:I tried compiling Chesser on VS2013, but it fails due to massive amounts of linker errors caused by multiply defined objects. On a quick glance the cause is globals.h and the plain variables contained within. If you have something like "int DISTANCE[64][64];" in a header file in the global namespace every time the file is included somewhere else the variable is duplicated which causes severe problems for the linker leading to the errors. Do you get any warnings or errors related to this?
Thank you!
You can solve the problem by simply by turning on /FORCE:MULTIPLE
Goto Project Properties->Linker->General->Force File Output and turn it on.

Should solve the problem immediately.

Re: Chesser: A Chess Engine derived from wingletx by Syed Fa

Posted: Wed Dec 24, 2014 12:47 pm
by velmarin
The code is compiled by adding the flag.

But you have not put popcnt to 64 bits or Bitscanforward,, ..
You lose a lot of speed,


Winglet is a good choice to keep improving.

Re: Chesser: A Chess Engine derived from wingletx by Syed Fa

Posted: Wed Dec 24, 2014 12:49 pm
by Bloodbane
That worked, but I would suggest getting rid of the problem instead of working around it by messing with the linker. Anyways, here's the link to the x64 version.

http://www.filedropper.com/chesser

Re: Chesser: A Chess Engine derived from wingletx by Syed Fa

Posted: Wed Dec 24, 2014 12:58 pm
by vittyvirus
Bloodbane wrote:That worked, but I would suggest getting rid of the problem instead of working around it by messing with the linker. Anyways, here's the link to the x64 version.

http://www.filedropper.com/chesser
Can you email it to me? sydfhd@gmail.com

Re: Chesser: A Chess Engine derived from wingletx by Syed Fa

Posted: Wed Dec 24, 2014 1:00 pm
by vittyvirus
velmarin wrote:The code is compiled by adding the flag.

But you have not put popcnt to 64 bits or Bitscanforward,, ..
You lose a lot of speed,


Winglet is a good choice to keep improving.
Unfortunate enough, my compiler didn't seem to support popcnt64 or _BitScanForward64()

Re: Chesser: A Chess Engine derived from wingletx by Syed Fa

Posted: Wed Dec 24, 2014 2:53 pm
by Sven
Bloodbane wrote:That worked, but I would suggest getting rid of the problem instead of working around it by messing with the linker.
Fully agreed. However, the source of the problem is already in Winglet and most probably Syed was not aware of it.

@Syed: Chesser.vcxproj has wrong path names for magicmoves.c and magicmoves.h, these need to be fixed.

Re: Chesser: A Chess Engine derived from wingletx by Syed Fa

Posted: Wed Dec 24, 2014 3:24 pm
by cdani
vittyvirus wrote:"Chesser is a Bitboard chess engine based on Stef Luijten's Winglet Chess
Engine. This program came into existence because I saw a huge room for
improvement in Winglet."

My first Chess Engine!

https://sourceforge.net/projects/chesser/
Congratulations!!

Re: Chesser: A Chess Engine derived from wingletx by Syed Fa

Posted: Wed Dec 24, 2014 3:52 pm
by vittyvirus
Sven Schüle wrote:
Bloodbane wrote:That worked, but I would suggest getting rid of the problem instead of working around it by messing with the linker.
Fully agreed. However, the source of the problem is already in Winglet and most probably Syed was not aware of it.

@Syed: Chesser.vcxproj has wrong path names for magicmoves.c and magicmoves.h, these need to be fixed.
Oh, I didn't notice that... I'd fix it soon. Thanks!