Yes, that's a very accurate way of putting it I think
I like that as well good point. I'll keep that in mind.
Moderator: Ras
Yes, that's a very accurate way of putting it I think
I like that as well good point. I'll keep that in mind.
It can be done, my first chess engine was done in the Game Maker software completely from Scratch without even knowing what other people had done before or how they did it. Unfortunately, it was based on collisions, and there was a bug where, when moving a King it very rarely and randomly would miss landing on the end square, and would move forever out of the board and beyond!
about real programmers https://www.ee.ryerson.ca/~elf/hack/realmen.htmlalgerbrex wrote: ↑Sat Jun 04, 2022 2:45 amOvyron wrote: ↑Fri Jun 03, 2022 3:32 pmCompare yourself with others that modify a few numbers from search.cpp or evaluate.cpp of stockfish and feel entitled to change the program's name, put themselves as authors, and sometimes even close the source and sell the engine. And then they feel proud of calling that their own. And they get tested a lot by others that want to know if their modifications are better than default stockfish.algerbrex wrote: ↑Thu Jun 02, 2022 5:20 pm With that said, all of the code in Blunder was written by hand, never copy and pasted, and there are areas that I wholly wrote myself. I've worked hard to debug issues, test the engine pretty consistently, and implement features in a way that works in my unique codebase. Nevertheless, I can't help but feel I haven't actually done anything worth being proud of or calling my own.
If people can do so little and feel proud and something as their own, what stops you, if you did so much more?
All very true. I fully admit this is more of a peculiar issue with myself than an actual problem.
I think I've always just had this desire, even when I first started programming, to be a "real programmer." Someone who could create a project, like a chess engine, by themselves with no outside help. Of course, I realize this is unrealistic, especially for someone like myself who has only been programming now for 5-6 years. But my mind acts oddly sometimes I suppose.
Hi Jeremy, apologizes for missing this message.jtwright wrote: ↑Sun Jun 05, 2022 7:02 am @algerbrex
I actually want to say I've been quite impressed by your work on and documentation of your learning regarding Blunder. I've only been chess programming for about a year, year-and-a-half, but in that time I think I've seen a lot of different chess programmers with different goals and processes, and one thing became really clear:
...
Anyway, that's a meandering post, but I just want to reassure you that you are most definitely legit. Take the journey at your own pace, discover things the way that feels best to you. Chess programming is a hobby for many of us after all, it should be fun. If you want to maximize Elo quickly, there are ways to do that, but if that's not your goal, or it's secondary to other goals, that doesn't make your work any less legitimate or your skills any less real.
Our approaches sound very similarjtwright wrote: ↑Sun Jun 05, 2022 7:02 am I love reading code, I love learning things. When I exhausted most of what CPW had to say I started reading the forums and other engine source. I would never directly copy-paste something from another engine, but once you've read an interesting idea you can't unlearn it. I would see something I thought was really fascinating in another engine, try to learn entirely how and why it worked, write ideas down and talk about them with a friend of mine who also was writing an engine, until I felt like I understood the idea well enough to try to implement it myself. Rinse and repeat over time. Basically fast-tracking learning the last couple of decades of chess programming advancements. I don't really consider myself smarter or harder working than any other chess programmer, possibly just better informed on how SF/Ethereal/Koi/etc. work. I imagine the process was similar in many other rapidly rising stars, as similar ideas show up in most of the open source top engines (not throwing shade, a good idea is a good idea and I do this too), but I can't say for sure.
Couldn't agree more. The more I work on and read chess engine, the more I realize it's a science (not exact though!) and an art.
I have similar goals. But maybe my reasons to have these goals may be a little different. At least I've never felt conflicted about my engine being my own brain-child. I don't feel like I have to prove anything to anyone.algerbrex wrote: ↑Mon Jun 06, 2022 11:39 pm As I work on the release of Blunder 8.0.0 (which is coming along quite well) my primary goal is still Elo gain. But this goal is now balanced with other goals, like originality, and understanding. Part of the reason I've slowed down between Blunder releases is that, like you, I want to understand every big idea that goes into Blunder. I want to take the time to understand why an idea works, what are it's alternatives, what are it's downsides and benefits, etc. Because at the end of the day I want have a strong chess engine, and know how it works, inside out.
Thanks, I'm sure I would be able to as well. And the more I work on Blunder, the more I realize I should start trying this more instead. Because of the peculiarities of a particular chess engine, it's often not even possible to just use someone else's approach anyway. For example, I remember with LMR in Blunder I couldn't get it working and trying out the pseudo-code others provided didn't help either. It wasn't until I sat down and really took the time to think through the theory behind LMR, and then actually write out my own approach, did I get an Elo gain. So the more I work, the more I'm starting to agree with your sentiment why not just start from the basic idea and figure things out for me from the start?lithander wrote: ↑Tue Jun 07, 2022 7:02 pm I'm sure you can do that too if you're willing to walk the extra mile and think about the process first and not right away about the implementation. Sometimes your implementation is not going to be the best one, but it's your personal solution to a problem and it's a solution none-the-less, making your engine better. What else could you want?
Also good for me to keep in mind. I'd be lying if I denied a little friendly competition between others on here was originally my motivation for working on Blunder round the clock. But now I enjoy working on Blunder much more because I'm no longer putting so much pressure on myself to make progress. Now I'm ok with taking months between version releases because I want to work on getting the best quality possible and learning and improving my programming skills. And when I am out of uni and working at a job, I'll have the skills I need to work under a time crunch.lithander wrote: ↑Tue Jun 07, 2022 7:02 pm In an actual paid position often you don't have the time - you need to be efficient and take all the shortcuts. But in a sparetime project no one's pressuring you. You can take all the extra time and in the end it will only mean you had more fun and the feeling of accomplishment is bigger.
Interesting topic. I thought about this myself a lot.algerbrex wrote: ↑Thu Jun 02, 2022 5:20 pm This is a bit of an odd topic for me to bring up, admittedly. But I'm curious what others' views are.
Most have heard of imposter syndrome, particularly when it comes to programming knowledge and abilities. And while I experience this from time to time, I mostly experience this when working on Blunder.
Often I'll implement a new feature and get it working well and feel some excitement, but this excitement is usually dampened by feeling like I don't really understand what I'm doing, and if every bit of the source code for Blunder were deleted from the face of the earth, I'd never be able to re-write it properly.
Now, I fully acknowledge and will continue to acknowledge for as long as I keep working on Blunder that I didn't get to where I am by myself, as nice as that might be to say. I've had inspiration and help from countless people here, and across different websites, forms, severs, and the like. And many people's codebases and engines have given me brilliant ideas.
With that said, all of the code in Blunder was written by hand, never copy and pasted, and there are areas that I wholly wrote myself. I've worked hard to debug issues, test the engine pretty consistently, and implement features in a way that works in my unique codebase. Nevertheless, I can't help but feel I haven't actually done anything worth being proud of or calling my own.
I'm curious how others generally feel about this topic. Just sharing my two cents.
This (and a general lack of time in the last year) is the main reason why Rustic's development moves so incredibly slowly, and why I try to maintain a description of each feature on a website / in a book. I refuse to just look at feature X, see 10 lines of code, rewrite them to adapt them to my engine's setup, score 100 ELO points, and go "Cool! NEXT!". I want to understand EXACTLY what happens, how, and why this makes the engine stronger. If I understand it, I should be able to write my own explanation for my website / book.Often I'll implement a new feature and get it working well and feel some excitement, but this excitement is usually dampened by feeling like I don't really understand what I'm doing, and if every bit of the source code for Blunder were deleted from the face of the earth, I'd never be able to re-write it properly.
As I said in my earlier post: you can't. Even if you do it "without help" you'll have to learn the basics on programming and algorithms somewhere. You can't invent 70 years of computer science on my own.algerbrex wrote: ↑Sat Jun 04, 2022 2:45 am All very true. I fully admit this is more of a peculiar issue with myself than an actual problem.
I think I've always just had this desire, even when I first started programming, to be a "real programmer." Someone who could create a project, like a chess engine, by themselves with no outside help. Of course, I realize this is unrealistic...
I think that is because people who do something great are often portrayed as if they did everything by themselves. That warps the perception.especially for someone like myself who has only been programming now for 5-6 years. But my mind acts oddly sometimes I suppose.
And THAT is actually my (Rustic's) goal. To create, in the end, a comprehensive resource that can be used to write a chess engine from scratch, in any programming language. And the main user of that resource could be me, 20 years down the line, writing in a programming language that hasn't been invented yet.When my website is "finished" (i.e., it contains everything that is in Rustic Alpha 3), then I SHOULD be able to rewrite Rustic in any programming language I ever want to without even having to use any other resources.