About Obsidian

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

Moderators: hgm, Rebel, chrisw

Frank Quisinsky
Posts: 6811
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: About Obsidian

Post by Frank Quisinsky »

Hi Srdja,

I have not read the book that the "new" Nightmare programmer gave to all the others in Leiden in 1998/1999. I gave my copy to Dr. Ulrich Türke (chess program Comet). But I talked to him for a long time in Leiden. He explained the idea that a chess program can learn from games. He told me that millions of games are necessary. I am with Roland Pfister in Leiden (chess program Patzer). We used a very fast machine (Dual Pentium III 1Ghz) with an SMP factor of 1.4 on two cores! Sensational ... factor 1.4 ... only various commercials have a factor of 1.6. Roland has been working on this for months, I believe around 1 year. Oh yes, Crafty SMP also has a factor of 1.6.

How long a new programmer is working on SMP factor 1.4?
Or is the code for it copy and paste?

I used the machine for the event Deep Shredder vs. The World. An online match thousands of people sent daily the moves to me. I organiced sponsors and DGT boards and a lot of other prices. A german bank (Sparkasse Trier) the main sponsor.

Back to Leiden ...
So I amn thinking ... millions of games. The typ is more crazy as I.
How much hardware we need for that?

You know, I know ... a lot of people have a big interest in taking an idea and claiming that everything is new. How long have Shogi programmers been working on neural network ideas? Not a really important topic for me today.

The fact that the Fizbo programmer used neural network ideas was completely new to me. But Fizbo is not available with neural network ideas before 1998 / 1999.

Not important ...
It was just an example.

If young programmers have the understandings for chess programming and use all the well known ideas, it can be good. Because with time they might be able to develop their own and better ideas. In the next days I will look for a new programm ... today I found the information in a tournament by Graham. PlentyChess 0.2.1 NN. I am looking forward to it ... in two days the first games can run here.

:-)

So it is a battle with myself ...
Older things from the good and old times ... and the new things.

And most of the time the new things wins with a king attack and I am very happy here with computer chess. Very happy that my website is closed, they I must not working on events or new chess sites and so things. Time is over, not in testing engines and looking games. Fighting with my favorits.

Best
Frank
Frank Quisinsky
Posts: 6811
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: About Obsidian

Post by Frank Quisinsky »

Fighting with my favorits ... means if the games are running here.

:-)
smatovic
Posts: 2709
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: About Obsidian

Post by smatovic »

Frank Quisinsky wrote: Mon Jan 29, 2024 6:54 pm ...
There is a long history of NNs in chess before NNUE....IIRC it started with NeuroChess in 1995?

https://www.chessprogramming.org/NeuroChess

https://www.chessprogramming.org/Category:NN

The question is, can it be competitive, and this was since A0/Lc0 and SF NNUE answered.

--
Srdja
Frank Quisinsky
Posts: 6811
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: About Obsidian

Post by Frank Quisinsky »

Hi Srdja,

as far as I remember the idea was new for the participating chess programmers in Leiden.
More or less they start a discussion over the day, during the games, about the learning code in chess programs.

:-)

And believe me ... a lot of top engines are on start.

But if it is about chess programming ... it must be right.
If such programmers as the InmiChess are working on it.

Oh no ... InmiChess was a program of an Austrian guy.
Also a very nice programmer.

IsiChess ... is the right name.

Too many such information in my brain, without I look on wiki.
I follow since 45 years, of course not all topics and very sure that I have forgotten a lot.

Mostly I have asked myself this and that, thinking I am a lexicon.
But this is not true in many cases, too many holes.

Best
Frank

Enough bad english from myself for today.
Need a break ...
JacquesRW
Posts: 61
Joined: Sat Jul 30, 2022 12:12 pm
Full name: Jamie Whiting

Re: About Obsidian

Post by JacquesRW »

Frank Quisinsky wrote: Mon Jan 29, 2024 5:09 pm A beginner will never be able to write a chess engine with 2500 Elo.
Me and many other programmers can attest that we wrote 2500 elo programs as beginners, personally I didn't stop feeling like a beginner until long after that, because just learning all the basic search techniques will take you much further than 2500. The point is that now when a beginner starts writing a chess engine it is simply almost impossible to avoid learning about techniques such as Piece-Square Tables, Null Move Pruning, and the like, which immediately pushes their engine towards 2500. No one is claiming that beginners reinvent all the things that weren't around 20 years ago, beginners back then would have been in the exact same situatation, just with much poorer access to the information we can see easily today, and with many search techniques considered "basic" today having not been invented yet - understanding a technique is very far removed from coming up with it yourself, of course.

I feel like so far in this thread we've avoided a pretty big point for new engines, especially those originating from authors on Discord: proper testing. If you join Engine Programming or Stockfish discord and ask how to progress with your engine, you'll immediately be told to test properly (with SPRT), and this both massively speeds up development, as well as making it much more reliable.
Frank Quisinsky
Posts: 6811
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: About Obsidian

Post by Frank Quisinsky »

Thank you Jamie!
That was a good and right answer I think.

I copy and paste your text in a World document, without to give information about your name.

For that reason if others send me mails and wrote that he lost interest on computer chess.
Hope this is OK for you because your answer is good and logicial to me and I think for the most of others too.

Again, with all the information about computer chess I have to life ...
Often its not easy and a doubt here and there is normaly.

I have nothing against the younger generation, wish me I am younger and have such energy
as in my younger years today.

Go Akimbo go ...

:-)
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: About Obsidian

Post by mvanthoor »

JacquesRW wrote: Mon Jan 29, 2024 4:26 pm Because 15 years ago there was less knowledge of what was good? A beginner can easily write a 2500 rated engine in a very short period of time, without looking at any other engines, just by writing a bug-free engine with the basic search features that you can find on CPW (null move pruning, reverse futility pruning, etc) and a basic piece-square table evaluation.
If you write a 2500+ engine in your spare time by only reading CPW within a few weeks, you're probably genius-level. I saw the video's Sebastian Lague made on YouTube. Most stuff he does is completely out of my league (because I don't work in the field his video's are usually in), but I could easily follow his chess engine video's. When going by his video's, I assume he's a very good programmer, and even he stated that writing this engine took many more hours than he had first anticipated.

I don't know what you consider to be a short time?

I could write a chess engine at whatever strength Rustic is at the moment by just porting that engine. I could do so in less than a month to almost any language I please. Could I throw the engine away and then write a new one again, going only by my own knowledge, CPW, and my notes? Yes, but not in a month.
They'll use NNUE, its **hundreds** of ELO. Maybe its less for top engines compared to their HCE, but for new engines with incredibly simple evaluations it'll catapult them past 3000 elo with almost no effort.
Maksim Korzh proved it. His engine BBC (BitBoard ChessEngine) is a very simple engine, rated just over 2000 (on the old CCRL scale), but when he put the then-current Stockfish net on top of it instead of his own eval, it nearly hit 3000 Elo. It was something like 2960 or so if I remember.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: About Obsidian

Post by mvanthoor »

Frank Quisinsky wrote: Mon Jan 29, 2024 5:09 pm Often I wish me that I never start with this hobby.
In winboard times I had 4700 contacts in my TheBat adress book. How many sites I created, support I gave and how many information goes over my mail address. Again, you must be really a very hard guy if you not lost the interest on this hobby for around 1.000 or more reasons ...
In my case, I wrote Rustic for a few reasons:

- I wanted to learn Rust.
- I wanted to have my own chess engine, to (finally) prove to myself that I could (after my first and only half-failed Turbo Pascal attempt as a teenager in the mid-90's).
- I wanted to consolidate all the documentation needed to write a chess engine.
- Often I want to program "something", and don't know what; a chess engine and/or chess database/gui is basically a never-ending project. After creating Rustic, I can now turn it into a chess library, with the engine as one of the front-ends.
- I like PicoChess, but in the end the code is... uh... crap. And it's Python. I want to rewrite that in Rust, to control DGT-boards and (maybe) Certabo. After Rustic is turned into a library, I can use it as a backend for this project as well.
- In the end, I want to create my own chess eco-system: chess engine, GUI, and electronic chess board controller. Maybe at some point in my life I'll even use it to build my own table-top chess computer. At this pace it may take me another 15 or 20 years, but that doesn't matter, because the only person I'm doing it for is me.
- Because the only person I'm doing this for is me, everything I do will be open source. Others can use it if they want, but I won't be supporting any of it; because it's my hobby, not my job.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: About Obsidian

Post by mvanthoor »

JacquesRW wrote: Mon Jan 29, 2024 7:54 pm Me and many other programmers can attest that we wrote 2500 elo programs as beginners, personally I didn't stop feeling like a beginner until long after that, because just learning all the basic search techniques will take you much further than 2500.
Agreed that it's possible, but did you do that in a few weeks, or did it take you a few months?

I'm convinced that if someone is a seasoned programmer but a beginner at chess programming, writing a fairly strong engine can be done in a few months next to a full time job if one picks a language well known. However, if you're both a beginner at programming AND a beginner at chess programming, it'll take you LOTS more time and even then the effort may fail. When I seriously started working on my engine in February 2020 (after stopping the previous non-bitboard version and completely restarting), it took me, as a seasoned programmer, 10 months to write the first version next to a full time job, without looking at other engine's code, in a programming language I didn't know at the time.

That is the reason why I don't believe in 3400/3500 Elo engines being developed in 'weeks', not even by an experienced programmer when starting from scratch. You simply don't have the time to research chess engine literature, write the code and test it all (except maybe if you're between jobs and are putting 15 hours a day into this.) However, if I'd first get my engine to such a strength and then port it to a different programming language, that'll be a new engine... and I could definitely do it in weeks if I wanted to.

So it all comes down to the point you're starting out from, and some people just claim starting points that can't be true (IMHO).

What I did notice throughout my career in programming is that people with lots of experience sometimes forget (including myself) how incredibly hard even 'basic' things can be if you're just starting out. Many things in programming are second nature to me because I've been at it for almost 30 years (since I started it as a hobby as a teenager), but recently I had to explain lots of things to someone just starting out. Explaining those 'basic' things can be hard enough, let alone understand them for someone who doesn't have the experience.

After the recalibration of the CCRL-list, I don't even know for sure what "2500 Elo" is anymore. I'll have to look through my own book/documentation and adjust some ratings. I expected to hit 2175 after adding the tapered PSQT's, and hit 2300 after adding null move, without even doing anyhting else, but after the recalibration, that's probably not true anymore.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
Uri Blass
Posts: 10409
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: About Obsidian

Post by Uri Blass »

JacquesRW wrote: Mon Jan 29, 2024 7:54 pm
Frank Quisinsky wrote: Mon Jan 29, 2024 5:09 pm A beginner will never be able to write a chess engine with 2500 Elo.
Me and many other programmers can attest that we wrote 2500 elo programs as beginners, personally I didn't stop feeling like a beginner until long after that, because just learning all the basic search techniques will take you much further than 2500. The point is that now when a beginner starts writing a chess engine it is simply almost impossible to avoid learning about techniques such as Piece-Square Tables, Null Move Pruning, and the like, which immediately pushes their engine towards 2500. No one is claiming that beginners reinvent all the things that weren't around 20 years ago, beginners back then would have been in the exact same situatation, just with much poorer access to the information we can see easily today, and with many search techniques considered "basic" today having not been invented yet - understanding a technique is very far removed from coming up with it yourself, of course.

I feel like so far in this thread we've avoided a pretty big point for new engines, especially those originating from authors on Discord: proper testing. If you join Engine Programming or Stockfish discord and ask how to progress with your engine, you'll immediately be told to test properly (with SPRT), and this both massively speeds up development, as well as making it much more reliable.
Programmers knew about piece square tables and null move pruning even more than 20 years ago.
A lot of engines authors used piece square table and null move pruning and were not even close to rating 2500.

One example
https://www.chessprogramming.org/Faile

https://www.computerchess.org.uk/ccrl/4 ... aile_1_4_4

The difference between today and year 2000 is not
learning about techniques such as Piece-Square Tables, Null Move Pruning.

Maybe it is about "and the like" later in the sentence but you did not explain what do you mean by that.