Where's the joy in writing a chess engine?

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

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Henk
Posts: 5816
Joined: Mon May 27, 2013 8:31 am

Re: Where's the joy in writing a chess engine?

Post by Henk » Wed Sep 20, 2017 10:04 am

Maybe creating a better original top engine only works when supported by government where people who are not interested in chess also pay (tax) money. Like Russian Chess School. Replace this by: Chess Engine School.

Henk
Posts: 5816
Joined: Mon May 27, 2013 8:31 am

Re: Where's the joy in writing a chess engine?

Post by Henk » Wed Sep 20, 2017 10:21 am

We had Giraffe chess engine. Any Chinese successor?

Daniel Anulliero
Posts: 688
Joined: Fri Jan 04, 2013 3:55 pm
Location: Nice

Re: Where's the joy in writing a chess engine?

Post by Daniel Anulliero » Wed Sep 20, 2017 10:23 am

My job is far far away from a software developer ! I'm a service agent :)
I discovered the chess programs in the 80's years with the dedicated machines , like chess challenger , mephisto etc...
I bought à david Lévy 's book and I slowly started to understand how a computer can play chess .
Then I've got a first computer and learned the basic langage by myself in the 90's years, writing a very weak first chess engine (depth 4 in 30 seconds)
Then I started to learn the C by myself and now I have a not too bad engine .
Chess progrmaming is my main hobby , sometimes an addiction, sometimes is boring , but I never stopped it more than some months ! :wink:
Sometimes you come back with fresh ideas and the addiction come back with it !
So , I think "no need to be a software developer to play with a chess program "!
Best
Dany

Ps : for the Joy I have in chess programming , well ... service agent is a so boring job lol and chess programming is really an oxygen part in my life , even when Isa play badly or don't do the thing like I want ! :)

Henk
Posts: 5816
Joined: Mon May 27, 2013 8:31 am

Re: Where's the joy in writing a chess engine?

Post by Henk » Wed Sep 20, 2017 10:41 am

What could be the joy of starting and stopping a tuner.

Daniel Anulliero
Posts: 688
Joined: Fri Jan 04, 2013 3:55 pm
Location: Nice

Re: Where's the joy in writing a chess engine?

Post by Daniel Anulliero » Wed Sep 20, 2017 11:10 am

Henk wrote:What could be the joy of starting and stopping a tuner.
Off topic

Henk
Posts: 5816
Joined: Mon May 27, 2013 8:31 am

Re: Where's the joy in writing a chess engine?

Post by Henk » Wed Sep 20, 2017 11:49 am

Daniel Anulliero wrote:
Henk wrote:What could be the joy of starting and stopping a tuner.
Off topic
Of course off topic. Why am I posting. In the end phase of development only tuning remains. That means starting a batch or starting or stopping a tuner. If not then you did something wrong.

Tony P.
Posts: 81
Joined: Sun Jan 22, 2017 7:30 pm
Location: Russia

Re: Where's the joy in writing a chess engine?

Post by Tony P. » Wed Sep 20, 2017 3:38 pm

Henk wrote:What could be the joy of starting and stopping a tuner.
The strength of a tuner (and one of a neural network too) is limited by its design. I think the tuner should be rewritten dramatically once in a while too.

Tony P.
Posts: 81
Joined: Sun Jan 22, 2017 7:30 pm
Location: Russia

Re: Where's the joy in writing a chess engine?

Post by Tony P. » Thu Sep 21, 2017 4:06 am

duncan wrote:
Rebel wrote:
Tony P. wrote:Even then, it puzzles me that some people like to have a hobby that reminds them of their jobs. I'd rather have a hobby that's orthogonal to the job, to forget about the job at least for a while.
I can't imagine a programming job that is more creative than chess prgramming.
more than go programming ?
Speaking of, go indeed has deeper strategy and complexity than chess. I guess don't like positional play enough to like go, but in terms of tactics, chess is inferior to shogi. Either go or shogi must be more exciting than traditional chess to almost anyone. To those who'd like to stay within the Western culture, crazyhouse is a more tactical version of chess.

All that said, crazyhouse isn't popular enough yet; shogi is very popular in Japan, but, according to Larry's instructive experience, it's hard to get into the Japanese market as a foreigner; and as far as go and xiangqi, it's likely hard to get into the Chinese market as a Westerner as well.

As for the philosophy of hobbies in general, I think it's a bit different depending on one's affluence. In a poor country, it's hard to get bored or get too much free time and energy for such a consuming hobby as board game development.

I'm surprised to see a lot of Slav authors here, but it looks like they're primarily programmers. A likely reason is that software development is easy to outsource and gives rise to a lot of freelance jobs, so if a poor country resident learns to program at a level that's enough to write a decent engine, they'll be already good enough to earn more money by freelance coding than they'd earn in almost any non-programming local office job ('in a factory', as Russians jocularly put it).

However, chess coding will then take only a small percentage of their time, while most of it will be spent on more lucrative applications of the programming skills.

I regret it that I'm so bad at debugging, as self-written utility and data analysis scripts would certainly help my productivity. And I'm sure this is the direction where I should be heading if I ever want to learn to code well, even though it's not as artistic as chess (but as I hinted above, for any game / art that you're familiar with, there's almost always some lovelier game / art that you didn't know of).

In particular, I could benefit from forking one particular non-chess Python / SQL project, and Python is too slow to write a chess engine in - it's used to write a bearably working GUI with less effort, but the resulting code is slow.

Generally, I don't like the distinction between a job and a hobby. Somehow I fail to enjoy anything that doesn't make at least a modest profit, maybe because I can't afford to retire yet but dream of retiring asap.

Sorry for the thread, I needed it to make up my mind. Good luck to everyone :)

Henk
Posts: 5816
Joined: Mon May 27, 2013 8:31 am

Re: Where's the joy in writing a chess engine?

Post by Henk » Thu Sep 21, 2017 6:58 am

If you write test cases (unit tests) then debugging is mostly debugging test cases. Disadvantage of test cases is that you have to write and maintain more code.

Writing generic code is important.

User avatar
emadsen
Posts: 195
Joined: Wed Apr 25, 2012 11:51 pm
Location: Naperville, IL, USA
Contact:

Re: Where's the joy in writing a chess engine?

Post by emadsen » Thu Sep 21, 2017 8:58 pm

Tony P. wrote:I have a conjecture that I'd like to check with the forum residents.

Namely, writing an engine can only be enjoyed by someone who already does software development as a job... The thing is that the actual development is too stressful for an uninitiated person. Algorithm design in terms of pseudocode is much easier than making code actually work fast... Thus I suppose that coding an engine can only be enjoyable if one is already very disciplined at debugging and testing.
Anton, I agree with your sentiments. It certainly helps to have prior programming experience. Any smart person can teach themselves to program. However, the difficulty (if one is not merely copying someone else's code) is how to chose among the dozen different ways of accomplishing a task- from what data structure to use to which algorithm to employ. This happens again and again in software development. The problem is not a dearth of options- the problem is how to chose from too many options. Experience helps one quickly sense the pro & con tradeoffs of different approaches without getting too deeply invested in a particular technique.
...it puzzles me that some people like to have a hobby that reminds them of their jobs. I'd rather have a hobby that's orthogonal to the job, to forget about the job at least for a while.
I'm a professional programmer and a hobbyist chess programmer. I admit at times I feel doubling up on programming projects is a bit drab. But part of the appeal is a personal programming project is not burdened by design-by-committee compromises, office politics, backward compatibility requirements, project planning / reporting / time tracking, and other corporate annoyances.

However, chess programming is not my only hobby. Last year I ran the Chicago marathon. I'm running it again next month. Training is a major time commitment, but I find the physical demands of marathon training- and the time spent outdoors- a pleasant distraction from the world of chess and computers. So yes, it helps to have other hobbies.
My C# chess engine: http://www.madchess.net

Post Reply