1. Introduction

1.1 Contexte
Crée dans les années 60, le livre-jeu permet au lecteur de plonger dans le rôle du héros d'une aventure et, au fil des pages qui composent le livre, de résoudre diverses énigmes et de prendre des décisions afin de parvenir, soit à une mort certaine, soit à un merveilleux trésor. Le genre connait un essor dans les années 80 qui s'ensuit par une diversification. Tout d'abord concentré sur des aventures héroïques situées dans des lieux fantastiques, les livres-jeux proposent des sujets plus variés, dans des lieux plus banals. Malheureusement, les livres-jeux ont connu un rapide déclin, les éditeurs ne trouvant pas que le genre puisse apporter assez de revenus par rapport aux dépenses d'impression.
1.2 Idée
Or maintenant que le monde informatique s'est bien développé, ce type de livres pourrait être crée, non plus sous version papier, mais sur internet, et donc éviter de nombreuses dépenses afin de rendre l'activité rentable. Le principe serait d'utiliser une base de données mySQL afin de faire le lien entre les diverses pages du livre.
1.3 Existant
J'ai à ma disposition une importante collection de livres-jeux. Ainsi, je n'aurai pas besoin de créer une aventure, ce qui aurait été un problème conséquent, autant au niveau de l'inspiration que de la relation entre les pages. De plus, il existe des sites qui ont déjà essayé de reproduire l'univers des livres-jeux en ligne, comme par exemple Amalthéa, cependant, ces sites sont plutôt des jeux de rôle que des livres-jeux.
1.4 Problèmes
Plusieurs problèmes se présentent devant moi : premièrement, le lien entre les différentes table de la base de donnée est complexe. Deuxièmement, il sera probablement compliqué de gérer la partie artistique du livre-jeu, un point essentiel afin d'immerger le lecteur dans l'aventure, et souvent indispensable pour les énigmes.

2. Matériel et méthodes

2.1 Matériel
Le matériel utilisé pour ce projet est le suivant :

  • Livre-jeu "Le château aux 100 oubliettes"
  • Base de donnée phpmyadmin


2.2 Méthode
Ce projet a été réalisé avec les langages de programmations HTML, PHP, CSS et SQL. La principale subtilité est présente dans l'utilisation de la base de donnée. En effet, les relations entre les différentes tables n'est pas triviale, puisqu'il fut nécessaire d'utiliser une association "n à n" d'une table. Le texte est donc stocké dans la base de donnée. Il m'a tout d'abord fallu appeler cette base de donnée dans mon code avec la fonction suivante :

<?php $DB = new mysqli ("localhost", "nomBaseDeDonnee", "motDePasse", "nomUtilisateur"); ?>

Cette base de donnée contient deux tables. Une première appelée "page" contenant le texte de chacune des pages du livre. La deuxième , nommée "passage", permettant le lien entre les différentes pages.

3. Résultats

Le résultat est disponible sur le site suivant. Ce projet est parfaitement fonctionnel, si vous désirez tenter votre chance dans le "château aux 100 oubliettes", il vous suffit de suivre les instructions. Il reste néanmoins quelques problèmes, en particulier le souci d'encodage qui modifie les caractères spéciaux en point d'interrogation.

4. Discussion

Les attentes initiales par rapport à ce projet ont été atteinte, le site étant en effet fonctionnel. Cependant, quelques problèmes ont survécu à toute tentative de résolution. Le problème le plus important est celui lié à l'encodage. Ce problème est exclusivement lié à la base de donnée. En effet, tous les accents compris dans le code ne sont pas sujets à ce problème. Bien que l'attribut du texte dans la base de donnée soit en UTF-8, cette dernière renvoie des caractères en ISO-8859-1 (C'est pour cela que je demande à l'utilisateur de mon site de modifier le codage de sa page). Bien que de nombreuses personnes se soient trouvées dans la même situation que moi, je n'ai pas trouvé de résolution efficace à ce problème. Il semblerait qu'il soit lié à une erreur dite de "double encodage", le code demandant de l'UTF-8 à une base de donnée qui est déjà encodée en UTF-8. La résolution demanderait de modifier un fichier dans le répertoire de la base de donnée. N'y ayant pas accès, j'ai préféré utiliser la solution de la modification du codage (Afficher -> Codage -> ISO-8859-1 sous Google Chrome). Quant aux apprentissages réalisés, ils sont nombreux. Le fait d'avoir eu recours à quatre langage de programmation différents m'a permis d'acquérir de nombreuses connaissances dans ces domaines.

5. Conclusion

Le site est bel et bien fonctionnel ! Toutefois, le projet n'a de loin pas atteint sa perfection et pourrait être sujet à plusieurs modifications. Premièrement, tout l'aspect graphique du site a été peu géré. Cela découle de mon talent artistique moindre qui m'a poussé à améliorer la partie liée à la programmation plutôt que la partie artistique. Deuxièmement, le site est bien modeste, par le fait qu'il ne contient qu'un seul livre. Étant donné l'importante collection de livres-jeux à ma disposition, il pourrait être intéressant d'augmenter la taille du site et de proposer plusieurs aventures. Cela rajouterait également une contrainte au niveau des utilisateurs. Une nouvelle fonctionnalité serait nécessaire, permettant à toute personne ayant déjà consulté le site de pouvoir reprendre où il en était. Je suis néanmoins très content de ce projet et espère avoir recrée au mieux l'univers du livre-jeu !