maksimKorzh wrote: ↑Thu Sep 24, 2020 2:40 pm
Well, it's 7 times slower compared to Rustic but it has almost live youtube tutorial covering all the stuff for noobs like me while Rustic doesn't have youtube tutorial and would be clear only for experienced programmers)))
I'll benchmark BBC on my own computer to compare. if counting was the only problem, then Rustic is about three times faster on my computer. I think the main cause of this is the copy/make approach in BBC. (Actually, BBC is a about 15% faster now than the first version of Rustic that passed perft 7 on the starting position.)
Rustic will have a book, instead of a YouTube tutorial. (I'd be very poor with regard to recording video's, I fear.) And yes, you're right: Rustic is not a chess engine intended for new programmers or new chess engine developers. (Even though I'm new to developing chess engines, I've been programming for a long time, both professionally and personally.) Rustic is intended for:
- Experienced programmers who want to write a chess engine (and can read most languages that look similar to C, which is true for Rust).
- Experienced chess engine developers who'd want to write a new engine or port their engine to Rust.
Rustic's book/documentation will therefore also give some attention to the Rust language, and refer to the Rust Programming Language book.
Some of the approaches you are using in C aren't even possible in Rust because the language either doesn't allow them, or makes it very hard to pull off.
I just want to say that different goals are leading to different paths.
At the very end we all be in about the same place I believe, so it's just the matter of accents)
I mean if I was developing like you I would dropped before even finishing a movegen)
And the way I do I almost have the version 1 to come out pretty soon!
Goals are indeed different. With software such as this, I don't want go back again and again to make heavy changes to the code base to improve it. I want it to be at a level where I only have to _add_ features, not refactor existing code. As I said before: you wrote a few engines with varying degrees of success, and you threw them away/don't develop them anymore. I probably did too; according to Github, I commited over 22.500 lines of code, but Rustic is only 2500 lines long. (Excluding white space and comments.) Thus I threw away about 90% of everything I did. Rustic moved from a mailbox engine to partially bit boards, to magic bit boards, and from copy/make to make/takeback, all in one engine.
Very good that your version 1 is almost out

Yesterday I've started writing the search routine. I think I'll include MVV-LVA sorting in the first version, to at least have some alpha/beta sorting. Evaluation will be limited to piece counting and PSQT. I wonder what the performance will be
Btw it seems like BBC would be the first version I won'n abandon after initial "release" (in quotes because my previous engines are fool of bugs and more likely served the purpose of learning rather than a complete software product)
P.S. Marcel, you can't even imagine how I'm tempted to see Rustic in action! Waiting for PGNs! (even if they are about to come in a year)
Thanks Maksim
It won't take another year after the kick in the nuts Roland (of RofChade) gave me:
When your engine is finally playing chess, the real fun begins! --Roland
He's right of course, so I stopped experimenting (both with the engine, and the Rust language), and decided to just finish the search and UCI-protocol so version 1 can be released. I really do wonder how such a basic (but relatively fast) chess engine will perform. I don't have a clue, to be honest. I'll be happy if it plays around TSCP's level, using speed instead of features for its playing strength.
And then I'll need to add features one by one... If I'm smart, I won't look into multi-threading again until it reaches at least 2895 CCRL.
Have you abandoned Wukong? I rather like the name

You could even rename BBC to "Wukong 2", because it undoubtedly inherited many things from the previous engine.