vittyvirus wrote:by what goes into a strong engine, i meant some technical stuff eg razoring or endgame knowledge. but still, thanks for the inspiration!
Hi!
A lot of technical stuff and a lot of work to adjust all the stuff. Requires understanding each single thing and how they interact between them. The second it's not simple understanding, it emerges from experience.
vittyvirus wrote:by what goes into a strong engine, i meant some technical stuff eg razoring or endgame knowledge. but still, thanks for the inspiration!
Hi!
A lot of technical stuff and a lot of work to adjust all the stuff. Requires understanding each single thing and how they interact between them. The second it's not simple understanding, it emerges from experience.
Good luck and good patience!
what does 'technical stuff' mean, specifically? and, can almost all of the computer chess programmers make a engine rated 3000+?
vittyvirus wrote:by what goes into a strong engine, i meant some technical stuff eg razoring or endgame knowledge. but still, thanks for the inspiration!
Hi!
A lot of technical stuff and a lot of work to adjust all the stuff. Requires understanding each single thing and how they interact between them. The second it's not simple understanding, it emerges from experience.
Good luck and good patience!
what does 'technical stuff' mean, specifically? and, can almost all of the computer chess programmers make a engine rated 3000+?
Romans introduced "honestly stealing".
If you try to be original you probably never gonna make it.
vittyvirus wrote:What does 'technical stuff' mean, specifically?
I was referring to what you told, razoring, lmr, evaluation, hash, etc. All what you can find in http://chessprogramming.wikispaces.com/ or you can imagine.
vittyvirus wrote:i guess you guyz need to give me a broader ans.
The problem with a broader answer is that it will require a lot of even broader answers. How would you explain in a broader way what is programming to someone that don't knows how to program and it's requiring you to explain it in a way that he can start programming? There is no way, just he must start and going step by step.
I'm sorry if i was being a fool, seriously. i know these situations where people ask u for clear answers when they dont know much about it, and i guess m being among those people as many experienced people are here. You guyz are really tough.
I'll try to sare my experience with you.
I started many years ago programming a chess engine and created my first playing program in c# after few month. I tought I have understood everything about chess programming and added everything looks good. The engine played at 1400 elo point rating and everything I tried didn't work.
few years later a good boy created a tutorial about chess programming, the tutorial was called writing a chessprogram in 99 point and the final program was called winglet. The program wasn't strong at all, maybe less than 2000 but explained very well the basics of chess programming. studying this program and his code I created my second engine and some his code is still nside my code.
now I am on my third engine and I know that at the time of my first engine I hadn't understood anything. I still miss lots of things but my engien is nowadays in the 2850 elo point range.
The algorithm under the hood of the engine are not easy to fully understand, when you think you understood verything you found a bug in your code and you understood you have understimated the difficulty of putting everything together.
one iportant thing is to write easy code and bug free code.
since you ask us "where to start" I'll try to say what I think could be logical way to start chessprogramming
1) board rapresentation
2) parsing a fen string and displaying the board position
3) definition of move rapresentation
4) code to do/undo a move
5) if you like you could write a code to detect if a move is valid or more easily if a position is valid ( you cannot leave the king in check)
6) move generator
7) writing /debugging perft of some position.
8) writing a very easy board evalutation { material counting}
----------- up to know you only have don propedeutic work-------
9) write an easy alphabeta searcher
10) implementing a protocol to command your engine (uci/winboard are the most used)
from there you can start your REAL chess programming adventure.