Introducing Myrddin v0.0000001a

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

Moderators: hgm, Rebel, chrisw

JVMerlino
Posts: 1357
Joined: Wed Mar 08, 2006 10:15 pm
Location: San Francisco, California

Introducing Myrddin v0.0000001a

Post by JVMerlino »

Greetings,

I am happy to announce that, after about 200 hours work, I have a chess engine that can occasionally play up to my crappy level (probably about 1300 USCF).

Here's the embarrassing truth:
-- Has only minimal eval (just piece tables and wood counting)
-- Only Alpha/Beta searches to depth 6 (no quiescent search yet)
-- 0x88 board representation
-- No move ordering
-- No hash tables
-- No checks for 3-fold or 50-move draws
-- Quasi-Winboard v1 compatible (meaning it has the bare minimum necessary to run in the Chessmaster GUI -- haven't tried any others)
-- Has no opening book or access to EGTBs

But it does know all the rules of chess, and move generation is not embarrassingly slow (perft 5 from initial position on a P4-3.0 takes 2.2 seconds and perft 6 takes 55 seconds).

At least it's good enough to beat me when I miss a Mate in 2, as shown here:

[Date "2009.2.22"]
[White "Myrddin Release"]
[Black "Merlin"]
[Result "1-0"]

1.b3 e5 2.c3 d5 3.e3 Nc6 4.Bb5 Bd7 5.Ne2 a6 6.Bxc6 Bxc6 7.Bb2 Nf6
8.d4 exd4 9.Nxd4 Qd7 10.f3 Bc5 11.Qe2 O-O 12.O-O Rfe8 13.Qf2 Bxd4
14.exd4 Re6 15.Qd2 Bb5 16.Rf2 Rae8 17.Na3 Re2 18.Rxe2 Rxe2 19.Qc1
Qe6 20.c4 dxc4 21.Bc3 cxb3 22.axb3 Qe3+ 23.Qxe3 Rxe3 24.Nxb5 axb5
25.Bd2 Rxb3 26.Ra8+ Ne8 27.Rxe8# 1-0

On a slightly more interesting vein, here's a draw in which I was actually surprised by a move or two:

[Date "2009.2.24"]
[White "Merlin"]
[Black "Myrddin Release"]
[Result "1/2-1/2"]

1.e4 d5 2.exd5 Qxd5 3.Nc3 Qe6+ 4.Qe2 Nf6 5.Qxe6 Bxe6 6.Nf3 Nc6
7.Bb5 O-O-O 8.Bxc6 bxc6 9.Ne5 Kb7 10.O-O h6 11.d3 g6 12.Be3 Bg7
13.Rfd1 Rhf8 14.h3 Nd5 15.Nxd5 cxd5 16.Nf3 Kc8 17.c3 a6 18.Bd4 Bf6
19.Bxf6 exf6 20.Nd4 c5 21.Nxe6 fxe6 22.Re1 e5 23.a3 a5 24.Rab1 h5
25.b4 axb4 26.axb4 d4 27.cxd4 cxd4 28.b5 g5 29.b6 g4 30.hxg4 hxg4
31.b7+ Kd7 32.Rb3 Rb8 33.Re4 Rg8 34.Kf1 Kc7 35.f3 gxf3 36.gxf3 Rxb7
37.Rxb7+ Kxb7 38.f4 Rf8 39.fxe5 fxe5+ 40.Ke2 Rf5 41.Rg4 Kc7 42.Rg7+
Kc8 43.Re7 Rg5 44.Kf3 Kd8 45.Re6 Kd7 46.Ra6 Kc7 47.Ke4 Kd7 48.Ra5
Kd6 49.Ra6+ Kd7 50.Ra5 Kd6 51.Ra6+ Kd7 1/2-1/2

And I'll admit I helped it towards the draw with 21.Nxd6. :-)

I'm sure it will be months before I ever post anything further about it (if at all!). But I just figured it would be worth some amusement to all of you actual chess engine programmers out there.

Enjoy!

jm
User avatar
Matthias Gemuh
Posts: 3245
Joined: Thu Mar 09, 2006 9:10 am

Re: Introducing Myrddin v0.0000001a

Post by Matthias Gemuh »

The link to the engine ?

Is it a clone :D :D :wink: :wink: :D :D ?

congratulating,
Matthias.
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Introducing Myrddin v0.0000001a

Post by michiguel »

JVMerlino wrote:Greetings,

I am happy to announce that, after about 200 hours work, I have a chess engine that can occasionally play up to my crappy level (probably about 1300 USCF).

Here's the embarrassing truth:
-- Has only minimal eval (just piece tables and wood counting)
-- Only Alpha/Beta searches to depth 6 (no quiescent search yet)
-- 0x88 board representation
-- No move ordering
-- No hash tables
-- No checks for 3-fold or 50-move draws
-- Quasi-Winboard v1 compatible (meaning it has the bare minimum necessary to run in the Chessmaster GUI -- haven't tried any others)
-- Has no opening book or access to EGTBs

But it does know all the rules of chess, and move generation is not embarrassingly slow (perft 5 from initial position on a P4-3.0 takes 2.2 seconds and perft 6 takes 55 seconds).

At least it's good enough to beat me when I miss a Mate in 2, as shown here:

[Date "2009.2.22"]
[White "Myrddin Release"]
[Black "Merlin"]
[Result "1-0"]

1.b3 e5 2.c3 d5 3.e3 Nc6 4.Bb5 Bd7 5.Ne2 a6 6.Bxc6 Bxc6 7.Bb2 Nf6
8.d4 exd4 9.Nxd4 Qd7 10.f3 Bc5 11.Qe2 O-O 12.O-O Rfe8 13.Qf2 Bxd4
14.exd4 Re6 15.Qd2 Bb5 16.Rf2 Rae8 17.Na3 Re2 18.Rxe2 Rxe2 19.Qc1
Qe6 20.c4 dxc4 21.Bc3 cxb3 22.axb3 Qe3+ 23.Qxe3 Rxe3 24.Nxb5 axb5
25.Bd2 Rxb3 26.Ra8+ Ne8 27.Rxe8# 1-0

On a slightly more interesting vein, here's a draw in which I was actually surprised by a move or two:

[Date "2009.2.24"]
[White "Merlin"]
[Black "Myrddin Release"]
[Result "1/2-1/2"]

1.e4 d5 2.exd5 Qxd5 3.Nc3 Qe6+ 4.Qe2 Nf6 5.Qxe6 Bxe6 6.Nf3 Nc6
7.Bb5 O-O-O 8.Bxc6 bxc6 9.Ne5 Kb7 10.O-O h6 11.d3 g6 12.Be3 Bg7
13.Rfd1 Rhf8 14.h3 Nd5 15.Nxd5 cxd5 16.Nf3 Kc8 17.c3 a6 18.Bd4 Bf6
19.Bxf6 exf6 20.Nd4 c5 21.Nxe6 fxe6 22.Re1 e5 23.a3 a5 24.Rab1 h5
25.b4 axb4 26.axb4 d4 27.cxd4 cxd4 28.b5 g5 29.b6 g4 30.hxg4 hxg4
31.b7+ Kd7 32.Rb3 Rb8 33.Re4 Rg8 34.Kf1 Kc7 35.f3 gxf3 36.gxf3 Rxb7
37.Rxb7+ Kxb7 38.f4 Rf8 39.fxe5 fxe5+ 40.Ke2 Rf5 41.Rg4 Kc7 42.Rg7+
Kc8 43.Re7 Rg5 44.Kf3 Kd8 45.Re6 Kd7 46.Ra6 Kc7 47.Ke4 Kd7 48.Ra5
Kd6 49.Ra6+ Kd7 50.Ra5 Kd6 51.Ra6+ Kd7 1/2-1/2

And I'll admit I helped it towards the draw with 21.Nxd6. :-)

I'm sure it will be months before I ever post anything further about it (if at all!). But I just figured it would be worth some amusement to all of you actual chess engine programmers out there.

Enjoy!

jm
My most sincere congratulations!
The first moments that you put your own engine to work from absolute scratch are pure happiness.

Open a bottle of wine or champagne and celebrate. Tomorrow, please quit while you can ;-) (and I do not mean the alcohol).

Miguel
JVMerlino
Posts: 1357
Joined: Wed Mar 08, 2006 10:15 pm
Location: San Francisco, California

Re: Introducing Myrddin v0.0000001a

Post by JVMerlino »

Damn funny, Miguel! :D

I wonder how fewer engines there would be if people would stop after the first time they felt good about their work? I also wonder how many MORE times, after that first time, the feeling is duplicated (or improved)? :shock:

Many thanks for your encouraging words....

jm
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Introducing Myrddin v0.0000001a

Post by Dann Corbit »

Congratulations.
A working chess engine is a thing of beauty.
Chess engine value is not derived purely from strength.
Golem is one of my favorites (actually, he's my whipping boy).
So don't imagine that just because Rybka isn't cowering in a corner you have not created something valuable.
JVMerlino
Posts: 1357
Joined: Wed Mar 08, 2006 10:15 pm
Location: San Francisco, California

Re: Introducing Myrddin v0.0000001a

Post by JVMerlino »

I'd like to get it to play a little better before making it actually available to the public.

And, no, it's not a clone. :D But it definitely gets a lot of inspiration from the Chessmaster code (which I was very familiar with) and TSCP (of course). Hopefully, further inspiration will come from Gerbil and Crafty.

I'm also going to ask Johan if I can have permission to use his EGTB code, since I'm familiar with that as well.

jm
JVMerlino
Posts: 1357
Joined: Wed Mar 08, 2006 10:15 pm
Location: San Francisco, California

Re: Introducing Myrddin v0.0000001a

Post by JVMerlino »

Dann Corbit wrote:Congratulations.
A working chess engine is a thing of beauty.
Chess engine value is not derived purely from strength.
Golem is one of my favorites (actually, he's my whipping boy).
So don't imagine that just because Rybka isn't cowering in a corner you have not created something valuable.
Thanks very much, Dann. At this stage, I don't expect anything much more impressive than I've already created. I'm only doing this in my very rare spare time, and I'm really quite pleased that it has come to this point as quickly as it has.

There are still some things I will definitely do, and after that I'll post a link. But, as I said, that may not be for several more months.

Thanks again!

jm
User avatar
Bill Rogers
Posts: 3562
Joined: Thu Mar 09, 2006 3:54 am
Location: San Jose, California

Re: Introducing Myrddin v0.0000001a

Post by Bill Rogers »

Well John
Writting a chess program is like having a child. Your child now can stand alone and you can watch it grow with age. Of course that takes a lot of help from its father (you).
Keep us posted on your progress and good luck.
Bill
Laurens Winkelhagen

Re: Introducing Myrddin v0.0000001a

Post by Laurens Winkelhagen »

Congratulations!

Finally getting an engine "playable" is a very nice feeling I know, and the best thing is that in the coming weeks it can improve a lot:-) I'm actually in that same stage of improving my baby engine and in this last week I've started to see it win against other winboard program's: It's also a great feeling:D

Though yesterday evening I had to completely devote to documenting my code... :P
User avatar
Matthias Gemuh
Posts: 3245
Joined: Thu Mar 09, 2006 9:10 am

Re: Introducing Myrddin v0.0000001a

Post by Matthias Gemuh »

JVMerlino wrote:I'd like to get it to play a little better before making it actually available to the public.

And, no, it's not a clone. :D But it definitely gets a lot of inspiration from the Chessmaster code (which I was very familiar with) and TSCP (of course). Hopefully, further inspiration will come from Gerbil and Crafty.

I'm also going to ask Johan if I can have permission to use his EGTB code, since I'm familiar with that as well.

jm

Hi John,
every engine is most valuable to the community if its weakest versions are also released. It should however support time controls x+y and x/y,
and protocol WB and/or UCI. Any other features is unimportant :wink:
But you know all this, as an old man in the scene.
Best,
Matthias.
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de