Inscription
Mode de passe perdu ?

Aide : Ecrire une variante

Normes de création des variantes au format PDF
Vous trouverez ici le fichier définissant les normes pour créer une variante : normes-v2.pdf
Présentation générale : les fichier XML

Ce qui est appelé une variante dans diplomatie-online est constitué de plusieurs éléments :

  • la carte : définit le plateau de jeu, avec les régions, les emplacements des unités et centres, et toutes les frontières
  • les configurations : plusieurs configurations peuvent être associées à une carte. Une configuration définit la façon de jouer sur une carte, notamment : les emplacements de départs, les belligérants (avec d'éventuelles alliances) ainsi que les types d'unités mobilisables sur chaque centre

Chacun de ces éléments est représenté par un fichier XML, que cette page va décrire. Le format XML à écrire est relativement simple, et permet malgré tout de définir tout type de carte.

Présentation générale : les images

Pour une variante, il est également nécessaire d'avoir un certain nombre d'images :

  • la carte : une image est nécessaire pour naturellement afficher la carte. Nous avons établi certaines conventions à respecter, notamment pour le choix des couleurs
  • les unités : il est nécessaire d'avoir une image pour les armées, et une image pour les flottes (le coloriage en fonction de la nationalité est dynamique, mais nous y reviendrons plus tard). Là encore, certaines contraintes doivent être respectées
  • les drapeaux : chaque nationalité représentée dans la variante doit avoir un drapeau, qui sera affiché sur le site. Ici aussi, les images doivent respecter certaines contraintes.
La carte : fichier XML

Afin d'expliquer comment écrire un fichier XML pour représenter une carte, nous allons nous baser sur l'exemple ci-dessous, qui est relativement simple mais permettra de montrer toutes les possibilités du fichier XML :


Informations sur la carte
La carte doit être décrite, pour lui donner un nom, et une description. Ceci se fait simplement par le bout XML suivant:

<info>
  <name>La mare aux canards</name>
  <id>3</id>
  <description>Une nouvelle variante en construction</description>
  <type>0</type>
</info>

L'élément info regroupe tout ce qui concerne les informations à mettre sur la carte : le nom, la description, ainsi qu'un identifiant. Le nom et la description sont définis librement. En revanche, l'identifiant sera défini par la personne de diplomatie-online qui validera et intègrera la variante au site.

Définir une région
Une région est constituée des informations suivantes : un identifiant, un type, un type de terrain, des coordonnées pour les unités, éventuellement des coordonnées pour le centre.
Prenons comme exemple la définition de la région GAS, qui n'a pas de centre, ni précision de côte :

<region>
  <id>GAS</id>
  <type>C</type>
  <terrain></terrain>
  <prec></prec>
  <x>131</x>
  <y>592</y>
  <cx></cx>
  <cy></cy>
</region>

L'élement region définit toutes les propriétés d'une region en particulier :

  • id : il s'agit de l'identifiant de la région, sur 3 caracètres en majuscules pour une région normale, sur 4 caractères en majuscule sauf le 1er pour une région de côte. Chaque région définie doit être unique
  • type : définit le type de région. Les valeurs possibles sont : C pour côtière, M pour maritime, T pour terrestre, K pour multi-côtes
  • terrain : définit le type de terrain de cette région. Laisser vide si le terrain n'a rien de particulier. Les valeurs possibles sont : M pour marécage, F pour forêt.
  • prec : non utilisé, laisser vide
  • x, y : coordonnées x et y où seront placées les unités sur cette région
  • cx, cy : coordonnées x et y où sera placé le centre sur cette région. Laisser vide si la région n'a pas de centre.

Prenons maintenant le cas de ESP qui est une région multi-côtes. Pour ces régions particulières, il faut définir en fait 3 régions distinctes : ESP (région pour les armées), sESP (région pour les flottes sur la côte sud), nESP (région pour les flottes sur la côte nord). Il faut noter que le premier caractère ("s" ou "n" ici) est libre, et pourrait tout à fait être : "e" pour est, "o" pour ouest, "u" pour sous-terrain, "c" pour ciel, ... Ce qui est important, c'est que toutes les "sous-régions" d'une même région aient exactement les mêmes 3 caractères en majuscule (ESP dans notre exemple). Exemple de définition des 3 régions :

<region>
  <id>ESP</id><type>K</type><terrain></terrain><prec></prec><x>3</x><y>3</y><cx>23</cx><cy>23</cy>
</region>
<region>
  <id>sESP</id><type>C</type><terrain></terrain><prec></prec><x>4</x><y>4</y><cx></cx><cy></cy>
</region>
<region>
  <id>nESP</id><type>C</type><terrain></terrain><prec></prec><x>5</x><y>5</y><cx></cx><cy></cy>
</region>

Il faut noter que dans ce cas-là, seul ESP est de type K (multi-cotes) et contient les coordonnées du centre.

Définir des frontières
Une frontière définit en fait un accès d'une région à une autre, pour un certain type d'unité et un certain type d'ordre. Comme une frontière n'est pas nécessairement bijective, les frontières sont définies au sein de l'élément region, et indiquent pour une région quelles sont les régions accessibles. Il est possible de regrouper les régions atteignables par type d'accès. Un accès est constitué de :

  • une liste de régions : liste de noms de régions (identifiants) séparés par des virgules qui sont accessibles
  • une liste de types d'unités : liste de types d'unités ("A" pour armée, "F" pour flotte) séparés par des virgules, qui indiquent les types d'unités autorisés à utiliser cet accès
  • une liste d'ordres : liste des ordres ("-" pour attaque, "S" pour soutien, "C" pour convoi) qui indique les ordres autorisés sur cet accès

Maintenant prenons un premier exemple simple : déclarer les frontières de PAR. Toutes les régions accessibles depuis PAR ne le sont que pour des armées, et pour tout type d'ordre excepté convoi (ce qui n'est de toute façon pas possible car PAR est forcément occupé par une armée). Cela donnerait en XML:

<access>
  <regions>PIC,BRE,BOU,GAS</regions>
  <unit>A</unit>
  <order>S,-</order>
</access>

On peut définir toutes les frontières d'un coup, car elles ont toutes les mêmes contraintes : accessibles uniquement aux armées, pour les ordres S et -.
Prenons maintenant le cas de GAS. Une armée en GAS peut aller en ESP, mais une flotte en GAS ne peut aller qu'en nESP. De même, une armée pourra atteindre les régions intérieures, contrairement aux flottes. Par contre, une armée ou une flotte sont autorisées à soutenir une unité se trouvant en ESP, sESP ou nESP. Cela donnerait en XML :

<access>
  <regions>ATL,nESP</regions>
  <unit>F</unit>
  <order>S,C,-</order>
</access>
<access>
  <regions>BRE</regions>
  <unit>A,F</unit>
  <order>S,-</order>
</access>
<access>
  <regions>PAR,TOU,BOU,ESP</regions>
  <unit>A</unit>
  <order>S,C,-</order>
</access>
<access>
  <regions>ESP,nESP,sESP</regions>
  <unit>A,F</unit>
  <order>S</order>
</access>

Il faut rappeler que tous ces access sont définis au niveau de la région GAS et ne s'appliquent donc qu'à cette région. Cela signifie qu'une région définie ici ne concerne que les mouvements partant de GAS. Pour les mouvements vers GAS, tout est défini dans chacune des régions frontalières.

Exemple complet
Pour un exemple complet, voici le fichier correspondant à la déclaration complète de la carte classique :
    -- Télécharger le fichier

La charte graphique des cartes

Pour définir une nouvelle carte, vous devrez respecter certaines règles très précises.


Concernant la carte

  • être au format png (format libre)
  • avoir une largeur inférieure à 800 pixels et une hauteur inférieure à 700 pixels
  • ne pas avoir de transparence
  • si possible ne pas dépasser 50 ko (100 ko extrême limite)

Concernant les régions et les centres de la carte

  • Une région ne devra pas être inférieure à 15*15 pixels. Le nombre de petites régions doit rester très faible!
  • Le nom des régions doit être écrit avec la police "Arial Narrow" taille 8 (pour les petites régions), 11 (pour les autres régions) en caractères majuscules et gras.
  • Vous devez positionner les centres sur la carte et ils doivent avoir cet aspect : avec les mêmes dimensions (strictement)
  • Les frontières séparant les régions doivent être de 2 pixels noires et 1 pixel entre les mers ou entre 2 régions appartenant au même pays.

Les couleurs
  Diplomatie classique Diplomatie emperium
Les mers #72BDF7 #72BDF7
Les zones inaccessibles #82817C #5C5C5C
Les forêts X #8CC0A8
Les marécages X #BBBBA7
Les plaines ou terres neutres : #F0F2EB #F3F3CF
Les plaines ou terres d'un pays
(choisir 1 couleur par pays):
Les couleurs doivent rester dans les tons pastel, assez proche de la couleur de la nationalité

Retour au sommaire
Pour nous contacter
Zoboton / Speanuts