From Chessprogramming wiki
Revision as of 22:23, 27 June 2021 by GerdIsenberg (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Home * Engines * Rival

The Rivals [1]

Rival, (Rival Chess, NewRival)
a chess engine by Chris Moreton and Russell Newman, written in C++, starting in 1992 as MS-DOS program with an own GUI, before being rewritten for Windows as WinBoard compatible engine (NewRival) a couple of years later [2]. The UCI protocol was implemented in 2006 as Rival UCI 1.18 for Windows, while the current Rival engine was ported to Java as used in the Android application. DOS and Windows versions are available as source code [3]. Further, Rival is able to play various chess variants like Kinglet, Losing Chess, and Shatranj [4].


Rival is described in detail on the redhotpawn sites [5]. Rival for Java uses bitboards with big-endian rank-file mapping. It determines sliding piece attacks with magic bitboards [6] [7].


Rival applies PVS negamax alpha-beta with transposition table, killer heuristic and quiescence inside an iterative deepening framework.


The evaluation function calculates scores of both sides, and returns the score difference of the side to move minus the side not on the move in negamax manner, considering pawn structure, various piece terms, and king safety. A quote from Rival's Static Board Evaluation site [8]:

The factors considered in the evaluation function have been chosen because they are relatively quick to calculate. Very few of the ideas are entirely original; many represent elementary chess knowledge and many have been used in other chess programs. Sources that have been of particular influence are Slate & Atkin (1977) [9], Newborn (1975) [10] and Hyatt et al (1985) [11]. Some of the factors have been added to overcome certain weaknesses that the program has shown, others have been left out in the hope that the gain in search speed would outweigh the loss in evaluation quality. The work of Berliner et al (1990) [12] suggests the opposite to the last assumption. 


DOS & Windows


Rival for DOS Rival for Windows



JavaRival, UCI engine for Android [13]

Forum Posts

External Links

Chess Engine

Chess Programming

Alpha-Beta Pruning
Move Ordering
Transposition/Refutation Tables
Killer Heuristics
Minimal Window
Timing Moves
Draw Scoring
Static Board Evaluation



Up one level