Chesser: A Chess Engine derived from wingletx by Syed Fahad

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

Moderator: Ras

User avatar
vittyvirus
Posts: 646
Joined: Wed Jun 18, 2014 2:30 pm
Full name: Fahad Syed

Chesser: A Chess Engine derived from wingletx by Syed Fahad

Post 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...
User avatar
Bloodbane
Posts: 154
Joined: Thu Oct 03, 2013 4:17 pm

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

Post 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?
Functional programming combines the flexibility and power of abstract mathematics with the intuitive clarity of abstract mathematics.
https://github.com/mAarnos
User avatar
vittyvirus
Posts: 646
Joined: Wed Jun 18, 2014 2:30 pm
Full name: Fahad Syed

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

Post 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.
User avatar
velmarin
Posts: 1600
Joined: Mon Feb 21, 2011 9:48 am

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

Post 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.
User avatar
Bloodbane
Posts: 154
Joined: Thu Oct 03, 2013 4:17 pm

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

Post 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
Functional programming combines the flexibility and power of abstract mathematics with the intuitive clarity of abstract mathematics.
https://github.com/mAarnos
User avatar
vittyvirus
Posts: 646
Joined: Wed Jun 18, 2014 2:30 pm
Full name: Fahad Syed

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

Post 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
User avatar
vittyvirus
Posts: 646
Joined: Wed Jun 18, 2014 2:30 pm
Full name: Fahad Syed

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

Post 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()
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

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

Post 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.
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

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

Post 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!!
User avatar
vittyvirus
Posts: 646
Joined: Wed Jun 18, 2014 2:30 pm
Full name: Fahad Syed

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

Post 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!