0% found this document useful (0 votes)
590 views7 pages

Chess Engine Enthusiasts' Farewell

The document discusses the final release of the Rodent chess engine. Key points: - Rodent IV is the last release from the developer as they have moved to game development. - The personality system and playing styles have been improved. Personalities can now be set to different strengths independently. - Users are encouraged to contribute new personalities, bug fixes, and improvements to the engine. - Instructions are provided on using the personality editor, configuring options, and registering new personalities.

Uploaded by

amazingmoves20
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
590 views7 pages

Chess Engine Enthusiasts' Farewell

The document discusses the final release of the Rodent chess engine. Key points: - Rodent IV is the last release from the developer as they have moved to game development. - The personality system and playing styles have been improved. Personalities can now be set to different strengths independently. - Users are encouraged to contribute new personalities, bug fixes, and improvements to the engine. - Instructions are provided on using the personality editor, configuring options, and registering new personalities.

Uploaded by

amazingmoves20
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

The Final Rodent

This is the last engine from Rodent line. I write it with a sense of accomplishment, and with a good
drink in my hand, so please treat it like a good news. The project is completed, personality system
works as intended, most of style-deteriorating effects of Texel tuning have been reverted, UCI options
have been simplified and you are guaranteed loads of fun with much less hassle.

Chief reason for that decision is that now I work as a game developer at Chess & Checkers Games.
I can say that Rodent landed me that job, but doing the same thing at work and as a hobby has no
appeal for me. Also I feel that I am developing rapidly as a programmer, which has a side effect that I
came to dislike my pet engine’s source code. It is perfectly possible, even likely, that I will start another
chess-related project in the future, but with this one I’m done. Some fixes are still possible, but that’s
all.

In short, Rodent is entirely yours now. If you create interesting personalities for Rodent IV, I will add
them tot he package. If you fix bugs, I will add these bugfixes. If you improve engine’s play (especially
multithreading on more than 16 cores), I will gladly make another official release.

What you got


Expected user experience should look like this:

Figure 1. We play blitz against a personality called “Grumpy” that has been set to 2000 Elo, calculating about 4000 nodes
per second. Nevertheless, we misplayed the opening, engine started a vicious pawn storm and taunts us because it believes it
has serious advantage.
As you can see, personality system has been changed, and playing style has been decoupled from
strength. The former is now defined by loading personality files, the latter – by setting UCI_Elo
parameter. This way you can play against weaker equivalents of Nimzowitsch or Tal.

The cost of this decision is that personality files from earlier versions of Rodent do not work anymore.
There are also not as many personalities with this release as with previous ones. One reason is that
UCI_Elo parameter eliminated the need for weaker personalities. The other is that I favored quality
over quantity, looking at games played by each one to be sure that they have distinct playing styles.

Configuration

Figure 2. Choosing Rodent personality

As you can see, personalities can be picked from the list. The list is defined in basic.ini file (more on
that later), so if you want to add a new one, you have to add its filename there. This is an old idea of a
Github user tico tico, who helped me a lot with Rodent III.

As for other options, ClearHash, MultiPv, Ponder, UseBook are self-explanatory. Verbose and
VerboseBook mean more engine output. By disabling PrintPv you can play a fair game, without
looking at engine evaluations. If you tick Taunting and your GUI prints info string messages, Rodent
will give you some gentle verbal abuse, ranging from skulking and squeaking in lost positions, through
self-motivating gibberish, mild suggestions of superiority, gloating with every captured piece, calling
your blunders and asking you to resign. MobilityRebalancing is an option that does not add strength,
but you can turn it on to see if you like engine’s play better.
Personality creator
If you ask what happened to creating new personalities – now this is done either with JavaScript-based
personality editor, located in tools folder, or by manually editing text files. Personality editor can be
used offline.

Figure 3. Rodent IV personality editor.


Registering personalities
There is basic.ini file in personalities folder. If you create new personality, you should register it there,
so that it appears on the list. File looks like that:
HIDE_OPTIONS
PERSONALITY_BOOKS
UCI_ELO
HIDE_PERSFILE

Amanda=amanda.txt
Ampere=ampere.txt
Cloe=cloe.txt
Deborah=deborah.txt
Defender=defender.txt
Grumpy=grumpy.txt
Morphy=morphy.txt
Nimzowitsch=nimzowitsch.txt
Partisan=partisan.txt
Pawnsacker=pawnsacker.txt
Pedrita=pedrita.txt
Preston=preston.txt
Simple=simple.txt
Spitfire=spitfire.txt
Strangler=strangler.txt
Tal=tal.txt

What’s new
The last version of Rodent is also the most evaluation-heavy one. I have added several new patterns
and one outlandish idea that gave a bit less than it promised, but just enough to justify adding it in. I
guess I wanted to show it in public before implementing it in a closed cource project some time in the
future.

Another addition that I like is space evaluation. It returns rather high scores, but they tend to cancel out,
and make the engine’s play in the center more ambitious. Only after adding this feature I dared to
create Morphy personality (which, by the way, uses also “forward” piece/square table set).

The engine uses two piece/square sets, primary and secondary, that can be chosen out of five. This
alone allows creation of many more unique personalities, but it is not the end of the story. Weights of
these tables are adjusted at runtime, depending which set scores better. It means that the engine can
adjust its style as it plays. The rough outline of the algorithm – which may well be used for other
evaluation parameters such as mobility – will be shown in the appendix.
Predefined personalities

Since its inception, Rodent project has been about creating an engine that allows modification of its
playing style – just like ChessMaster series, only better. Code changes in the new version meant that
old personalities are no longer usable, so I felt the need for creating a new set. I hope you will find it
interesting.
Amanda

Fist and foremost, an attacker; her second consideration is piece activity. Plays gambit openings.

Cloe

Cloe likes closed positions, pawn storms and sound pawn structure. The only thing she prefers to a
closed position is a closed position with a single open file, owned by her rooks. She is a proud
practitioner of the French and King’s Indian defenses.

Deborah

Picture her as a dark-haired, slender, melancholy woman. She is a defensive player who likes bishops.

Defender

Imagine him in an expensive suit, looking more like a CEO than a chess player. Strong, rational, if
mildly pessimistic personality. Plays solid openings. Ready to take draw in dead equal positions.

Grumpy

Imagine him as a player already past his prime, disrespectful towards his opponents and still quite
dangerous. Grumpy likes restricting enemy movement and attacking, enjoys closed positions and
expects to win. Because of his age, he plays mostly not too modern openings (ro example, he likes
Tarrasch defense).

Morphy

Impersonation of Paul Morphy. Emphasizes mobility, then king attack, prefers open positions.

Partisan

He starts slowly, using openings that do not occupy much space in the center, but don’t be lulled in a
false sense of security. Later he goes for a vicious attacks.

Pawnsacker

Picture him as a young, up-and-coming grandmaster, who has not yet reached his true potential. Thin,
energetic, likes flashy moves a bit too much. He tends to part with his pawns from time to time.
Balanced personality, likely to sacrifice modest amount of material, often goes for active defence in the
endgame.

Pedrita

Pedrita stands for “pawns, defense, restraint”. She plays solid openings and thinks defense first, but
don’t be deceived! She can attack all right if position demands it, and with solid pawn play she is a
hard nut to crack.

Preston

Mildly materialistic, but fighting for the initiative and close enough to default to avoid unsound plans.
Likes to create pressure against enemy pieces. Plays closed openings as white, Slav and Caro-Kann
defenses as black. Perhaps the best setup against the weaker engines.

Simple

Plays without more advanced facets of evaluation function, applying sensible default. Slight preference
for exchanging queens, in dead equal positions will go for a draw. Perhaps the most computer-like
personality.

Spitfire

Picture him as a tall man in a brown leather jacket. He likes active play but detests being under attack.
Likes keeping queens on the board.

Strangler

Based on Rodent III personality by Brendan J. Norman. Plays boa constrictor style, but has strong
preference for attack, likely to sacrifice for positional reasons. Much more temperamental version of
Grumpy, very human-like play. May be overoptimistic in endgames with queens.
Appedix. Algorithm used for interpolation between
competing piece/square scores
1. Two competing parameters describing the same aspect of evaluated chess position are needed. They
will be called hypothesis1 and hypothesis2. It helps if these scores are large, therefore in the first
experiment piece/square table score has been used.

2. Each of the hypotheses has initial weight associated with it: percentage1 and percentage2. The
weights need not to be equal or to sum up to 100.

3. We calculate a difference between both hypotheses, henceforth called delta:

delta = std::abs(hypothesis1-hypothesis2);

4. Value of delta is used to calculate the shift factor. The first formula that worked has been:

shift = std::min(sqrt(delta), 20);

Later, maximum percentage shift value has been raised to 25. It is possible that sigmoid or logarithmic
function will work better. All that is needed is a reasonable way of using delta to arrive at a value not
greater than either of percentages.

5. We apply shift as follows

if (hypothesis1 > hypothesis2)


rebalanced = hypothesis1 * (percentage1-shift)
+ hypothesis2 * (percentage2+shift)
if (hypothesis1 < hypothesis2)
rebalanced = hypothesis1 * (percentage1+shift)
+ hypothesis2 * (percentage2-shift)

Note that in example code hypothesis that proposes higher score is less trusted and its score diminished
accordingly. This approach has certain philosophical appeal (evaluation function would be awarded for
not trusting itself), but should not be treated as inherent property of the algorithm.

Common questions

Powered by AI

The impact of removing older personality files in favor of new ones in Rodent IV on user experience revolves around quality and distinctiveness. Although users lose access to previous personalities, the new personalities are crafted with diverse playing styles that are carefully vetted to ensure distinction and quality. This shift in focus from quantity to quality allows users to engage with personalities that offer varied and realistic challenges, enhancing the overall gaming experience by providing more meaningful and differentiated interactions .

In the piece/square table evaluation algorithm of Rodent IV, 'delta' represents the absolute difference between two competing parameter evaluations (hypothesis1 and hypothesis2). The impact of delta is to determine the 'shift' factor, which adjusts the influence of each hypothesis in the evaluation process. A greater delta indicates a larger disparity between the two hypotheses, allowing the engine to recalibrate which aspect of the position to prioritize. This approach provides a self-correcting mechanism to ensure that the engine does not overly trust any single evaluation aspect, thus enhancing its decision-making complexity and versatility .

The JavaScript-based personality editor improves the process of creating new personalities for Rodent IV by allowing users to create personalities offline, thereby offering flexibility and convenience. This tool streamlines the process of editing and registering personalized configurations within the engine, making customization more accessible and user-friendly without a deep understanding of programming or manual file editing .

The concept of hypothesis1 and hypothesis2 in Rodent IV's evaluation algorithm reflects a unique approach by allowing the engine to dynamically weigh competing evaluations of the same position attribute. This dual hypothesis system enables a nuanced understanding of chess positions by fostering adaptability and discouraging over-reliance on any single evaluative aspect. The algorithm's ability to reallocate influence based on real-time performance (through the measurement of delta) epitomizes an innovative strategy that prioritizes balanced decision-making and adaptability, making the engine more resilient and strategic in varied scenarios .

The personality system in Rodent IV enhances user experience by decoupling playing style from strength. This is achieved by loading personality files for style and setting the UCI_Elo parameter for strength. This change allows users to play against weaker equivalents of famous chess personalities, such as Nimzowitsch or Tal, providing a more customizable and diverse playing experience. The simplification of UCI options and the introduction of a system where the Taunting option adds a layer of fun by offering verbal interactions add to the enhanced user experience .

The potential benefits of making Rodent IV open-source and community-driven include increased innovation and rapid progression of the software, as the collective input from diverse contributors can lead to meaningful enhancements and personalized features. It allows users to fix bugs, develop improved strategies, and create unique personalities, thereby refining the product continuously. However, challenges may include managing the quality and consistency of contributions, potential security vulnerabilities, and the need to coordinate a diverse group of contributors. Additionally, maintaining the original vision of the project may be complicated when multiple contributors are involved .

The Taunting feature in Rodent IV's UCI configuration enhances player interaction by adding a humorous and engaging human-like element to the game. When enabled, the engine can provide verbal cues through the GUI that range from motivational gibberish to gloating over captured pieces, and suggesting resignation after a blunder. This interaction enriches the overall gaming experience by adding a layer of entertainment and psychological engagement, making the game more enjoyable and memorable .

Implementing the space evaluation feature in chess engines like Rodent IV may lead to challenges such as inflated valuation of positions that may not necessarily translate to practical advantages, potentially causing the engine to overestimate its position. Such inflation requires careful tuning to ensure realistic assessments. Addressing this involves integrating counterbalancing mechanisms that recalibrate evaluations over time and incorporate additional metrics, such as piece activity or threat assessment, to mitigate any overly ambitious scores that space control alone might suggest .

In the Morphy personality of Rodent IV, balancing mobility and king attack is significant as it directly aligns with the historical playing style of Paul Morphy, known for his focus on positional mobility leading to tactical opportunities. This personality prioritizes open positions and dynamic piece activity, which are essential to capitalizing on king vulnerability. By emphasizing these elements, the Morphy personality can successfully mimic aggressive and strategic chess play that leverages open lines and active piece coordination, thus providing an authentic and challenging simulation of the historical chess grandmaster's games .

Rodent IV's piece/square table evaluation system allows the engine to adapt its playing style dynamically. By employing two sets of piece/square tables and adjusting weights at runtime based on which set delivers better scores, the engine modulates its style as it plays. This adaptability means Rodent IV can execute a variety of strategies depending on the evolving state of the game, enhancing both the versatility and realism of the engine's play .

You might also like