1. Introduction

Depuis que je suis toute petite, j'ai vécu entourée de livres, que ce soient ceux de la bibliothèque de la commune ou les miens. Les livres et les histoires qu'ils cachent m'ont toujours passionnés. Il y a quelques années, j'ai joué à un jeu appelé Doki Doki Literature Club, un jeu d'horreur caché sous les traits d'un jeu typique japonais de drague. J'ai ainsi commencé à prendre goût à ce qu'on appelle les Visual Novel, un jeu narratif où l'on suit les aventures des personnages et où l'on peut faire des choix par rapport aux actions des personnages.

L'année passée en Angleterre, j'ai écrit un roman policier pour mon Travail de Maturité. Lorsque j'ai su on pouvait faire un jeu pour le projet P, j'ai directement eu l'idée de faire de mon roman un visual novel. Typiquement, un visual novel offre plusieurs différentes "routes" suivant les choix fait précédemment. Mon but était de "copier" mon roman en visual novel pour que ce soit plus intéractif and intéressant à jouer.

2. Matériel et méthodes

2.1 Matériel

  • Ordinateur
  • Tablette de dessin Wacom Cintiq 16
  • Roman What Was Burned
  • "Ren'Py"

2.2 Méthode

2.2.1 Script

J'ai tout d'abord commencé par dessiner les personnages tels qu'ils apparaîtront dans le jeu avec la tablette graphique Wacom. Ce procédé a prit beaucoup de temps mais j'était très satisfaite du résultat. J'ai ensuite commencé à me familiariser avec le software pour visual novel appelé Ren'Py. Il offrait un tutoriel très détaillé sur chaque aspect du software ainsi que comment modifier le jeu selon nos propres désirs et besoins.

Les programmeurs du logiciel avaient grandement facilité le codage du script du jeu. Il fallait juste écrire les dialogues, définir chaque personnage, mettre les musiques et bruitage ainsi que les fonds. Le jeu étant de taille 1280 x 720, mon amie qui m'a fait les fonds a dû les redimensionner. Les personnages faits par moi étaient de taille 495 x 700. Toutes les images utilisées étaient sous format PNG.

Ci-dessous sont les deux bouts de code utilisé pour montrer un fond (piano) et un personnage (lilith_young) à gauche de l'écran.

scene piano 
with fade
show lilith_young at left
with dissolve

Les indications "with" rajoute un effet à l'apparition des images. Les dialogues devaient être écrites entre deux crochets et les personnages définis au début du code comme ci-dessous.

define l = Character("Lilith",color="#c8ffff")
define ly = Character("Lykus")
define sa = Character ("Sarakiel")

L'indication "color" change la couleur du nom du personnage lorsqu'il parle, écrit en hexadécimale. Figure 1 : La couleur de la boîte de dialogue du personnage "Lilith", mai 2020

Figure 1 : La couleur de la boîte de dialogue du personnage "Lilith" modifiée

Figure 2 : La couleur de la boîte de dialogue du personnage "Lykus" sans modification

Le système de choix était aussi facilité avec des commandes "menu" pour initier un choix et des "jump" pour passer d'un bout de code à un autre suivant le choix fait appelé des "labels".

menu:
   "Two options were offered to her as their eyes clashed in an intense battle."
   "Punch him in the guts.":
        jump guts
   "Raise the gun and shoot him.":
        jump gun
label guts:

La commande pour la musique est tout simplement par exemple :

play music "piano intro.mp3"

Différente de la musique qui joue en continu jusqu'à la commande stop, la commande

 play sound "cape flap.mp3"

ne joue le son qu'une seule fois et ne requiert pas une commande "stop". Le programme offre aussi un système de transformation et d'animation en bloc ATL mais je ne me suis pas beaucoup penchée sur le sujet.

2.2.2 Menu Principal

J'ai remplacé l'image de base du menu principal avec une image dessinée en changeant un petit bout de code dans le script "gui" du jeu.

define gui.main_menu_background = "Game_menu2.png"

Le "gui" permet aussi de modifier les couleurs, tailles, polices etc des textes du jeu et du menu principal mais je n'y ai pas touché.

2.2.3 Choix et Fins

Le plan était de faire 2 fins différentes, chacune dépendante des choix fait au cours du jeu. Chaque fois qu'un choix devait être fait, il y en avait 2, l'une plus inclinée romantisme, l'autre justice. Chacune débloquait des dialogues différents avant de reconvertir vers la narrative principale. Ainsi, suivant les choix fait dans le jeu, le joueur verrait l'un ou l'autre fin.

Le code, par exemple :

default guts = False

permet que le jeu se souvienne du choix "guts" fait précédemment. Ainsi, le jeu saurait quelle fin montrer suivant les choix faits tout au long du jeu.

3. Résultats

Si chaque ligne était bien codée, le jeu ne montrait pas d'erreurs et fonctionnait parfaitement. Il ne faut juste pas toucher aux autres fonctionnalités de l'application qui le permet de marcher. Voici ci-dessous quelques exemples de scènes dans le jeu.

Figure 3 : Scène du piano du prologue (musique au piano jouée en même temps)

Figure 4 : Scène de confrontation du prologue avec choix

Figure 5 : Scène au bureau du chapitre 1

Figure 6 : Menu principal

4. Discussion

Le plus difficile, à mon avis, était de comprendre le système de choix et savoir comment structurer le jeu pour qu'il marche comme je le voulais. J'avais prévu de faire différentes fins suivant les choix des personnages mais je n'ai pas eu le temps d'arriver jusqu'à là avant la publication de ce blog.

La partie la plus longue était l'écriture du script du jeu. J'ai pris beaucoup de temps à écrire chaque dialogue et chaque commande d'un roman de presque 200 pages, autant dire que j'ai sous-estimé le temps que ça me prendrait.

J'ai beaucoup appris de la structure des visual novel, de l'immense travail à fournir et j'espère pouvoir faire des jeux avec, aussi connu peut-être que DDLC...

5. Conclusion

J'ai beaucoup aimé faire ce projet et je compte le finir complètement, sans une limite de temps cette fois. Beaucoup de mes amis m'ont encouragé lors de la création de ce jeu, je veux le compléter pour qu'ils puissent l'essayer. Je tiens surtout à remercier mes deux amis qui ont fait la musique et les fonds du jeu. Contrairement à ce que je pensais au début, faire un jeu, même juste un visual novel n'est pas chose facile. Je n'ai pas pu le finir mais je suis déjà très satisfaite du résultat actuel. Malgré le fait que ce travail était facultatif et pas noté, je voulais produire quelque chose de moi qui restera ici sur ce blog aussi longtemps que le professeur le laissera et, qui sait, peut-être que dans le futur ce jeu sera connu pour avoir été le premier d'une longue série...

Références

https://www.renpy.org/doc/html/index.html
"Tutorial" de Ren'Py
The Question de Ren'Py