Ren'Py

Il y a certainement déjà pas mal de tutoriaux – anglais – expliquant par le menu comment utiliser Ren’Py. Mais apparemment plus rare en français. Je suis loin de vraiment maîtriser la bête, mais je commence à la connaître. Plus qu’un tutorial, c’est un tour d’horizons des erreurs et des questions classiques de débutant que je vais faire ici.

Ren’Py est un logiciel de création de visual novel, fonctionnant autant sur windows, mac et linux. Ren’Py fonctionne en codage, en langage Python plus exactement, ce qui lui laisse un petit arrière goût nostalgique pour ceux qui ont fait leur premières pages web directement en html. Mais par contre, c’est beaucoup plus simple : Mais attention, la moindre petite erreur perturbe le code.

Le visual novel est une sorte de jeu à texte, dans lequel on fait défiler textes et images d’une histoire avec un fond musical. Plus qu’un jeu, c’est une sorte de livre interactif. C’est un genre fréquemment utilisé pour les jeux de type « dating game » ou jeu de drague, ou la possibilité de répondre aux questions des personnages et donc d’influencer le jeu est cruciale. Mais ce n'est pas forcement réservé à ce type de jeu. N'importe quel genre d'histoire peut être créé avec ce système. A titre d'exemple, Phoenix Wright sur nintendo DS. Ça tombe bien, on va s'en servir pour cette demo...

Ren’Py, les bases :

Pour cette démo, nous allons utiliser les personnages de Phœnix Wright – j’allais pas me fatiguer à en dessiner spécialement pour non plus et j’aurais bien volontiers utilisés ceux de Persona 3 mais je ne trouvais pas d’image des personnage en PNG – dans un court échange des plus simples qui sera le suivant :

Phœnix : « Mince, cette affaire m’a épuisé… »
Miles : « … »
Phœnix : « … Qu’est ce qui ne va pas ? »

Miles : Réponses à choix multiples :
Répondre « Je n’en peux plus j’ai envie de tu sais quoi. »
> Aboutira sur une réponse enthousiaste de Phœnix et un happy end.

Répondre « Ta sale tronche me gonfle »
> Phœnix sera tout triste, Bad ending.

Ce qui nous permettra de voir les bases de la programmation Ren’Py.

1/ Installation du logiciel :

Il n’y a pas d’installation à proprement parler. Vous télécharger le logiciel, par exemple ici, et il n’y aura qu’à dézipper le dossier.



Et voici les images que nous allons utiliser pour cette démo :


Photobucket
Prosecutor.png

Photobucket
phoenix2.gif

Photobucket
phoenix1.giif

Photobucket
house.png




Photobucket
defense.png

edge-emo.gif


Il est très important de leur donner des noms simples et sans majuscules, pour vous éviter des prises de tête par la suite.

(J'ai crée ce jeu au format 800 x 600 par habitude, mais il est tout à fait possible de créer des jeux moins grands. La du coup, j'ai agrandis les images de base de phoenix wright.)

Après avoir clique sur "new project" et crée le projet, dans votre dossier « Ren’Py », un dossier au nom du projet s’est crée. Dans le sous dossier « game », placez pêle mele vos images de personnages, de BG et les musiques.

Lorsque vous commencez votre nouveau projet, il se présente comme suit :

# You can place the script of your game in this file.

init:
    # Declare images below this line, using the image statement.
    # eg. image eileen happy = "eileen_happy.png"

    # Declare characters used by this game.
    $ e = Character('Eileen', color="#c8ffc8")


# The game starts here.
label start:

    e "You've created a new Ren'Py game."

    e "Once you add a story, pictures, and music, you can release it to the world!"


La première chose à faire est de mettre en place vos images et décors car par la suite, vous ne cesserez d’y référer par un code ou un autre. Tout cela se fait dans le paragraphe « Init » . C'est un peu comme la base de données de votre jeu :

# You can place the script of your game in this file.

init:
    # Declare images below this line, using the image statement.
    # eg. image eileen happy = "eileen_happy.png »

Ce code la sert pour les personnages apparemment, mais comme je suis pas très douée, je n'ai pas encore compris à quoi servait le eg. et ne l'utilise pas. Dans cet exemple, cela donne donc :
 
 image edge emo = "edge-emo.gif »
 image edge zoom = "edge-zoom.gif »
 image phoenix1 = "phoenix1.gif »
 image phoenix2 = "phoenix2.gif »

Ensuite, il s’agit d’associer un code pour les noms :

    # Declare characters used by this game.
    $ m = Character('Miles', color="#c8ffc8")
    $ p = Character('Phoenix', color="#c8ffc8")

On peut mettre une couleur par personnage. Maintenant, "m" signifiera "miles" et "p" pour "phoenix".

Et enfin, on place les décors :


image prosecutor = "prosecutor.png »
image defense = "defense.png »
image house = "house.png »

Les musiques n’ont pas besoin d’être installées dans la « base de données » initiale. Mais du coup, il faudra préciser ce qu’elles sont avec un .mp3 ou autre.


Donc, proprement, cela donne :



Il est important de se montrer minutieux dans cette partie la. Une majuscule, un espace en trop, et Ren’Py ne voudra pas fonctionner. D’ou les noms des fichiers énoncés en minuscules pour ne pas s’emmêler les pinceaux avec une majuscule en trop. De même pour les terminaisons de fichier, il n’est pas nécessaire de mettre les .png and cœ dans le codage.

Ren'Py vous aide à ne pas vous tromper. Vous repérez vite les couleurs du code qui indiquent que tout est bon.

On peut maintenant coder les dialogues.



L’ensemble reste donc relativement assez simple du moment que l’on a compris les codes de base : Pour faire apparaître et disparaître un personnage, c’est « show » et « hide ». Ne pas oublier de faire disparaître un personnage après son apparition au risque de les voir s’additionner les un sur les autres.
Pour les décors, il n'est apparemment pas necessaire de les "hider", peut-être parce qu'ils s'ajoutent les uns sur les autres ? Je ne sais pas. 
Pour la musique, il suffit de préciser quel musique correspond à quel section sans "éteindre" la musique précédente.
Et lors des dialogues, il suffit de les mettre entre guillemet. Précéder la phrase d'une des lettre correspondante à l'un des perso défini en début de jeu fera parler le personnage, ne rien mettre mettra le texte en mode "narration" comme je l'ai fait pour les bad et good ending de cette demo.

On peut utiliser plusieurs effets visuel comme ajouter « with fade » ou « with dissolve » selon l’effet que l’on veut obtenir.
Le code « Jump » comme vous l’avez certainement deviné sert à « sauter » vers une scène particulière lors des questions à choix.

Pour le reste, testez et farfouillez ! Tout ce que j'ai appris de Ren'Py, c'est en copiant et modifiant des lignes de code des jeux tests proposés avec ce logiciel.

Le plus important quand on utilise Ren'Py est de faire les choses proprement. De toutes manières, si vous faites une erreur de codage, le logiciel vous le dira quand vous testerez votre jeu, et indiquera la ligne ou se situe le problème. Il ne sera alors pas difficile de voir l'espace, la majuscule ou le tiret en trop. 

Concernant l’image de début de jeu : Dans la partie « options » de ren’py, onglet que j’ai encore fort peu exploité, il y a une partie de codage indiquant :

        ## The background of the main menu. This can be a color
        ## beginning with '#', or an image filename. The latter
        ## should take up the full height and width of the screen.
        mm_root = "#393939",

Tout est dit ! Pour une image, c’est plutôt :

         mm_root = "menu.jpg",

(Par conséquent, j’ai crée une image nommée « Menu » que j’ai rangé avec les autres. Enfin en vérité, j'ai totalement repris le code de "the question", un jeu exemple de Ren'Py, parce que je m'étais embrouillée dans mon codage, du coup, mon mini jeu s'appelle aussi "the question", ah ah.)

La partie « option » permet des tas des modifications apparemment, mais je ne m’y suis pas encore penchée plus que ça. Visiblement, on peut tout changer dans l'interface, Cf certains des jeux disponibles sur Kawa soft comme Katawa Shoujo ou absolument tout est personnalisé.

Quand vous avez fini votre jeu, vous n’avez plus qu’à aller dans « Tools » puis « build distribution », et le logiciel fait le reste pour vous.

>> Télécharger le résultat de cette demo <<
(Comme je suis une feignasse j'ai fait un seul dossier compressé pour les version windows, mac et linux.)

 


Voila ! J'espère que cette courte introduction aidera ceux qui sont un peu paumé en débutant avec ce logiciel et en motivera d'autres à créer des visuals novel !

 

 

Ce tutorial à initialement été posté sur mon artblog Hyakki Yako.