I have released earlier versions of my engine on smaller platforms before, but with the relatively pleasing performance of 3.1, I have decided to release it here to a more mainstream audience
It's made in python, and it's (lack of) speed certainly shows, especially in the earlygame, although it does speed up as the piece count on the board declines
It is not entirely original code, I have used Disservin's python chess engine as most of the baseline, but I do hope that with further development it will be more independent of it's source, for I do not wish to create a mere clone.
Considering the fact it loses to a replica of the Smith One Move Analyser and Chess.com's Nelson (and this is with unlimited time mind you), I don't expect it to be higher than 1100, but from it's performance I don't expect it to be lower than 800 either (although that's time dependent).
The engine can be downloaded here precompiled along with previous versions
The source code of 3.1 is bundled in the zip with the executable, do keep in mind I no longer have the source code of the mk2 original or tournament, or the source code of the failed mk3
Any help, criticism, feedback, ect. would be greatly appreciated, because getting this thing working in the first place took embarrassingly long.
Engine Release: Valiant
Moderator: Ras
-
- Posts: 39
- Joined: Tue Sep 27, 2022 7:13 pm
- Location: United Kingdom, East Midlands
- Full name: Jedidiah F. Sessions
-
- Posts: 373
- Joined: Thu Jan 22, 2015 3:21 pm
- Location: Zurich, Switzerland
- Full name: Jonathan Rosenthal
Re: Engine Release: Valiant
Congratulations on your engine release!
Don't feel embarrassed that it took you long or that it isn't as strong as some of the programs you'll see people here discussing. Everyone has to start somewhere, and most people never get to the stage of releasing a playable engine at all.
Thank you for contributing to the landscape of chess engines!
Don't feel embarrassed that it took you long or that it isn't as strong as some of the programs you'll see people here discussing. Everyone has to start somewhere, and most people never get to the stage of releasing a playable engine at all.
Thank you for contributing to the landscape of chess engines!
-Jonathan
-
- Posts: 39
- Joined: Tue Sep 27, 2022 7:13 pm
- Location: United Kingdom, East Midlands
- Full name: Jedidiah F. Sessions
Re: Engine Release: Valiant
Just realised that the dropbox link only links to 3.1 instead of the whole folder as I said, so here's an updated link that links to the whole folder.
-
- Posts: 39
- Joined: Tue Sep 27, 2022 7:13 pm
- Location: United Kingdom, East Midlands
- Full name: Jedidiah F. Sessions
Re: Engine Release: Valiant
Valiant 3.2 has been released with improved tuning of constant values, making it play far more aggressively, and an alteration on how it processes time, meaning it will no longer take 40 seconds for it to make it's first move, instead now only 11 seconds; it also performs the Reti opening now, instead of King's Pawn.
In testing it has been able to beat mildly tougher engines like the Smith One Move Analyser, and Mephisto I (difficulty a3)
With these improvements, I assume that the elo range has increased from 800-1100 to possibly 900-1300
A joke variant "Archer" has also been released, with reversed Piece Square Tables. I have made it for the sake of research akin to Tom7's artificially stupid engines.
In testing it has been able to beat mildly tougher engines like the Smith One Move Analyser, and Mephisto I (difficulty a3)
With these improvements, I assume that the elo range has increased from 800-1100 to possibly 900-1300
A joke variant "Archer" has also been released, with reversed Piece Square Tables. I have made it for the sake of research akin to Tom7's artificially stupid engines.
-
- Posts: 243
- Joined: Tue Jan 31, 2023 4:34 pm
- Full name: Adam Kulju
Re: Engine Release: Valiant
I seem to be unable to run it in Arena, it loads the engine just fine and starts it up but then nothing happens - no output or anything. Do I have to do anything special to make it work?
go and star https://github.com/Adam-Kulju/Patricia!
-
- Posts: 39
- Joined: Tue Sep 27, 2022 7:13 pm
- Location: United Kingdom, East Midlands
- Full name: Jedidiah F. Sessions
Re: Engine Release: Valiant
1. Is the .exe in a folder called "build" ?(without the quotation marks) as it for some reason won't work without it.
2. I do apologise but Valiant is untested on Arena, it's only been tested on Win11 BanksiaGUI.
-
- Posts: 243
- Joined: Tue Jan 31, 2023 4:34 pm
- Full name: Adam Kulju
Re: Engine Release: Valiant
Ok I downloaded BanksiaGUI and now your engine works, thanks.
The most noticeable thing is that the raw speed of your engine is very slow - barely 5k positions a second on my laptop. This really affects performance at low depths, probably moreso than search efficiency honestly (it took 30 seconds to evaluate the starting position to depth 7; if you got your engine to a very possible speed of 100k nps it would have completed that search in a second and a half instead).
Have you have you done any profiling to see what's eating up all that time? Is it the evaluation that's taking the most time, or moving pieces, or generating legal moves?
go and star https://github.com/Adam-Kulju/Patricia!
-
- Posts: 36
- Joined: Thu Mar 03, 2022 7:29 am
- Full name: Alvin Peng
Re: Engine Release: Valiant
D-house hits around 6k nps during search on my computer, so a couple thousand nps is quite normal for a python engine. Python is just a very very slow language.Whiskers wrote: ↑Sat Feb 25, 2023 3:16 am The most noticeable thing is that the raw speed of your engine is very slow - barely 5k positions a second on my laptop. This really affects performance at low depths, probably moreso than search efficiency honestly (it took 30 seconds to evaluate the starting position to depth 7; if you got your engine to a very possible speed of 100k nps it would have completed that search in a second and a half instead).
Have you have you done any profiling to see what's eating up all that time? Is it the evaluation that's taking the most time, or moving pieces, or generating legal moves?
-
- Posts: 39
- Joined: Tue Sep 27, 2022 7:13 pm
- Location: United Kingdom, East Midlands
- Full name: Jedidiah F. Sessions
Re: Engine Release: Valiant
So far on my PC, the fastest I've been able to get 3.2 (and 3.2 "Archer") is 16 Kn/s, and generally takes less time than 30 seconds for it's first move.Whiskers wrote: ↑Sat Feb 25, 2023 3:16 am
Ok I downloaded BanksiaGUI and now your engine works, thanks.
The most noticeable thing is that the raw speed of your engine is very slow - barely 5k positions a second on my laptop. This really affects performance at low depths, probably moreso than search efficiency honestly (it took 30 seconds to evaluate the starting position to depth 7; if you got your engine to a very possible speed of 100k nps it would have completed that search in a second and a half instead).
Have you have you done any profiling to see what's eating up all that time? Is it the evaluation that's taking the most time, or moving pieces, or generating legal moves?
It does search at far greater depths and faster when there are less pieces on the board (so far the current record is a depth of 12) [In testing, this has given Valiant a stronger endgame, giving it a unique skill curve over game time due to it's depth being tied to piece count.]
{Versions older than 3.2 and 3.2 archer run much slower due to their time management code being quite lenient}
The reasoning on why the engine is so slow is because:
1. It's compiled for python 3.x, which runs at the speed of an actual python
2. I would compile it in PyPy 3 to make it go [drastically] faster, but I have yet to learn on how to get it to successfully compile in PyPy3
3. Iterative deepening is what consumes the most time, but without it, the engine would be drastically lower in elo
Although I must say that I do thank you (and alvinypeng) for downloading my engine and giving it a shot.
Is there anything about it (strategically and/or positionally) that could use improvement?
-
- Posts: 36
- Joined: Thu Mar 03, 2022 7:29 am
- Full name: Alvin Peng
Re: Engine Release: Valiant
Using tapered piece square tables can improve your engine positionally. Also, you can speed up your engine by incrementally updating your piece square table scores every time you make a move rather than computing them from scratch every time you call your evaluate function.Enderjed wrote: ↑Sun Feb 26, 2023 7:54 pm So far on my PC, the fastest I've been able to get 3.2 (and 3.2 "Archer") is 16 Kn/s, and generally takes less time than 30 seconds for it's first move.
It does search at far greater depths and faster when there are less pieces on the board (so far the current record is a depth of 12) [In testing, this has given Valiant a stronger endgame, giving it a unique skill curve over game time due to it's depth being tied to piece count.]
{Versions older than 3.2 and 3.2 archer run much slower due to their time management code being quite lenient}
The reasoning on why the engine is so slow is because:
1. It's compiled for python 3.x, which runs at the speed of an actual python
2. I would compile it in PyPy 3 to make it go [drastically] faster, but I have yet to learn on how to get it to successfully compile in PyPy3
3. Iterative deepening is what consumes the most time, but without it, the engine would be drastically lower in elo
Although I must say that I do thank you (and alvinypeng) for downloading my engine and giving it a shot.
Is there anything about it (strategically and/or positionally) that could use improvement?