Interview with Gian-Carlo Pascutto (Belgium)
Programmer of Sjeng

04th, February 2010
by Gian-Carlo Pascutto & Frank Quisinsky

gian-carlo-pascutto-2

Gian-Carlo Pascutto (Belgium)

Same pic, double size: Click here
(for see the AWARD in detail)

Since 11 years Sjeng is still in development. Gian-Carlo Pascutto (Belgium) started programming with 16 years. Since a while Sjeng is a commercial product. So far the programmer placed Sjeng on the market in own work, but in the past Lex Loep (Lokasoft) was the distributor. In the last 12 years, there was a lot of change in chess programming. Most of the developers are using the exchange of information by email or/and fora. Gian-Carlo is very actively in TalkChess forum and his customers and others are appreciate of it. With today 27 years only, Gian-Carlo have a glamorous call and profound knowledge.

Gian-Carlo Pascutto (Sjeng)
http://sjeng.org/

01.
Frank Quisinsky

Let us start with basic information to the playing style of Sjeng. For me, the playing style of Sjeng isn't easy to explain. If I compare different Sjeng versions I think that the latest commercial versions of Sjeng (WC-2008, Version 3.0) made a bigger ELO jumps in strength. The playing style seems to be changed too. Sjeng plays with more positional knowledge and seems stronger in tactics as the preview versions. All in all, Sjeng 3 got a new heart?

I try an explanation from my point of view:
Sjeng is the calmest available tactical engine, with knowledge in positional middle games and it doesn't prefers aggressive / speculative moves.

Could you write a little bit about the most relevant changes from Sjeng 2.0 to Sjeng 3.0? Most interesting is your own opinion about the playing strength of Sjeng and the main improvements you made for building the planned style.

What can a programmer do, to give an engine an own individual face?

Gian-Carlo Pascutto
Actually, when you say that Deep Sjeng 3.0 looks like it has a new hearth, you are partly right and partly wrong: the jump in style from Deep Sjeng 2.5 to Deep Sjeng 2.7 was much more significant. In terms of playing style Deep Sjeng 1.0 to Deep Sjeng 2.5 are one family, and Deep Sjeng 2.7 until now are another.

I guess because the version numbers looked so similar, many people didn't take a closer look and didn't notice they were playing a different engine when they went from 2.5 to 2.7. With Deep Sjeng 3.0 people were more expecting big differences and they indeed noticed them at that point.

The current style dates back to the Stoofvlees experiment. I wanted to clean up many things in Deep Sjeng's evaluation, but because it was so well tuned, replacing it by something new always gave a worse program. So I tried a very ambitious approach of writing the best evaluation I could imagine and using neural networks to try tune the program fully automatically. It didn't completely work (Stoofvlees was weaker than Deep Sjeng), but the results were a very useful building block and eventually the new evaluation surpassed the old one.

From Deep Sjeng 2.7 to 3.0 I internally cleaned up many things, made the program faster and fixed many small mistakes, but the basics of the playing style are the same. It's an unfortunate truth in chess programming that if you make fundamentally good changes, you usually
can't cash in on them until you get everything debugged and well tuned. Deep Sjeng 3.0 was the result of that.

Frank Quisinsky
Stoffvlees is a Belgian recipe?
It's not easy for me to understand, but I believe I can.

Gian-Carlo Pascutto
Stoofvlees is a typical Belgian recipe (Flemish carbonnade) prepared with the help of one of our local abbey or trappist beers.

Frank Quisinsky
But you don't bespeak the playing-style of Sjeng from your point of view? Each time, very interesting for all of us to hear about: How do the programmer characterise the playing style from his own "baby"? Karpow was the solid positional player, Kasparov search the initiative with famous knowledge in openings each time and reach tactical positions very early. Today many people like to say: Kasparow was a great tactical player.

And Sjeng? Sjeng is comparing to Tal or perhaps comparing to Ivantschuk, to which one?
The computer chess fans demand a clear image :-)

Gian-Carlo Pascutto
I've never thought about comparing the playing style of an engine to a human player. It probably doesn't do justice to either side. Sjeng's style is quite unique, and it's stronger than all human players anyway :)

Frank Quisinsky
Neural networks?
I am thinking on AlexS (Dutch-ch 1998). The programmer of AlexS wrote a book about Neural Networks. I forget his name, but I believe the ideas acquired from Nightmare. I don't mean the German Nightmare, the Dutch Nightmare (two Nightmare's exist in the past). Do you read the book? I never read. All what I know is that Neural Networks need a lot of time. So far I know, that an engine can learn by itself from its own played games.

Gian-Carlo Pascutto
I haven't read the book. Neural networks don't have any relation to the engine being able to learn from its games. You can do this without neural networks and you can use neural networks without doing it. Stoofvlees did not learn from its games, but from an "oracle". This oracle is some external source that gives a perfect evaluation of the position, or at least, an as good as possible approximation to that.

Constructing the oracle is the real secret and what can make or break an approach.

What the neural network does is to figure out the best way to map some  inputs (the position or features of it) to an output (the evaluation), so that it matches the oracle as closely as possible. What makes neural networks interesting is that they do this automatically, and are able to find complex relations between the inputs to get an even better match.

Frank Quisinsky
I never heart about AlexS and the programmer in the years after. I've got an exemplar of this book in Leiden too and gave it to Roland Pfister, programmer of Patzer. Roland gave it Ulrich Türke, programmer of Comet. If I remember right, both programmers don't have a good opinion about Neural Networks. But perhaps, after the years, the possibilities of implementations are much better?

Gian-Carlo Pascutto
I don't think much has changed in terms of actual algorithms. One difference is that now computers have much more power to do floating point calculations. So you can let the learning run longer, and the engine can do more neural computations during the search, without slowing down the NPS too much.

Frank Quisinsky
Seven games, Gian-Carlo sent, are added in the interview! I pic up one position (FQ). Grafics created with ChessBase DeepShredder 12

Gian-Carlo Pascutto:
The first two were older, the last few all from the latest Sjengs.

Game 1: First WCCC game, shows style & mobility play.

Game 2: Recent tournament win, mobility play, slow strangulation of opponent.

Game 3: Somewhere earlier I talked about Sjeng evaluation differing from most engines. Here Rybka disagrees and is slowly outplayed in an endgame.

Game 4: Very good manoeuvering and king attack game.

Game 5 & 6: Good understanding of king pressure - safeguard own king, use pressure against opponent king to win. (I would have liked to compare this to the game I lost against Glaurung in Mainz a few years before)

Game 7: Very good defending and avoiding making weaknesses, and the counterattack.


GAME 1

[Event "10th World Computer Chess Championship"]
[Site "Maastricht, The Netherlands"]
[Date "2002.07.06"]
[Round "1"]
[White "Sjeng"]
[Black "Goliath"]
[Result "1-0"]

1. e4 c5 2. c3 Nf6 3. e5 Nd5 4. d4 cxd4 5. Nf3 Nc6 6. Bc4 Nb6 7. Bb3 d6 8. exd6 Qxd6 9. Na3 dxc3 10. Qxd6 exd6 11. Nb5 cxb2 12. Bxb2 Rb8 13. Ng5 Be6 14. Nc7+ Ke7 15. Ncxe6 fxe6 16. Nxe6 Ne5 17. O-O Nec4 18. Bd4 Kxe6 19. Bxb6 Rc8 20. Bxa7 d5 21. Rae1+ Kd7 22. Bd4 Rc6 23. Re2 Rh6 24. Ba4+ Kc7 25. Rc1 Rh4 26. Bxg7 Bxg7 27. Re7+ Kd6 28. Rxg7 Ne5 29. Bb5 b6 30. a4 Rd4 31. g3 Nc4 32. f4 h5 33. Rg6+ Kc7 34. f5 Rf8 35. Re1 Kd8 36. f6 Nd6 37. Re6 Nc4 38. Rg7 Rd2 39. Ra7 1-0

sjeng-game1

FQ: After black move 34. ... Rf8

02.
Frank Quisinsky

Now I am thinking about one of your two questions to Don Dailey. Perhaps you await information to modern learn techniques?

Interview with Don Dailey: Question 18

Gian-Carlo Pascutto
Do you have written engines for other games? Are there techniques, ideas or viewpoints you find out interesting for a chess engine?

Don Dailey
I wonder if MCTS (Monte Carlo Tree Search) as used in the newer Go  programs could be effectively adapted to Chess. It will be difficult to  improve on modern computer chess search techniques, but I would not mind  seeing some effort in this area or even looking at it myself. I did write  a MCTS Go program but I know almost nothing about Go so I feel  handicapped in that regard. But it might be worth a good look with Chess.  This is something you could also peruse being both a great chess  programmer AND a very good Go programmer.

Gian-Carlo Pascutto
No, this wasn't about the learning, although it's a very interesting topic. Don and I discussed on back and forth a bit about learning approaches in other forums.

I know that I was able to make good use of my experience with Sjeng when I wrote Leela, and the reverse, and I was wondering if it was the same for Don. Unfortunately Don's answer was very obvious (at least to me) and so not really revealing anything interesting.

Frank Quisinsky
Do you have interest to create engines for other games?

Gian-Carlo Pascutto
Oh, I've already done so. I wrote an engine for Bridge, and one for Bao. But there are not enough hours in a day to peruse that further.

gian-carlo-java-bridge

At the first time, we can look in the "secret" Bridge program.
Same pic, original size: Click here

Frank Quisinsky
At the moment Pascal Tang is in my brain. Pascal and his partner Eugenio Castillo were main programmers in Chinese chess. They check out different ideas from XieXie (Chinese chess engine) in ELChinito (chess engine). Do you see serious connections between the ideas of computer chess to other strategic games?

Gian-Carlo Pascutto
Certainly, I would go further say that they're at a sufficient abstraction level they're all the same, just with slightly different expressions. I have this theory that state of the art UCT (with very small exploration coefficient) and state of the art alpha-beta (with heavy LMR and futility pruning) are actually searching very similar trees. Maybe in the limit these two techniques are actually the same, just like Aske Plaat proved once that best-first SSS is the same as some MTD variations. Or maybe they're not, in which case seeing the real difference would be very revealing. It would be nice to see research in that area.

03.
Frank Quisinsky

Some more than two hands full of engines are commercial available. Today it’s a hard business to sell chess engines. I believe, that most of all are interesting to buy, so long as an engine has an own character and a good playing strength. Sjeng has an own character, is very strong, and has good possibilities of analyzing. Please write a little bit more about the playing style.

Which skill in playing style Sjeng have, others don't have?

A better formulation could be:
Which special playing attributes did you gave Sjeng?
Which points in Sjeng programming were most important for the playing style and what costs you most of time?

Gian-Carlo Pascutto
I think I can explain this best by focusing on what changed in the rewrite I talked about in your first question.

I focused specifically on some things where I thought the old Sjeng had weaknesses: mobility and blocked pieces, passed pawns, understanding exchange sacrifices and activity against the king. Particularly the latter is easily noticeable. Old Sjengs only understood that damaging the defensive structures is good (but they were extremely knowledgeable about that), but didn't understand the need to keep pressure on the enemy position. This often resulted in quite entertaining and crazy games where the engine takes extreme risks both in attack and defense. But objectively, it was not so good. And when other engines appeared that had a fair understanding of weak structures, and understanding of pressure, Deep Sjeng started getting into problems, particularly when being out searched. Now that it understands pressure itself, this no longer happens.

Another area of great focus was mobility and piece activity. I had lost some tournament games because of insufficient understanding of that, so I completely overhauled it and made it as good as I could. (There's an obvious relation here to the point above of understanding pressure!). It seems to work great, I think it's more advanced than in many other programs, and I found out during testing that I could increase the influence of this in the evaluation function. As a result, it's a defining feature of Deep Sjeng 3.0 that it fights very hard for the initiative, and is willing to make compromises to keep it. I guess one feature of Deep Sjeng 4.0 will have to be understanding when it isn't worth it!

Lastly, in terms of evaluation exchange sacrifices and passed pawns Sjeng evaluates a bit different from other programs. There is no special reason for this, I just programmed what I thought was good, tuned to what gave the best result and ended up noticing that at the end I seemed to have landed in a different place than most of my colleagues. I've tested several times more conventional evaluation and values, for example from one of the open source programs, but they always make Deep Sjeng weaker. The main effect of this that Deep Sjeng wins and loses a lot of games involving these two factors, because programs tend to play towards the position where they disagree the most. This confuses my testers to no end: they keep reporting that this area must be adjusted because they notice that Sjeng loses a lot of games where it disagrees about evaluating some passers or an exchange sac. But in fact, it always disagrees! It's just that they tend to forget the won games where everything was OK faster than the lost ones.

04.
Frank Quisinsky

In the free available SWCR rating list Sjeng draws only to 35% after 720 games (relative number of draws). No other program in the same group of engines (+- 100 ELO stronger or not) has such a low Remise rate (Quota). What could be the reason?

Gian-Carlo Pascutto
If I would have to guess, I would say many modern programs are heavily influenced by Fruit. The design of Deep Sjeng predates Fruit and it searches and evaluates quite differently (see last question), so there are more opportunities for the engines to disagree and play for a win. The draw rates of Shredder, Junior, Hiarcs, ... might be interesting to compare.

It might also be a statistical coincidence.

05.
Frank Quisinsky

Do you think that such strong free available sources like Fruit or Stockfish, are really good for our hobby? In TalkChess forum we can find a lot of threads about clones and with time it’s boring me a lot. Very dangerous to lose the most honest programmers which are pride of there own work and disappointed of so many public positive "clone-opinions" by users. The medal has two sites, but in the case of "free sources" it seems there were four sites. Three aren't positive. Sorry, personal opinion by myself.

Gian-Carlo Pascutto
I don't think the publishing of the open source programs is the problem, it's what is done with them. It's really weird that in so many areas people successfully cooperate on open source software, whereas in chess those are clearly exceptions. Open source chess development mostly consists of someone taking the program, changing the name, slapping their name on it, and then hacking in some ideas. They're usually quickly abandoned after this new "author" runs out of easy ideas. I can show you a really nice example of how far out the thoughts of the chess cloners are from the rest of the open source community:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=408930

Where one of the maintainers of a Linux distribution has to explain to a chess person that it's considered normal *not* to change the name of a project if you take over as maintainer of it.

The Stockfish guys on the other hand do seem to have gotten the idea right. They have a coordination development effort over a longer time, cooperating  with the original author, and they have real results to show for it. If only they could have resisted the temptation to keep the Glaurung name it would have been exemplary.

If we now compare that to Ippolit...I think in such a short while there are already about 10 clones of it, all with a different name, all with other features, and all very buggy.

So basically, I think free software is a great idea, but it can only be as good as what you make of it, and most chess cloners are making it into a pile of sh*t with their name slapped on top of it. The concept that it's about cooperating seems to be too hard to grasp.

There's a second issue of open source programs, and that is that they spell out all ideas someone has very literally. This is for learning purposes not the best idea, because it biases the people who learn from them to think in a certain way. For a while, every new program that appeared looked a lot like Crafty. Then Fruit appeared, and behold, every new program suddenly looked a lot like Fruit. Now Ippolit appeared, and every new program suddenly looks a lot more like Rybka. This makes the scene quite incestuous and more boring.

On the other hand, it also makes it easier for a real new idea to take the computer chess world by storm, which I'd consider a positive flipside. Summarizing, I think open source chess programs are great idea, but that what most people have been doing with them is not so great. The solution is not to stop making open source chess engines, but getting people to cooperate on them (like with Glaurung/Stockfish and even Crafty).


GAME 2

[Event "28th Dutch CC"]
[Site "Leiden NED"]
[Date "2008.11.16"]
[Round "9"]
[White "Deep Sjeng"]
[Black "Ktulu 9 m"]
[Result "1-0"]

1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. Bg5 e6 7. f4 Qb6 8. Qd2 Qxb2 9. Rb1 Qa3 10. f5 e5 11. Bxf6 gxf6 12. Nb3 Be7 13. Bc4 Qb4 14. Be2 Nd7 15. a3 Qb6 16. Nd5 Qd8 17. Na5 Nc5 18. Bf3 O-O 19. O-O Kg7 20. Kh1 Rg8 21. Rfd1 Bf8 22. Rb6 Kh8 23. Rdb1 Rg5 24. Qe1 Rb8 25. Qe3 Ra8 26. g3 Bh6 27. Nc4 Bf8 28. Nxf6 Qxf6 29. Qxc5 Qxf5 30. exf5 dxc5 31. g4 e4 32. Ne5 Rxf5 33. gxf5 exf3 34. Rf6 Bg7 35. Rg1 Bd7 36. Rxg7 f2 37. Kg2 Bb5 38. c4 1-0

sjeng-game2

FQ: A dynamic game, Sjeng now with 28. Nxf6

Frank Quisinsky
We know that you are an honest programmer, no doubt about it. Do you're looking in the sources of the Rybka "clone codes"? Which parts of "clone codes" pushed "Rybka" to such an high ELO performance (it isn't a secret for programmers anymore). Could you explain to us, readable for users of computer chess engines in very short words?

Gian-Carlo Pascutto
I do not think there is any specific trick which explains the high performance. It is the same situation as when Fruit first appeared, or when Rybka 1 was reverse engineered into Strelka. The original program clearly contains all the essential techniques and is well written, well optimized, well tuned and well tested. There is no "big secret" to be found.

Frank Quisinsky
Is it possible for programmers to use the strong parts of the "clone-code" for their own engines?
Easy or not easy?

Gian-Carlo Pascutto
There are some ideas which could be tried in other engines, but I guess how much works or how easy that is, is going to vary a lot between engines. There will be things which work for the reverse engineered engine but which will be counterproductive in different, original engines. This relates to the previous answer - the sum of the parts is what counts.

Frank Quisinsky
I am thinking about Fruit. After the free available sources of Fruit 2.1 were published, many other engines made an high ELO jump just a little bit later. Perhaps it's possible that we have the same situation with Rybka four years after Fruit. A very complicate situation because the "clone code" of Rybka isn't GPL and it's a commercial engine. Vas Rajlich never gave his code free. I believe it can be a good solution for the community of programmers to give the Rybka sources free on an official webpage with particularly explanations. The programmer of Rybka will have his own spiritual legacy. This could make the situation clear for all, but of course a very bad solution for Vas himself. Then all the illegal "buggy clones" will be removed and after this period perhaps a new legal "Stockfish" was born.

Gian-Carlo Pascutto
Two things:

1) I personally think that Fruit was more important because it showed that the engine should be simple and correct more than anything. This was a revolution in thinking. Because of that, in my opinion the legacy of Fruit is a magnitude bigger.

2) At the very least your solution would involve distributing code which one of the most respected programmers in the community is proclaiming to violate his copyright. So I think it's not a very good solution.

Frank Quisinsky
Do you recognize any special parts of "clone-codes" which can be interesting in Sjeng development or perhaps for the common future of computer chess. An almost easy way to push up an engine to 100-150 ELO more?

Gian-Carlo Pascutto
No

Frank Quisinsky
Do the playing style was changed after using the strong parts of "clone codes"? Easy to see what my intention is, it's clear, I like programs with their own individual character. In this times it is much more important, because nobody wants or needs 10 Fruits, Glaurungs, Rybkas.

Gian-Carlo Pascutto
My experience with Fruit was that some months after it appeared, suddenly many engines started beating into weaknesses of the then current Sjeng in the same manner as Fruit did. This was painful at first, but as I was able to plug the weaknesses in the months afterwards, Sjeng became quite successful. Scoring against those engines was much easier, and you could count on some of them being present in any tournament. I haven't played in many tournaments after the reverse engineered engine appeared, but it's clear that there could be tough times ahead until I can fix the holes in my engine. The lack of big differences in the opponents will help rather than hurt for that, though.


GAME 3

[Event "Friendly Game, 90m + 15s"]
[Site "Engine Room"]
[Date "2009.12.13"]
[Round "?"]
[White "Deep Sjeng 3.2 BL15"]
[Black "Rybka 3"]
[Result "1-0"]
[ECO "C67"]
[PlyCount "167"]
[EventDate "2009.12.19"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. O-O Nxe4 5. d4 Nd6 6. Bxc6 dxc6 7. dxe5 Nf5 8. Qxd8+ Kxd8 9. Nc3 Ne7 10. Be3 Nf5 11. Rad1+ Ke8 12. Bc1 Be6 13. b3 h6 14. h3 Rd8 15. Bb2 Bb4 16. Ne2 Rxd1 17. Rxd1 Bd5 18. Ne1 Bxe1 19. Rxe1 Nh4 20. Nf4 Bxg2 21. Nxg2 Nf3+ 22. Kf1 Nxe1 23. Kxe1 Ke7 24. Ne3 Ke6 25. f4 g6 26. Ke2 Rd8 27. Ng4 h5 28. Ne3 Rg8 29. Bc3 b6 30. h4 Rd8 31. Kf3 c5 32. Ke2 Rg8 33. Nf1 Kd7 34. Nd2 Rd8 35. Ne4 Ke7 36. Ng5 Re8 37. a4 Rb8 38. Ne4 Ke6 39. a5 Kf5 40. Kf3 Ke6 41. Ng3 Rh8 42. a6 c6 43. Ne4 Rd8 44. Ng5+ Ke7 45. Ke2 Re8 46. Ne4 Ke6 47. b4 cxb4 48. Bxb4 c5 49. Bd2 Re7 50. Kf3 Rd7 51. Nd6 Kd5 52. c4+ Ke6 53. Bc3 Rd8 54. Ke4 Rd7 55. Bb2 Rd8 56. Ba3 Rd7 57. Ke3 Rd8 58. Bc1 f6 59. Ke4 Rd7 60. Bb2 Rd8 61. Bc3 f5+ 62. Kd3 Ke7 63. Kc2 Rd7 64. Kb3 Ke6 65. Be1 Rd8 66. Ka4 Rd7 67. Kb5 Rc7 68. Ne8 Rc8 69. Nf6 Rd8 70. Nd5 Kd7 71. Bf2 Rb8 72. Nf6+ Kc7 73. Be3 Rc8 74. Nd5+ Kd7 75. Nxb6+ axb6 76. Kxb6 Rb8+ 77. Kxc5 g5 78. fxg5 Ra8 79. Kb5 f4 80. Bxf4 Rb8+ 81. Kc5 Rc8+ 82. Kd5 Ke7 83. a7 Ra8 84. Be3 1-0

sjeng-game3

FQ: The King go a long way to the right place.
After white move 67. Kb5

06.
Frank Quisinsky

How do you test your development versions of Sjeng? With collected positions, blitz eng-eng games, games with hints by your beta test team or perhaps an unknown interesting secret way? If so (secret way) you have to give us the ultimate hint. I'm searching for a long time and after all my eng-eng experiences it seems that I'm not found the "Stone of Wise". Perhaps the combination of all known test methods will give us a good result.

Gian-Carlo Pascutto
First of all, test positions are completely and utterly useless for testing a chess engine. They do not tell you anything about the strength of an engine.

My testing is as strongly as possible focused on being objectivist and scientific. It's simply hopeless for (a bunch of) humans of maybe 1500 ELO average strength to judge whether a 3000 ELO engine has gotten 5 ELO better or worse. This means that the only thing that counts is the bayeselo result, *including* the error margins it indicates.

There are some effects that one must be wary of even in this condition: the fact that some changes might not have equal effect on all time controls, and the fact that some changes might produce disproportional results against some engines. Against the second I protect by testing against enough different opponents. Against the first my protection is Jens Heerklotz, whom I send versions that do well (show improvement) in fast games for me, and who retests them at slower time controls.

07.
Frank Quisinsky

Come out, Sjeng is on the way to become a giant for all other engines. You are one of the most talented programmers we can await it! Sjeng 4 will be again a new sensation? Long speech, short sense!? How many ELO points stronger is your actual development version so far?

Gian-Carlo Pascutto
I'll just say: quite a bit over 100 ELO better. I don't know the exact number as I didn't test against Deep Sjeng 3.0 for a while, but it's clear there's very substantial improvement. And if it depends on me, it will keep improving. If you have multiple computers, you can use the cluster mode, and then the improvement is pretty interesting :-)

08.
Frank Quisinsky

Do you set a release day for Sjeng 4? Will be the price the same compare to your latest release version? Don't like such questions, but I have to ask!

Gian-Carlo Pascutto
You're free to ask, but I have no answer. I have no concrete plans for the release right now, so I have no idea how it's going to look. The reverse engineering of Rybka and the current, still ongoing drama about it makes me wary of putting anything out right now, and makes it "complicated" to release a commercial chess engine at this time. I'm doing this as a hobby so if the pain of making a release outweighs the gain, I'm not going to do it. But I'm not going to let the engine rot on my hard disk either, so there's hope for the fans.

Frank Quisinsky
In your words we can read a little disappointment about the actual situation with all the illegal "clone-codes". You know, that each other knows too, that after the new release of a commercial engine, it can be found cracked on different illegal webpage's about two day after. This is no secret. Unfortunately, I had such problems with Ktulu by Rahman Paidar in the past too. I think we have to ignore that, because there are still enough honest customers. Thanks to them! From my point of view: I don't want to loose Sjeng, one of the quite interesting developments. It has to be possible that an engine will be deleted itself if one byte is changed. Do you think that the programmers of commercial chess engines should create a new copy protection by team work?

Gian-Carlo Pascutto
No. Every copyright protection can be beaten. More copyright protection generally also means more hassle for honest customers. This is a real dead-end. Some good ways to reward honest people is giving many updates (meaning honest people always have better things before the pirates do), but it's also a drain on the programmer. I am curious how Vasik's rental idea turns out. There was a lot of opposition to the idea, but people are always scared of new things. The success might depend a lot on the quality of execution.

Frank Quisinsky
During many years I powered free projects, like Arena, free chess GUI or free winboard engines on Frank's Chess Page. You know, you send your first available version of Sjeng to me. Today, I think more and more, that each one have to pay for a strong engine. I'm very disappointed, when I look to my work I have done through about 10 years and now, what so many people are doing with it? Do you think that time is over for commercial software products in the next coming years? If so, what was incorrect in commercial marketing?

Gian-Carlo Pascutto
As far as I know, ChessBase and Convekta are still doing well. The importance of engines itself greatly dimished when they became so strong. Though legal and illegal ways, the knowledge of how to make a good engine became more whidespread and good free engines appeared. So the commercial possibilities to make engines are getting worse. But I think there is still loads of room for innovation in chess software. The move in all software fields is currently towards services, because forcing to interact with a central server is a good way to do copy protection. We already have tightly integrated chess playing servers, and we know engine renting will be a further step in that direction. I'm sure other ideas are possible there.

09.
Frank Quisinsky

Sjeng don't get the big push with 64-Bit compare to 32-Bit, like Zappa, Rybka or Doch / Komodo. Do you work on it or isn't possible?

Gian-Carlo Pascutto
The current development version is about 50% faster on 64-bit compared to 32-bit. (Tested with GCC on a Phenom II, results for other compilers and systems will be different). The way you ask the question seems to imply that a bigger difference is a good thing, but I'm not sure if that's correct. It could as well mean an engine is crippled on a 32-bit system. I try to make sure Sjeng runs as well as possible on any system.

10.
Frank Quisinsky

Do you think that a programmer can reach a result, that an engine will be stronger against humans only? Sorry for this question, but I'm thinking again about Neural Networks and of course about release information from different others in the past.

Gian-Carlo Pascutto
Even if I had a 2600 ELO grandmaster at my disposal 24/7, he would still be over 400 ELO weaker than Deep Sjeng. So I would have to play a massive amount of games to get an idea if Deep Sjeng is performing better against him or not. So maybe it's possible that the engine is stronger against humans, but there  would be no way to test or verify it, even for the programmer. I think with the current engine strength, talking about "plays better against humans" makes little sense, because how on earth can you check that?


GAME 4

[Event "Rated game, 60m + 15s"]
[Site "Engine Room"]
[Date "2010.01.09"]
[Round "?"]
[White "Deep Sjeng 3.2 BL14"]
[Black "Rybka 3 32-bit"]
[Result "1-0"]
[ECO "B30"]
[WhiteElo "2476"]
[BlackElo "2646"]
[PlyCount "123"]
[EventDate "2010.02.02"]

1. e4 c5 2. Nf3 Nc6 3. Bb5 Nf6 4. Nc3 g6 5. e5 Ng4 6. Bxc6 dxc6 7. h3 Nh6 8. g4 Bg7 9. d3 O-O 10. Qe2 f5 11. g5 Nf7 12. Bf4 Qa5 13. Qe3 Be6 14. h4 c4 15. d4 b5 16. O-O b4 17. Ne2 Nd8 18. h5 Bd5 19. Nh4 Kf7 20. a3 Ne6 21. Rfd1 Qa4 22. Rdc1 b3 23. c3 Qa5 24. Qg3 Be4 25. Ng2 c5 26. f3 Bb7 27. Be3 Rac8 28. Ngf4 Nxf4 29. Qxf4 cxd4 30. cxd4 e6 31. Kg2 Rg8 32. Nc3 Bc6 33. Rh1 Qa6 34. Rad1 Qb7 35. Ne2 Bf8 36. Qg3 Qe7 37. Bd2 Qd7 38. hxg6+ hxg6 39. Rh7+ Rg7 40. Qh3 Qd5 41. Rh6 Rg8 42. Nf4 Qxf3+ 43. Qxf3 Bxf3+ 44. Kxf3 Bxh6 45. gxh6 g5 46. Ne2 Kg6 47. Rh1 Kh7 48. d5 exd5 49. Nd4 Rce8 50. e6 Rg6 51. Re1 Rxh6 52. Bxg5 Rh2 53. Rg1 c3 54. bxc3 Rh5 55. Bf6 b2 56. Kf4 Rg8 57. Rb1 Rg4+ 58. Ke5 Kg6 59. Bd8 Rg2 60. Kd6 f4 61. e7 Rh8 62. Kd7 1-0

sjeng-game4

FQ: Before Sjengs white move 42.Nf4

11. Frank Qusinsky
Let us now speak about different other topics. First theme I choose is Chess960. Sjeng is compatible to Chess960. Do you investigate much time in chess960? How do you split your interests between chess and chess960 in %.

Example: Frank Quisinsky
chess = 95%, chess960 = 5%

Gian-Carlo Pascutto
I spent most time on Chess960 before the first tournament in Mainz, which was in 2005. Chess960 was new back then and all support for it had still to be developed. I had to rewrite quite a few basic routines in Sjeng to support it. After that, it just worked and I didn't spend any further time on it.

Somewhere in 2009 I added some new things which broke Chess960 support, and so I again had to spend some time to get it working for Mainz. During the tournament it turned out that there were some bugs left. I had to switch back to an older version which was also used during the qualifier. This was rather embarassing and ruined all chances for a good tournament result. At least I can assure you that those bugs are quite well fixed now :-)

So basically, I think that in terms of total time I spend less than 1% on Chess960. I try to make all knowledge I add as generic as possible, so there is almost never a need to do something specific for Chess960, because the existing knowledge works well.

12. Frank Quisinsky
Now you are watching the computer chess events / fora / information's around chess since more than ten years. A lot of oddities were lived to see in these times. Do you remember a certain situation with chess personalities, you'll never forget in your live?

Example:
In times I was working on Arena, I got an angry mail from an Argentinean wife of a computer chess freak. She indicted a special option of 'national anthems' in Arena Chess GUI. Her husband, soldier in the Army of Argentina, never undresses his uniform off duty, when he stays at home. All what he do is sprinting to the own pc to look up for the newest engine-engine results. The guy likes it to play very fast blitz games with Arena and Gaviota (engine from Argentina). All these with the active national anthems option. He stands up and saluted in front of his monitor, each 5 minutes. With time his wife was very unhappy about it and sent me a long mail attaching a pic of her husband, I never forget. Our team has to deactivate the national anthems option, directly ... she wrote! We never done that. All in one, I think I'd produced a lot of rubbish in the past, but that's computer chess too (the national anthems idea was derived from the very fine older Winboard webpage by Thomas Mayer).

Gian-Carlo Pascutto
Hmm, there were quite a few memorable adventures when going to the World Championships.

Going to Graz in 2003 was probably the most chaotic. It started with just being able to get there. I was still studying and the tournament was in the middle of the year at a time when I had classes with required attendance, so I resigned to the fact that I could not attend. Jaap van den Herik did not agree, called my school in his function as Professor at Maastricht University, and explained to one of the principals that it would be a disagrace if I would not be there, etc. The next day I was called to the principal who told me that she "had had a fan of me on the phone" and that everything had been taken care of.

For the tournament I was able to get a sponsored machine from AMD, one of the first 64-bit machines at a time when it was till a novelty, but it only arrived 2 days before the tournament started. So I got in my car, to pick it up in Antwerpen (the servermachine barely fit into my miniscule car), then immediately drove further towards Veenendaal. I had agreed with Vincent Diepeveen to drive together with him to Munchen to the home of Rudolf Huber. I stayed at Vincent's place and worked throughout the night to get the 64-bit machine installed with alpha versions of 64-bit Windows which I just got from Eugene Nalimov, and to port the program to 64-bit. We then drove to Munchen the next day, and spent hours trying to find Rudolf's place (this was before the time of GPS systems, obviously!). Luckily, like Vincent's mother, Rudolf's mother cooked for us while we discussed the results from the new 64-bit machine.

One reason why we made the stop at Rudolf was that we suspected that he would have a nice, big German car to make the rest of the journey more enjoyable. It turned out that he drove a rather old Peugeot in which we and our 3 machines barely fit.

I could go on about our adventures like this for a while, but that would be a seperate story.

The tournament itself was filled with a lot of drama, and I had many interesting discussions with many people. Sjeng's performance was not so memorable, mostly because one night of programming was not enough to test the 64-bit port properly. But I had loads of fun.

The trips to Iceland in 2005 and China in 2008 were also wonderful experiences producing many stories.

The low point in memorability was Pamplona 2009. It started with the extremely silly decision regarding the 8-core rules, which unfairly advantaged some teams and disadvantaged Sjeng greatly. When Sjeng made a great performance regardless, a jealous competitor then complained that Deep Sjeng should be "promoted" to the full professionals category, requiring a huge entry fee. The ICGA granted this request (without as much as informing me until more than a month afterwards when it was way too late!) with the result that it is now no longer affordable for me to attend the World Championships. The behaviour of this "collegue" (which I now understand is very much the wrong word) and the way the ICGA handled it has disappointed me greatly and will not be forgotten soon.


GAME 5

[Event "Rated game, 16m + 3s"]
[Site "Machines A"]
[Date "2010.01.01"]
[Round "?"]
[White "Deep Sjeng 3.2 BL15"]
[Black "Stockfish 1.6.2s"]
[Result "1-0"]
[ECO "C05"]
[WhiteElo "2544"]
[BlackElo "2553"]
[PlyCount "69"]
[EventDate "2010.01.02"]

1. e4 e6 2. d4 d5 3. Nd2 Nf6 4. e5 Nfd7 5. f4 c5 6. c3 Nc6 7. Ndf3 Qb6 8. g3 cxd4 9. cxd4 Bb4+ 10. Kf2 f6 11. Kg2 O-O 12. Bd3 g5 13. exf6 gxf4 14. Bxf4 Nxf6 15. Qe2 Be7 16. Bh6 Rf7 17. Ne5 Nxe5 18. dxe5 Ne8 19. Nh3 Ng7 20. g4 Bd7 21. Rhf1 Raf8 22. Nf4 Kh8 23. Rf3 Bc6 24. Kh3 d4 25. Rf2 Qd8 26. Raf1 Qe8 27. Qd2 Rxf4 28. Rxf4 Rxf4 29. Qxf4 Kg8 30. Qxd4 a6 31. Qc3 Bd5 32. Qc2 Kh8 33. Bxh7 Nf5 34. Bxf5 exf5 35. Qxf5 1-0

sjeng-game5

FQ: Now Sjeng played the nice move 23. Rf3


GAME 6

[Event "CCM6 - 2. Chess960 Computer Wch"]
[Site "Mainz"]
[Date "2006.08.17"]
[Round "2"]
[White "Deep Sjeng"]
[Black "Glaurung"]
[Result "0-1"]
[SetUp "1"]
[FEN "bnrbkrqn/pppppppp/8/8/8/8/PPPPPPPP/BNRBKRQN w FCfc -"]

1. f4 b6 2. Qf2 e6 3. e3 Ng6 4. O-O Nh4 5. g3 g5 6. Bh5 Be7 7. b3 O-O-O 8. Nc3 f5 9. Bb2 gxf4 10. Qxf4 a6 11. Be2 Qg6 12. b4 Bg5 13. Qc4 d5 14. Qb3 d4 15. Nd1 dxe3 16. dxe3 Rd2 17. Rf2 Rxe2 18. Rxe2 Qh5 19. Qxe6+ Nd7 20. Kf1 Qf3+ 21. Rf2 Qxh1+ 22. Ke2 Ng2 23. Rxf5 Qe1+ 24. Kd3 Rxf5 25. Qxf5 Qxb4 26. Bd4 Ne1+ 27. Ke2 Bf3+ 28. Qxf3 Nxf3 29. Kxf3 Qd2 30. Ra1 Qxh2 31. a4 Qxc2 32. a5 c5 33. Bc3 b5 34. Bh8 Nf6 35. Nf2 Qf5+ 36. Ke2 Ne4 37. Nxe4 Qxe4 38. Ra3 c4 39. Rc3 b4 40. Rxc4+ Qxc4+ 41. Kf3 Qd5+ 0-1

sjeng-game7

Gian-Carlo Pascutto:
4. O-O is more or less the losing blunder. Sjeng did not understand (yet!) that the pressure against the king could not be withstood for long. You can see in the other games, that this has been improved a lot now :-)

13. Frank Quisinsky
Do you remember the "older" times, Winboard and amateur engines were in the public eye? When did you have more fun in computer chess? In these times or in the years ago?

Gian-Carlo Pascutto
The early years were better. Nobody really knew how to write a strong engine. Well, the professionals did, but they weren't telling anyone. So the rest of us were goofing around and everybody was trying crazy ideas and discussing them. There were no good interfaces so some people invented their own. There (understandably) was also more interest from the public.

Now we're just eating einheitswurst and nobody except harcore fans has much interest left.

But, I have hope! There will be a few more revolutions that turn things upside down, I'm sure of it. I hope I can claw my way to the top again quickly when they do.

14. Frank Quisinsky
Next theme are the graphical user interfaces. A lot of strong and very interesting GUIs are available. Sjeng got his own interface too. I' am sure, you have a lot of interfaces on your hard disk, because during all the years of your commercial Sjeng, I never read a Sjeng-Bug-Report in a computer chess forum. Sjeng engine works very fine with uci protocol and all its important possibilities (multiprocessor support, multi-variation analysis, refutation displays, chess960 and so on).

Gian-Carlo Pascutto
Actually, Deep Sjeng is currently missing support for searchmoves. I removed  this because nobody seemed to be using it. Little did I known that Convekta would come out with Aquarium and IDeA a few months later ...

A) Which of the available interfaces is your favourite and why?

Gian-Carlo Pascutto
Hmm, I still use Shredder Classic most, although I'm now using Aquarium a bit too. There's no denying that ChessBase also has a good GUI, specifically for online play, but their product is usually not so innovative as the others. It would be great if they could prove me wrong at some point.

For playing, it's Shredder Mobile. It runs even on my very cheap phone and I can actually beat it, hahaha!

B) Do you have main wishes for interface programmers? Perhaps you have an idea for a new option?

Gian-Carlo Pascutto
Yes! But this one, I'm not telling :-)

C) Is your own interface still in development?

Gian-Carlo Pascutto
No. The interface of Deep Sjeng 2.x was a cooperation between myself and the people from Mayura. The idea was to make something more accessible to occassional players. I'm still happy with the result but this market is difficult because it's easy to find older Fritzes at large discounts.

15. Frank Quisinsky
Today more than 500 engines are available. Many young persons are looking for the first steps in programming. With all your knowledge in programming, it would be interesting to know, which hints you can give "our" coming soon very young talents. Perhaps a book, or interesting hints to sources for learning, interesting web pages with information of chess programming.

Gian-Carlo Pascutto
Well, writing a chess engine is still an excellent excerise for beginning programmers. You need to deal with many things at once. I think the main thing to understand is that you should test your code and the performance of it in a scientific manner, and write it as simple as possible. Most bugs and bad performance are created by programmers writing code that is more complex than they can understand.

The best way to learn programming is to do it!


GAME 7

[Event "Rated game, 30m + 0s"]
[Site "Machines B"]
[Date "2009.12.31"]
[Round "?"]
[White "Rybka 3 Dynamic"]
[Black "Deep Sjeng 3.2 BL15"]
[Result "0-1"]
[ECO "B52"]
[WhiteElo "2563"]
[PlyCount "94"]
[EventDate "2009.12.31"]

1. e4 c5 2. Nf3 d6 3. Bb5+ Bd7 4. Bxd7+ Qxd7 5. c4 Nc6 6. d4 Qg4 7. d5 Qxe4+ 8. Be3 Nd4 9. Qa4+ Kd8 10. Nbd2 Nc2+ 11. Ke2 Qg6 12. b4 Nxb4 13. Rhc1 Qd3+ 14. Ke1 Qf5 15. Kf1 Qd7 16. Qb3 b6 17. Re1 Qf5 18. Ng5 h6 19. Nge4 e5 20. a3 Na6 21. Qb2 Nf6 22. Kg1 Ng4 23. Nc3 Qd7 24. Nf1 f5 25. Nb5 Nxe3 26. Nxe3 g6 27. g3 Bg7 28. Qc2 Rf8 29. Rab1 e4 30. Nd1 Nc7 31. Nxc7 Kxc7 32. Nc3 a6 33. Rb3 Rab8 34. Reb1 Bd4 35. Kh1 g5 36. a4 Rfe8 37. Ne2 Be5 38. Nc3 h5 39. Qd2 h4 40. a5 hxg3 41. fxg3 Qh7 42. axb6+ Kb7 43. Rg1 Rh8 44. Qg2 e3 45. Na4 Bd4 46. Rf1 f4 47. g4 f3 0-1

sjeng-game6

Rybka with big problems!
After Sjeng's black move 38. ... h5
From move to move, Sjeng got a better position.

16. Frank Quisnsky
I think we had spoken now about a lot of topics.
Please think about all your fans and honest customers.
Perhaps it's a bad time to release a commercial engine but in the year 2010, 10 years after ... a JUBILEE ... we are very interesting in your new version.

You wrote me:

Gian-Carlo Pascutto:
"I got interested in tree search programming (chess, checkers) in the summer of '97, first made a checkers program and moved over to chess some time later. Sjeng is a school project and was primarily designed to play crazy house and bughouse (drop-chess)."

And to your favourite program:

Gian-Carlo Pascutto:
"Crafty. Free, source available, good positional understanding, very strong and lots of nice features."

Do you remember Gian-Carlo?
It was 15th, December, 1999 (News from Frank's Chess Page) ... the first Belgium engine, available for an Argentinean soldier, me and many others.
It's time for the Jubilee Sjeng Edition!

*AGAIN*
Your move ... I am not mate Gian-Carlo!

Gian-Carlo Pascutto
You are not the only one hoping a new Sjeng can appear this year :)

Frank Quisinsky
And I am simply mate :-)

17. Frank Quisinsky
Which is your favourite chess engine today? Crafty?

Gian-Carlo Pascutto
I think that Stockfish is the new Crafty, but my favorite engine is of course ... Sjeng

Frank Quisinsky
Have thanks for your time Gian-Carlo.
SCHACHWELT wish many success with Sjeng in the future.

Copyrights and Sources by http://www.schach-welt.de & Frank Quisinsky

Note:
Further publication of this interview is allowed and wished,
but with the permission of http://www.schach-welt.de only.
One condition is the complete casting (e.g. in printed media).

Frank Quisinsky, February 04th, 2010