Thank you for the download. I found, first of all, that the "display_messages=0" variable in the coefficients.ini file doesn't have any effect.
From a small amount of drunken experimentation, I have determined that the last two variables have a negligible effect on the engine's play style and rating. Either one of the first two variables (both together or just one increased to a high value) will significantly increase the strength of the computer opponent. I personally think that param2 (the highest quantity value parameter) is the most important variable.
This is just from playing the Black pieces, and using Nimzo-Indian / Ragozin opening prep with just about 3 years of tactical/strategic improvement on my part. The engine is likely an older form using a "polyglot" adapter to communicate its ideas through an open-source platform. It only plays certain positions and refuses to play optimal moves in order to maintain the relevance of its portfolio or repertoire. If both of the first two variables or "param"s are low, it will willingly go out of its repertoire by blundering early and quickly become just dead lost.
Hello Everyone,
I post this information with hope that it will be useful.
Many people complain on the strength of the good old Chess Titans level. It is estimated around 1750-1800 ELO at the level 10. I don't believe, that Oberon Games wrote bad engine, but it was intentionally weakened instead, to satisfy the casual chess players. I decided to dig deeply into this. (I don't want to discuss the moral aspects of reverse engineering and executables patching, since I do this in sake of improvement).
The Chess Titans can be downloaded from inet, just google. I've found the package grabbed from Windows 7 and it works perfectly on Windows 10.
So, after disassembling the exe, I quickly found the method named SetDifficulty, that pretty much speaks for itself. There are 10 levels, internally numbered from 0 to 9 with the hardcoded constants that control the engine strength. After converting all hex digits into decimals (which is friendlier for human eyes) I've got the following table:
It is clear, that the engine strength is controlled by 4 parameters. From this point we fall into the sea of assumptions, but still can get some relevant outcome. So, the param1 and param2 are increased per level and could be the number of nodes engine allowed to evaluate. The param3 could be the percentage (or even numbers) of bad moves/blunders that engine has to perform during the game and it is decreased for stronger level. No idea what could be the param4, but it is set to 100 from level 7 up to 10, so probably this is the max value for this parameter.
As I wanted to make the engine stronger, I decided to double the values from level 10 and create the level 11 as the following:
After patching the program, I setup 2 games between CT10 and literally say CT11 sitting near two laptops and copying moves from one to another. In both games CT11 outplayed CT10, but the move time has increased twice. The level 11 is definitely stronger than 10. Here are these games:
Manual modification is quite difficult process, so I decided to make it easy and went further – to store all parameters in coefficients.ini file for each level, which can be easily modified in notepad and loaded by the program on the fly. This gives for everyone interested a chance to tweak the parameters on their own and check the results. So, literally, new 10 levels can be created with it. The package can be downloaded from here. Upon startup, the program displays the message to notify user whether patching was successful or not. There are two additional options in the coefficients.ini file that allow you to disable patching to play with the original strength. Just open it in notepad, they are well commented.
I’m not strong in chess, so it would be interesting if someone check the new levels of CT.
Other useful information about CT.
1. Is it possible to get the pgn from CT? Yes. Just quit the program at some point and save the game when it asks you. Go to C:\Users\<your_user_name>\Saved Games\Microsoft Games\Chess Titans. Here should be the file with saved game: “ChessTitans.ChessTitansSave-ms”. Open it in notepad, ignore that it is binary. Scroll down to the end of the file and you see something like this:
[Event ""]
[Site ""]
[Date ""]
[Round ""]
[White "Human"]
[Black "Computer"]
[Difficulty "9"]
[Result ""]
e2e4 e7e5 g1f3 b8c6 f1b5 a7a6 b5a4 g8f6 e1g1 f6e4
Create new text file and copy the text into it, save as pgn. Now you can open it in any chess software like Arena, Scid, etc...
2. Is it possible to setup position in CT? Yes. The way is the same – open saved game in notepad and enter the moves in notation e7e8Q. For example, if you change the line from above to the following: d2d4 d7d5 c2c4 d5c4 CT will play the accepted queens gambit, which I’ve never seen in CT.
Comments, ideas, tweaking results are welcome.
WBR