Le guide du commandant

Cartes personnalisées et mods

Jouez sur vos propres cartes, partagez-les en hébergeant, changez les règles : le format .petalmap, chaque champ, ses vérifications et un exemple.

Parcourir le guide

Depuis Petalwar 0.5.29, vous pouvez jouer sur des cartes que vous créez vous-même et sur celles que d’autres joueurs vous donnent. Quand vous hébergez une partie sur l’une d’elles, le jeu envoie la carte à tous ceux qui vous rejoignent. Une carte peut aussi modifier quelques règles du jeu : la vitesse de construction, vos revenus, le coût des unités et ce avec quoi vous commencez. C’est le premier pas vers les mods. Depuis la 0.5.30, le jeu propose aussi un éditeur de cartes, des cartes aléatoires et les cartes de la communauté, et les cartes personnalisées fonctionnent dans tous les aspects d’une partie : le Change map du lobby, les replays et les parties mises en pause et conservées.

Une carte personnalisée est un petit fichier texte dont le nom se termine par .petalmap. Il ne contient ni niveau ni graphismes, seulement une description : où se trouvent les bases, où coule la rivière, où sont les lacs, les mesas, les îles et les ponts de pierre, où se trouvent les gisements de cristal supplémentaires et par où passent les routes. Au lancement de la partie, le jeu en tire le sol, les forêts, les rochers et les ponts, selon les mêmes règles que pour ses propres cartes. Une carte intégrée exportée dans un fichier se joue exactement comme l’originale.

Jouer sur une carte personnalisée

  1. Ouvrez Skirmish, ou Multiplayer puis Host game.
  2. Faites défiler au-delà des cartes intégrées jusqu’à l’en-tête Custom maps.
  3. Choisissez une carte et lancez la partie comme d’habitude.

Deux cartes d’exemple sont fournies avec le jeu : Foxtail Fork, écrite à la main, qui modifie aussi les cinq règles, et Sedgewater Narrows, la carte intégrée exportée dans un fichier.

Vos propres cartes vont dans votre dossier de cartes. Open folder, sous l’en-tête Custom maps, l’ouvre. Placez-y des fichiers .petalmap et appuyez sur Rescan. Le jeu crée le dossier la première fois que vous ouvrez cette page.

Où se trouve votre dossier de cartes
JeuDossier de cartes
Mac, depuis l’image disque~/Library/Application Support/Epic/Petalwar/Saved/Maps
Mac, un build zip de l’équipe~/Library/Containers/com.petalwar.game/Data/Library/Application Support/Epic/Petalwar/Saved/Maps
Windows, à partir de son prochain build%LOCALAPPDATA%\Petalwar\Saved\Maps

Une carte qui contient une erreur reçoit une fiche rouge qui indique ce qui ne va pas et où (voir Vérifications et limites). Certaines choses fonctionnent autrement sur une carte personnalisée :

Y jouer entre amis

Vous n’avez besoin d’envoyer le fichier à personne. Quand un ami rejoint votre lobby, son jeu demande la carte au vôtre, et le vôtre la lui envoie par la connexion de la partie elle-même. Cela fonctionne sur votre réseau domestique et via petalwar.com quand vous jouez avec un code de partie. Son jeu vérifie qu’il a bien reçu exactement votre fichier, puis construit le terrain. L’envoi d’une carte prend environ une seconde.

Créer votre propre carte

Le plus simple est d’utiliser l’éditeur de cartes de ce site : dessinez la carte, corrigez ce que ses vérifications signalent et téléchargez le fichier dans votre dossier de cartes. Il part d’une prairie vierge, de l’un ou l’autre des exemples, de n’importe quelle carte de la communauté ou d’une disposition aléatoire, et il ouvre n’importe quel .petalmap que vous possédez. Pour écrire plutôt une carte à la main, copiez un exemple et modifiez-le :

  1. Ouvrez votre dossier de cartes avec Open folder.
  2. Copiez-y FoxtailFork.petalmap depuis les exemples du jeu. Sur Mac, ils se trouvent dans Petalwar.app/Contents/UE/Petalwar/Content/CustomMaps (clic droit sur l’app, puis Afficher le contenu du paquet), et sur Windows dans Petalwar\Content\CustomMaps, à côté du jeu.
  3. Renommez votre copie, ouvrez-la dans n’importe quel éditeur de texte brut (TextEdit en mode texte brut, Bloc-notes, VS Code) et changez son "title".
  4. Modifiez-la, enregistrez-la et appuyez sur Rescan dans le jeu.
  5. Cliquez sur sa fiche. Le jeu teste aussitôt la carte, et la fiche devient rouge si elle ne se joue pas.

Un fichier de carte est du JSON strict. Mettez le texte entre "guillemets doubles droits" et séparez les éléments par des virgules, sans virgule après le dernier. Les commentaires ne sont pas autorisés, les décimales s’écrivent avec un point (1.5, jamais 1,5), et le fichier doit être enregistré en UTF-8.

La disposition. Chaque carte est un carré de 8 km de côté. Les distances sont en mètres, et les positions sont des paires [x, y], avec [0, 0] au centre. Vu dans le jeu avec le nord en haut (la minicarte, la caméra d’une position de départ tournée vers le nord, les cartes peintes), +x est à gauche et −x à droite. Ce guide appelle la gauche l’ouest et la droite l’est, comme sur toute carte : x va de +4000 au bord ouest (à gauche) à −4000 au bord est (à droite), et y de −4000 au bord sud (en bas) à +4000 au bord nord (en haut). Le sol s’élève en falaises près des bords, si bien que rien ne se trouve au-delà de 3450 m à l’ouest ou à l’est, ni au-delà de 3675 m au nord ou au sud.

Les nombres d’un fichier et les règles du jeu sont les mêmes que dans Petalwar 0.5.29 ; seuls les noms ont changé (le guide de la 0.5.29 appelait +x l’est). L’éditeur de cartes dessine la carte telle que le jeu l’affiche.

Ce que chaque carte reçoit de toute façon. À chaque place, le jeu pose le Heartbloom et ses cinq pétales, les bâtiments et l’armée de départ, six gisements de cristal et un petit réseau de routes, le tout tourné selon le facing de la place. Autour de chaque base, il aplanit une prairie de 360 m. Il ajoute aussi des forêts (tenues à l’écart des routes, des gisements, des rampes, de l’eau et des prairies), des rochers sur les rives, des fleurs, des bornes et des caches de ravitaillement. Le niveau de l’eau est à −8 m.

Tous les champs

Seuls petalmap, title et seats sont obligatoires. Tout champ que le jeu ne connaît pas est une erreur, si bien qu’un nom mal orthographié est détecté au lieu d’être ignoré en silence.

Les champs de premier niveau d’un fichier .petalmap
ChampCe que c’est
petalmapLa version du format : toujours 1.
titleLe nom affiché dans les menus, le lobby et la minicarte, de 1 à 60 caractères. author (60 au plus) et description (400 au plus) sont facultatifs.
scenery"pine" (bois de pins et de sapins, par défaut) ou "canopy" (feuillus à large couronne, avec des escarpements le long des rebords des mesas).
mirroredNoisetrue reproduit en miroir, par rapport au centre, les petites bosses de la prairie et les forêts, pour qu’une carte à deux joueurs aux places face à face soit équitable.
seatsDe 2 à 8 positions de départ, chacune avec un point base (à 3200 m au plus du centre), un facing, jusqu’à 24 deposits supplémentaires n’importe où sur la carte, et jusqu’à 12 roads de 2 à 64 points. Les bases doivent être à au moins 900 m les unes des autres. Les routes sont des chemins de terre peints qui tiennent les arbres à l’écart ; les unités trouvent toujours leur chemin elles-mêmes.
riverUne rivière qui traverse la carte, avec des ponts. {} donne la rivière par défaut : du nord au sud, sinueuse, trois ponts. Ses champs sont axis ("north-south" ou "east-west"), les méandres amp1, period1, amp2 et period2, la demi-largeur width, widthAmp et widthPeriod, et crossings (les positions des ponts le long de la rivière ; [] signifie aucun). bridgeLengthScale allonge les ponts pour une rivière large. Un pont se trouve toujours en travers de la ligne médiane de la carte (centré sur y = 0 pour une rivière est-ouest, sur x = 0 pour une rivière nord-sud) et mesure 210 m à l’échelle 1 : placez donc chaque passage là où la rivière croise cette ligne, sur un tronçon étroit. À un multiple de period1 et de period2, elle revient sur la ligne, et à un multiple de widthPeriod, elle est à son plus étroit. Un pont qui se termine dans l’eau est refusé, avec la longueur qu’il lui faudrait.
lakeUn lac : center, radius (de 50 à 3000 m), irregularity (0 rond, 1 baies et promontoires) et shorePhase.
tributariesJusqu’à 12 canaux au niveau de l’eau de la rivière, chacun défini par une line de points et une halfWidth. Pratique pour une anse où placer un Naval yard, ou pour des douves.
outcropsJusqu’à 40 mesas au sommet plat sur lequel on peut construire : center, les rayons rx et ry, height (de 2 à 120 m) et le côté de la rampe, ramp. La falaise bloque les véhicules, et une seule rampe de 160 m y monte, avec une pente d’au plus 1 sur 4. Laissez le terrain dégagé à son pied.
islandsJusqu’à 12 îles (center, rx, ry, phase). Une seule île transforme le reste de la carte en mer, si bien que chaque base et chaque gisement doivent se trouver sur une île.
stoneSpansJusqu’à 12 hauts viaducs de pierre de a à b, de 60 à 6000 m de long, avec une largeur width et une hauteur de tablier height. Les navires passent sous les arches. Placez les deux extrémités bien à l’intérieur de sommets de mesas exactement aussi hauts que le tablier, sinon les véhicules ne pourront ni y monter ni en descendre.
rulesLa partie mod : voir Modifier les règles.

Une valeur hors limites est refusée avec la plage dans laquelle elle doit se trouver, si bien que le message d’erreur vous apprend les limites au fur et à mesure.

Modifier les règles (mods)

Ajoutez un objet rules pour que la partie se joue autrement. Chaque multiplicateur va de 0.25 à 4, et 1 ne change rien. Les règles sont les mêmes pour tous les joueurs et pour l’IA intégrée.

Les règles qu’une carte peut modifier
RègleCe qu’elle modifie
buildTempoLa vitesse de la construction, des améliorations, des missiles et des chaînes de production des usines. À 2, tout prend deux fois moins de temps.
economyTempoTous les revenus : extracteurs, générateurs, convertisseurs.
unitCostLe prix en matière et en énergie de chaque unité, pas celui des bâtiments ni les temps de construction.
startingMatterLa matière avec laquelle vous commencez (900 normalement) et le stockage de votre base avant que vous n’en construisiez davantage (1 000 normalement).
startingEnergyL’énergie avec laquelle vous commencez (2 400 normalement) et le stockage de votre base avant que vous n’en construisiez davantage (3 000 normalement).

La fiche de la carte et le lobby indiquent ce que ses règles modifient. Pour jouer une carte intégrée avec d’autres règles, partez de son fichier exporté (Sedgewater Narrows est fournie avec le jeu) et ajoutez un bloc rules. Petalwar 0.5.30 en ajoute sept autres : unitHealth, unitDamage, unitSpeed, unitRange, structureCost, structureBuildTime et structureHealth, chacune de 0.25 à 4 elle aussi. L’éditeur de cartes les connaît ; Petalwar 0.5.29 refuse un fichier qui les utilise, alors laissez-les de côté dans une carte destinée à la 0.5.29.

Vérifications et limites

Quand le jeu parcourt votre dossier de cartes, il lit chaque fichier et signale la première erreur avec sa ligne et sa colonne, par exemple a comma before } (trailing commas are not allowed) (line 12, column 3), ou seats[0].bsae is not a field of seats[0] (spelling? the fields are: base, facing, deposits, roads).

Quand vous cliquez sur une fiche, le jeu applique ses règles à la carte, ce qui prend environ une demi-seconde. Chaque pont doit atteindre la terre ferme à ses deux extrémités, chaque prairie autour d’une base doit être sèche, dégagée et plane, et chaque gisement supplémentaire doit se trouver sur un terrain sec et assez plat, qu’un engineer peut atteindre. Chaque base doit être accessible depuis toutes les autres, par la terre ou par l’eau. Une fiche en échec affiche « Does not play: » suivi de la raison. Le jeu retient le résultat de chaque fichier, si bien qu’un fichier inchangé n’est pas testé deux fois.

Un invité ne fait que lire la carte qu’un hôte lui envoie. Un fichier corrompu ou délibérément malveillant est refusé avec un message, et il ne peut pas faire planter son jeu.

Limites d’une carte personnalisée
QuoiLimite
Taille du fichier256 ko (les exemples font de 1,5 à 6 ko)
Places2 à 8
Gisements supplémentaires24 par place
Routes12 par place, 64 points chacune
Mesas40
Îles, affluents, viaducs de pierre12 de chaque
Multiplicateurs des règles0.25 à 4
Taille de la cartetoujours 8 km

Un exemple complet

La plus petite carte jouable, ce sont deux bases sur une prairie dégagée :

{
  "petalmap": 1,
  "title": "Open Meadow",
  "seats": [{"base": [0, -2500]}, {"base": [0, 2500], "facing": 180}]
}

Foxtail Fork, l’exemple écrit à la main, a deux bases face à face de part et d’autre d’une rivière qui coule d’est en ouest, deux ponts, une mesa sur chaque flanc, trois paires de gisements supplémentaires par camp et une partie plus rapide :

{
  "petalmap": 1,
  "title": "Foxtail Fork",
  "author": "Petalwar",
  "scenery": "pine",
  "mirroredNoise": true,
  "seats": [
    {"base": [0, -2600], "facing": 0,
     "deposits": [[-1500, -1700], [-1424, -1700], [1500, -1700], [1424, -1700], [0, -1250], [-2600, -2300]],
     "roads": [[[0, -2600], [0, -1900], [-900, -1000], [-900, 0]],
               [[0, -2600], [0, -1900], [900, -1000], [900, 0]],
               [[0, -2600], [-1500, -2350], [-2600, -2300]]]},
    {"base": [0, 2600], "facing": 180,
     "deposits": [[1500, 1700], [1424, 1700], [-1500, 1700], [-1424, 1700], [0, 1250], [2600, 2300]],
     "roads": [[[0, 2600], [0, 1900], [900, 1000], [900, 0]],
               [[0, 2600], [0, 1900], [-900, 1000], [-900, 0]],
               [[0, 2600], [1500, 2350], [2600, 2300]]]}
  ],
  "river": {"axis": "east-west", "amp1": 200, "period1": 900, "amp2": 30, "period2": 300,
            "width": 70, "widthAmp": 90, "widthPeriod": 900,
            "crossings": [-900, 900], "bridgeLengthScale": 1.25},
  "outcrops": [
    {"center": [-2500, -900], "rx": 420, "ry": 300, "height": 52, "ramp": 90},
    {"center": [2500, 900], "rx": 420, "ry": 300, "height": 52, "ramp": 270}
  ],
  "rules": {"buildTempo": 1.5, "economyTempo": 1.25, "unitCost": 0.8,
            "startingMatter": 1.5, "startingEnergy": 1.5}
}

Ses passages à −900 et 900 tombent sur sa period1 de 900, sa period2 de 300 et sa widthPeriod de 900, si bien que les deux ponts se trouvent là où la rivière croise la ligne médiane, à son plus étroit. La deuxième place est la première tournée d’un demi-tour : chaque point changé de signe et son facing augmenté de 180. Avec "mirroredNoise": true, cela rend les deux moitiés identiques. Pour trois ou quatre joueurs, faites tourner tout le motif de chaque place autour du centre de 120° ou de 90°.

Conseils. Changez une seule chose à la fois, puis faites Rescan et cliquez sur la fiche. Donnez aux joueurs quelque chose à se disputer : des paires de gisements à mi-chemin entre les bases, une mesa près du pont central, un lac qu’une flotte peut tenir. La minicarte est dessinée à partir de votre fichier, avec l’eau, la roche, les routes et les bois, si bien qu’elle montre la disposition d’un coup d’œil.

Dans le jeu depuis la 0.5.30 : un éditeur de cartes (Custom maps, puis New map, ou Edit sur l’une de vos cartes : positions de départ, gisements, lac, rivière et ponts, mesas, îles, viaducs de pierre, routes, symétrie et règles, avec des problèmes expliqués en mots simples, Save et Test play) ; la fiche Random map (une carte équitable tirée d’une graine, pour 2 à 8 joueurs, sèche, avec une rivière, un lac ou des îles, avec Reroll et Keep) ; et Community maps (parcourir, télécharger et Share, les mêmes cartes que sur petalwar.com). Make a map in your browser ouvre l’éditeur de cartes.

Pas encore disponible : les cartes personnalisées sur iPhone et iPad.

Tous les sujets du guideGuide des bâtimentsGuide des unités

Supreme Commander et Forged Alliance sont des marques de leurs propriétaires respectifs. Petalwar est un jeu indépendant ; il n’est ni affilié à leurs créateurs ou au projet Forged Alliance Forever, ni approuvé par eux.