Ren'Py

De EduTech Wiki
Aller à la navigation Aller à la recherche

Cet article est en construction: un auteur est en train de le modifier.

En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.



Présentation

Ren'Py est un outil auteur permettant de créer des jeux-vidéo de type Visual novel. Il s'agit d'un type de jeu-vidéo très répandu et populaire au Japon, mais encore peu connu ailleurs. Ces jeux se présentent sous forme d'histoires interactives et non-linéaires, combinant du texte, des images et du son. Le joueur peut interagir avec l'histoire en changeant son déroulement par le biais de choix textuels, de manière assez similaire aux "Livres dont vous êtes le héros".

De même, Ren'Py permet également de créer des jeux de simulation, voir d'ajouter un système de combats de style rpg aux jeux-vidéo créés.


Cet outil auteur fonctionne sur la base d'un langage de script très simple. Il utilise le langage de script Python, mais de manière suffisamment simple pour que des personnes n'ayant jamais fait de programmation puissent créer des jeux complexes de manière efficiente.

Il peut également être utilisé comme introduction à la programmation pour des novices, car cet outil utilise un certain nombres de notions très répandues en programmation, et peut donc permettre de mieux comprendre comment fonctionne un langage de programmation. Cela avait d'ailleurs été le but initial des créateurs de Ren'Py, qui souhaitaient trouver un moyen de faire découvrir le développement informatique à un jeune public.

Installation

Compatibilité

Ren'Py est un logiciel multiplateforme. En effet, il peut potentiellement être utilisé sur toute plateforme. Il y en a cependant trois principalement prises en charge, qui sont les suivantes:

  • Windows XP+ (x86)
  • Mac OS X 10.6+ (x86_64)
  • Linux (x86, x86_64)

Le launcher de Ren'Py permet de créer des versions de jeux pour ces trois différentes plateformes qu'importe celle étant utilisée. Il est ainsi possible de développer par exemple une version Mac d'un jeu depuis Windows.

Android (2.3+) and iOS (7+) sont également pris en charge en tant que plateformes secondaires. Les jeux Ren'Py peuvent être lancés dessus, cependant le développement doit se faire à partir d'un ordinateur avec l'une des trois plateformes citées ci-dessus.

Open Source

Par ailleurs, Ren'Py est un logiciel gratuit en Open Source. Il est donc libre d'utilisation, et il est également possible d'étudier son code source, de le modifier si besoin, ainsi que de le redistribuer dans sa version d'origine ainsi que dans des versions modifiées, y compris à des fins commerciales. La seule exception est si le jeu que vous décidez de créer comporte des sons au format mpeg ou mp3, auquel cas vous devrez payer pour une license d'utilisation. Ces formats sont donc déconseillés pour la création de jeux-vidéo à des fins commerciales.

Procédure d'installation

Pour installer Ren'Py, vous devez tout d'abord télécharger le logiciel sur le site officiel au lien suivant: Ren'Py.

Une fois cela fait, il suffit de suivre la procédure d'installation suivante:

  • Sur Windows, faites un doucle clic sur le fichier exécutable que vous venez de télécharger. Cela fera extraire Ren'Py dans un dossier nommé "renpy-<version>". Entrez alors dans ce dosser et cliquez sur "renpy.exe" pour lancer le logiciel. (Si les extensions sont cachées sur votre ordinateur, il est possible que le fichier y apparaisse en tant que "renpy" au lieu de "renpy.exe".)
  • Sur Max OS X, faites un double clic sur le fichier image téléchargé pour le monter en tant que lecteur. Quand le lecteur s'ouvre, copier le dossier nommé "renpy-<version>" autre part. (vous pouvez le mettre où vous voulez, cependant il doit être déplacé hors du fichier image qui peut seulement être lu. Attention cependant, ne déplacez pas l'application Ren'Py en dehors du dossier qui la contient, car elle ne pourra fonctionner autre-part.) Une fois le dossier déplacé, entrez dedans et cliquez sur l'application Ren'Py pour la lancer.
  • Sur Linux, décompressez l'archive tar, puis allez dans le répertoire "renpy-<version>" et lancez le fichier "renpy.sh".

Une fois cette procédure d'installation suivie, le logiciel Ren'Py devrait se lancer. Ce dernier ayant été traduit en diverses langues, vous pourrez alors modifier au besoin la langue utilisée sur le logiciel en cliquant sur "preferences" en bas à droite de l'interface de Ren'Py, puis en cliquant sur la langue de votre choix.

Utilisation

Création d'un jeu simple

Les fonctionnalités principales de Ren'Py seront présentées ici afin d'expliquer comment créer un jeu simple du début à sa fin. Cependant, notez bien que ce qui est présenté ici n'est qu'un aperçu de l'éventail des fonctionnalités et possibilités qu'apporte ce logiciel pour la création d'un jeu. Si vous souhaitez aller plus loin et découvrir tout ce qu'il est possible de faire grâce à ce dernier, vous pouvez consulter les sources citées au bas de cette page.

Créer un nouveau projet

Launcher renpy.png

Pour créer un nouveau projet, cliquez sur l'option "Create New Project" du launcher Ren'Py. Si il s'agit de la première fois que vous créez un projet, Ren'Py vous demandera de sélectionner le dossier dans lequel vos projets seront sauvegardés.

Nom projet renpy.png

Une fois cela fait, le launcher vous demander d'entrer le nom que vous voulez utilisé pour votre projet (qui sera en principe le nom de votre jeu). Ici, nous avons décidé d'appeler notre projet "My Question".

Resolution renpy.png

Suite à cela, vous devrez choisir la résolution que vous voulez avoir pour votre projet. La résolution par défault, de 1280x720, est un bon compromis entre la taille du jeu et la qualité des images. Une fois votre choix séléctionné, cliquez sur "Continue".

Theme couleur renpy.png

Enfin, le launcher vous demandera de choisir un thème de couleur pour votre projet, comprenant une couleur de fond et une couleur d'accentuation.

Une fois cette étape effectuée, Ren'Py prendra un court moment pour traiter et créer un template pour un jeu simple. Vous pouvez cliquer sur "Launch Project" afin de lancer votre projet et tester l'interface de départ de votre jeu.

Dans les parties qui suivent, nous allons voir comment fonctionne le langage de script utilisé par Ren'Py, mais si vous souhaitez déjà voir à quoi ressemble la structure d'un exemple de jeu, vous pouvez cliquer sur "The question" dans la liste des projets, puis sur "script.rpy" dans la section "Edit File" afin de voir comment cet exemple de jeu a été codé.

Bases

Pour essayer de créer un jeu simple de vous-mêmes, séléctionnez le projet sur lequel vous souhaitez travailler dans la liste de projets se trouvant à gauche sur la fenêtre du launcher, puis cliquez sur "script.rpy" dans la section "Edit File". Si il s'agit de la première fois que vous faites cela, Ren'Py vous demander de séléctionner un éditeur (nous vous recommendons Editra si vous n'avez jamais créé de projet de ce genre), et il vous le téléchargera. Une fois cela fait, Ren'Py ouvrira le fichier de script dans la fenêtre de l'éditeur.

Editeur renpy.png

Une fois l'éditeur ouvert, vous pouvez voir que des lignes y sont déjà écrites comme sur l'image ci-dessus. Il s'agit de lignes de codes d'exemples afin de vous aider lorsque vous débutez dans Ren'Py. Cependant, si vous souhaitez essayer les diverses fonctionnalités présentées sur cette page, nous vous recommandons de tout effacer pour créer un jeu simple à partir de rien. Vous pouvez cependant sauvegarder le code déjà présent quelque-part afin de ne pas le perdre (bien que vous trouverez le même à la création de chaque nouveau projet).

Si vous effacez tout, puis que vous cliquer sur "Launch Project" depuis le launcher de Ren'Py, vous pouvez voir que même sans aucune ligne de code, Ren'Py créé néanmoins un menu permettant de déjà charger et sauvegarder des parties de jeu, ainsi qu'un menu d'options dans lesquelles vous pouvez séléctionner vos préférences.

Prenons à présent un exemple que vous pourrez tester:

label start:

    "Sylvie" "Salut! Les cours se sont bien passés?"

    "Moi" "Plutôt oui..."

    "Je n'arrivais pas à admettre que tout était entré par une oreille pour resortir par l'autre."

    "Moi" "Tu penses rentrer chez toi maintenant? Si tu veux on peut faire le chemin ensemble."

Ici, vous pouvez voir la version la plus simple possible d'un jeu créé sur Ren'Py. Il n'inclut aucune image, ni musique, mais il montre cependant une conversation entre deux personnages, ainsi qu'une ligne de narration.

La première ligne est un label statement. Les label statement sont utilisés afin de donner un nom à un endroit précis du programme. Dans cet exemple, nous avons créé un label nommé "start". Le "label start" est spécial, car c'est à partir de là que le script de Ren'Py va commencer à être lu lorsqu'un utilisateur du jeu cliquera sur "Start game" dans le menu principal de ce dernier.

Les autres lignes sont des say statement. Ces derniers existent sous deux formes. La première est une chaîne (commencant par des guillemets, comprenant des caractères, et se terminant par des guillemets) se trouvant sur une ligne, qui sera utilisée pour de la narration, ainsi que pour les pensées du personnage principal. La deuxième forme de say statement possible est composée de deux chaînes de caractères. Elle est utilisée pour les dialogues, et comprend une première chaîne comprennant le nom d'un personnage étant en train de parler, et d'une seconde comprenant ce que le personnage dit.

Notez également que chaque say statement a une indentation de quatre espaces dans le script. Cela est dû au fait qu'il s'agit d'un bloc se trouvant en dessous d'un label statement. Dans Ren'Py, les blocs doivent avoir une indentation relative aux statements étant précédemment utilisés, et tous les statements d'un même bloc doivent avoir la même indentation.

"Sylvie" "Est-ce que tu as déjà entendu la fameuse citation de Lincon, \"Le problème des citations sur internet est que beaucoup d'entre-elles ne sont pas authentiques.\"?"

Lorsqu'une chaîne de caractères comprend des guillemets (en plus des guillemets de début et de fin de la chaîne), ceux-ci doivent être précédés d'un "\" pour chacun d'eux, comme dans l'exemple ci-dessus:

"... Good Ending."

    return

Enfin, nous avons vu plus haut comment utiliser le label start pour indiquer à partir de quel endroit le script du jeu devait être lu. Pour indiquer à quel endroit le script doit arrêter d'être lu, et donc se terminer, il faut utiliser un return statement comme sur l'exemple ci-dessus, sans écrire "label" contrairement au label start. Dans votre jeu, il est conseillé d'écrire quelque-chose avant ce statement, indiquant au joueur que le jeu se termine à cet endroit (par exemple, indiquer quelle fin le joueur a obtenu).

Personnages

Un problème que pose le premier exemple de code, est que d'écrire son script de cette manière nécessite de réécrire le nom des personnages pour chaque ligne où ils parlent. Pour la création d'un jeu comprenant un grand nombre de dialogues, il faudrait de ce fait taper énormément de texte. De plus, en écrivant ainsi les noms des personnages, leurs noms apparaîtront dans le jeu de la même manière, et de la même couleur, sans différenciation. Pour remédier à cela, Ren'Py donne la possibilité de définir les personnages à l'avance. Cela permet d'associer un nom très court à chaque personnage, ainsi que de définir de quel couleur devrait apparaître chacun de leurs noms à l'écran.

define s = Character('Sylvie', color="#c8ffc8")
define m = Character('Me', color="#c8c8ff")

label start:

    s "Hi there! How was class?"

    m "Good..."

    "I can't bring myself to admit that it all went in one ear and out the other."

    s "Are you going home now? Wanna walk back with me?"

    m "Sure!"

Les deux premières lignes de code définissent les personnages. La première ligne sert à définir que l'abréviation "s" pourra être utilisée au lieu d'écrire à chaque fois le nom "Sylvie", et que ce dernier apparaîtra d'une couleur verte à l'écran. (les couleurs sont à définir avec les codes couleur RVB utilisés pour les pages web).

La seconde ligne définit que l'abréviation "m" pourra être utilisée au lieu de "Moi", et que le nom entier apparaîtra à l'écran dans une couleur rouge. D'autres personnages peuvent être définis en copiant l'une de ces lignes de codes et en changeant simplement l'abréviation à utiliser, le nom complet du personnage, ainsi que la couleur dans laquelle on veut que leur nom apparaisse.

A la suite de ces deux lignes de code, vous pouvez voir que les say statement servant de dialogues ont été modifiés en conséquence, en utilisant les abréviations au lieu des noms complets des personnages dans une chaîne de caractères

Images

define s = Character('Sylvie', color="#c8ffc8")
define m = Character('Me', color="#c8c8ff")

label start:

    scene bg meadow

    "After a short while, we reach the meadows just outside the neighborhood where we both live."

    "It's a scenic view I've grown used to. Autumn is especially beautiful here."

    "When we were children, we played in these meadows a lot, so they're full of memories."

    m "Hey... Umm..."

    show sylvie green smile

    "She turns to me and smiles. She looks so welcoming that I feel my nervousness melt away."

    "I'll ask her...!"

    m "Ummm... Will you..."

    m "Will you be my artist for a visual novel?"

    show sylvie green surprised

    "Silence."
label leaving:

    s "I'll get right on it!"

    hide sylvie

    "..."

    m "That wasn't what I meant!"
image logo = "renpy logo.png"
image eileen happy = "eileen_happy_blue_dress.png"

Transitions

label start:

    scene bg meadow
    with fade

    "After a short while, we reach the meadows just outside the neighborhood where we both live."

    "It's a scenic view I've grown used to. Autumn is especially beautiful here."

    "When we were children, we played in these meadows a lot, so they're full of memories."

    m "Hey... Umm..."

    show sylvie green smile
    with dissolve

    "She turns to me and smiles. She looks so welcoming that I feel my nervousness melt away."

    "I'll ask her...!"

    m "Ummm... Will you..."

    m "Will you be my artist for a visual novel?"
scene bg meadow
    show sylvie green smile
    with dissolve
scene bg meadow
    with dissolve
    show sylvie green smile
    with dissolve
scene bg meadow
    with None
    show sylvie smile
    with dissolve

Positions

show sylvie green smile at right

Musiques et sons

play music "illurock.ogg"
play music "illurock.ogg" fadeout 1.0 fadein 1.0
queue music "next_track.opus"
stop music
play sound "effect.ogg"

Menus, Labels et Jumps

s "Sure, but what's a \"visual novel?\""

menu:

    "It's a videogame.":
        jump game

    "It's an interactive book.":
        jump book

label game:

    m "It's a kind of videogame you can play on your computer or a console."

    jump marry

label book:

    m "It's like an interactive book that you can read on a computer or a console."

    jump marry

label marry:

    "And so, we become a visual novel creating duo."

Lien

  • Lemma Soft Forums (Communauté d'entraide pour les créateurs de jeux-vidéo de type Visual novels. Beaucoup d'informations et contenus liés au logiciel Ren'Py)

Logiciels similaires