Cool! I'll bookmark this thread, I look forward to the first release of Shen Yu. A nice perft speed. I think the highest I ever got from Blunder was ~25 Mnps, after a good bit of optimizing and tweaking. I suppose I could do better, but Blunder is a chess engine firstly, not a perft counter.AAce3 wrote: ↑Sat Aug 27, 2022 6:34 pm Hey everyone,
I'm currently writing a chess engine called Shen Yu, written in rust. It's not open source because I haven't put in the work to document it that well (And I'm somewhat of a novice at the language), but rest assured that when I have time I will end up doing so.
Shen Yu is currently just a legal move generator, and it sort of has built-in selective move generation already (i.e., my "Move" type has a built in capture flag, so I just decided to generate captures and quiets spearately). It hits 140 Mnps on perft 7 from starting position with bulk counting, 45 Mnps without on my old laptop.
The eventual goal is for Shen Yu to become a MCTS/Alpha-Beta hybrid engine, i.e. the expansion phase of MCTS will involve some form of alpha-beta search. I have a lot of ideas I want to try for that, but first I will need to implement the alpha-beta part.I'm not planning to release Shen Yu until after I've implemented most of the basic ideas (LMR, NMP, History, etc. etc.), the reason being that I just don't have that much time.
I'm currently a high school, and am applying for college soon, so updates and posts may be infrequent.
This thread is really just a brain dump where I can toss ideas that I want to try. I woud love any kinds of feedback and suggestions.
Huge thanks to Blunder, Rustic, Leorik, BBC, and many other wonderful open source engines for having such excellent readable code and useful comments. I have never really used C or C++, so having lots of useful comments is so helpful (And why I want to make sure my code is well document it before I make it open source). And, huge thanks to the chess programming wiki. You all have made some really wonderful stuff.
And I'm glad Blunder was helpful to you. Feel free to implement whatever ideas you see. Part of the reason I put so much work into thoroughly documenting the interesting parts of Blunder's code was that I wanted to give back to the chess community and help out newcomers, like so many people helped me out when I first started. So I'm always very happy to see Blunder mentioned when someone lists engines they've found helpful on their chess programming journey
