Analyses et humeurs sur le jeu de société

Message de service :

Découvrez les énigmes visuelles des mots sans dessous dessus : www.acariatre.net/mots-sans-dessous-dessus/.

Création de jeu

NanDeck, le logiciel pour aider les auteurs de jeu à créer leurs cartes

Depuis maintenant 6 mois, avec le compère Mathieu, nous nous sommes mis en tête de créer un jeu de société ensemble. J’aurai l’occasion de vous le présenter plus en détail prochainement mais je vais plutôt aujourd’hui vous parler d’un logiciel qui nous aura bien aidé dans notre conception : NanDeck, téléchargeable à l’adresse http://www.nand.it/nandeck/ avec son manuel d’utilisation.

N’ayez pas peur

NanDeck est un logiciel gratuit qui n’a que que pour seul et unique but de créer des cartes de jeu personnalisées. L’intérêt d’utiliser un tel logiciel plutôt que de construire manuellement les cartes sous votre logiciel de bureautique favori ? Si vous devez changer un paramètre ou un élément de la carte (sa taille ou le nombre de points de victoire qu’elle apporte), il vous suffit de modifier la ligne de code qui le gère pour recréer instantanément une version à jour de l’ensemble de votre jeu de carte.

NanDeck est l’œuvre d’un seul homme : Andrea Nand. Le développement du logiciel a été entamé en 2006 et toujours régulièrement mis à jour. Il est possible de donner via Paypal pour soutenir le projet.

L'interface de NanDeck : code et prévisualisation

L’interface de NanDeck : code et prévisualisation

Du « code » ? C’est sans doute ce qui peut effrayer au premier abord, NanDeck est un logiciel qui se programme en lignes de code. Avec un manuel de 168 pages et des dizaines de fonctions différentes. Pourtant, quelques lignes simples peuvent déjà faire économiser de nombreuses mises à jour manuelles et les exemples tirés du manuel ou trouvés sur la toile permettent déjà d’accomplir les tâches de base. Si j’en parle aujourd’hui, c’est parce que je vous recommande donc fortement son utilisation, ça en vaut la peine !

Le sommaire du tutorial

Le sujet de l’exercice

Pour vous le prouver, mettons-nous en situation. Imaginons que, pour votre futur jeu à succès, vous ayez besoin de cartes de personnages :

  • Une série des mêmes personnages de base mais avec une couleur différente pour chaque joueur ;
  • Des cartes personnages additionnelles disponibles par la suite avec un coût distinct ;
  • Chaque personnage ayant une illustration, un court texte description et un nombre de points de victoire affiché sur la carte.
Le format de carte souhaité

Le format de carte souhaité

Le tableur

Pour démarrer, créez un fichier Excel pour y placer les différents paramètres de cartes.

La première ligne contient vos entêtes de colonnes. Pour les besoins du jeu, j’y place :

  • « nom » : nom du personnage
  • « description » : ça se passe de commentaire
  • « pv » : nombre de points de victoire du personnage
  • « cout » : coût de la carte personnage (un coût ici décrit en « chapeaux » avec un « M » pour « chapeau mou » et un « P » pour « casque à pointes ». « MMP » voulant dire 2 chapeaux mous et un casque à pointes)
  • « nombre » : nombre d’exemplaires de la carte
  • « couleurjoueur » : série des couleurs des joueurs (qui seront utilisées pour les cartes de base uniquement). Je représente chaque couleur par une lettre (« J » pour « Jaune » et « B » pour « Bleu »), séparées entre elles par le signe « | ».
  • « image » : chemin relatif vers le fichier de l’image associée au personnage.

Ensuite, chaque ligne contient un type de carte donné et ses caractéristiques.

Dans le détail cela donne donc ceci :

La carte « Le pirate » existera en 2 exemplaires, l’un jaune l’autre bleu. Tandis que la carte « L’alien » n’existe qu’en un seul exemplaire et vaut un chapeau mou et un casque à pointes.

Télécharger l’ensemble des fichiers de cet exemple au format zip

Ce fichier Excel contient donc toutes les données nécessaires à la création des cartes. Par la suite, si je dois ajouter une couleur de joueur, modifier le coût d’une carte ou mettre à jour une image, il me suffira de modifier ce tableur et de relancer le programme.

Le format des pages et des cartes

Lancez NanDeck. Par défaut le logiciel s’ouvre sur une page blanche qui n’attend que votre code. Nous allons déjà paramétrer les caractéristiques globales des cartes : leur taille et la taille de la page qui les contiendra.

PAGE = 21, 29.7, "PORTRAIT"
CARDSIZE = 6, 9
BORDER = None, #444444, .1, DOTTED

Chaque ligne contient une instruction. Appuyez sur la touche « F2 » quand vous êtes sur une ligne pour voir les paramètres possibles. Ici on définit sur la première ligne le format de la page (les dimensions sont en centimètres) ; sur la deuxième la taille d’une carte (toujours en centimètres) et sur la troisième la couleur et l’épaisseur des bordures entre les cartes pour faciliter leur découpage.

On voit déjà à ce stade la puissance d’un tel outil. Si demain vous souhaitez changer la taille des cartes ou revoir le format d’impression, une seule donnée à changer !

Vous pouvez sauvegarder à ce stade (on ne sauvegarde jamais assez).

Le lien avec le tableur

Nous allons ensuite ajouter les instructions qui vont indiquer au logiciel d’aller chercher les données dans le fichier Excel créé préalablement :

LINKMULTI = nombre
LINKMULDIS = couleurjoueur
LINK = acariatre.xls

La dernière ligne indique le nom du fichier Excel (que je vous recommande de placer dans le même dossier) qui contient donc toutes les caractéristiques des cartes.

La première ligne indique, quant à elle, le nombre d’exemplaires de chaque carte. La deuxième ligne le nom de la colonne qui contient les données nécessaires aux variantes d’une même carte (ici une couleur différente par joueur).

Concrètement, pendant la phase de construction des cartes, le logiciel commence par parcourir ce tableur où chaque ligne représente une carte à générer.

Si l’instruction LINKMULTI est utilisée en début de fichier, NanDeck duplique chaque ligne en autant d’exemplaires que le spécifie la colonne indiquée.

Si l’instruction LINKMULDIS est utilisée en début de fichier, le logiciel utilise les séries de données pour renseigner chaque instance des lignes dupliquées.

Ainsi, le fichier de données de base :

est comprise par NanDeck comme si le tableur contenait en réalité :

La ligne « Le pirate » est comprise comme étant présente en deux exemplaires (car « nombre » vaut 2 dans le tableur de base) et la couleur du joueur vaut « J » dans la première et « B » dans la deuxième. Cela permet de ne pas mettre d’informations redondantes dans le tableur et de très facilement manipuler le nombre d’exemplaires et les différentes variantes de cartes.

Bien sûr, si on souhaite, pour plus de facilité, n’utiliser qu’une ligne par carte à construire, rien n’empêche de manuellement dupliquer les lignes pour chaque exemplaires de cartes dans le tableur initial sans recourir aux instructions LINKMULTI et LINKMULDIS.

L’application d’une instruction

Les présentations d’usage étant faites, nous entrons dans le vif du sujet.

Pour construire chaque carte prévue, NanDeck parcourt la série d’instructions du programme qui décrivent en détail quels éléments afficher. Pour chaque instruction, il vérifie tout d’abord si la consigne s’applique à la carte en cours de construction. Pour cela, il regarde la première donnée de l’instruction qui définit la série de cartes pour laquelle cette consigne doit être appliquée.

Par exemple, l’utilisation de l’instruction RECTANGLE ci-dessous provoque l’affichage d’un rectangle noir pour la 8e carte uniquement :

RECTANGLE = 8, 0, 0, 100%, 100%, #000000

Cet autre exemple affiche le texte « Hello world » pour les cartes comprises entre la deuxième et la cinquième :

TEXT = [2-5], "Hello World", 0, 0, 100%, 100%, CENTER CENTER

NanDeck permet d’aller très loin dans la gestion d’un paquet de cartes divisé en autant de sections de cartes partageant un même modèle (pour différencier par exemple des cartes de personnages et des cartes d’actions aux modèles complétement distincts).

Pour commencer doucement, l’exemple de ce tutoriel n’utilise pas ces fonctions avancées. Nous allons simplement utiliser une seule section de carte « [toutes] » basée sur le nombre total de cartes indiqué dans le fichier Excel (somme de la colonne « nombre ») :

[toutes] = 1-{(nombre)}

Toutes les instructions commenceront donc par la propriété [toutes] pour simplement dire qu’elles s’appliquent à toutes les cartes de notre jeu.

Une image

Les instructions que nous allons utiliser maintenant décrivent simplement les éléments à ajouter sur les cartes. Comme indiqué préalablement, la première donnée de l’instruction est souvent la série de cartes pour laquelle celle-ci doit être appliquée. Les suivantes indiquent simplement les paramètres de construction (positionnement sur la carte, taille, couleurs et styles, etc.). Chaque instruction possédant son propre lot de valeurs possibles, usez de la touche « F2 » pour une saisie facilitée.

Pour afficher l’image du personnage de la carte, nous utilisons par exemple l’instruction IMAGE :

IMAGE = [toutes], [image], 15%, 20%, 70%, 50%, 0, P

Ici on indique, pour toutes les cartes, d’afficher l’image du fichier indiqué dans la colonne « image ». La zone dédiée à cette image commence à 15% du bord gauche et 20% du bord haut, occupe 70% de la largeur disponible et 50% de la hauteur. Le « P » signifie que l’image doit occuper le maximum de la zone disponible sans être déformée.

Une image bien positionnée et non déformée

Des textes

Pour afficher le nom du personnage, sa description et sa valeur en points de victoire, nous utilisons l’instruction TEXT précédée de la consigne FONT pour définir le style de police de caractères :

FONT = Verdana, 14, , #000000
TEXT = [toutes], [nom], 0, 0, 100%, 10%, CENTER

FONT = Verdana, 12, T, #222222
TEXT = [toutes], [description], 0, 70%, 100%, 20%, CENTER, WORDWRAP

FONT = Verdana, 28, B,#000000
TEXT = [toutes], [pv], 80%, 0, 20%, 10%, RIGHT

Il existe plein d’options pour définir le style du texte. Dans cet exemple, « T » signifie que le bloc de texte est transparent (par défaut, un fond blanc est placé derrière le texte), « B » place le texte en gras, etc.

 

3 textes pour compléter l’image

Une couleur par joueur

Pour mettre en place une bordure de couleur en bas des cartes selon la couleur du joueur, on crée un rectangle basé sur la lettre (« J » ou « B ») définie dans la colonne [couleurjoueur] :

SELECT = [couleurjoueur]
  CASE = J
    RECTANGLE = [toutes], 0, 90%, 100%, 10%, #FFFF00
  CASE = B
    RECTANGLE = [toutes], 0, 90%, 100%, 10%, #0000FF
ENDSELECT

Concrètement NanDeck regarde le contenu de la colonne « couleurjoueur ». Comme vu précédemment, Celle ci étant associée à une instruction (en début de fichier) LINKMULDIS, le logiciel fait comme si chaque valeur séparée par un « | » aboutissait à sa propre ligne du tableur.

Une bande de couleur pour identifier le joueur

Une série d’icônes

Enfin, NanDeck permet tout aussi facilement d’afficher une série d’icônes les unes à la suite des autres dans un espace réservé. On va s’en servir ici pour afficher le coût de la carte :

ICON =  [toutes], M, img\picto-chapeau-mou.png
ICON =  [toutes], P, img\picto-casque-pointes.png

ICONS = [toutes], [cout], 0, 2%, 20%, 30%, 20%, 7%, 0, P, LEFT, TOP

On définit préalablement les icônes possibles associées à chaque lettre avec l’instruction ICON puis la zone d’affichage de ces icônes (taille totale de la zone, taille possible de chaque icône) avec l’instruction ICONS. La colonne utilisée pour connaitre les icônes à afficher est ici la colonne « cout », la suite de lettres dans la case du tableur indiquant la suite d’icônes associée (« MMM » pour 3 chapeaux mous).

Une autre carte affichant les icônes du coût en haut à gauche

Une autre carte affichant les icônes de coût en haut à gauche

Là aussi, en phase d’équilibrage d’un jeu, cela permet très simplement de modifier le coût d’une carte en modifiant uniquement le tableur de données.

Le code complet

#un exemple de création de cartes

PAGE = 21, 29.7, "PORTRAIT"
CARDSIZE = 6, 9
BORDER = None, #444444, .1, DOTTED

LINKMULTI = nombre
LINKMULDIS = couleurjoueur
LINK = acariatre.xls

[toutes] = 1-{(nombre)}

#illustration

IMAGE = [toutes], [image], 15%, 20%, 70%, 50%, 0, P

#textes

FONT = Verdana, 14, , #000000
TEXT = [toutes], [nom], 0, 0, 100%, 10%, CENTER

FONT = Verdana, 12, T, #222222
TEXT = [toutes], [description], 0, 70%, 100%, 20%, CENTER, WORDWRAP

FONT = Verdana, 28, B,#000000
TEXT = [toutes], [pv], 80%, 0, 20%, 10%, RIGHT

#couleurs de joueur

SELECT = [couleurjoueur]
  CASE = J
    RECTANGLE = [toutes], 0, 90%, 100%, 10%, #FFFF00
  CASE = B
    RECTANGLE = [toutes], 0, 90%, 100%, 10%, #0000FF
ENDSELECT

#coût

ICON =  [toutes], M, img\picto-chapeau-mou.png
ICON =  [toutes], P, img\picto-casque-pointes.png

ICONS = [toutes], [cout], 0, 2%, 20%, 30%, 20%, 7%, 0, P, LEFT, TOP

Télécharger l’ensemble des fichiers de cet exemple au format zip

Prévisualiser et imprimer ses cartes

À chaque moment, il est possible de vérifier si le code saisi est valide et à quoi ressemblent les cartes générées en utilisant le bouton « Validate+Build ». Attention, tant que vous n’avez pas revalidé votre code, ce sont les dernières versions construites des cartes qui sont toujours prévisualisées.

Pour voir les cartes, on peut utiliser la fenêtre de prévisualisation à droite ou utiliser le bouton « Print deck » pour voir les pages d’impression.

Une fois satisfait, on peut sauvegarder individuellement les images (« Save images ») ou générer un fichier PDF (« PDF ») prêt à l’impression.

Extraire une sélection de cartes

Au cours de la conception d’un jeu on peut devoir corriger ou mettre à jour une série de cartes sans vouloir réimprimer l’ensemble des cartes du jeu. Pour répondre à ce besoin, je prévois dans mon fichier Excel de départ, deux colonnes supplémentaires « nombre_temp » et « couleurjoueur_temp » que je remplis uniquement des informations des cartes à imprimer spécifiquement. Il suffit ensuite de modifier les paramètres de consultation du tableur pour faire une version restreinte du jeu de cartes :

LINKMULTI = nombre_temp
LINKMULDIS = couleurjoueur_temp
LINK = acariatre.xls

Pour en savoir plus

Les possibilités de NanDeck sont immenses et il existe souvent beaucoup de façons de parvenir au même résultat (plus ou moins laborieusement). Pour en savoir plus, il faut bien sûr lire le (f…) manuel et regarder en détail les exemples fournis à la fin. Voici également deux vidéos francophones pour démarrer :

Par ailleurs, si vous avez des questions à ce sujet, n’hésitez pas !


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Il est aussi possible de réagir à ce billet via Twitter :


À lire aussi :