Comment créer un niveau sur Colobot ?

Sommaire

  1. L'architecture des fichier et des niveaux
  2. Détail du fichier help.F.txt
  3. Détail du fichier scene.txt

1. L'architecture des fichiers et des niveaux

Un chapitre est composé de un ou plusieurs niveaux. Dans le point de vue des fichiers sur l'ordinateur un chapitre se compose comme ceci :

Il faut placer les fichiers a cet endroit:(data/levels/exercises).
Ici nous avons tous les chapitres correspondant aux exercices de programmation que propose Colobot, notre projet est le chapitre008.

A l’intérieur du chapitre nous pouvons trouver nos niveaux et un fichier donnant des indications sur notre chapitre.
Voici le contenu du fichier chaptertitle.txt

Dans tous les fichiers de configuration de Colobot le choix de la langue est présent. Pour ce projet nous avons choisi de ne pas traduire tous nos textes en Anglais ou autre langue.
La ligne Title.F définie les informations française du chapitre ici le « text » est pour le nom du chapitre et « resume » est pour la description du chapitre.
Regardons à présent l'architecture des niveaux qui sont ici traduit par level001, level002 etc.

Les niveaux ont eux aussi leurs fichiers de configuration. Le fichier scene.txt sert à définir le nom du niveau, sa description et tout l’ensemble de la scène du niveau. Comme par exemple les conditions de victoire, la forme du terrain, la création des objets déjà présents sur la scène etc.
Le dossier « help » quant à lui contient le fichier d'aide du niveau traduit en toutes les langues. Le fichier d'aide est celui qui est utilisé pour simuler le « scan » dans le jeu ouvert avec la touche « F1 ».

Voilà le résultat en jeu de notre dossier chapitre008 et de ses niveaux.
Détaillons a présent les fichiers help.F.txt et scene.txt

2. Détail du fichier help.F.txt

Comme dit précédemment le fichier d'aide est retranscris dans le jeu par le biais du « scan ». Il n'est pas difficile à comprendre et à prendre en main.
Très peu d'instruction sont possible il est possible de faire du formatage de texte pour qu'il soit affiché dans le « scan ».

Cette instruction va écrire dans le « scan » « Houston a un problème ! » comme un titre.

Ici « \c ; » déclare une section de code et va afficher dans le « scan » le texte qui se trouve sous la balise « \s ; » dans un fond jaune. Le « \n ; » traduit un saut de ligne.

Cette instruction affichera une image nommée isiClasse dans le « scan » le 30 et 15 sont pour la taille de l'image. Mais attention l'image devra être dans le bon dossier (data/icons).

Cette instruction permet de créer un lien vers une fonction de Colobot existante dans le guide de programmation en jeu. Le « \l ; » déclare un lien nommé distance vers une fonction de Colobot qui est « dist ».
Exemple d'aide en jeu :

3. Détail du fichier scene.txt

Le fichier scene.txt quant à lui défini tout le niveau et ses conditions de jeux.

On connaît déjà les deux premières lignes elles sont similaires à celles du chapitre. La ligne importante est la troisième, cette ligne signifie que lorsque vous créez un nouveau script sur un des robots il s’appellera dans notre cas « finder ».

La ligne « instructions name » lit le fichier d'aide vu auparavant. La Ligne d’après et très importante c'est elle qui lit l'aide principale du jeu.

Toutes ces lignes sont pour la création du terrain. Les premieress sont pour les lumières et couleurs ambiantes.
Le deuxième paragraphe est pour la fonte du terrain comme le relief créé à partir d'une normal map.
Enfin les dernières sont là pour appliquer une texture au terrain.

Les lignes importantes sont celles-ci, c'est ici que les objets du niveau se créés. Les instructions sont les mêmes pour tous les objets. On définit l'objet qu'on veut créer par son type. Il en existe une multitude et heureusement pour nous ils étaient tous dans le guide.
Attardons nous sur la ligne « 68 » du code ci-dessus, la position de l'objet est donnée par « pos », sa direction par « dir », son type ici « leggedGrabber » est un robot qui peut attraper des objets. L'option « reset=1 » signifie que l'objet est réinitialisé à chaque nouvelle partie. L'option « trainer=1 » signifie que c'est un robot d’entraînement et qu'il est le seul à pouvoir déclencher les points de passage « wayPoint » dans le jeu. L'option « power=0,2 » est l’état de charge de sa pile au commencement du jeu, cette option peut être réglée de 0 à 100. De 0 a 1 pour la pile normale et de 1 à 100 pour la pile d'uranium.
L'instruction « script1=« initPI3.txt » » quant à elle permet de lier un script fait par les développeurs au robot dès le début. Accessoirement il est utilisé pour les scripts solutions. Attention toutefois le script « initPI3.txt » doit se trouver au bon endroit (data/ai).

Il est très important que le script possède le nom donné plus haut ici « Finder » sinon il ne sera pas pris en compte.

Il est possible de définir les recherches qui sont déjà aboutie et celle que l’on peut rechercher. On peut ainsi bloquer certaines recherches.

Les conditions de victoires quant à elles sont définies par les lignes suivantes.

On peut définir sa position et l’objet type qui se réfère a cette condition. Par exemple le type « Me », le joueur, l’instruction après « lost=0 » signifie que si le joueur meurt la mission est perdu.

Beaucoup d'informations supplémentaires sont disponibles sur le Creating_User_Levels_Guide comme par exemple tous les types d'objets possibles.

Pour toute Informations supplémentaires contacter:
Moncel Arnaud
ou
Chabalier Nicholas

chap.bmp (1.97 MB) Arnaud Moncel, 06/26/2015 09:51 PM

chapInt.bmp (1.98 MB) Arnaud Moncel, 06/26/2015 09:59 PM

chapTit.bmp (84.3 KB) Arnaud Moncel, 06/26/2015 10:01 PM

levelInt.bmp (1.97 MB) Arnaud Moncel, 06/26/2015 10:03 PM

menuJeu.bmp (1.74 MB) Arnaud Moncel, 06/26/2015 10:09 PM

b;.bmp (17.9 KB) Arnaud Moncel, 06/26/2015 10:14 PM

cHouse.bmp (1.57 MB) Arnaud Moncel, 06/26/2015 10:16 PM

c;s;n;.bmp (129 KB) Arnaud Moncel, 06/26/2015 10:17 PM

image.bmp (14.4 KB) Arnaud Moncel, 06/26/2015 10:18 PM

lienFunc.bmp (17.9 KB) Arnaud Moncel, 06/26/2015 10:19 PM

aide1.bmp (1.75 MB) Arnaud Moncel, 06/26/2015 10:21 PM

scene1.bmp (92.8 KB) Arnaud Moncel, 06/26/2015 10:21 PM

scene2.bmp (48.9 KB) Arnaud Moncel, 06/26/2015 10:24 PM

scene3.bmp (1.2 MB) Arnaud Moncel, 06/26/2015 10:25 PM

scene4.bmp (668 KB) Arnaud Moncel, 06/26/2015 10:25 PM

scene5.bmp (33.8 KB) Arnaud Moncel, 06/26/2015 10:25 PM

scene6.bmp (70.8 KB) Arnaud Moncel, 06/26/2015 10:30 PM

script.bmp (60.1 KB) Arnaud Moncel, 06/26/2015 10:33 PM