Créer ses défis

*Voici la traduction complète du lien sur Steam Creating Challenges.
Matisk*

## Intro

Depuis la version 1.2, Planetbase soutient la création de défis ; scénarii personnalisés qui fournissent des conditions et des objectifs de départ spécifiques. Ils sont accessibles à partir du menu *Défis* à sur la page d'accueil.

Lors du démarrage d'un défi, les Étapes et les succès sont désactivées, car l'unique but étant de réaliser les objectifs du défi.

Le jeu comprend des défis *builtin* (constructions ?), mais les joueurs peuvent créer bien plus, et ils pourront les téléverser sur le workshop de Steam pour que d'autres personnes puissent en profiter. Ce guide explique comment le faire.

## Les fondements

Un défi est créé en utilisant une association de fichiers XML. Ceux-ci définissent les conditions initiales, les objectifs, les textes et les différents gameplay ainsi que la modification de l'environnement.

Si vous n'êtes pas familiarisé avec les fichiers XML, vous trouverez sur Internet beaucoup de ressources sur ce sujet, mais ce sont simplement des fichiers textes avec que du balisages et qui définissent les choses, il vous suffit de télécharger le builtin (fichier zip) ou un test de défis et de les utiliser comme point de départ.

## Fichier de définition de défi

C'est le fichier principal pour le défi. Il y définit les conditions de départ, les objectifs et divers modificateurs. Il devra être nommé : « challenge\_nom\_du\_defi.xml ». Par exemple, si votre défi s'appelle « Construire une base étonnante », le fichier devra être nommé « challenge\_construire\_une\_base\_etonnante.xml ».

*Remarque : pour le nommage du fichier, seules les minuscules sont acceptées.*

## Commencer à partir d'une sauvegarde

Ce fichier est facultatif. Vous pouvez utiliser une sauvegarde comme point de départ pour votre défi. Il devra avoir comme nom : « challenge\_nom\_du\_defi\_save.xml », dans notre exemple précédent ce fichier serait appelé « challenge\_construire\_une\_base\_etonnante\_save.xml ».

## Les fichiers texte

C'est l'entreposage des textes du défi : le nom du défi, sa description, ses objectifs, etc. Ils ont le même format que les fichiers où sont les chaînes de phrase pour Planetbase. Vous pouvez télécharger les fichiers texte du défi de test et il suffit de remplacer le texte par le vôtre.

Vous devrez fournir au moins le fichier anglais pour le défi et qui devra être nommé : « en\_nom\_du\_defi.xml ». Vous pouvez aussi fournir des fichiers supplémentaires en d'autres langues ; le jeu les récupérera automatiquement.

Si l'utilisateur sélectionne une langue que votre défi ne fournit pas, les fichiers anglais seront utilisés par défaut.

Comme exemple, si nous voulions fournir des fichiers en anglais et en espagnol pour notre défi précédent, il nous faudrait créer 2 fichiers XML nommés : « en\_construire\_une\_base\_etonnante.xml », et « es\_construire\_une\_base\_etonnante.xml ».

Remarquez que les défis *builtin* n'ont pas de fichiers de texte propre à eux comme ceux des principaux fichiers définis des textes du jeu.

## Tester les défis

Pour tester votre défi, vous pouvez mettre tous vos fichiers dans le dossier « Documents/Planetbase/Challenges » (créez-le s'il n'existe pas), le jeu va les récupérer et ensuite le défi apparaîtra dans le jeu.

## Définir un défi

Cette section passe en revue les détails de la façon de créer le fichier XML qui définit les conditions de démarrage et les objectifs du défi.

Nous allons utiliser le fichier « challenge\_mining\_station\_alpha.xml » inclus dans le défis builtin pour exemple.

## Liens du noyau de défis

```
<challenge group_id="planetbase_corp" order="1" difficulty="1">
```

**group\_id** : Il détermine le numéro associé aux groupes de défis. Vous pouvez regrouper plusieurs défis liés et ils apparaîtra à côté des autres dans l'interface utilisateur.

**order** : Ordre dans lequel ce défi apparaîtra dans l'interface utilisateur par rapport aux autres défis du même ensemble.

**difficulty** : doit être compris entre 1 et 4, et donnera au joueur une idée de la difficulté que sera ce défi.

**requires** : Vous pouvez spécifier qu'avant de jouer à ce défi, l'utilisateur devra remporter un autre défi, ce qui sera utile si vous voulez créer une campagne qui comprendrait plusieurs niveaux à faire dans l'ordre.

## Position de départ

```
<starting_location planet_class="F" latitude="15" longitude="-12" savegame="false"/>
```

**planet\_class** : Cela spécifie le type planète qui sera utilisé comme base pour ce défi (D : désertique, F, glaciale, M : lune, S : orageuse). Toutes les caractéristiques de terrain, de gameplay et d'environnement sont empruntées de cette planète à moins que vous ne les remplaciez dans le XML (nous expliquerons comment dans les sections suivantes).

**latitude** : latitude de départ. Les défis utilisent toujours le même emplacement d'atterrissage. Un nombre positif indiquera le Nord et en négatifs le Sud.

**longitude** : longitude de départ. Les défis utilisent toujours le même emplacement d'atterrissage. Un nombre positif indiquera l'Est et en négatifs l'Ouest.

**savegame** : valeur vrai (**true**) ou fausse (**false**). Cela dépend s'il y a fichier de sauvegarde présent ou non. Il sera chargé lorsque le défi commencera.

## Démarrage avec des spécialisations

Cette section définit au départ les colons et les robots qui apparaîtront au début du défi. Il sera logique de les définir lorsque le défi n'est pas chargé à partir d'une sauvegarde.

## Démarrage avec des ressources

Cette section définit les ressources de départ du défi. Il sera logique de les définir lorsque le défi n'est pas chargé à partir d'une sauvegarde du jeu.

## Modifieurs de Gameplay

Cette section remplace les différents paramètres de jeu, la plupart d'entre eux devraient être explicites, vous pouvez avoir un regard sur les défis builtin pour y voir des exemples de toutes les options autorisées.

## Modifieurs de terrain

Ceux-ci permettent de modifier les paramètres de l'algorithme de génération de terrain pour créer des variations des planètes existantes. Avec de bonnes valeurs, vous pourrez totalement changer la face d'une planète.

Voir l'exemple du défi *Starport Atlantis* qui utilise la planète de type D, mais qui ajoute de l'eau et un relief plus bas :

## Modifieurs d'environnement

Ils vous permettront de changer la lumière, la brume et la couleur de l'horizon de la planète.

## Objectifs

Ils vous permettent de spécifier les conditions de victoire du défi. Si vous spécifiez au-delà de 1, chacun d'entre eux devront être accomplis. Vous pouvez également ne spécifier aucun objectif pour terminer le défi.

Une section typique des objectifs ressemblerait à ceci :

```
<objectives>
<objective type="AccumulateResources" param="Ore" value="100"/>
</objectives>
```

Les types possibles sont les suivants :

**AccumulateResources** : L'utilisateur doit accumuler une certaine quantité de ressources. "param" indique le type de ressource et la « valeur » (value) celui de la quantité. Les noms des ressources sont les noms anglais sans espaces (et CamelCase).

**ReachPopulation** : atteindre une certaine quantité de personne, *value* indique le nombre.

**ReachPrestige** : atteindre un certain prestige, *value* indique la hauteur.

**BuildStructures** : construire une certaine quantité de structures, *param* indique le type de structure et *value* indique son nombre.

**BuildComponents** : construire une certaine quantité de composants, *param* indique le type de composant et *value* indique son nombre.

**SurvivalTime** : Survivre un certain laps de temps, *value* indique la durée en nombre de jours de jeu.

**TimeLimit** : Indique une limite de temps pour relever le défi, *value* indique la durée en nombre de jours de jeu.

## Création d'un fichier *savegame*

L'une des caractéristiques les plus intéressantes du système de défi est d'utiliser une sauvegarde comme point de départ. Vous pouvez même faire des astuces ou du coaching pour créer la sauvegarde que vous voulez.

Pour ce faire, vous devrez :

* Créer un défi normal, comme expliqué dans la section précédente. Assurez-vous que vous définissez l'attribut "savegame" dans le noyau de l'emplacement de départ à "false" pour commencer.
* Jouez votre propre défi, et enregistrez le jeu normalement.
* Prenez votre sauvegarde dans le dossier (Documents/Planetbase/Saves), renommez en « challenge\_name\_of\_the \_challenge\_save.xml » et mettez-le dans le même dossier que le défi.
* Changer l'attribut "savegame" à "true" dans le noyau de l'emplacement de départ.
* Jouer à nouveau le défi. Vous pouvez continuer à sauver le jeu et remplacer le fichier de sauvegarde si vous avez besoin d'y faire des réglages.

## Campagnes

Les campagnes sont un ensemble de défis qui doivent être joué dans un ordre.

Chaque défi devra généralement appartenir au même groupe, et les défis ultérieurs utilisera un attribut "requires" (avoir besoin de) dans le lien du noyau pour spécifier quel autre défi doit être joué en premier.

Vous pouvez jeter un œil à la façon dont cela fonctionne dans les builtin défis.

## Téléverser dans le Steam Workshop

Pour téléverser des défis dans le workshop, vous devrez :

Téléchargez ce paquet nous l'avons appelé : WorkshopUploader

* Décompressez le fichier quelque part, cela va créer un tas de dossiers.
* Mettez vos fichiers de défi dans le dossier "WorkshopUploader\content". Vous pouvez inclure plusieurs défis dans votre objet du workshop, si vous voulez.
* Créer une image de l'élément, et de le mettre ici : "WorkshopUploader\preview\preview.png"
* Modifiez le fichier "WorkshopUploader\scripts\workshop\_item.vdf" avec un éditeur de texte, y écrire le titre, la description et les notes pour l'objet.
* Exécutez upload\_workshop\_item.bat, cela vous demandera votre nom d'utilisateur de Steam, votre mot de passe et probablement aussi votre code de sécurité.
* Si tout va bien, alors vous devriez alors voir votre article dans workshop de Planetbase.
* La première fois que vous faites cela, un nouvel élément dans le workshop sera créé, et son ID sera écrit dans le fichier workshop\_item.vdf, lorsque vous mettrez à jour, gardez vos fichiers du défi et répétez le processus.

Vous pouvez également y ajouter des images ou des vidéos. C'est bien aussi de téléverser quelques captures d'écran pour mettre en évidence votre défi.