Maxwell Chess Engine
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Maxwell Chess Engine
Hello CCRL!
Over the past few months I've been developing a Chess engine in Rust, and I'd love to see it on the CCRL!
I'm constantly updating it, but the current version is 3.0.8, and Windows & Linux binaries are available here: https://github.com/eboatwright/Maxwell/ ... tag/v3.0.8
Please let me know what I can do to make it ready for playing in the CCRL
Thank you!
- eboatwright
Over the past few months I've been developing a Chess engine in Rust, and I'd love to see it on the CCRL!
I'm constantly updating it, but the current version is 3.0.8, and Windows & Linux binaries are available here: https://github.com/eboatwright/Maxwell/ ... tag/v3.0.8
Please let me know what I can do to make it ready for playing in the CCRL
Thank you!
- eboatwright
Creator of Maxwell
- Graham Banks
- Posts: 27048
- Joined: Sun Dec 18, 2005 5:47 pm
- Sign-up code: 0
- Location: Auckland, NZ
Re: Maxwell Chess Engine
Author name and nationality.
Website link.
Free or open source.
Estimated strength.
Credit given where it's due.
Website link.
Free or open source.
Estimated strength.
Credit given where it's due.
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
Thanks for getting back to me so quick!
Name: eboatwright
Nationality: American
Website link: I don't have a website, but my Github would be great: https://github.com/eboatwright or https://github.com/eboatwright/Maxwell
100% Free and open source!
On my mid-2012 Macbook Pro running Ubuntu 22.04, it's about 2000 on Lichess (https://lichess.org/@/MaxwellOnLC) Although it's drawn some pretty high rated engines!
Credits to all the resources I've used are in the Github README.md :)
Name: eboatwright
Nationality: American
Website link: I don't have a website, but my Github would be great: https://github.com/eboatwright or https://github.com/eboatwright/Maxwell
100% Free and open source!
On my mid-2012 Macbook Pro running Ubuntu 22.04, it's about 2000 on Lichess (https://lichess.org/@/MaxwellOnLC) Although it's drawn some pretty high rated engines!
Credits to all the resources I've used are in the Github README.md :)
Creator of Maxwell
- Graham Banks
- Posts: 27048
- Joined: Sun Dec 18, 2005 5:47 pm
- Sign-up code: 0
- Location: Auckland, NZ
- Gabor Szots
- Posts: 12909
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: Maxwell Chess Engine
At your page you write it can play only from the start position. At the same time it supports the position command. Is that not contradictory?
After issuing the uci command it would be preferable if it displayed its name and version. Version number might be included in the exe name as well, to avoid accidents.
When I issued the go depth 10 command it exited.
It would be useful to know about how strong it is. Lichess ratings are totally unreliable in my experience.
After issuing the uci command it would be preferable if it displayed its name and version. Version number might be included in the exe name as well, to avoid accidents.
When I issued the go depth 10 command it exited.
It would be useful to know about how strong it is. Lichess ratings are totally unreliable in my experience.
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
Yeah sorry: It supports "position startpos", but not "position fen". Does that need to be implemented?Gabor Szots wrote: ↑Sat Jan 06, 2024 7:30 am At your page you write it can play only from the start position. At the same time it supports the position command. Is that not contradictory?
The only way it currently supports fens is when running the initial program: ./maxwell fen="<insert fen string>"
But as soon as "ucinewgame" gets called, the board gets reset to startpos
Alright I'll get that implementedGabor Szots wrote: ↑Sat Jan 06, 2024 7:30 am After issuing the uci command it would be preferable if it displayed its name and version. Version number might be included in the exe name as well, to avoid accidents.
I've never seen the go command used like that, only "go movetime X" and "go wtime X btime X".
But I can get that implemented
How do I do that? Do I have it play against lower Stockfish levels or something?Gabor Szots wrote: ↑Sat Jan 06, 2024 7:30 am It would be useful to know about how strong it is. Lichess ratings are totally unreliable in my experience.
Sorry, I'm really new to this
Creator of Maxwell
- Gabor Szots
- Posts: 12909
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: Maxwell Chess Engine
Not at all.eboatwright wrote: ↑Sat Jan 06, 2024 2:34 pm Yeah sorry: It supports "position startpos", but not "position fen". Does that need to be implemented?
Not obligatory, I use that to compare speed of different compiles of the same version.Gabor Szots wrote: ↑Sat Jan 06, 2024 7:30 am When I issued the go depth 10 command it exited.
I've never seen the go command used like that, only "go movetime X" and "go wtime X btime X".
But I can get that implemented
Gabor Szots wrote: ↑Sat Jan 06, 2024 7:30 am It would be useful to know about how strong it is. Lichess ratings are totally unreliable in my experience.
No, it's enough to name a few engines from lichess that have similar ratings there and have a CCRL rating. I just thought you might have sparring partners to assess where you stand.How do I do that? Do I have it play against lower Stockfish levels or something?
Once I was also.Sorry, I'm really new to this
BTW, I tried it agains someengines and I think it's about 1800 CCRL blitz. If I'mmistaken, I can change opponents on the fly.
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
Ok: I got "go depth X" parsing correctly, as well as "id name" and "id author" printing out upon receiving the "uci" command.
And I put out a new release here: https://github.com/eboatwright/Maxwell/ ... g/v3.0.8-1 with the new additions
And some engines Maxwell has played that have a CCRL rating:
(Maxwell v3.0.8 is currently 1998 Lichess Blitz, although it's only played 136 games)
Matmoi: 3 wins to 3 losses, 2000-2100 Lichess
Fatalli: 6 losses to 1 draw, 2200-2300 Lichess
Honzovy Sachy 1.1: 5 wins to 1 draw, 1700-1800 Lichess
Fornax: 3 losses to 1 draw, 2300-2350 Lichess
Phalanx XXV: 4 losses to 1 draw, 2400-2500 Lichess
Virutor: 4 wins to 0 losses, 1650-1800 Lichess
CeeChess 1.4: 4 losses to 1 draw, 2300-2400 Lichess
Not many wins, but a couple draws, which for my little engine I'm pretty proud of
And I put out a new release here: https://github.com/eboatwright/Maxwell/ ... g/v3.0.8-1 with the new additions
And some engines Maxwell has played that have a CCRL rating:
(Maxwell v3.0.8 is currently 1998 Lichess Blitz, although it's only played 136 games)
Matmoi: 3 wins to 3 losses, 2000-2100 Lichess
Fatalli: 6 losses to 1 draw, 2200-2300 Lichess
Honzovy Sachy 1.1: 5 wins to 1 draw, 1700-1800 Lichess
Fornax: 3 losses to 1 draw, 2300-2350 Lichess
Phalanx XXV: 4 losses to 1 draw, 2400-2500 Lichess
Virutor: 4 wins to 0 losses, 1650-1800 Lichess
CeeChess 1.4: 4 losses to 1 draw, 2300-2400 Lichess
Not many wins, but a couple draws, which for my little engine I'm pretty proud of
Yikes 1800 is a little rough, but I'd rather it be accurate than favorable! Hopefully I can use this as a good baseline to improveGabor Szots wrote: ↑Sat Jan 06, 2024 2:53 pm BTW, I tried it agains someengines and I think it's about 1800 CCRL blitz. If I'mmistaken, I can change opponents on the fly.
Creator of Maxwell
- Gabor Szots
- Posts: 12909
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: Maxwell Chess Engine
Thanks. I can see that go depth <n> only display a move, nothing more. Not a condition for testing, of course.eboatwright wrote: ↑Sat Jan 06, 2024 3:38 pm Ok: I got "go depth X" parsing correctly, as well as "id name" and "id author" printing out upon receiving the "uci" command.
And I put out a new release here: https://github.com/eboatwright/Maxwell/ ... g/v3.0.8-1 with the new additions
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
With debug=true it should output the number of nodes, current evaluation, and current best move every ply.
Is there a UCI format that I should also print that data to?
None I am aware of.
I want to emphasize that we have no special conditions to include an engine in our tests.
Is there a UCI format that I should also print that data to?
None I am aware of.
I want to emphasize that we have no special conditions to include an engine in our tests.
Creator of Maxwell
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
Alright cool, thanks for your time! I'm excited to see how Maxwell performs
Creator of Maxwell
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
One last question: should I make a new post on this thread when a new Maxwell version comes out? I won't spam with my releases every couple days, but I'm getting near v3.1 and I want to make that a big release
Creator of Maxwell
- Graham Banks
- Posts: 27048
- Joined: Sun Dec 18, 2005 5:47 pm
- Sign-up code: 0
- Location: Auckland, NZ
Re: Maxwell Chess Engine
This thread is okay to announce new releases.
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
- Gabor Szots
- Posts: 12909
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: Maxwell Chess Engine
In that case I'd rather wait for that release and not test 3.0.8.eboatwright wrote: ↑Sun Jan 07, 2024 12:49 am One last question: should I make a new post on this thread when a new Maxwell version comes out? I won't spam with my releases every couple days, but I'm getting near v3.1 and I want to make that a big release
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
Sorry I meant that I'm getting close in the version numbering: only having v3.0.9 and then v3.1 left, I'm no where near being done developing it because I want to make it a big release
Creator of Maxwell
- Gabor Szots
- Posts: 12909
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: Maxwell Chess Engine
OK, I've started a gauntlet with 3.0.8-1 and we'll see what future brings.
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
Thanks for testing Maxwell! It's really cool to see my little engine up there on the listings, I'm still hard at work on v3.1: I've been rewriting the whole search function to be more centered around a Principal Variation Search, whereas before it was more focused on Late Move Reductions
Creator of Maxwell
- Gabor Szots
- Posts: 12909
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: Maxwell Chess Engine
A further bunch of games will be submitted partly to reduce the error margins partly to make Average Opponent closer to 0.eboatwright wrote: ↑Sun Jan 14, 2024 5:10 pm Thanks for testing Maxwell! It's really cool to see my little engine up there on the listings, I'm still hard at work on v3.1: I've been rewriting the whole search function to be more centered around a Principal Variation Search, whereas before it was more focused on Late Move Reductions
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
Creator of Maxwell
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
Hey, quick question: did Maxwell play an illegal move anywhere in your testing?
I just ran a big test in Cutechess (the GUI I use) and in the results window it says: "Loss: played an illegal move "e1g1"", but it doesn't tell me in what position, and I had PGN saving off.
Did this happen anywhere in your testing? I've been looking through the code and I can't figure out what would've gone wrong
I just ran a big test in Cutechess (the GUI I use) and in the results window it says: "Loss: played an illegal move "e1g1"", but it doesn't tell me in what position, and I had PGN saving off.
Did this happen anywhere in your testing? I've been looking through the code and I can't figure out what would've gone wrong
Creator of Maxwell
- Gabor Szots
- Posts: 12909
- Joined: Sat Dec 09, 2006 6:30 am
- Sign-up code: 10159
- Location: Szentendre, Hungary
Re: Maxwell Chess Engine
I have found this three:
[Event "Maxwell 3.0.8-1 64-bit - Jan 15"]
[Site "Szentendre"]
[Date "2024.01.18"]
[Round "23"]
[White "Maxwell 3.0.8-1 64-bit"]
[Black "Skiull 0.5 64-bit"]
[Result "0-1"]
[ECO "B40"]
[Opening "Sicilian"]
[Time "14:38:58"]
[Variation "2...e6 3.d3"]
[TimeControl "100+1"]
[PlyCount "42"]
1. e4 c5 2. Nf3 e6 3. d3 b5 4. g3 Bb7 5. Bg5 Be7 {-0.35/10 3} 6. Bxe7 Nxe7
{-0.10/10 3} 7. Qd2 O-O {+0.15/10 3} 8. Qe3 d5 {+0.20/10 3} 9. Qxc5 dxe4
{+0.35/10 3} 10. dxe4 Bxe4 {+0.25/9 3} 11. Nbd2 Nd7 {+0.25/10 3} 12. Qa3 b4
{+0.25/10 3} 13. Qxb4 Bxc2 {+0.15/10 3} 14. Rc1 Bg6 {+0.25/8 3} 15. Qa3 e5
{+0.30/9 3} 16. h4 e4 {+0.45/9 2} 17. Ng5 Ne5 {+0.30/8 2} 18. h5 h6
{+0.30/8 2} 19. hxg6 hxg5 {+0.15/8 2} 20. Be2 N7xg6 {+0.60/9 2} 21. Rh8+
Kxh8 {+5.45/9 2 Arena Adjudication. Illegal move!} 0-1
[Event "Maxwell 3.0.8-1 64-bit - Jan 15"]
[Site "Szentendre"]
[Date "2024.01.18"]
[Round "29"]
[White "Maxwell 3.0.8-1 64-bit"]
[Black "Plywood 1.7.3"]
[Result "0-1"]
[ECO "A00"]
[Opening "Dunst (Sleipner-Heinrichsen-Van Geet) Opening"]
[Time "20:24:48"]
[Variation "1...d5 2.e4 d4"]
[TimeControl "100+1"]
[PlyCount "26"]
1. Nc3 d5 2. e4 d4 3. Nce2 c5 4. Ng3 Nc6 5. c3 e5 {+0.48/9 2} 6. Qb3 Bd6
{+0.63/7 0} 7. Nf3 Nge7 {+0.61/8 2} 8. Ng5 O-O {+0.60/10 4} 9. Bc4 Qe8
{+0.49/10 5} 10. Qb5 h6 {+1.05/10 5} 11. h4 hxg5 {+3.02/10 5} 12. hxg5 a6
{+3.08/9 5} 13. Rh8+ Kxh8 {Arena Adjudication. Illegal move!} 0-1
[Event "Maxwell 3.0.8-1 64-bit - Jan 7"]
[Site "Szentendre"]
[Date "2024.01.08"]
[Round "5"]
[White "Maxwell 3.0.8-1 64-bit"]
[Black "Roce 0.0390"]
[Result "0-1"]
[ECO "D24"]
[Opening "QGA"]
[Time "09:12:53"]
[Variation "Bogoljubow, 7.a4 Nb4"]
[TimeControl "90+1"]
[PlyCount "24"]
1. d4 d5 2. c4 dxc4 3. Nf3 Nf6 4. Nc3 a6 5. e4 b5 6. e5 Nd5 7. a4 Nb4
{+0.33/9 3} 8. d5 Bb7 {+0.52/9 3} 9. axb5 axb5 {-0.39/9 3} 10. Rxa8 Bxa8
{-0.09/9 3} 11. Bg5 Bxd5 {+0.87/9 3} 12. Qxd5 Nxd5 {+7.11/10 3 Arena
Adjudication. Illegal move!} 0-1
[Event "Maxwell 3.0.8-1 64-bit - Jan 15"]
[Site "Szentendre"]
[Date "2024.01.18"]
[Round "23"]
[White "Maxwell 3.0.8-1 64-bit"]
[Black "Skiull 0.5 64-bit"]
[Result "0-1"]
[ECO "B40"]
[Opening "Sicilian"]
[Time "14:38:58"]
[Variation "2...e6 3.d3"]
[TimeControl "100+1"]
[PlyCount "42"]
1. e4 c5 2. Nf3 e6 3. d3 b5 4. g3 Bb7 5. Bg5 Be7 {-0.35/10 3} 6. Bxe7 Nxe7
{-0.10/10 3} 7. Qd2 O-O {+0.15/10 3} 8. Qe3 d5 {+0.20/10 3} 9. Qxc5 dxe4
{+0.35/10 3} 10. dxe4 Bxe4 {+0.25/9 3} 11. Nbd2 Nd7 {+0.25/10 3} 12. Qa3 b4
{+0.25/10 3} 13. Qxb4 Bxc2 {+0.15/10 3} 14. Rc1 Bg6 {+0.25/8 3} 15. Qa3 e5
{+0.30/9 3} 16. h4 e4 {+0.45/9 2} 17. Ng5 Ne5 {+0.30/8 2} 18. h5 h6
{+0.30/8 2} 19. hxg6 hxg5 {+0.15/8 2} 20. Be2 N7xg6 {+0.60/9 2} 21. Rh8+
Kxh8 {+5.45/9 2 Arena Adjudication. Illegal move!} 0-1
[Event "Maxwell 3.0.8-1 64-bit - Jan 15"]
[Site "Szentendre"]
[Date "2024.01.18"]
[Round "29"]
[White "Maxwell 3.0.8-1 64-bit"]
[Black "Plywood 1.7.3"]
[Result "0-1"]
[ECO "A00"]
[Opening "Dunst (Sleipner-Heinrichsen-Van Geet) Opening"]
[Time "20:24:48"]
[Variation "1...d5 2.e4 d4"]
[TimeControl "100+1"]
[PlyCount "26"]
1. Nc3 d5 2. e4 d4 3. Nce2 c5 4. Ng3 Nc6 5. c3 e5 {+0.48/9 2} 6. Qb3 Bd6
{+0.63/7 0} 7. Nf3 Nge7 {+0.61/8 2} 8. Ng5 O-O {+0.60/10 4} 9. Bc4 Qe8
{+0.49/10 5} 10. Qb5 h6 {+1.05/10 5} 11. h4 hxg5 {+3.02/10 5} 12. hxg5 a6
{+3.08/9 5} 13. Rh8+ Kxh8 {Arena Adjudication. Illegal move!} 0-1
[Event "Maxwell 3.0.8-1 64-bit - Jan 7"]
[Site "Szentendre"]
[Date "2024.01.08"]
[Round "5"]
[White "Maxwell 3.0.8-1 64-bit"]
[Black "Roce 0.0390"]
[Result "0-1"]
[ECO "D24"]
[Opening "QGA"]
[Time "09:12:53"]
[Variation "Bogoljubow, 7.a4 Nb4"]
[TimeControl "90+1"]
[PlyCount "24"]
1. d4 d5 2. c4 dxc4 3. Nf3 Nf6 4. Nc3 a6 5. e4 b5 6. e5 Nd5 7. a4 Nb4
{+0.33/9 3} 8. d5 Bb7 {+0.52/9 3} 9. axb5 axb5 {-0.39/9 3} 10. Rxa8 Bxa8
{-0.09/9 3} 11. Bg5 Bxd5 {+0.87/9 3} 12. Qxd5 Nxd5 {+7.11/10 3 Arena
Adjudication. Illegal move!} 0-1
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
Thanks! I actually just fixed it: I ran another huge test last night, got another illegal move, opened up the PGN and the bug was so stupid, but it makes so much sense
The bug was when one rook would take another rook from the other side of the board, it would only consider to remove castling rights for ONE OF THOSE SIDES (usually the black one, because the function considers those first)
That'll teach me to be careful where I use "else if" statements
Also, I've been making huge progress on Maxwell v3.1, I just ran a test 2 days ago, and it's an estimated +160 Elo in self-play! I'm still working on it, hopefully v3.1 can be 2000+
The bug was when one rook would take another rook from the other side of the board, it would only consider to remove castling rights for ONE OF THOSE SIDES (usually the black one, because the function considers those first)
That'll teach me to be careful where I use "else if" statements
Also, I've been making huge progress on Maxwell v3.1, I just ran a test 2 days ago, and it's an estimated +160 Elo in self-play! I'm still working on it, hopefully v3.1 can be 2000+
Creator of Maxwell
- eboatwright
- Posts: 24
- Joined: Fri Jan 05, 2024 5:59 pm
- Sign-up code: 10159
- Contact:
Re: Maxwell Chess Engine
And a new patch has been put out
https://github.com/eboatwright/Maxwell/ ... g/v3.0.8-2
Although if you have to add this as separate version, you an probably just skip it, because I think v3.1 might be out soon
Thank you!
https://github.com/eboatwright/Maxwell/ ... g/v3.0.8-2
Although if you have to add this as separate version, you an probably just skip it, because I think v3.1 might be out soon
Thank you!
Creator of Maxwell