[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]
Single Comment
<p><b>Matthew</b>: Good questions. Evaluation of a position considers many, many factors. The material value of the pieces is, of course, the most important. And, yes, the material values are reached by educated guesses by myself, and others of the chessvariants.org community. The piece values that ChessV uses for Ultima are those values supplied by George Duke (look at all comments on the 'Ultima' page, and you'll see the relevant discussion.) I'll now mention some other factors in the evaluation of a position.</p>
<p><i>Piece-square-tables</i>: All pieces get a bonus or penalty based on the square they occupy. Squares in the center of the board are better than squares in the corner (except, possibly, for the King.) The values I use for the piece-square-tables are derived by a number of different means depending on the pieces, the game, and how much time I want to put into the particular game. Generally, the values reward positions which (A) control more spaces, and (B) attack center squares. They penalise positions on the home rank of minor pieces which should be developed, thereby encouraging their development.</p>
<p><i>Mobility</i>: Studies on many, many grandmaster-level Chess games show that the player who is winning almost always has more legal moves at his disposal. The is because his pieces are 'more active.' So, some pieces, but not all, are given a bonus based on how mobile they are at present.</p>
<p><i>King Tropism</i>: Some pieces are given bonuses for being close to the enemy king. This is <i>obviously</i> good for the Immobilizer, but also for otheres.</p>
<p><i>Pawn Structure Evaluation</i>: Doesn't apply to Ultima, but for most games, you want to give a bonus for passed pawns, and a penalty for doubled pawns, etc.</p>
<p><i>Ultima-specific factors</i>: All pieces which are immobilized lose 25% of their material value as long as they remain immobilized. The Withdrawer is given a bonus proportional to the most valuable enemy piece that is adjacent, but only if the board has at least one square in the opposite direction for the Withdrawer to move into. The Coordinator gets a bonus proportional to the number of enemy pieces on the same rank or file as the friendly King. Chameleon has several small adjustments.</p>
<p>So, there are so many different factors taken into account that it is very unlikely that any two moves will have exactly the same evaluation. Remember that it is not just evaluating a move, it is evaluating the best sequence of move-counter-move-counter-counter-move, etc. No random number generator is used in any of the search or evaluation functions. Given the same position and the same time to think, ChessV will do the same thing every time. In the unlikely event that two moves have exactly the same evaluation (which is almost impossible because of the way Alpha-Beta pruning works) the move selected is the first move generated (which is arbitrary.)</p>
<p>Hope this helps! I can only suspect that you are under-estimating the difficulty of making an Ultima program. Just writing a good Chess program is hard enough, and this is much harder in many ways. And you are talking about using assembly language! Such a thing, I dare say, is difficult beyond description. But, I admire your courage!</p>