Tutoriel/Préparer une personnalisation du jeu

De WikiPlee.
Languages Langue Flag of Great Britain.png English

La personnalisation du jeu peut se faire à plusieurs niveaux, selon que l'objectif soit simplement d'ajouter de nouveaux niveaux, de nouveaux objets ou de créer un nouveau jeu de plates-formes sur le moteur. Ce tutoriel présente comment mettre en place un dossier pour faire de telles personnalisations. Cependant, les tâches à effectuer peuvent sembler exagérées dans le cas de simple ajout de niveaux. Dans ce cas, la section sur la préparation de l'environnement de travail dans le tutoriel Créer un niveau sera suffisante.

Une archive contenant un environnement pré-configuré pour Linux est téléchargeable dans la dernière section de ce tutoriel.

Sommaire

Pré-requis

Cet article suppose que le lecteur a déjà installé le jeu Plee the Bear sur sa machine. Dans le cas où la personnalisation inclus la création de nouveaux objets, il est attendu que le lecteur ait en sa possession une copie du code source du moteur, par exemple téléchargée sur le site de Plee the Bear.

Éléments nécessaires à l'exécution

Avant toute chose, il est nécessaire de connaître l'emplacement de l'exécutable nommé running-bear, principal programme du moteur. En ayant installé Plee the Bear avec les chemins par défaut, ce programme est situé sous Linux dans le dossier /usr/local/bin/.

Ensuite, si la personnalisation s'appuie sur des objets d'un autre jeu, il est alors nécessaire de trouver ces bibliothèques d'objets. Il est fort probable que la bibliothèque d'objets génériques soit nécessaire. Par défaut, elle est installée sous Linux en tant que /usr/local/lib/libbear_generic_items.so. La bibliothèque d'objets spécifiques à Plee the Bear est quant à elle installée en tant que /usr/local/lib/libplee_the_bear.so.

Enfin, si des ressources de Plee the Bear sont utilisées (ce qui est le cas si des objets de Plee the Bear le sont), il est indispensable de connaître l'emplacement du dossier les contenant. Par défaut, ce dossier est /usr/local/share/plee-the-bear sous Linux.

Éléments nécessaires à la compilation

La compilation d'une bibliothèque d'objets requiert de connaître l'emplacement des entêtes des fichiers du moteur. Cet emplacement devra être indiqué au compilateur. Dans l'archive du code source téléchargeable, ces fichiers sont dans le dossier bear-engine/core/src.

Si des objets de la personnalisation héritent des objets génériques ou des objets de Plee the Bear, il est aussi nécessaire d'indiquer leur emplacement au compilateur. Par défaut, ces entêtes sont respectivement dans les dossiers bear-engine/lib/src et plee-the-bear/src.

Enfin, les bibliothèques du moteur et éventuellement celles des objets, le cas échéant, devront être indiquées au compilateur. L'installation par défaut à partir de l'archive est /usr/local/lib/ sous Linux.

Arborescence initiale

L'arborescence initiale contient trois éléments qui sont un dossier pour stocker les données du jeu, un autre pour les bibliothèques d'objets et un dernier élément qui est un script de lancement du jeu. Cette section présente chacun de ces composants.

Nous supposons que les actions suivantes s'effectuent dans un dossier vide.

Dossier des données

Le dossier des données est destiné à recevoir toutes les ressources utilisées par le jeu, telles que les images, les niveaux, les sons, etc. Nous supposons que l'utilisateur crée ce dossier sous le nom data.

Pour pouvoir utiliser les données de ce dossier dans les éditeurs, il est nécessaire de l'ajouter à la liste des chemins des données, comme indiqué par exemple dans la section Première fois de la page sur l'éditeur de niveaux.

Pour que les ressources et les niveaux soit disponibles dans le jeu, il faudra passer le dossier des données en tant que paramètre --data-path=data sur la ligne de commande du programme. Ceci sera détaillé dans la section « Script de lancement » ci-après.

Bibliothèques d'objets

Un dossier peut être ajouté pour recevoir tout ce qui concerne la programmation d'une bibliothèque d'objets. Ce dossier sera nommé lib par la suite. L'organisation de ce dossier est sans contraintes. Cependant, pour les tutoriels comme « Créer un objet », le sous dossier lib/src sera utilisé pour le code source des bibliothèque. Le résultat de leur compilation sera stocké dans le sous dossier lib/bin tandis que lib/item_description contiendra les fichiers de description d'objet.

Un ficher lib/CMakeLists.txt est créé avec le contenu suivant pour préparer la compilation des bibliothèques :

  1. cmake_minimum_required(VERSION 2.6)
  2.  
  3. # Directories where the executable and libraries are built
  4. set( LIBRARY_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}/bin" )
  5.  
  6. find_path(
  7.   BEAR_ENGINE_INCLUDE_DIRECTORY
  8.   "engine/base_item.hpp"
  9.   DOC "Include directory of the Bear engine."
  10.   )
  11.  
  12. find_library(
  13.   BEAR_ENGINE_LINK_DIRECTORY
  14.   "bear_engine"
  15.   DOC "Path to the main library of the Bear engine."
  16.   )
  17.  
  18. subdirs(src)

La quatrième ligne indique à CMake de mettre dans le dossier lib/bin les fichiers compilés. La commande find_path à la sixième ligne permet quant à elle de trouver le dossier contenant les entêtes du moteur de jeu tandis que la commande find_library en ligne douze permet de déterminer l'emplacement de la bibliothèque principale du moteur. Enfin, la commande subdirs de la ligne dix-huit indique à CMake de continuer à inclure les fichiers CMakeLists.txt situés dans le sous-dossier src.

Lors du lancement du jeu, les bibliothèques compilées dans le dossier lib/bin doivent être indiquées en tant que paramètres --item-library=chemin_de_la_bibliothèque.so sur la ligne de commande du programme. Par exemple, si une bibliothèque libmy_items.so est créée, il faudra ajouter le paramètre --item-library=lib/bin/libmy_items.so au programme.

Enfin, pour que les fichiers de description d'objets soient reconnus par l'éditeur de niveau, il est nécessaire de l'ajouter à la liste des chemins, comme indiqué dans la section Première fois de la page sur l'éditeur de niveaux.

Script de lancement

Les éléments créés dans les sections précédentes doivent être donnés au moteur du jeu en les passant en tant que paramètre de la ligne de commande. Pour simplifier l'utilisation du jeu, il est préférable de créer un petit script de lancement contenant la commande et ses paramètres. Nous nommerons ce script run-game.sh et son contenu sera :

  1. #/bin/sh
  2.  
  3. /usr/local/bin/running-bear \
  4.   --game-name="Nom du jeu" \
  5.   --screen-width=800 --screen-height=600 --active-area=500 \
  6.   --item-library=/usr/local/lib/libgeneric_items.so \
  7.   --item-library=/usr/local/lib/libplee_the_bear.so \
  8.   --item-library=./lib/bin/libmy_items.so \
  9.   --data-path=/usr/local/share/plee-the-bear/ \
  10.   --data-path=./data \
  11.   --start-level=level/premier_niveau.cl \
  12.   "$@"

La troisième ligne est le chemin d'accès à l'exécutable du moteur du jeu. Puis viennent les paramètres de la ligne de commande. La quatrième ligne est le nom du jeu, indiqué dans le titre de la fenêtre et utilisé par le moteur pour déterminer les fonctions d'initialisation et de finalisation du jeu. La cinquième ligne permet d'indiquer la résolution de l'écran et la distance autour de lui, dans laquelle l'évolution des objets se fait.

De la sixième à la huitième ligne viennent les bibliothèques d'objets utilisées par le jeu. Puis les dossiers des données sont indiquées à la neuvième et la dixième ligne. Si une ressource est disponible dans plusieurs dossiers, seule celle de celui indiqué en dernier sera utilisée.

Enfin, la onzième ligne indique le nom du premier niveau à exécuter. Le chemin indiqué est relatif aux dossiers de données. Ici, ces fichiers sont donc situés à la racine de ./data ou de /usr/local/share/plee-the-bear/.

Le paramètre "$@" permet de passer au moteur les paramètres donnés au script run-game.sh afin de les compléter ou les remplacer. Par exemple, pour directement tester un niveau dont le chemin est level/mon_niveau.cl, il est possible d'écrire :

./run-game.sh --start-level=level/mon_niveau.cl

Environnement pré-configuré pour Linux

Le fichier custom-bear.tar.gz contient un environnement pré-configuré pour Linux. Cet environnement inclut un script nommé run-game.sh s'auto-configurant sous certaines conditions.

Ce script suppose que le moteur de jeu soit déjà installé, par exemple par une installation du jeu Plee the Bear. Il s'appuie sur la commande locate pour trouver les fichiers, il sera peut-être utile d'exécuter la commande updatedb avant de lancer le script.

Les éléments non trouvés par le script sont demandés à l'utilisateur :

  • Name of the game : le nom du jeu, qui sera passé au paramètre --game-name ;
  • Directory containing the data of the game : répertoire des données du jeu, passé au paramètre --data-path ;
  • Level to launch : nom du niveau à lancer initialement, passé au paramètre --start-level ;
  • Directory containing the custom libraries : répertoire contenant les bibliothèques d'objets, passé au paramètre --item-library ;
  • Main program of the engine : chemin programme running-bear ;
  • Path to the library of generic items : chemin de la bibliothèque d'objets libbear_generic_items.so ;
  • Do we use the data and libraries of Plee the Bear? : répondre yes à cette question pour utiliser les données du jeu Plee the Bear en renseignant les deux questions ci-après ;
  • Path to the data of Plee the Bear : chemin du répertoire des données de Plee the Bear, passé au paramètre --data-path ;
  • Path to the library of the items of Plee the Bear : chemin de la bibliothèque d'objets libplee_the_bear.so.

Ces informations sont stockées dans le fichier ./vars.sh pour pouvoir être réutilisées au lancement suivant du script.

Liste des Tutoriels (m)
Préparer une personnalisation du jeu · Créer un niveau · Créer un objet · Liens physiques · Création d'une animation · Script Scheme
Outils personnels