I’m writing my own chess engine where I’ll be implementing something called a tapered eval which is one that evaluates the position with an endgame specific evaluation function and a middle game specific evaluation function. Then it will interpolate between these two depending on the amount of material on the board.

I don’t know if this is the right forum, but I thought since it is not related to programming itself and more related to actually playing the game, I would ask chess players themselves.

My question is then: If the value of a pawn is set to ~100 (centi-pawns, or hundredths of a pawn) in the middle game and opening, what should it be in the endgame? I would think that it needs to be higher because they are more important in the endgame, and thus being one pawn up should create a bigger imbalance. I know that this value changes dynamically depending on promotion ability, but what would you think a general value should be?

Any input is much appreciated!


I've tried programming with the relative values of pieces changing with relation to material. I've found that a maximum value of 110 centipawns*, without bonuses, was a fair value. (FYI, the knight's value decreases as material is reduced, so this dynamic adjustment of value decreases for the knight.)

A square value, where the pawn gets a bonus the farther advanced pawn is worth more, is useful for both promotion and attacking values. (The promotion square has a value of 800, so there's huge gain to get to the eighth rank.) The gives the engine an incentive to aim for a promotion and encourages aggressive pawn moves in front of the opponent's king. However, another function is written to prevent a general weakening in front of our king.

Good luck in programming your engine.

-To fine tune the program, I set the normal value of a pawn to 2000. The highest value was a little over 2200, so I adjusted to the normal 100 value used in most programs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.