jshriver wrote:I've been around here a while. I'm not a MIT student or a PH.D and to behonest writing a chess program has been hard.
Hi Joshua,
I am not MIT student either, and yes, writing a chess program is hard (but doable). I have a PhD but in Chemistry, so it does not count
I understand you well. Few months ago I broke a portable HD and I lost important documents and the sources of a program I wrote (for chemistry). I am still crying.
First, one of my favorite quotes:
"
It is not the critic who counts; not the man who points out how the strong man stumbles, or where the doer of deeds could have done them better. The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood; who strives valiantly; who errs, who comes short again and again, because there is no effort without error and shortcoming; but who does actually strive to do the deeds; who knows great enthusiasms, the great devotions; who spends himself in a worthy cause; who at the best knows in the end the triumph of high achievement, and who at the worst, if he fails, at least fails while daring greatly, so that his place shall never be with those cold and timid souls who neither know victory nor defeat. ", Theodore Roosevelt, 1910
I strongly suggests that you use git
http://git-scm.com/
It changed my life as a programmer. For the gaviota tablebases I used git hub now (Aaron Becker suggestion) and I realize that it is the only way to protect my sources. When I finish I type "git push" and that's it. Backed up! For some of my non-open sources projects (some in chemistry) I am considering paying to save them in git hub. All local backups are doomed to failure, because you almost always lose something, a day, a week etc.
Do not give up. They day you play your first game against your own engine you will have a sensation that it is very difficult to compare with anything else.
To alleviate the pain, do not start again with the generator you wrote. Do something else, so you feel better. Start with the xboard interface and fill it with empty functions. Write a fen parser (need it for setboard), a move parser, etc. At that time, your enthusiasm will come back and maybe this approach will make you to have a better design!
Miguel
I finally had a move generator, an evaluator to suite my concepts and was truly nearing completiion of something that played legal chess. Still lacked xboard but that was my next big hurdle.
Alas about a month ago, my dev machine (small Atom based machine) went belly up and my /home was corrupt. Needless to say my backups were't complete.
I tried to chock it up as a learning experience, I learned a lot and progressed A LOT the past 6 months. Figured the learning was the most important part. A Lot of the code was in my head of sorts, and lessons learned, and ideas where I would like to change things. Even planned to redo from scratch what I already written.
But after a month. I'm no the verge of throwing the towel.
Stuff is in my head, and code is semi fresh. But damn, so much in that time was written
In times like this what keeps you going? I will never beat my mentor of Crafty, or Rybka, or anything.
But as I am at the cusp of rewriting nearly from scratch an complete engine.
I'm just depressed. I neeed something to get me over this hump.
What do/did you do? If facing similiar problems.
-Josh