Description of e-mail format of Diplomacy electronic Judges



Version 0.1-0.5 Christophe Courtois - September 2003



Introduction

This document describes the output format of the njudge Diplomacy adjudicator.

WARNING : This is work in progress; please report any mistake, incoherence, gap...
Variants, and especially Macchivelli, may not be well described here.



  1. Goals and conventions

  1. Describe the current e-mail format to make compatibility between the judge and the tools which use its output easier.

  2. Help the next versions of the judge to be fully compatible with the previous versions (compatibility mode).

  3. Describe the enhancements to this format in the new versions of njudge or other judges.

If not specified otherwise, all information there is given for all judges and must be accepted by all clients.



  1. Existing e-mail types

The following e-mails can be sent by the judge. Not everything is covered in this document. If an e-mail type is not listed here, or not described, or not precisely enough, and a some tool depend on it, please tell me ([email protected]).



  1. General rules of all e-mails from the judge

Parts of the e-mail to use

Technical headers of the e-mail must NOT be used for processing.

Attachments must not be used for e-mails sent to players.

Only following parts have some meaning and may contain information for the judge:

Charset

The e-mail informations are pure text.

Some judges may sent the e-mails with a defined charset (usually ISO-8859-1 or ISO8859-2) to preserve national characters in the player's messages, the header and the footer, but the judge itself writes pure ASCII English.

(ISO-8859-15 would be possible for Western Europe, but some obsolete software would default to ASCII instead of ISO-8859-1, so it's not used.).

Subject

The subject of the e-mail has often changed in recent njudges. It must not be taken into account by the judge, and is only for human use.

Judge header

At the judge keeper's discretion, the judge may add a header at the beginning of the e-mail, whose text and size is totally free. It can potentially contain some informations which could fool parsers...

Judge footer

The judge may add a footer at the end of the e-mail, with the same provisions as the header.



  1. Judge and game identification (message header)

    This part is present in many e-mails (in fact, most that mapping tools need).

    This part is managed by the msg_header function in mail.c in the njudge code.



Examples :

:: Judge: FROG Game: S1b6p2 Variant: Standard Gunboat
:: Deadline: S1901M Thu Jan 01 1970 01:00:00 +0100 

:: Judge: FROG Game: S3b7p1 Variant: Standard Gunboat
:: Deadline: F1906B Thu Sep 04 2003 23:30:00 +0200 
:: Map: http://frog.born2play.org/~observer/cartes.php3?Partie=s3b7p1

:: Judge: ALEX Game: Test Variant: Standard
:: Deadline: S1901M Fri May 09 2003 23:30:00 +0200 



  1. Power is selected



This is the e-mail that a player receives when he successfully subscribed to a game. Parts are:

Example (header and footer suppressed) :

:: Judge: FROG Game: S1b6p2 Variant: Standard Gunboat
:: Deadline: S1901M Thu Jan 01 1970 01:00:00 +0100 

You've been selected to play a power in game 's1b6p2'.
You'll be notified when 6 more players sign on.
Game 's1b6p2' now has 1 player.

Preference list 'FTGIEA' set.



  1. Game starts

This is the e-mail that all players receive when enough players have subscribed, and the judge or the master starts the game.

The parts are:

Example :

:: Judge: FROG Game: Azur Variant: Standard Gunboat

:: Deadline: S1901M Tue Dec 11 2001 23:30:00 +0100



You have been selected as Master in game 'azur' of Diplomacy.



The following players are in this game:

Master: [email protected]

Austria: [email protected]

England: [email protected]

France: [email protected]

Germany: [email protected]

Italy: [email protected]

Russia: [email protected]

Turkey: [email protected]

Observer: [email protected]

Observer: [email protected]

Observer: [email protected]

Observer: [email protected]

Observer: [email protected]

Observer: [email protected]

Observer: [email protected]

Observer: [email protected]

Observer: [email protected]



Starting position for Spring of 1901.



Austria: Army Vienna.

Austria: Army Budapest.

Austria: Fleet Trieste.



England: Fleet London.

England: Fleet Edinburgh.

England: Army Liverpool.



France: Army Paris.

France: Army Marseilles.

France: Fleet Brest.



Germany: Army Berlin.

Germany: Army Munich.

Germany: Fleet Kiel.



Italy: Army Rome.

Italy: Army Venice.

Italy: Fleet Naples.



Russia: Army Moscow.

Russia: Army Warsaw.

Russia: Fleet St Petersburg (south coast).

Russia: Fleet Sevastopol.



Turkey: Army Constantinople.

Turkey: Army Smyrna.

Turkey: Fleet Ankara.





The deadline for the first movement orders is Tue Dec 11 2001 23:30:00 +0100.



  1. Movement results

This can be rather complicated. The different parts are:



Movement turns



Examples for a turn with dislodged armies:



:: Judge: FROG  Game: S1b6p2  Variant: Standard Gunboat

:: Deadline: F1920M Mon Oct 28 2002 23:30:00 +0100  

:: Map: http://frog.born2play.org/~observer/cartes.php3?Partie=s1b6p2



Movement results for Fall of 1920.  (s1b6p2.086)



Austria: Army Armenia -> Smyrna.

Austria: Army Bohemia -> Silesia.  (*bounce, dislodged*)

Austria: Army Tyrolia -> Piedmont.  (*bounce*)

Austria: Fleet Ionian Sea SUPPORT French Fleet Tunis.  (*cut, dislodged*)

Austria: Fleet Smyrna -> Aegean Sea.

Austria: Army Ukraine SUPPORT Army Galicia -> Warsaw.

Austria: Army Sevastopol SUPPORT English Army Moscow.

Austria: Army Galicia -> Warsaw.

Austria: Fleet Albania SUPPORT Fleet Trieste -> Adriatic Sea.

Austria: Fleet Trieste -> Adriatic Sea.



England: Army Moscow SUPPORT Austrian Army Ukraine -> Warsaw.  (*void*)



France: Fleet Norway SUPPORT German Fleet St Petersburg (north coast).

France: Fleet Portugal -> Spain (south coast).

France: Army Burgundy SUPPORT German Army Munich.

France: Fleet Tunis SUPPORT Fleet Naples -> Ionian Sea.

France: Fleet North Atlantic Ocean -> Liverpool.

France: Fleet Adriatic Sea -> Trieste.  (*bounce, dislodged*)

France: Fleet Western Mediterranean -> Tyrrhenian Sea.

France: Army Gascony -> Brest.

France: Fleet Naples -> Ionian Sea.

France: Fleet Mid-Atlantic Ocean -> English Channel.

France: Army Marseilles -> Piedmont.  (*bounce*)



Germany: Army Kiel SUPPORT Army Munich.

Germany: Fleet North Sea -> Denmark.

Germany: Fleet St Petersburg (north coast) CONVOY Austrian Army Tyrolia -> Switzerland.

Germany: Fleet Edinburgh -> Yorkshire.

Germany: Army Belgium -> Ruhr.

Germany: Army Livonia SUPPORT Army Warsaw -> Moscow.

Germany: Army Warsaw -> Moscow.  (*bounce, dislodged*)

Germany: Army Silesia -> Bohemia.

Germany: Army Munich SUPPORT Army Silesia -> Bohemia.

Germany: Fleet English Channel -> North Sea.

Germany: Army Sweden -> Finland.





The following units were dislodged:



The Austrian Army in Bohemia can retreat to Galicia or Vienna.

The Austrian Fleet in the Ionian Sea can retreat to Apulia or Greece or

Eastern Mediterranean.

The French Fleet in the Adriatic Sea can retreat to Apulia or Venice.

The German Army in Warsaw can retreat to Silesia or Prussia.



The next phase of 's1b6p2' will be Retreats for Fall of 1920.

The deadline for orders will be Wed Oct 30 2002 23:30:00 +0100.



Example with convoys:



:: Judge: FROG  Game: S1b6p2  Variant: Standard Gunboat

:: Deadline: F1903M Mon Feb 25 2002 23:30:00 +0100  

:: Map: http://frog.born2play.org/~observer/cartes.php3?Partie=s1b6p2



Movement results for Fall of 1903.  (s1b6p2.010)



Austria: Army Bulgaria SUPPORT Army Galicia -> Rumania.  (*cut*)

Austria: Army Serbia SUPPORT Army Bulgaria.

Austria: Fleet Greece SUPPORT Army Bulgaria.

Austria: Army Galicia -> Rumania.  (*bounce*)

Austria: Army Budapest SUPPORT Army Galicia -> Rumania.



England: Army Norway SUPPORT Russian Army Livonia -> St Petersburg.  (*void*)

England: Fleet Sweden -> Denmark.

England: Fleet London -> North Sea.  (*bounce*)

England: Fleet English Channel CONVOY French Army Gascony -> Switzerland.  (*dislodged*)



France: Army Gascony -> Burgundy.  (*bounce*)

France: Army Burgundy -> Picardy.  (*bounce, dislodged*)

France: Fleet Liverpool CONVOY German Army Holland -> London.

France: Fleet Mid-Atlantic Ocean SUPPORT Fleet Brest -> English Channel.

France: Fleet Brest -> English Channel.



Germany: Army Holland -> Ruhr.

Germany: Army Belgium -> Picardy.  (*bounce*)

Germany: Fleet Denmark -> Baltic Sea.

Germany: Fleet Helgoland Bight -> North Sea.  (*bounce*)

Germany: Army Munich SUPPORT Army Ruhr -> Burgundy.

Germany: Army Ruhr -> Burgundy.



Italy: Army Syria -> Smyrna.  (*bounce*)

Italy: Army Venice HOLD.

Italy: Fleet Eastern Mediterranean SUPPORT Fleet Ionian Sea -> Aegean Sea.

Italy: Fleet Ionian Sea -> Aegean Sea.



Russia: Army Livonia -> Prussia.

Russia: Army Rumania SUPPORT Turkish Army Constantinople -> Bulgaria.  (*cut*)

Russia: Fleet Sevastopol SUPPORT Army Rumania.

Russia: Fleet Gulf of Bothnia -> St Petersburg (south coast).

Russia: Army Warsaw -> Silesia.



Turkey: Army Constantinople -> Bulgaria.  (*bounce*)

Turkey: Army Smyrna -> Syria.  (*bounce*)

Turkey: Fleet Black Sea SUPPORT Army Constantinople -> Bulgaria.

Turkey: Fleet Aegean Sea -> Eastern Mediterranean.  (*bounce, dislodged*)





The following units were dislodged:



The English Fleet in the English Channel can retreat to Irish Sea or Wales.

The French Army in Burgundy can retreat to Marseilles or Paris.

The Turkish Fleet in the Aegean Sea with no valid retreats was destroyed.



The next phase of 's1b6p2' will be Retreats for Fall of 1903.

The deadline for orders will be Tue Feb 26 2002 23:30:00 +0100.







  1. Open points

  1. Ideas and suggestions for the future



  1. Boring stuff

This document was made by Christophe Courtois and is part of the njudge program.

Verbatim and explicitly enhanced versions can be freely redistributed.