Livre-jeu

Programme du Livre-Jeu

Après quelques difficultés rencontrées, j'ai enfin réussi à avoir une version fonctionnelle ! J'ai commencé par la partie qui me semblait la plus simple et la plus utilisée : les choix. Question affichage, je me suis limité à 3 boutons au maximum par ligne. Cela permet d'afficher un texte suffisamment long.
J'ai également changé l'ordre d'affichage des informations sur l'écran de jeu. La "Feuille d'Aventure" se situe à droite (elle était à gauche).

J'ai trouvé la police de caractère Harrington qui correspond à l'ambiance que je souhaitais donner à ce programme.


Désormais, il est possible de faire les actions suivantes (programmées dans un fichier XML structuré) :

  • Prendre un repas
  • Prendre un objet
  • Echanger un objet
  • Jeter un objet
  • Obtenir un bonus (ou un malus)
  • Fuir
  • Combattre un monstre
  • Tenter sa chance
  • Choisir un chemin

Pour l'instant, il n'y a que du texte et des boutons. Seule la phase de combat contient une image. J'ai privilégié la conception du programme à son interface. Je rajouterais plus tard des images. J'espère que ma femme les réalisera...

Durant le développement, j'ai dû réaliser quelques modifications dans la structure du fichier XML. Cela n'est pas visible dans son utilisation mais apporte une réelle simplicité dans certains morceaux de code.

Je posterais des copies d'écran un peu plus tard du programme "Livre-jeu".

Il me reste encore quelques détails à régler, comme de ne rendre la fuite possible que si le joueur a déjà combattu X rounds ou encore des combats contre plusieurs monstres en même temps.

Et il me reste encore la partie la plus compliquée : les cas spéciaux ! J'ai déjà échangé avec un collègue à ce propos et j'ai quelques pistes de travail. Il faut tout d'abord créer la structure XML qui sera utilisée (partie la plus longue, à mon avis). Puis il faut concevoir le programme de conception de cette structure XML. Et enfin seulement, il sera possible de l'ajouter au programme pour que celui-ci soit enfin complet. Cela me demandera un temps certain ! Et je ne pense pas pouvoir le finir cette année.
Dans tous les cas, ce programme m'a permis de m'initier au développement en C++ !

Generation XML

Comme indiqué dans mon précédent billet, j'ai dû concevoir une application afin de renseigner les données du livre-jeu et pouvoir ainsi les stocker dans un fichier XML.
Pour l'instant, seul le programme générant les données dites "standards" a été réalisé.
Le prochain module sera pour les cas spéciaux. Je ne rentrerais pas dans le détail des données.

Mon programme "Génération XML" se compose d'une fenêtre principale contenant 3 boutons et une zone de texte.
La zone de texte sert à contenir le chemin complet du fichier XML à utiliser. Un bouton "Parcourir" permet de sélectionner/saisir le répertoire et le nom du fichier.
Les 2 derniers boutons servent à lancer des fenêtres de dialogue (QDialog).
A l'heure actuelle, seule la partie "Nouvelle entrée" a été développée.

Generationxml

Préparation

Afin de pouvoir jouer à un livre-jeu sur ordinateur, il faut savoir comment se décompose les informations.
Nous savons que le livre-jeu est découpé en paragraphes. Ceux-ci contiennent un texte et des actions et/ou choix à réaliser.

J'ai tenté de réaliser une "carte" avec Freemind pour trouver le chemin qui permet de gagner à tous les coups.
C'est fastidieux mais, je pense, nécessaire lors des derniers tests du programme final.

N'étant pas familier avec la bibliothèque Qt, j'étaits parti dans l'idée de lire un ou plusieurs fichiers Texte contenant toutes les données nécessaires.
Après discussion avec plusieurs collègues, l'un d'entre eux m'a dit : "Pourquoi ne pas utiliser des fichiers XML ? Ils sont déjà structurés."
Et c'est vrai ! Ce sont des fichiers Texte structurés !

J'ai donc lu et re-lu le livre-jeu "Le Sorcier de la Montagne de Feu" pour lister les différentes actions possibles.
Il en est ressorti la liste suivante :

  • Choix
  • Attaque
  • Fuite
  • Bonus
  • Tentez votre chance
  • Objets
  • Repas
  • Spécial (cas non standards)

Afin d'avoir un livre-jeu sous forme XML, j'ai dû concevoir une application me permettant de renseigner les données nécessaires.

Préparation au C++

Je suis admis à l'Université de Sherbrooke au programme du Diplôme de Développement de Jeux Vidéo (DDJV).
Comme cela fait plus de 15 ans que j'ai quitté l'école, j'ai décidé de me former un maximum en C++, langage utilisé dans ce programme.

J'ai donc réalisé un certain nombre d'exercices en utilisant exclusivement le C++ standard.
Ces exercices m'ont permis de comprendre les mécaniques de base de ce langage.
Bon, il est vrai qu'il reste encore quelques points qui ne me sont pas encore familiers mais cela est normal !
On ne devient pas expert dans un langage en quelques mois (^_^)

En suivant le cours de C++ sur le site de openclassrooms, j'ai découvert la bibliothèque Qt.
Cette bibliothèque permet de concevoir des applications graphiques (ou non) grâce à son éditeur.

Après plusieurs semaines de travail, une idée a germé dans mon esprit.
Afin d'aller au Canada, nous devons vendre (ou donner) la totalité de nos affaires : livres, meubles, consoles, etc...
J'ai donc re-découvert les livres-jeu auxquels je jouais dans mon enfance.

Je vais reproduire le principe des livres-jeu dans un programme !