Forums

Beginner-friendly chess engine

Sort:
AlexNic

Hi all,

Just wanted to inform you of a chess engine that is suitable for beginner training. It's style of play is rather human-like and except for not making blunders, it does short tactical maneuvers that can test your defences. And you can beat it by playing strategically and planning ahead. This engine is different in that it was not created to be the strongest engine, so there's no weakening by random moves, etc.

Here is an example game against this engine.

If you want to test if it can fit in your training, you can download the UCI executable here (it's 160KB only):

https://sourceforge.net/projects/scechess/

It does not contain its own book, and relies on GUI book, but can play without the book, too.

swetye

thank you.....am trying it out using the Arena GUI.I like having some engines available that I have a chance of winning against.

swetye

Played a couple of 15 minute games...first one was interupted by a phone call and I blundered  and lost.Second game I played down to just a few pieces left but still lost....I am not a very strong player.....most chess engines defeat me in the middlegame,with this at least I can play into an end game....sure I will get quite a bit of use out of it....

AlexNic

swetye, thanks for your feedback! Here's an example of a game won against this engine (although it required about two takebacks or so).

The analysis depth is limited in this engine, so if you manage to create a favorable position for yourself, you are likely to win. Its evaluation function takes into account some tactical elements, so in general it tries to establish control and create threats, but does not calculate very long forced combinations. This leaves certain space for you to carry out your own attacks and checkmate combinations. Drawing is easier, you basically have to avoid blunders and keep your position well fortified.

AlexNic

I updated the program to version 1.2. Now you can choose the analysis depth in engine parameters and the default is set to 4. Set depth to 3 for most easy play, and to 5 for most difficult play. The updated file is named SCE_v1.2.zip: https://sourceforge.net/projects/scechess/

innocuent

Alex, are you the author of this program?

AlexNic

This is a program that I wrote as a spin-off while working on another project.

innocuent

Good, is it open source? Which language have you used to write it?

AlexNic

At this moment it's not open source, but when the code gets brushed up enough, I will consider publishing it. The language I used is C++98. Generally speaking there is little use in open source software unless it's fully cross-platform, and there are some things to change in this program before it becomes cross-platform.

HGMuller

Note that depth limitation is a standard feauture in virtually all UCI or WB engines. In the WInBoard GUI, for instance, you can enable this feature by specifying the additional option -searchDepth N .

AlexNic

HGMuller, most chess engines have the depth parameter, but changing only this setting will not always give you the desired results. For example, to make Glaurung play at lower strength, you will have to change about six different parameters out of dozens of parameters. These will include three different depth parameters: 'PV nodes', 'non-PV nodes', and 'Threat depth'. Also, there will be such parameters as 'Mate threat extension', 'Passed pawn extension', 'Check extension', 'Single reply extension', etc. You will have to know what they mean to set them to appropriate values, or simply play around with them until you get the desired result. Most engines are designed to play at maximum strength and it's not a straightforward task to tweak them for amateur, beginner, or intermediate play. Sometimes you may want to have a chess engine in your collection that will provide the required strength and play style without complex tweaking.

HGMuller

All the Glaurung options you mention are engine-defined options to tweek the search algorithm. The standard option for limiting depth shared by all engines, won't be found amongst those, however. It is implemented by sending UCI engines "go depth ..." in stead of "go wtime ... btime ..." to set them thinking, rather than changing their option settings. It should be easily accessible to any user through some general GUI control (obviously dependent on the GUI you are using). Glaurung can be perfectly weakened by just using this general method rather than having to figure out what the private engine options mean, or indeed whether they exist.  Setting it to 2 ply (it does seem to refuse to go below that) should weaken it enough despite all its extensions, so there is little reason to bother with the latter. Even at depth 3 Fairy-Max (which is a weak engine by itself) at 1 min/40 moves easily beats it.

The disadvantage of weakening an engine through a depth limit is that it starts to play like an idiot in the end-game long before the limit is so tight that it has dropped to a beginner level in the middle game. Therefore it is usually better to limit it by giving it very short time, or (when that time would have to be immeasurably small) put a limit on the number of nodes it can search.

Don't get me wrong; it is of course great that you built your own engine, and there is much more need for weaker engines than for yet more 3000+ Elo clones. But limiting by depth is not really a unique feature, and it usually doesn't lead to human-like play.

BTW, as an experiment I had SCE play against Fairy-Max limited to 1 ply. It seems SCE has a problem with promotions; it does not append the promotion piece to the move, in violation of UCI protocol, and not all GUIs like this:



AlexNic

HGMuller, thanks for the feedback. You probably misinterpreted my posts, because I never stated that depth limit is a unique feature in SCE. I only said that getting a specific style and strength out of an engine usually requires more tweaking than just setting the "depth" argument of the "go" command. The reason I decided to share this program was the way it played with the present evaluation function. I was not specifically making a chess engine to attach my name to it, and you won't even see my name in the info string. I simply think that keeping it to myself would not be a good idea, since it can have some value for players at beginner or intermediate level who want to try different engines. As for the promotion bug, thanks for reporting it. I am currently refactoring the code and will include the bug fix for that in the coming update.

AlexNic

The missing promotion piece bug was fixed in version 1.2.1. This version is now available on the project page as the default download:

http://sourceforge.net/projects/scechess

swetye

Here is a 40 minute game I finally won as white.Did make two takebacks because of carelessness. Also had a draw by repitition in a 15 minute game as well as one game I would have won had I not run out of time.Have played many games in the last couple of days but lost most of them.This is a great engine for me to work with and I thank you for your work on it.

AlexNic

Congratulations, swetye! It was an interesting game and I am glad you found the way to outplay the engine in the ending. I also conclude that the program works without problems on your system which means it is more or less stable. Thank you for taking time to write about your experience. I wish you good luck in your games.

AlexNic

The program has been updated to version SCE v1.2.2. In this version a bug in hash calculation function was fixed that affected game play in certain positions. The updated version can be downloaded from the main project page: http://sourceforge.net/projects/scechess

kiloNewton

it had almost beaten me in 5|3 blitz:


in contrast middlegame, its weaker in opening (5...Qxg2 strong looking, but weak in fact!)

its much weaker in engames than middle game, it was draw at move 67 (balancing them will make it more human like.Smile)

good work!