Maxwell Chess Engine

Questions and comments related to CCRL testing study
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Maxwell Chess Engine

Post by eboatwright »

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
Creator of Maxwell
User avatar
Graham Banks
Posts: 26916
Joined: Sun Dec 18, 2005 5:47 pm
Sign-up code: 0
Location: Auckland, NZ

Re: Maxwell Chess Engine

Post by Graham Banks »

Author name and nationality.
Website link.
Free or open source.
Estimated strength.
Credit given where it's due.
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

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 :)
Creator of Maxwell
User avatar
Graham Banks
Posts: 26916
Joined: Sun Dec 18, 2005 5:47 pm
Sign-up code: 0
Location: Auckland, NZ

Re: Maxwell Chess Engine

Post by Graham Banks »

:thumbup:
User avatar
Gabor Szots
Posts: 12849
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: Maxwell Chess Engine

Post by Gabor Szots »

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.
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

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?
Yeah sorry: It supports "position startpos", but not "position fen". Does that need to be implemented?
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
Gabor 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.
Alright I'll get that implemented :thumbsup:
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.
How do I do that? Do I have it play against lower Stockfish levels or something?

Sorry, I'm really new to this
Creator of Maxwell
User avatar
Gabor Szots
Posts: 12849
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: Maxwell Chess Engine

Post by Gabor Szots »

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 at all.
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
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 It would be useful to know about how strong it is. Lichess ratings are totally unreliable in my experience.
How do I do that? Do I have it play against lower Stockfish levels or something?
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.
Sorry, I'm really new to this
Once I was also.


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.
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

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 :D

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 :lol:
Gabor 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.
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 improve
Creator of Maxwell
User avatar
Gabor Szots
Posts: 12849
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: Maxwell Chess Engine

Post by Gabor Szots »

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 :D
Thanks. I can see that go depth <n> only display a move, nothing more. Not a condition for testing, of course.
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

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.
Creator of Maxwell
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

Alright cool, thanks for your time! I'm excited to see how Maxwell performs
Creator of Maxwell
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

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 :D
Creator of Maxwell
User avatar
Graham Banks
Posts: 26916
Joined: Sun Dec 18, 2005 5:47 pm
Sign-up code: 0
Location: Auckland, NZ

Re: Maxwell Chess Engine

Post by Graham Banks »

This thread is okay to announce new releases.
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

Graham Banks wrote: Sun Jan 07, 2024 2:02 am This thread is okay to announce new releases.
Ok awesome!
Creator of Maxwell
User avatar
Gabor Szots
Posts: 12849
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: Maxwell Chess Engine

Post by Gabor Szots »

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 :D
In that case I'd rather wait for that release and not test 3.0.8.
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

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 :thumbsup:
Creator of Maxwell
User avatar
Gabor Szots
Posts: 12849
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: Maxwell Chess Engine

Post by Gabor Szots »

OK, I've started a gauntlet with 3.0.8-1 and we'll see what future brings.
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

Awesome, thank you! I'm excited to see how it does
Creator of Maxwell
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

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
User avatar
Gabor Szots
Posts: 12849
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: Maxwell Chess Engine

Post by Gabor Szots »

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
A further bunch of games will be submitted partly to reduce the error margins partly to make Average Opponent closer to 0.
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

:thumbup:
Creator of Maxwell
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

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 :?
Creator of Maxwell
User avatar
Gabor Szots
Posts: 12849
Joined: Sat Dec 09, 2006 6:30 am
Sign-up code: 10159
Location: Szentendre, Hungary

Re: Maxwell Chess Engine

Post by Gabor Szots »

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
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

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 :lol:

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 :mrgreen:

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
User avatar
eboatwright
Posts: 24
Joined: Fri Jan 05, 2024 5:59 pm
Sign-up code: 10159
Contact:

Re: Maxwell Chess Engine

Post by eboatwright »

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 :D

Thank you!
Creator of Maxwell
Post Reply