Danny Loeb

The Diplomacy Programming Project


In the S1995M issue of Diplomatic Pouch, we described the functioning of the strategy finder, that is the strategic code on which our Bordeaux Diplomat is based. This lower brain of the diplomat does all the calculations and thus forms the basis for the decisions taken by the upper brain, or negotiator part of the diplomat.

The negotiator does not know the details of the map, nor the rules of the game. On the other hand, it must be able to communicate with the other players, distinguish between friends and enemies, form alliances, and so on. To make decisions, the negotiators poses concrete questions to the strategic core, and following the answers to these questions, it choses the appropriate moves to submit, or messages to send out.

The strategic core does not know what country the diplomat is playing. It is simply a disinterested, objective observes who calculates the best moves countries given a certain number of constraints along with the value of the resulting position of all countries.

The negotiator determines these diplomatic constraints in two ways:

In this article, we will discuss the observation module which is responsable for this second task. This module has been partially implemented thanks to Arnaud Moulard and Christophe Moustier.

The program was written in LCS (a version of SML developped in Toulouse for parallel processing). It takes as input the adjudicated moves from a single season, and a friendliness matrix. The program output a revised friendliness matrix. This 7 by 7 matrix of real numbers indicates the love/hate relationship between each pair of players. Positive values indicate friendliness and negative values indicate animosity.

It is to be noted that "trustworthiness" is tracked with an independant data structure called StabLimit. StabLimit is the observed minimum gain required for a country to violate its agreements. For example, in the game DipPouch, England stabbed France by opening to the English Channel. If the diplomat judged that such a move gained little for England, then he would be given a low StabLimit. Thus, even if England finally did make peace with France, the program would continue to anticipate that a stab would be made under similar circumstances.

The following factors are used to update the Friendliness Matrix. (Factors not yet implemented are in paratheses.)

We thus calculate the friendliness matrix. We use so many different critirea so that it is as difficult as possible to fake true friendship or true war. Alliance thresholds are determined from this friendliness matrix in order to divide the seven countries into about 4 "blocs" or "alliances". These blocs are used as parameters of the strategy finder in its calculations.

The rules allow 15 minutes for negotiation after a movement phase. Our observation module requires about 15 seconds to calculate the new matrix leaving the bulk of the available time to negotiate and calculate new orders.

Danny Loeb
Universite de Bordeaux I

If you wish to e-mail feedback on this article to the author, and clicking on the mail address above does not work for you, feel free to use the "Dear DP..." mail interface, which is located here....